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

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

Форум «Всё о Паскале» _ Задачи _ Функции перевода чисел

Автор: DeIYIoN 5.06.2009 0:47

Нашел на форуме функции перевода из 10-ной СС в любую и наоборот....а как эти функции использовать в одной программе...там ведь переменная "n" разных типов...
Извиняюсь...возможно не там пишу...

Автор: volvo 5.06.2009 1:30

Цитата
там ведь переменная "n" разных типов...
Там не переменная N, а формальный параметр N разных типов. Фактически передавать в процедуру можно просто константу, можно переменную нужного типа (без разницы, как она будет называться). Так что не вижу проблемы. Можешь пояснить, как наличие N тебе мешает?

Автор: DeIYIoN 5.06.2009 1:32

Вобщем вот что получилось... (Показать/Скрыть)

Автор: volvo 5.06.2009 1:37

Введи 2 переменные вместо одной N. Например,

var
n_str: string;
n_long: longint;

, и вызывай то, что нужно для выбранного преобразования:
writeln('PEREVOD CHISEL IZ "G" SISTEMU SCHISLENIYA V 10-nuy');
writeln;
writeln('Vvedite sistemy schisleniya ');
readln(radix);
writeln('Vvedite chislo ');
readln(n_str);
writeln('polychilos ',ToDec(n_str,radix));

и
writeln('PEREVOD CHISEL IZ 10-nou SISTEMU SCHISLENIYA V "G" SISTEMY SCHISLENIYA');
writeln;
writeln('Vvedite chislo');
read(n_long);
writeln('Vvedite sistemy schisleniya');
read(radix);
writeln('polychilos ',FromDec(n_long,radix));


P.S. Зачем Ассемблер? Есть же GotoXY в модуле CRT. От меток я бы тоже посоветовал избавляться...

Автор: DeIYIoN 5.06.2009 1:41

Спасибо...ступил...просто наверно уже мозги кипят...ни чё не соображаю...
а как без меток...можешь помочь...

Автор: volvo 5.06.2009 2:21

Вот так будет выглядеть основная программа:

begin
Zast;

repeat
writeln;
writeln('1. PEREVOD CHISEL IZ 10-nou SISTEMU SCHISLENIYA VO VVEDENNYU');
writeln;
writeln('2. PEREVOD CHISEL IZ VVEDENNOY SISTEMU SCHISLENIYA V 10-nuy');
writeln;
write('viberete neobhadimoe deistvie (1/2) '); readln(t);
case t of
1:
begin
clrscr;
writeln('PEREVOD CHISEL IZ 10-nou SISTEMU SCHISLENIYA V "G" SISTEMY SCHISLENIYA');
writeln;

write('Vvedite chislo: '); readln(n_long);
write('Vvedite sistemy schisleniya: '); readln(radix);
writeln('polychilos ',FromDec(n_long,radix));
end;
2:
begin
clrscr;
writeln('PEREVOD CHISEL IZ "G" SISTEMU SCHISLENIYA V 10-nuy');
writeln;
writeln('Vvedite sistemy schisleniya ');
readln(radix);
writeln('Vvedite chislo ');
readln(n_str);
writeln('polychilos ',ToDec(n_str,radix));
end;

else begin
writeln('Takogo punkta v menu net!!!');
ReadKey;
end;
end;

write('once again? (Y/N)'); readln(a);

until not (a in ['Y', 'y']);
End.
, и никаких меток...

Автор: DeIYIoN 5.06.2009 2:41

Бальшое спасибо!!!!