Помощь - Поиск - Пользователи - Календарь
Полная версия: Написать программу с использованием подпрограмм > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
Saha
Задание: Написать программу с использованием подпрограмм. В подпрограммах не должно присутствовать ввода исходных данных (например, с помощью Readln) и вывода результатов на экран. Ввод исходных данных и ввод результатов должен производить в "теле" основной программы!
Написать программу, которая находит из всех четырехзначных чисел, такие числа, в записи которых все цифры различны.
Пожалуйста, помогите, очень прошу!!
(Только мне надо не в Турбо-Паскале, а в обычном)
Спасибо заранее))
Вот что у меня есть:
program Numbers;
var
i: integer;
function DifferentFigures(x: integer):boolean;
var
s: string;
i,err: integer;
d:array[0..9] of boolean;

begin
str(x,s);
for i:=0 to 9 do
d[i]:=false;
for i:=1 to 4 do
begin
val(s[i],x,err);
if d[x] then begin
DifferentFigures:=false;
exit;
end;
d[x]:=true;
end;
end;

begin
for i:=1000 to 9999 do
if DifferentFigures(i) then write(i:8);
writeln;
writeln('Press Enter...');
readln;
end.
InFuz
Что значит в обычном?
Vahappaday
наверное, имеется в виду ABC, его часто как учебный используют (сам просто не паскалянт, но в параллельных группах частенько видел)
Saha
Да, это АВС
Saha
Пожалуйста, помогите!!!(((
Vahappaday
ых... не охота мне паскаль учить...

могу алгоритмом помочь:
сравниваем пары разрядов
0 - 1
0 - 2
0 - 3
1 - 2
1 - 3
2 - 3
Если хоть одно сравнение показало, что символы равны, возвращаем false. Если ни одна пара символов не совпала, возвращаем true.

Как сравнивать i и j разряды числа d (считая справа):
if ((d div 10^i) mod 10)=((d div 10^j) mod 10)
^ - имеется в виду возведение в степень, не знаю, работает ли оно в паскале.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.