Есть ли в очереди хотя бы один элемент, который равен следующему за ним - Pascal ABC
Формулировка задачи:
Описать процедуру, которая определяет, есть ли в очереди хотя бы один элемент, который равен следующему за ним элементу.
С модулем, надо завтра сдавать, сам не могу разобраться, наработок нет
[cut] - без таких ответов пожалуйста
Решение задачи: «Есть ли в очереди хотя бы один элемент, который равен следующему за ним»
textual
Листинг программы
Program PABCP; var A : array [1..10] of integer; F : text; i : integer; function nextInLine() : boolean; // будем возвращать true / false var i : integer; // создадим переменную для цикла-счётчика for begin for i := 1 to 9 do begin // будем перебирать весь массив кроме последнего элемента, далее объясню почему... if (a[i] = A[i + 1]) then begin // если текущий элемент равен следующему элементу (вот для этого 50 - 1, иначе выйдем за рамки массива), тогда.... nextInLine := true; // возвращаем ответ true (по умолчанию ответ был бы равен false, поэтому мы ни где в программе это не указываем) break; // досрочно завершаем цикл, ибо смысл искать дальше? end; end; end; begin assign(F, 'input.txt'); reset(F); for i := 1 to 10 do begin readln(F, A[i]); end; close(F); if (nextInLine() = true) then begin writeln('Есть такой элемент'); else begin writeln('Таких элементов нет'); end; end.
Объяснение кода листинга программы
- Создается переменная
A
типаarray [1..10] of integer
. Это массив из 10 целых чисел. - Создается переменная
F
типаtext
. Это строковый указатель, который будет использоваться для чтения и записи в файл. - Создается переменная
i
типаinteger
. Это счетчик для цикла. - Определяется функция
nextInLine
типаboolean
. Эта функция будет проверять, есть ли в массиве хотя бы один элемент, который равен следующему за ним. - Внутри функции
nextInLine
определяется переменнаяi
типаinteger
. Она будет использоваться для цикла-счетчика. - Запускается цикл
for i := 1 to 9 do begin
, гдеi
- это счетчик. Цикл будет выполняться 9 раз, начиная с 1 и заканчивая 9 (исключая 9). - Внутри цикла проверяется условие
if (a[i] = A[i + 1]) then begin
. Если текущий элемент массива равен следующему элементу (это проверяется путем сравненияa[i]
иA[i + 1]
), то функцияnextInLine
возвращаетtrue
. - Если условие из пункта 7 не выполняется, то цикл завершается досрочно (
break;
), так как нет смысла продолжать поиск. - После завершения цикла
for
вызывается функцияnextInLine
. Если она вернулаtrue
, то выводится сообщениеЕсть такой элемент
. В противном случае выводится сообщениеТаких элементов нет
. - Закрывается файл
F
. - Выполняется проверка
if (nextInLine() = true)
. Если функцияnextInLine
вернулаtrue
, то выводится сообщениеЕсть такой элемент
. В противном случае выводится сообщениеТаких элементов нет
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д