Code:
1 writeln(broj mod 10);
2 broj:=broj div 10;
3 begin
4 if broj mod 10 = 2 then
5 rezultat:=rezultat+1;
6 end;
Prva linija ti ispisuje zadnju cifru broja. Razmisli, jel ti ovo potrebno u programu ?
Druga linija ti deli broj sa 10 i smesta celobrojnu vrednost deljenja u broj. Dakle, ako je broj = 12345, posle ove linije, broj ce biti 1234
Cetvrta linija se onda pita da li je zadnja cifra broja jednaka 2, i ako jeste u petoj liniji se rezultat poveceva za jedan.
Treca i sesta linija su ti neportrebne, njih mozes da izbacis, nista ne postizes tim begin..end blokom.
Uzmi npr da je uneti broj 12345 i simuliraj izvrsavanje programa u glavi i videces sta ne valja:
Code:
readln(broj); // unosi se broj 12345
while broj>0 do begin
broj = broj div 10; // prvobitna vrednost broja je 12345, posle ove linije je 1234
if broj mod 10 = 2 then // ovde je broj vec 1234 i ti ispitujes da li je njegova zadnja cifra jednaka dvojci. Jesi ispitao peticu ? Nisi, jer si je u prethodnoj liniji eliminisao bez da prvo proveris da li je jednaka dvojci
rezultat := rezultat + 1;
end;