Показать сообщение отдельно
Старый 06.06.2010, 10:57   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Tusha-kutusha Посмотреть сообщение
2.Смысл данной задачи ( и не только этой) мне самому непонятен
Значит так. Всё, чем могу помочь - это выдать программу решения задачи, как я ее (задачу) понимаю. А понимаю я ее так: Ввести N чисел. Проверить, является ли введенный массив перестановкой членов натурального ряда от 1 до N. Если это не то, ну что же - выясняйте, будем разбираться.
Задачу я решал так.
1. Вводится массив.
2. Проверяется, нет ли среди членов массива чисел, меньших 1 или бОльших N. Если есть - ответ отрицательный.
3. Проверяется, нет ли среди членов массива равных чисел. Если есть - ответ отрицательный.
4. При невыполнении условий п. 2 и 3 ответ положительный.
Код:
CONST
 N=10;
VAR
 A:ARRAY[1..N] of BYTE;
 i,j:INTEGER;
 b:Boolean;
BEGIN
 For i:=1 to N do
  begin
   Write('A[',i:2,']= ');
   ReadLn(A[i]);
  end;
 WriteLn;

 b:=true;
 For i:=1 to N do
  If (A[i]<=0) or (A[i]>N) then b:=false;

 If b then
  begin
   For i:=1 to N-1 do
    For j:=i+1 to N do
     If A[i]=A[j] then b:=false;
  end;

 If b then
  WriteLn('The array is a permutation')
 else
  WriteLn('The array is not a permutation');

 ReadLn;
END.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070