Консультация № 173533
21.10.2009, 23:58
0.00 руб.
0 1 1
Даны целые числа a1,...,an.Является ли последовательность a1,...,an перестановкой чисел 1,...,n ?

Обсуждение

давно
Академик
320937
2216
24.10.2009, 10:53
общий
это ответ
Здравствуйте, Смирнов Артем Владимирович. Текст программы в приложении. Turbo Pascal 7


Приложение:
program p173533;
{ Даны целые числа a1,...,an.Является ли последовательность
a1,...,an перестановкой чисел 1,...,n ? }
var
a: integer; { вводимое число }
i: integer; { номер вводимого числа }
n: integer; { верхняя граница интервала }
s: array[1..MaxInt] of 0..1;
{ создаем заведомо большой массив для хранения признаков того,
встретилось ли число из интервала 1..n в последовательности
вводимых чисел }
perest: boolean;
begin
write('n=');
readln(n);

for i:= 1 to n do
s[i] := 0;
{ пока не ввели ни одного числа, признак 0 }
{ не инициализируем элементы массива с номером свыше n,
так как они нам не интересны }
i:= 1;
perest := true;
{ предположим, что последовательность является
перестановкой }
while (i<=n) and perest do
begin
write('a[',i,']=');
readln(a);
if (a in [1..n]) and (s[a]=0) then
begin
s[a]:=1;
i:= i+1;
end
else
{ вводимое число либо не в интервале, либо уже встречалось }
perest := false;
end;
if perest then
writeln('Является')
else
writeln('Не является');

end.
5
Спасибо
Форма ответа