Найти два одинаковых элемента матрицы и вывести их индексы - PascalABC.NET
Формулировка задачи:
Дана целочисленная матрица С(5,5), в которой имеются два одинаковых элемента. Найти их, напечатать их индексы.
Это 2-ая задача,проверите пожалуйста,если ошибки ???
Решение задачи: «Найти два одинаковых элемента матрицы и вывести их индексы»
textual
Листинг программы
Const n=5;
Var
A:array[1..n] of integer;
i,t,in1,in2:integer;
b:boolean;
Begin
For i:=1 to n do
Begin
write('A[',i,']: ');
readln(A[i]);
End;
i:=1;b:=true;
While (i<=n)and(b) do
Begin
t:=i;
While (t<=n)and(b) do
Begin
if (A[i]=A[t])and(i<>t) then
Begin
in1:=i;
in2:=t;
b:=false;
End;
inc(t);
End;
inc(i);
End;
writeln('Одинаковые числа: их индексы ',in1,'',' ',in2);
readln;
Объяснение кода листинга программы
- Объявляются переменные: — A: массив из n целых чисел; — i, t, in1, in2: целые числа для подсчёта индексов; — b: флаг для контроля выхода из цикла.
- Заполняется массив A с помощью цикла for и оператора readln.
- Устанавливается начальное значение i=1 и флаг b=true.
- Запускается цикл while, который будет выполняться, пока i не станет больше n или пока не будет найден дубль.
- Внутри цикла while запускается внутренний цикл while, который будет выполняться, пока t не станет больше n или пока не будет найден дубль.
- Внутри внутреннего цикла while проверяется, равны ли текущие элементы массива A[i] и A[t]. Если да, и при этом i не равно t, то устанавливаются значения in1 и in2, и флаг b сбрасывается.
- После внутреннего цикла while увеличивается значение t.
- После внешнего цикла while выводится сообщение с найденными дублями и их индексами.
- Запрашивается ввод с помощью readln.