| AlexMercer a întrebat:


Am facut un program in pascal care imi da inversul unui nr.
Toate bune si frumoase, la 0 imi da eroare, asa cum am programat, la orice nr pana in 4 cifre imi da inversul, DAR daca introduc un nr mai mare de 4 cifre imi iese subit din program, si habar n-am de ce se intampla asta. Ma puteti ajuta?
Mai jos este codul
Uses crt;
Var x, s: integer;
Begin
s:=0;
Writeln('Introdu un numar si apasa Enter');
Write('Numarul este = '); Read(x);
if (x=0) then
Begin
write ('Eroare, numarul nu poate fi 0');
Readkey;
End;
if (x0) then
Begin
repeat s:=s*10+x mod 10; x:=x div 10;
until x=0;
Write('Inversul numarului este: ', s);
End;
Readkey;
End.

1 răspuns:
| cristimihailov a răspuns:

Salut,

Desi nu mai imi amintesc prea corect pascalul, un limbaj intr-adevar mort si la fel de util precum limba latina...

Nu e mai simplu sa scrii s intr-o variabila de tip string si sa il citesti in sens invers?

Nu de alta, dar sa nu mai ai erorile pe care le bagi tu cu x/10 cand x este integer. Ca dai in probleme de rotunjire.