[Algorytmy] Zlicz liczby parzyte

kalik

[Algorytmy] Zlicz liczby parzyte

Post autor: kalik »

Znaleźć ile spośród n kolejno wczytywanych liczb całkowitych jest liczb parzystych
Ostatnio zmieniony 23 paź 2011, o 14:18 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Algorytmy] Zlicz liczby parzyte

Post autor: adambak »

ale z czym masz problem? w pętli wczytujesz te liczby i w zależności od tego czy dana wczytywana liczba jest parzysta, czy też nie, zwiększasz, bądź nie, licznik liczb parzystych który na samym początku ustawiasz na zero.. a sprawdzenie czy liczba jest parzysta, czy nie, ogranicza się do sprawdzenia jej reszty z dzielenia przez dwa..-- 23 paź 2011, o 12:36 --napisałem w Pascalu, bo jest najbliższy pseudokodowi, więc nie powinieneś mieć żadnych problemów z przerobieniem na schemat blokowy, czy co tam chcesz:

Kod: Zaznacz cały

program PARZYSTE;
var n,i,a,licznik:integer;
begin
 licznik:=0;
 readln(n);
 for i:=1 to n do begin
   read(a);
   if a mod 2 = 0 then licznik:=licznik+1;
 end;

 writeln(licznik);
end.
o to chodziło?
kalik

[Algorytmy] Zlicz liczby parzyte

Post autor: kalik »

Chodziło mi o schemat blokowy, ale postatram się to przekształcić. Dzięki. Jeszcze tylko co znaczy "var"?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Algorytmy] Zlicz liczby parzyte

Post autor: adambak »

var to tylko efekt Pascala - zaznacza początek deklarowania zmiennych, czyli linijka:

Kod: Zaznacz cały

var n,i,a,licznik:integer;
to po prostu zainicjalizowanie zmiennych n, i, a, licznik, które są typu integer (całkowity).. schemat blokowy będzie bardziej czytelny bo nie trzeba się martwić o składnię konkretnego języka, tylko o efekt działania (zgodnie z przyjętymi ustaleniami schematu blokowego)..

reszta wydaje mi się, że jest intuicyjna..

powodzenia
kalik

[Algorytmy] Zlicz liczby parzyte

Post autor: kalik »

A mógłbys zapisać w pseudojezyku?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Algorytmy] Zlicz liczby parzyte

Post autor: adambak »

w sylu takim, jaki jest w Cormenie:

Kod: Zaznacz cały

czytaj(n)
licznik <- 0

for i <- 1 to n
  do czytaj(a)
    if a mod 2 = 0
      then licznik <- licznik + 1

wypisz(licznik)
może być?
kalik

[Algorytmy] Zlicz liczby parzyte

Post autor: kalik »

Ok. Jeszcze tylko pytanie co rozumiesz przez licznik liczb parzystych?
adambak
Użytkownik
Użytkownik
Posty: 1272
Rejestracja: 8 sty 2011, o 18:18
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 295 razy
Pomógł: 115 razy

[Algorytmy] Zlicz liczby parzyte

Post autor: adambak »

licznik liczb parzystych przyjmuje wartość równą ilości liczb parzystych w i-tym kroku pętli.. naszym zadaniem jest odpowiedzenie na pytanie ile jest liczb parzystych wśród kolejno wczytanych n liczb całkowitych.. no to na początku(przed rozpoczęciem pętli for a więc przed wczytaniem jakiejkolwiek liczby) nie ma żadnej parzystej więc ustawiamy go na wartość zero.. no i teraz prześledźmy wczytywanie np takich danych:

Kod: Zaznacz cały

5
2 3 4 1 6
wczytujemy n=5 a potem w pętli 5 kroków:
1. wczytyjemy 2.. sprawdzamy resztę z dzielenia.. ok jest równa 0, więc licznik powiększamy o 1 i jest równy 1..
2. wczytujemy 3.. reszta z dzielenia? równa jeden więc nie zwiększamy licznika..
3. wczytujemy 4.. reszta równa zero więc powiększamy licznik i jest równy dwa..
4. licznik równy 2..
5. licznik równy trzy..

wypisujemy licznik czyli liczbę 3.. zgadza się, tyle było liczb parzystych w wczytanych pięciu liczbach.. czyli działa.. jasne?
kalik

[Algorytmy] Zlicz liczby parzyte

Post autor: kalik »

świetnie, teraz wszystko rozumiem, wielkie dzięki
ODPOWIEDZ