Помощь - Поиск - Пользователи - Календарь
Полная версия: Функции перевода чисел
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DeIYIoN
Нашел на форуме функции перевода из 10-ной СС в любую и наоборот....а как эти функции использовать в одной программе...там ведь переменная "n" разных типов...
Извиняюсь...возможно не там пишу...
volvo
Цитата
там ведь переменная "n" разных типов...
Там не переменная N, а формальный параметр N разных типов. Фактически передавать в процедуру можно просто константу, можно переменную нужного типа (без разницы, как она будет называться). Так что не вижу проблемы. Можешь пояснить, как наличие N тебе мешает?
DeIYIoN
Вобщем вот что получилось... (Показать/Скрыть)
volvo
Введи 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
Спасибо...ступил...просто наверно уже мозги кипят...ни чё не соображаю...
а как без меток...можешь помочь...
volvo
Вот так будет выглядеть основная программа:
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
Бальшое спасибо!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.