profile
Опубликовано 5 лет назад по предмету Информатика от alsaher1503

составить процедуру вычисления значения целого числа по заданной строке символов являющейся записью этого числа в десятичной системи счисления(паскаль)

  1. Ответ
    Ответ дан averutin
    несколько вариантов:
    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.

Самые новые вопросы