Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

перевод в 10 СС

.pas
Скачиваний:
10
Добавлен:
16.01.2016
Размер:
895 б
Скачать
var
  s: string;
  i, b, a: integer;
  d, k: double;
  f, e: boolean;
  c: char;

begin
  Write('Ввведите основание системы: ');
  ReadLn(b);
  e := b <= 1;
  if e then
    WriteLn('Ошибка: основание системы должно быть не менее 2')
  else begin
    Write('Введите число в системе с основанием ', b, ': ');
    ReadLn(s);
    f := false;
    k := 1;
    for i := 1 to Length(s) do 
    begin
      if f then k := k / b;
      c := UpCase(s[i]);
      a := -1;
      case c of
        '0'..'9': a := Ord(c) - 48;
        'A'..'Z': a := Ord(c) - 55;
        '.', ',': if f then e := true else f := true;
      else f := true
      end;
      e := e or (a >= b);
      if e then break;
      if a >= 0 then d := d * b + a
    end;
    if e then
      WriteLn('Ошибка в записи числа')
    else
      WriteLn('Значение в десятичной системе: ', d * k)
  end;
end.