Напишем программу, которая вычисляет сумму положительных элементов в массиве.
Вычисление суммы положительных элементов массива.
program massiv6; uses crt; const N=10; type x=array [1..N] of integer; var a:x; i:integer; s:integer; begin clrscr; randomize; for i:=1 to N do begin a[i]:= -100+random(201); write (A[i]:5) end; writeln; s:=0; for i:=1 to N do if a[i]>0 then begin s:=s+a[i] end; writeln (‘Сумма положительных элементов = ’,s:5); readln end.
В строке №7 переменная «S» – для хранения суммы.
В строке №13 генерируем 10 различных чисел в диапазоне от – 100 до + 100.
В строке №14 выводим эти числа на экран.
В строке №17 обнуляем переменную «S»
В строке 19 задаем условие: если значение элемента массива (т.е. если сгенерированное число) больше 0, тогда в строке №21 прибавляем к сумме это число. Таким образом, после выполнения цикла, все положительные числа должны прибавиться к общей сумме.
Предыдущая статья : Нахождение максимального элемента массива.
Оглавление : Уроки Паскаль.
Следующая статья : Подсчет количества четных элементов в массиве.
Информационный блок
Рекламный блок
Использование циклов. Сумма положительных элементов массива
Σ Сумма элементов массива. 🔁 Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET
Σ Сумма случайных чисел. 🔁 Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
🔀 Обмен двух чисел в массиве. Тема «Циклы и массивы». Два варианта решения задачи.
Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).
Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET
Цикл for. Найти сумму положительных элементов вещественного массива
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
Program Summa10;
Var
i : Integer;
Summa : Real;
A : array [1..10] of Real;
begin
writeln(‘Введите 10 вещественных чисел ‘);
for i := 1 to 10 do readln(A[i]);
Summa := 0;
for i := 1 to 10 do
if (A[i] > 0) then Summa := Summa + A[i];
writeln(‘Сумма = ‘, Summa);
end.
Цикл for. Найти сумму положительных элементов массива
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
Вариант для PascalABC.NET
begin
var A : array [1..10] of Real;
var Summa := 0.0;
write(‘Введите 10 вещественных чисел ‘);
for var i := 1 to 10 do begin // Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
A[i] := ReadlnReal;
if (A[i] > 0) then Summa := Summa + A[i];
end;
writeln(‘Сумма = ‘, Summa);
end.
Цикл while. Найти сумму положительных элементов массива
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
Program CalcSum;
Var
i : Integer;
Summa : Real;
A : array [1..10] of Real;
begin
writeln(‘Введите 10 вещественных чисел ‘);
i := 1;
while i <= 10 do begin
readln(A[i]);
i := i + 1;
end;
Summa := 0;
i := 1;
while i <= 10 do begin
if (A[i] > 0) then Summa := Summa + A[i];
i := i + 1;
end;
writeln(‘Сумма = ‘, Summa);
end.
Цикл while. Вычислить сумму положительных элементов массива
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
var
i: Integer;
Summa: Real;
A: array [1..10] of Real;
begin
write(‘Введите 10 вещественных чисел ‘);
i := 1;
Summa := 0;
while i <= 10 do
begin
readln(A[i]);
if (A[i] > 0) then Summa := Summa + A[i];
i := i + 1;
end;
writeln(‘Сумма = ‘, Summa);
end.
Цикл while. Сумма положительных элементов массива. Вариант для PascalABC.NET
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
begin
Var
A : array of Real := New real[10]; // Динамический массив. Индексы в массиве начинаются с 0
Var
i : Integer := 1;
Var
Summa : Real := 0;
writeln(‘Введите 10 вещественных чисел ‘);
while i <= 10 do begin
A[i-1] := ReadReal;
if (A[i-1] > 0) then Summa += A[i-1];
i += 1;
end;
Println(‘Сумма = ‘, Summa);
end.
Цикл repeat. Сумма положительных элементов массива
Задание:
Ввести с клавиатуры массив из 10 вещественных чисел.
Найти сумму положительных элементов массива.
Вариант для PascalABC.NET
Var
i : Integer = 1;
Summa : Real = 0;
A : array [1..10] of Real;
begin
writeln(‘Введите 10 вещественных чисел ‘);
repeat
A[i] := ReadReal(‘Введите число ‘);
if (A[i] > 0) then Summa += A[i];
i += 1;
until i > 10;
Println(‘Сумма = ‘, Summa);
end.
Σ Сумма элементов массива. 🔁 Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET
Σ Сумма случайных чисел. 🔁 Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET
🔀 Обмен двух чисел в массиве. Тема «Циклы и массивы». Два варианта решения задачи.
Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).
Рекламный блок
Информационный блок
Светило науки — 14 ответов — 219 раз оказано помощи
program z1; (Начало программы)
var n, s, i, c:integer; (Раздел описания переменных, n(кол-во чисел), s(сумма чисел), i(счетчик), с(число, введенное с клавиатуры))
begin (тело программы)
writeln (‘Кол-во чисел?’); (подсказка для пользавателя)
readln (n); (считывание переменной)
s:=0; (обнуляем переменную)
For i:= 1 to n do begin (цикл будет повторяться от 1 до N; т.к в цикле будет несколько действий открываем операторные скобки (beginend), начало цикла)
writeln (‘Введите число’); (подсказка для пользавателя)
readln(c); (считывание переменной)
If c>0 then s:=s+c; (если с>0 тогда к сумме мы прибавляем число)
end; (конец цикла)
writeln (‘Сумма=’,s); (подсказка для пользавателя и ответ)
readln(s); (считывание переменной)
readln; (считывание)
end.(конец программы)
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses System.SysUtils;
var n, a, i, sum:integer;
begin
sum := 0;
write(‘Enter n: ‘);
readln(n);
for i := 1 to n do
begin
write(‘Enter ‘,i , ‘ number: ‘);
readln(a);
if a > 0 then
sum := sum + a;
end;
writeln(‘Sum of positive numbers: ‘, sum);
readln; // Чтобы консоль не закрывалась
end.
Ответы на вопрос
program summ_pol_chicel;var a: array [-100..100] of integer;i, b: integer;beginFor i:=1 to 10 do Readln (a[i]);b := 0;For i:=1 to 10 dobegin if a[i] > 0 then b := b+ a[i];end;writeln(b);end.
А можно узнать, зачем массив из 10 числе объявлять с индексами от -100 до 100?
Это значения, который могут принимать числа из массива
Или это не так работает:)? Я пока ток тренюсь:)
Ну да, мой косяк, действительно. Но вроде на работоспособности проги это никак не сказывается, поэтому пусть будет:)
Новые вопросы