Дан массив N чисел. Найти элемент массива X (последнее число, большее среднего арифметического). Найти все четные элементы массива, следующие после X.
Дана квадратная матрица размером N x N. Найти сумму всех кратных 7 элементов матрицы, находящихся ниже главной диагонали.
Домашние задания: Информатика
Информатика, Lazarus простое приложение
Первая задачка.
PascalABC.
const N = 101;
var Mas : array[1..N] of Integer;
Ind, X, Sum : integer; SA : Real;
begin
WriteLn (' Исходный массив: ');
for var i := 1 to N do
begin
Mas[i] := 0 + Random(n+1); Write (Mas[i]:4); if (i mod 20 = 0) then WriteLn;
end; WriteLn;
Sum := 0;
for var i := 1 to N do
Sum := Sum + Mas[i];
SA := Sum / N;
WriteLn (' Среднее арифметическое = ', SA:4:2);
for var i := N downto 1 do
begin
if Mas[i] > SA then
begin
X := Mas[i]; Ind := i; break;
end;
end;
WriteLn (' Элемент X = ', X, ' Индекс =', Ind);
Write(' За последним максимумом ', X , ' на четных местах: ');
for var i := ind to (N) do
begin
if (i mod 2 = 0) then Write(Mas[i]:4);
end;
end.
PascalABC.
const N = 101;
var Mas : array[1..N] of Integer;
Ind, X, Sum : integer; SA : Real;
begin
WriteLn (' Исходный массив: ');
for var i := 1 to N do
begin
Mas[i] := 0 + Random(n+1); Write (Mas[i]:4); if (i mod 20 = 0) then WriteLn;
end; WriteLn;
Sum := 0;
for var i := 1 to N do
Sum := Sum + Mas[i];
SA := Sum / N;
WriteLn (' Среднее арифметическое = ', SA:4:2);
for var i := N downto 1 do
begin
if Mas[i] > SA then
begin
X := Mas[i]; Ind := i; break;
end;
end;
WriteLn (' Элемент X = ', X, ' Индекс =', Ind);
Write(' За последним максимумом ', X , ' на четных местах: ');
for var i := ind to (N) do
begin
if (i mod 2 = 0) then Write(Mas[i]:4);
end;
end.

ЖПТишники загадили "ответы"... хоть бы перечитывали за своим чатом... если свои мозги есть...
Начнём с того, что тут лазавр не требуется, от него нужен только компилятор фри паскаля.
Далее хотелось бы знать, где именно дан массив.
Среднее арифметическое найдём, просуммировав элементы и разделив результат на их количество. Потом, просматривая массив, найдём то самое х и все последующие чётные элементы.
Элементы ниже диагонали это те, у которых в описании M[ i , j] j больше i
Далее хотелось бы знать, где именно дан массив.
Среднее арифметическое найдём, просуммировав элементы и разделив результат на их количество. Потом, просматривая массив, найдём то самое х и все последующие чётные элементы.
Элементы ниже диагонали это те, у которых в описании M[ i , j] j больше i
пример кода на Lazarus для решения задачи по поиску элементов массива и матрицы:
pascal
Copy code
program ArrayAndMatrix;
const
N = 10; // размер массива и матрицы
var
arr: array[1..N] of Integer; // массив из N элементов
matrix: array[1..N, 1..N] of Integer; // матрица размером N x N
i, j, x, sum: Integer; // переменные для циклов, поиска и подсчета
avg: Real; // переменная для среднего арифметического
begin
// заполнение массива случайными числами от 1 до 100
for i := 1 to N do
arr[i] := Random(100) + 1;
// поиск среднего арифметического
avg := 0;
for i := 1 to N do
avg := avg + arr[i];
avg := avg / N;
// поиск элемента X
x := 0;
for i := N downto 1 do
begin
if arr[i] > avg then
begin
x := arr[i];
break; // нашли последний элемент, больший среднего арифметического
end;
end;
// поиск четных элементов после X
WriteLn('Element X = ', x);
Write('Even elements after X: ');
for i := 1 to N do
begin
if (arr[i] > x) and (arr[i] mod 2 = 0) then
Write(arr[i], ' ');
end;
// заполнение матрицы случайными числами от 1 до 100
for i := 1 to N do
for j := 1 to N do
matrix[i, j] := Random(100) + 1;
// подсчет суммы кратных 7 элементов ниже главной диагонали
sum := 0;
for i := 2 to N do // начинаем со второй строки
for j := 1 to i - 1 do // считаем только элементы ниже диагонали
if matrix[i, j] mod 7 = 0 then
sum := sum + matrix[i, j];
WriteLn;
WriteLn('Sum of elements divisible by 7 below main diagonal: ', sum);
end.
Программа генерирует случайный массив и матрицу, находит элемент X и четные элементы после него, а также сумму кратных 7 элементов матрицы, находящихся ниже главной диагонали.
pascal
Copy code
program ArrayAndMatrix;
const
N = 10; // размер массива и матрицы
var
arr: array[1..N] of Integer; // массив из N элементов
matrix: array[1..N, 1..N] of Integer; // матрица размером N x N
i, j, x, sum: Integer; // переменные для циклов, поиска и подсчета
avg: Real; // переменная для среднего арифметического
begin
// заполнение массива случайными числами от 1 до 100
for i := 1 to N do
arr[i] := Random(100) + 1;
// поиск среднего арифметического
avg := 0;
for i := 1 to N do
avg := avg + arr[i];
avg := avg / N;
// поиск элемента X
x := 0;
for i := N downto 1 do
begin
if arr[i] > avg then
begin
x := arr[i];
break; // нашли последний элемент, больший среднего арифметического
end;
end;
// поиск четных элементов после X
WriteLn('Element X = ', x);
Write('Even elements after X: ');
for i := 1 to N do
begin
if (arr[i] > x) and (arr[i] mod 2 = 0) then
Write(arr[i], ' ');
end;
// заполнение матрицы случайными числами от 1 до 100
for i := 1 to N do
for j := 1 to N do
matrix[i, j] := Random(100) + 1;
// подсчет суммы кратных 7 элементов ниже главной диагонали
sum := 0;
for i := 2 to N do // начинаем со второй строки
for j := 1 to i - 1 do // считаем только элементы ниже диагонали
if matrix[i, j] mod 7 = 0 then
sum := sum + matrix[i, j];
WriteLn;
WriteLn('Sum of elements divisible by 7 below main diagonal: ', sum);
end.
Программа генерирует случайный массив и матрицу, находит элемент X и четные элементы после него, а также сумму кратных 7 элементов матрицы, находящихся ниже главной диагонали.
Для решения данной задачи в Lazarus можно написать следующий код:
// Объявление переменных
var
n, i, j, x, sum: integer;
arr: array of integer;
// Ввод размерности массива
n := StrToInt(InputBox('Введите размерность массива', 'n = ', '10'));
// Инициализация массива случайными числами от 1 до 100
SetLength(arr, n);
for i := 0 to n-1 do
arr[i] := Random(100) + 1;
// Нахождение среднего арифметического
sum := 0;
for i := 0 to n-1 do
sum := sum + arr[i];
sum := sum div n;
// Нахождение элемента X
x := -1;
for i := n-1 downto 0 do
begin
if arr[i] > sum then
begin
x := arr[i];
Break;
end;
end;
// Вывод результата
if x <> -1 then
begin
ShowMessage('Элемент X: ' + IntToStr(x));
ShowMessage('Четные элементы после X:');
for i := 0 to n-1 do
begin
if (arr[i] mod 2 = 0) and (arr[i] > x) then
ShowMessage(IntToStr(arr[i]));
end;
end
else
ShowMessage('В массиве нет элементов, больших среднего арифметического.');
// Ввод размерности матрицы
n := StrToInt(InputBox('Введите размерность матрицы', 'n = ', '5'));
// Инициализация матрицы случайными числами от 1 до 100
var
matrix: array of array of integer;
SetLength(matrix, n, n);
for i := 0 to n-1 do
for j := 0 to n-1 do
matrix[i][j] := Random(100) + 1;
// Нахождение суммы кратных 7 элементов ниже главной диагонали
sum := 0;
for i := 1 to n-1 do
for j := 0 to i-1 do
if matrix[i][j] mod 7 = 0 then
sum := sum + matrix[i][j];
// Вывод результата
if sum <> 0 then
ShowMessage('Сумма кратных 7 элементов ниже главной диагонали: ' + IntToStr(sum))
else
ShowMessage('В матрице нет кратных 7 элементов ниже главной диагонали.');
// Объявление переменных
var
n, i, j, x, sum: integer;
arr: array of integer;
// Ввод размерности массива
n := StrToInt(InputBox('Введите размерность массива', 'n = ', '10'));
// Инициализация массива случайными числами от 1 до 100
SetLength(arr, n);
for i := 0 to n-1 do
arr[i] := Random(100) + 1;
// Нахождение среднего арифметического
sum := 0;
for i := 0 to n-1 do
sum := sum + arr[i];
sum := sum div n;
// Нахождение элемента X
x := -1;
for i := n-1 downto 0 do
begin
if arr[i] > sum then
begin
x := arr[i];
Break;
end;
end;
// Вывод результата
if x <> -1 then
begin
ShowMessage('Элемент X: ' + IntToStr(x));
ShowMessage('Четные элементы после X:');
for i := 0 to n-1 do
begin
if (arr[i] mod 2 = 0) and (arr[i] > x) then
ShowMessage(IntToStr(arr[i]));
end;
end
else
ShowMessage('В массиве нет элементов, больших среднего арифметического.');
// Ввод размерности матрицы
n := StrToInt(InputBox('Введите размерность матрицы', 'n = ', '5'));
// Инициализация матрицы случайными числами от 1 до 100
var
matrix: array of array of integer;
SetLength(matrix, n, n);
for i := 0 to n-1 do
for j := 0 to n-1 do
matrix[i][j] := Random(100) + 1;
// Нахождение суммы кратных 7 элементов ниже главной диагонали
sum := 0;
for i := 1 to n-1 do
for j := 0 to i-1 do
if matrix[i][j] mod 7 = 0 then
sum := sum + matrix[i][j];
// Вывод результата
if sum <> 0 then
ShowMessage('Сумма кратных 7 элементов ниже главной диагонали: ' + IntToStr(sum))
else
ShowMessage('В матрице нет кратных 7 элементов ниже главной диагонали.');
Сергей Марченко
Ты код проверял???