Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Перевод из одной системы счисления в другую

Автор: samec 1.07.2008 18:15

Добрый день. Помогите, пожалуйста со следующей задачкой: Составить программу для перевода натуральных чисел из системы счисления с основанием 7 в десятеричную систему счисления и обратно. Программа должна быть выполнена без использования циклов.
С переводом чисел из одной сс в другую - проблем нет, но вот как это реализовать без использования циклов??? Может кто знает?

Автор: volvo 1.07.2008 18:18

Цитата
но вот как это реализовать без использования циклов???
Используй рекурсию вместо циклов...

Автор: samec 1.07.2008 18:56

Думаю если циклы использовать нельзя, то подпрограммы тем более, это тема следующих работ.
Интересно, а оператор безусловного перехода 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.