Вопрос задан 30.08.2018 в 03:41. Предмет Информатика. Спрашивает Зубарева Эвелина.

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

0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Томилин Стёпа.
Ну, в общем, примерно так....

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.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для определения трех наибольших элементов матрицы в 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. Вы можете его модифицировать или адаптировать под свои нужды.

0 0

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

Последние заданные вопросы в категории Информатика

Задать вопрос