
Free Pascal. Определите три наибольших элемента матрицы.


Ответы на вопрос

program maximus;
const
max_count = 3;
var
a : array of array of byte;
i, j, k, l, m, n, t : byte;
max : array[1..max_count] of byte;
ch : char;
begin
write('Введите количество строк: ');
readln(n);
write('Введите количество столбцов: ');
readln(m);
setLength(a, n);
for i:=0 to n-1 do setLength(a[i], m);
write('Заполнить матрицу случайными числами (y/n): ');
readln(ch);
if ((ch='y') or (ch='Y')) then begin
randomize;
for i:=0 to n-1 do begin
for j:=0 to m-1 do begin
a[i][j] := random(251);
write(a[i][j]: 4, ' ');
end;
writeln;
end;
end
else begin
for i:=0 to n-1 do begin
writeln('Заполните строку ', i+1);
for j:=0 to m-1 do
readln(a[i][j]);
end;
for i:=0 to n-1 do begin
for j:=0 to m-1 do
write(a[i][j]:4, ' ');
writeln;
end;
end;
t :=255;
for k:=1 to max_count do begin
if k>1 then t:=max[k-1];
l := a[0][0];
for i:=0 to n-1 do
for j:=0 to m-1 do
if ((a[i][j] > l) and (a[i][j] < t)) then l:=a[i][j];
max[k] := l;
end;
writeln;
write(max_count, ' максимальных элемента: ');
for i:=1 to max_count do write(max[i], ' ');
writeln;
end.



Для определения трех наибольших элементов матрицы в Free Pascal можно использовать следующий алгоритм:
1. Создайте двумерный массив (матрицу) и заполните его данными.
Пример:
```pascal const N = 3; // количество строк M = 3; // количество столбцов
var matrix: array[1..N, 1..M] of Integer; // объявление матрицы i, j: Integer; // переменные для циклов ```
2. Заполните матрицу случайными значениями или считайте их с помощью ввода с клавиатуры.
Пример:
```pascal // Заполнение матрицы случайными значениями от 1 до 100 Randomize; // инициализация генератора случайных чисел for i := 1 to N do for j := 1 to M do matrix[i, j] := Random(100) + 1; ```
3. Создайте переменные для хранения трех наибольших элементов и инициализируйте их минимальными значениями.
Пример:
```pascal var max1, max2, max3: Integer; maxVal: Integer; // переменная для временного хранения максимального значения begin max1 := Low(Integer); // инициализация наименьшим возможным значением Integer max2 := Low(Integer); max3 := Low(Integer); ```
4. Пройдите по всем элементам матрицы и обновите значения трех наибольших элементов, если найден более большой элемент.
Пример:
```pascal for i := 1 to N do for j := 1 to M do begin if matrix[i, j] > max1 then begin max3 := max2; max2 := max1; max1 := matrix[i, j]; end else if matrix[i, j] > max2 then begin max3 := max2; max2 := matrix[i, j]; end else if matrix[i, j] > max3 then max3 := matrix[i, j]; end; ```
5. Выведите полученные значения трех наибольших элементов.
Пример:
```pascal writeln('Три наибольших элемента матрицы: ', max1, ', ', max2, ', ', max3); ```
Это основной алгоритм для определения трех наибольших элементов матрицы в Free Pascal. Вы можете его модифицировать или адаптировать под свои нужды.


Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili