Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2022, 06:05   #1
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию Упростить задачу, система счисления.

Надо перевести из 8 системы в 10.
Код:
var o,d,k,l: integer; // 
begin 
 read(o); //
 d := 0; // 
 k := 1; //
 l := 1; //
 while l <= o do //
   begin
   d := d + k*(o div l mod 10); // 
                                // 
   l := l * 10; //
   k := k * 8 // 
   end;
 writeln(d) //
REZR вне форума Ответить с цитированием
Старый 22.04.2022, 10:17   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

А если бы пришлось преобразовывать не 8-ричный, а 16-ричный?
Тут read(o); явно не катит.
Я бы сделал так:

Код:

var c:char; s: string ; i,sl,d: integer;
begin
  read(s);
  sl := Length (s) ;
  d := 0 ;
  for i := 1 to sl do
    begin
      c := s[i] ;
      d := d + ( Ord(c) and 7 ) ;
      if i < sl then d := d * 8
    end;
   writeln (d)
end;
Заодно можно было бы включить проверку корректности ввода, чтобы не затесалось что-нибудь вне 0...7 . Впрочем, данная прога перемолола бы и неправильные символы своим Ord(c) and 7 , не вылетела бы Правда, результат был бы смешной. Можешь проверить

Последний раз редактировалось digitalis; 22.04.2022 в 12:01.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пользователь ввел число и я хочу проверить в какой системе счисления это число. И чтоб эта система счисления вывелась на экран. Как такое реализовать Shilen Python 3 27.12.2017 16:56
Система счисления student13rus Помощь студентам 1 03.10.2014 23:56
Система счисления 6am6yk Помощь студентам 2 14.05.2012 11:31
Система счисления medic357 Помощь студентам 2 29.09.2010 17:05
система счисления с 2 в 16 never smile Помощь студентам 0 19.03.2010 16:30