Составить процедуру вычисления значения целого числа по заданной строке символо?

Составить процедуру вычисления значения целого числа по заданной строке символо?? являющейся записью этого числа в десятичной системи счисления(паскаль)
Гость
Ответ(ы) на вопрос:
Гость
Несколько вариантов: program StrToInt; uses crt; var st : string; num : integer; function val1 (s : string) : integer; var i, res : integer; s1 : string; begin s1 := ''; res := 0; for i:=1 to length(s) do case s[i] of '0' : s1 := s1+'0'; '1' : s1 := s1+'1'; '2' : s1 := s1+'2'; '3' : s1 := s1+'3'; '4' : s1 := s1+'4'; '5' : s1 := s1+'5'; '6' : s1 := s1+'6'; '7' : s1 := s1+'7'; '8' : s1 := s1+'8'; '9' : s1 := s1+'9'; end; val (s1, res); if s[1]='-' then res := res * -1; val1 := res; end; function isnumber (ch : char) : boolean; var res : boolean; begin res := false; case ch of '0' : res := true; '1' : res := true; '2' : res := true; '3' : res := true; '4' : res := true; '5' : res := true; '6' : res := true; '7' : res := true; '8' : res := true; '9' : res := true; end; isnumber := res; end; function val2 (s : string) : integer; var i, res : integer; begin res := 0; for i:=1 to length(s) do begin if isnumber(s[i]) then res := res*10 + byte(s[i])-byte('0'); end; val2 := res; end; BEGIN write('Input a string: '); readln(st); val(st, num); writeln('Standart function: ', num); num := val1(st); writeln('Function VAL1: ', num); num := val2(st); writeln('Function VAL2: ', num); END.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы