Убрать из кода операторы прерывания - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Условие такое: нужно найти индекс первой строки, которая не содержит двух одинаковых элементов. Вот код, рабочий, нужно его изменить так, чтобы не было операторов прерываний

Решение задачи: «Убрать из кода операторы прерывания»

textual
Листинг программы
const
  x = 6;
  y = 6;
 
var
  a: array[1..x, 1..y] of integer;
  i, j, k: integer;
  f: boolean;
 
begin
  writeln('Массив:');
  for i := 1 to x do 
  begin
    for j := 1 to y do
    begin
      a[i, j] := random(15);
      write(a[i, j]:4);
    end;
    writeln;
  end;
  
  i := 0;
  repeat
    inc(i);
    f := true; 
    j := 0;
    repeat
      inc(j);
      k := 0;
      repeat
        inc(k);
        if (a[i, j] = a[i, k]) and (j <> k) then f := false;
      until not f or (k = y);
      
    until not f or (j = y);
    if f then
    begin
      writeln('Индекс: ', i);
    end;
  until f or (i = x);
  if not f then 
    writeln('Такой строки нет');
  readln
end.

Объяснение кода листинга программы

  1. В начале объявляются две переменные x и y, которые равны 6.
  2. Затем объявляется переменная a типа array[1..x, 1..y] of integer. Эта переменная представляет собой массив, который будет заполняться случайными числами.
  3. Далее объявляются три переменные i, j и k, которые будут использоваться для перемещения по массиву. Начальное значение i равно 0.
  4. Затем начинается цикл repeat, который будет выполняться до тех пор, пока не будет достигнута условие завершения (i = x или j = y или k = y).
  5. Внутри цикла повторяется операция inc(i), которая увеличивает значение i на единицу. Затем проверяется условие f = true. Если оно выполняется, то это означает, что текущая и следующая ячейки массива имеют одинаковое значение, и операция inc(j) выполняется. Если условие выполняется, то также выполняется операция inc(k). Если значения текущей и следующей ячеек массива равны, а j не равно k, то переменная f устанавливается в false. Если условие не выполняется, то переменная f устанавливается в true.
  6. После выполнения операции inc(k) проверяется условие not f или (k = y). Если оно выполняется, то выводится индекс i.
  7. После этого выполняется операция not f или (j = y). Если условие не выполняется, то выводится сообщение Такой строки нет.
  8. Цикл repeat завершается, когда выполняется одно из условий i = x или j = y или k = y.
  9. В конце программы выводится сообщение Массив:, за которым следует вывод значений массива a[i, j].
  10. Завершается программа вызовом функции readln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5
Похожие ответы