Предмет: Информатика,
автор: deordyevsana
Задачи на одномерный массив в (Лазарус)
Массив имеет размер 10 частей. Тип массива – целый. Данные массива – числа от 0 до 10.
1. В одномерном массиве определить сумму положительных элементов. 2. Найти произведение элементов, расположенных между максимальным по модулю и минимальным по модулю элементами массива.
Ответы
Автор ответа:
1
Паскаль
program ArrayTasks;
const
SIZE = 10;
type
TIntegerArray = array[1..SIZE] of Integer;
var
arr: TIntegerArray;
i, maxIdx, minIdx, sumPositives, product: Integer;
begin
// Заполнение массива случайными числами от 0 до 10
Randomize;
for i := 1 to SIZE do
arr[i] := Random(11);
// 1. Сумма положительных элементов массива
sumPositives := 0;
for i := 1 to SIZE do
begin
if arr[i] > 0 then
sumPositives := sumPositives + arr[i];
end;
// 2. Произведение элементов между максимальным и минимальным по модулю
maxIdx := 1;
minIdx := 1;
for i := 2 to SIZE do
begin
if abs(arr[i]) > abs(arr[maxIdx]) then
maxIdx := i;
if abs(arr[i]) < abs(arr[minIdx]) then
minIdx := i;
end;
// Обработка случая, когда minIdx > maxIdx
if minIdx > maxIdx then
begin
i := minIdx;
minIdx := maxIdx;
maxIdx := i;
end;
product := 1;
for i := minIdx + 1 to maxIdx - 1 do
product := product * arr[i];
// Вывод результатов
writeln('Массив: ');
for i := 1 to SIZE do
write(arr[i], ' ');
writeln;
writeln('Сумма положительных элементов: ', sumPositives);
writeln('Произведение элементов между максимальным и минимальным по модулю: ', product);
readln;
end.
program ArrayTasks;
const
SIZE = 10;
type
TIntegerArray = array[1..SIZE] of Integer;
var
arr: TIntegerArray;
i, maxIdx, minIdx, sumPositives, product: Integer;
begin
// Заполнение массива случайными числами от 0 до 10
Randomize;
for i := 1 to SIZE do
arr[i] := Random(11);
// 1. Сумма положительных элементов массива
sumPositives := 0;
for i := 1 to SIZE do
begin
if arr[i] > 0 then
sumPositives := sumPositives + arr[i];
end;
// 2. Произведение элементов между максимальным и минимальным по модулю
maxIdx := 1;
minIdx := 1;
for i := 2 to SIZE do
begin
if abs(arr[i]) > abs(arr[maxIdx]) then
maxIdx := i;
if abs(arr[i]) < abs(arr[minIdx]) then
minIdx := i;
end;
// Обработка случая, когда minIdx > maxIdx
if minIdx > maxIdx then
begin
i := minIdx;
minIdx := maxIdx;
maxIdx := i;
end;
product := 1;
for i := minIdx + 1 to maxIdx - 1 do
product := product * arr[i];
// Вывод результатов
writeln('Массив: ');
for i := 1 to SIZE do
write(arr[i], ' ');
writeln;
writeln('Сумма положительных элементов: ', sumPositives);
writeln('Произведение элементов между максимальным и минимальным по модулю: ', product);
readln;
end.
Похожие вопросы
Предмет: Химия,
автор: vv449586
Предмет: Литература,
автор: archishe2008
Предмет: Қазақ тiлi,
автор: gimranovradmir05
Предмет: Русский язык,
автор: zayatsvolk82