Составить блок-схему и программу для нахождения суммы положительных
элементов одномерного массива. Размер задать с клавиатуры. Протестировать при двух наборах исходных данных. Писать на языке Паскаль.
Ответы
Ответ:
Программа:
program SumOfPositiveElements;
var
arr: array of integer;
size, i, sum: integer;
begin
write('Enter the size of the array: ');
readln(size);
// Initialize the array
SetLength(arr, size);
// Input array elements
writeln('Enter the array elements:');
for i := 0 to size-1 do
begin
readln(arr[i]);
end;
// Calculate the sum of positive elements
sum := 0;
for i := 0 to size-1 do
begin
if arr[i] > 0 then
begin
sum := sum + arr[i];
end;
end;
writeln('The sum of positive elements in the array is: ', sum);
readln;
end.
Тест 1.
Enter the size of the array: 5
Enter the array elements:
-2
3
-5
8
0
The sum of positive elements in the array is: 11
Тест 2.
Enter the size of the array: 7
Enter the array elements:
1
-6
2
-8
5
-3
4
The sum of positive elements in the array is: 12
В первом тесте введен массив {-2, 3, -5, 8, 0}, сумма положительных элементов которого равна 3+8=11.
Во втором тесте введен массив {1, -6, 2, -8, 5, -3, 4}, сумма положительных элементов которого равна 1+2+5+4=12.
Таким образом, программа корректно находит сумму положительных элементов введенного пользователем массива.
program sum_of_positive_elements;
var
size, i: integer;
sum, num: real;
arr: array of real;
begin
{ ввод размера массива }
write('Введите размер массива: ');
readln(size);
{ выделение памяти под массив }
SetLength(arr, size);
{ ввод элементов массива }
for i := 0 to size-1 do
begin
write('Введите элемент массива номер ', i+1, ': ');
readln(num);
arr[i] := num;
end;
{ инициализация переменной суммы }
sum := 0;
{ цикл для обхода массива }
for i := 0 to size-1 do
begin
{ условие на проверку знака числа }
if arr[i] > 0 then
begin
{ добавление элемента в сумму }
sum := sum + arr[i];
end;
end;
{ вывод суммы положительных элементов }
writeln('Сумма положительных элементов массива: ', sum);
{ освобождение памяти }
SetLength(arr, 0);
end.