Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2014, 14:59   #1
Игорь Обухов
Пользователь
 
Регистрация: 16.06.2012
Сообщений: 38
По умолчанию Задан целочисленный вектор X размерностью n

Проверить, образуют ли его элементы перестановку начального отрезка последовательности натуральных чисел. Рекомендации: в перестановку натуральных чисел от 1 до n все значения из этого диапазона входят по одному разу..Заранее спасибо
Игорь Обухов вне форума Ответить с цитированием
Старый 06.05.2014, 15:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Так задачка, по сути, очень простая, и может быть решена кучей способов (разной степени эффективности кода и простоты реализации).

например, так:
Код:
k:=1;
for i:=1 to N do begin
   k:=1;
   while (k<=N) and (X[k]<>i) do Inc(k);
   if K>N then Break; {всё. приехали, значение i в векторе X не найдено, 
                                 значит, это не перестановка!}
end;
if K>N 
  then WriteLn('NO! Элементы вектора X не образуют перестановку!')
  else WriteLn('Yes! Элементы вектора X не образуют перестановку чисел от 1 до ',N);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2014, 15:41   #3
Игорь Обухов
Пользователь
 
Регистрация: 16.06.2012
Сообщений: 38
По умолчанию

а начало программы можете написать?
Игорь Обухов вне форума Ответить с цитированием
Старый 06.05.2014, 16:04   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

что, всё настолько плохо??!! ;(

Код:
const N = 10;
var X : array[1..N] of integer;
 i, k : integer;
begin
  WriteLn('Введите ',N,' элементов вектора X :');
  for i:=1 to N do Read(X[i]);
  Readln;
....
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2014, 18:17   #5
Игорь Обухов
Пользователь
 
Регистрация: 16.06.2012
Сообщений: 38
По умолчанию

спасибо большое
Игорь Обухов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры и функции : Дан вектор A(n). Построить вектор B(n), i-ый элемент которого равен среднему арифметическому (Паскаль) vladicvladic123 Помощь студентам 2 04.12.2013 14:56
Дан вектор А(n). Получить новый вектор путем умножения элементов стоящих за максимальным элементом на минимальный элемент вектора pavel215 Паскаль, Turbo Pascal, PascalABC.NET 1 02.04.2013 14:30
Заданы векторы a,b,c,d размерностью n Получить новый вектор, элементами которого являются длины заданых векторов,расположенных в п Вованчик Паскаль, Turbo Pascal, PascalABC.NET 0 07.03.2012 16:49
Задан целочисленный одномерный массив A из N элементов. Найти номер последне Vladimir Ryabov Фриланс 5 01.11.2011 13:21
Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W leha_demi Помощь студентам 2 24.09.2011 18:12