Составить программу, которая для любого натурального числа печатает количество цифр в записи этого числа — Pascal(Паскаль)

program Project1;
 
var
  i, Num : Longint;
  Base : Byte;
  S, StrNum : String;
begin
  repeat
    Writeln('Задайте целое число:');
    Readln(Num);
    repeat
      Writeln('Задайте основание системы счисления 2..16:');
      Readln(Base);
      if not (Base in [2..16]) then begin
        Writeln('Основание системы счисления должно быть в диапазоне: 2..16.');
        Writeln('Повторите ввод.');
      end;
    until Base in [2..16];
 
    StrNum := '';
    i := 0;
    repeat
      i := i + 1;
      case Num mod Base of
        0  : StrNum := '0' + StrNum;
        1  : StrNum := '1' + StrNum;
        2  : StrNum := '2' + StrNum;
        3  : StrNum := '3' + StrNum;
        4  : StrNum := '4' + StrNum;
        5  : StrNum := '5' + StrNum;
        6  : StrNum := '6' + StrNum;
        7  : StrNum := '7' + StrNum;
        8  : StrNum := '8' + StrNum;
        9  : StrNum := '9' + StrNum;
        10 : StrNum := 'A' + StrNum;
        11 : StrNum := 'B' + StrNum;
        12 : StrNum := 'C' + StrNum;
        13 : StrNum := 'D' + StrNum;
        14 : StrNum := 'E' + StrNum;
        15 : StrNum := 'F' + StrNum;
      end;
      Num := Num div Base;
    until Num = 0;
 
    Writeln('Ответ.');
    Writeln('Заданное число в системе счисления по основанию ', Base);
    Writeln('имеет вид: ', StrNum);
    Writeln('и содержит ', i, ' цифр.');
 
    Writeln('Повторить - Enter, выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

Leave a Comment

+ 67 = 68