Помощь - Поиск - Пользователи - Календарь
Полная версия: Перевод из одной системы счисления в другую
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
samec
Добрый день. Помогите, пожалуйста со следующей задачкой: Составить программу для перевода натуральных чисел из системы счисления с основанием 7 в десятеричную систему счисления и обратно. Программа должна быть выполнена без использования циклов.
С переводом чисел из одной сс в другую - проблем нет, но вот как это реализовать без использования циклов??? Может кто знает?
volvo
Цитата
но вот как это реализовать без использования циклов???
Используй рекурсию вместо циклов...
samec
Думаю если циклы использовать нельзя, то подпрограммы тем более, это тема следующих работ.
Интересно, а оператор безусловного перехода GOTO, будет считаться циклом или нет?
Если GOTO за цикл не считать, то получится что то в этом роде:

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;
var
ch:string;
i,j,k,
m, {степень семёрки, при переводе из 7->10;
степень десятки, при переводе из 10->7}
s10, {получаемое в 10сс число}
s7 {получаемое в 7сс число}
:integer;
label 1,2;
begin
write('Введите число в 7-ой системе счисления: ');
readln(ch);
i:=length(ch);
{перевод из 7сс в 10сс}
m:=1;
s10:=0;
1: val(ch[i],k,j);
s10:=s10+k*m;
m:=m*7;
dec(i);
if (i>0) then goto 1;
writeln('10cc: ',s10);
{перевод из 10сс в 7сс}
m:=1;
s7:=0;
2:
s7:=s7+(s10 mod 7)*m;
s10:=s10 div 7;
m:=m*10;
if (s10>0) then goto 2;
writeln('7cc: ',s7);
readln;
end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.