Есть ли в очереди хотя бы один элемент, который равен следующему за ним - 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, то выводится сообщениеЕсть такой элемент. В противном случае выводится сообщениеТаких элементов нет.