Informatică, întrebare adresată de SnakeAndEnd, 8 ani în urmă

In PASCAL, va rog muult !

Anexe:

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

program reparatie;

var f,g:text;

   a,b,c,mesaje:integer;

begin

 assign(f,'pr3_in.txt'); reset(f);

 readln(f,a);

 readln(f,b);

 readln(f,c);

 close(f);

 mesaje:=0;

 while (a<>b) do

   begin

     if (a+2) mod c=0 then inc(a,1)

     else inc(a,2);

     inc(mesaje);

   end;

 assign(g, 'pr3_out.txt');

 rewrite(g);

 writeln(g,mesaje);

 close(g);

end.

Explicație:


SnakeAndEnd: inc stiu ca e increase ce aduna inc();
SnakeAndEnd: dar daca mesaje :=0; si urmeaza inc(mesaje);
SnakeAndEnd: de ce da rezultatul diferit ?
SnakeAndEnd: de ex. 2 7 3 3
SnakeAndEnd: ma gandeam ca daca mesaje :=0 iar inch(mesaje) ar trebui sa dea 1
SnakeAndEnd: imi puteti explica va rog ?
boiustef: inc(mesaje) este echivalent instructiunii
mesaje:=mesaje+1;
"inc" de la incrementare, adica crestere.
inc(a,2) echivalent a:=a+2;
boiustef: variabila mesaje creste cu 1 de cate ori se intra in bucla lui while...
boiustef: inc(a,1) echivalent a:=a+1;
inc(a,1) echivalent inc(a);
SnakeAndEnd: Va multumesc.
Alte întrebări interesante