Free Pascal

kairu
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 3 lut 2011, o 19:50
Płeć: Mężczyzna
Lokalizacja: wrocław

Free Pascal

Post autor: kairu »

Witam, proszę o pomoc w napisaniu następujących programów, na tablicach.

1) Program z wykorzystaniem 20-sto elementowej tablicy, wartości mają być wygenerowane z zakresu od -5 do 14. Wartości ujemne należy zastąpić 0 i wydrukować na ekranie.

2) Napisz program wczytujący ciąg n liczb rzeczywistych, wydrukuj na ekranie te spośród liczb, których indeks jest parzysty.

3) Napisz program wprowadzający dane do dziesięcio-elementowej tablicy i wprowadź najpierw liczby parzyste, potem nieparzyste.
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

Free Pascal

Post autor: wawek91 »

No to dajesz. Pokaż swój kod a my pomagamy i znajdujemy błędy.
kptkamil
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 8 lut 2011, o 18:28
Płeć: Mężczyzna
Lokalizacja: Tarnów/okolic

Free Pascal

Post autor: kptkamil »

ad1.

Kod: Zaznacz cały

program tablica1;
uses crt;
var
 a:byte;
 tablica:array[1..20] of integer;
begin
clrscr;
 randomize;
 for a:=1 to 20 do
 begin
  tablica[a]:=random (20);
  tablica[a]:=tablica[a]-5;
  if tablica[a]<0 then begin
                        tablica[a]:=0;
                        writeln (tablica[a]);
                       end
                  else begin
                         writeln (tablica[a]);
                        end;
 end;
readln;
end.
ad 2 (nie wiem czy dokładnie o to chodziło :D)

Kod: Zaznacz cały

program wczyt;
uses crt;
var
tablica:array[1..10] of integer;
a:byte;
begin
clrscr;
for a:=1 to 10 do
  begin
   writeln ('Podaj ',a,' liczbe');
   readln (tablica[a]);
  end;
writeln;
for a:=1 to 10 do
  begin
   if tablica[a] mod 2 = 0 then writeln (tablica[a]);
  end;
readln;
end.
ad 3

Kod: Zaznacz cały

program tablica2;
uses crt;
var
 tablica:array[1..10] of integer;
 a:byte;
begin
clrscr;
 for a:=1 to 10 do
  begin
   writeln ('Podaj ',a,' liczbe');
   readln (tablica[a]);
  end;
 writeln;
 writeln ('Liczby parzyste');
 for a:=1 to 10 do
  begin
   if tablica[a]/2=tablica[a] div 2 then writeln (tablica[a]);
  end;
 writeln;
 writeln ('Liczby nieparzyste');
 for a:=1 to 10 do
  begin
   if tablica[a]/2 <> tablica[a] div 2 then writeln (tablica[a]);
  end;
  readln;
end.
Ostatnio zmieniony 9 lut 2011, o 10:57 przez kptkamil, łącznie zmieniany 1 raz.
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

Free Pascal

Post autor: wawek91 »

ad 2. Masz wypisać elementy tablicy których indeks jest parzysty a nie który element jest parzysty (wypisujesz poprostu co drugi element).

ad 3. Tu warto zastosować warunek w if'ie, że liczba parzysta jest wtedy kiedy przy dzieleniu przez 2 daje resztę równą 0. Zatem

Kod: Zaznacz cały

if(tablica[a] mod 2 = 0)
Reszta wydaję się być w porządku.
ODPOWIEDZ