Как найти сумму случайных чисел в паскале

🔁 Использование циклов. Сумма положительных элементов массива. Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET

Σ Сумма элементов массива. 🔁 Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET

🔀 Обмен двух чисел в массиве. Тема “Циклы и массивы”. Два варианта решения задачи.

Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).


Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта – классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET

Цикл for. Найти сумму сумму элементов массива

Задание:
Заполнить массив из 10 целых чисел случайными значениями в диапазоне от 0 до 9.
Найти сумму элементов массива.

Program RandomArray;
Var
i, Summa : Integer;
A : array [1..10] of Integer;
begin
write(‘Сгенерировано 10 целых чисел ‘);
Summa := 0;
for i := 1 to 10 do begin
A[i] := Random(10); { Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу. }
write(A[i]: 4); { Вывести значение текущего элемента массива без перехода на новую строку. Значения выводятся в форматированном варианте. }
Summa := Summa + A[i];
end;
writeln; { Перейти на новую строку }
writeln(‘Сумма = ‘, Summa);
end.

Цикл for. Найти сумму элементов массива. Синтаксис PascalABC.NET

Задание:
Заполнить массив из 10 целых чисел случайными значениями в диапазоне от 0 до 9.
Вычислить сумму элементов массива.
Вариант для PascalABC.NET – “здоровье кода” составляет 124%.

begin
Var A : array [1..10] of Integer; // Используется статический массив, вместо рекомендуемого динамического.

Print(‘Сгенерировано 10 целых чисел ‘);
var Summa : Integer := 0;
for var i := 1 to 10 do begin
A[i] := Random(10); // Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу.
write(A[i]: 4); // Вывести значение текущего элемента массива без перехода на новую строку. Значения выводятся в форматированном варианте.
Summa += A[i];
end;
Println; // Перейти на новую строку.
Println(‘Сумма = ‘, Summa);
end.

Цикл while. Вычислить сумму случайных чисел

Задание:
Ввести количество элементов.
Заполнить массив случайными значениями в диапазоне от 30 до 60.
Найти сумму элементов массива.

Program RandomArray;
Var
i, n, Summa : Integer;
A : array [1..20] of Integer;
begin
write(‘Введите количество чисел (не больше 20) ‘);
readln(n);
write(‘Сгенерированы числа: ‘);
Summa := 0;
i := 1;
while i <= n do begin
A[i] := Random(31)+30; { Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу. }
write(A[i]: 4); { Вывести значение текущего элемента массива без перехода на новую строку. Значения выводятся в форматированном варианте. }
Summa := Summa + A[i];
i := i + 1;
end;
writeln; { Перейти на новую строку }
writeln(‘Сумма = ‘, Summa);
end.

Цикл while. Найти сумму случайных чисел. Синтаксис PascalABC.NET

Задание:
Ввести количество элементов.
Заполнить массив случайными значениями в диапазоне от 30 до 60.
Вычислить сумму элементов массива.
Вариант для PascalABC.NET – “здоровье кода” составляет 177%.

begin
var n := ReadInteger(‘Введите количество чисел’); // Для ввода используется рекомендованная функция ReadInteger.
var A : array of Integer := new integer[n]; // Используется динамический массив.

Println(‘Сгенерированы числа: ‘);
var Summa : Integer := 0;
var i : Integer := 0;
while i <= n-1 do begin
A[i] := Random(31)+30; { Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу. }

{
Вывести значение текущего элемента массива.
По умолчанию между числами будет выводиться один пробел.
Чтобы сделать дополнительный отступ, добавлена строка из нескольких пробелов.
}
Print(A[i], ‘ ‘);

Summa += A[i]; // Используется расширенное присваивание.
i += 1;
end;
Println; // Перейти на новую строку.
Println(‘Сумма = ‘, Summa);
end.

Цикл for. Найти сумму чисел

Задание:
Ввести количество элементов.
Сгенерировать случайные числа в диапазоне от -50 до 50.
Вычислить сумму положительных чисел.

Program RandomArray;
Var
i, n, Number, Summa : Integer;
begin
write(‘Введите количество чисел ‘);
readln(n);
write(‘Сгенерированы числа: ‘);
Summa := 0;
for i := 1 to n do begin
Number := Random(101)-50; { Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу. }
write(Number: 4); { Вывести значение сгенерированного числа, без перехода на новую строку. Значения выводятся в форматированном варианте. }
if Number > 0 then Summa := Summa + Number;
end;
writeln; { Перейти на новую строку }
writeln(‘Сумма = ‘, Summa);
end.

Цикл for. Вычислить сумму чисел. Синтаксис PascalABC.NET

Задание:
Ввести количество элементов.
Сгенерировать случайные числа в диапазоне от -50 до 50.
Найти сумму положительных чисел.
Вариант для PascalABC.NET – “здоровье кода” составляет 147%.

begin
var n := ReadInteger(‘Введите количество чисел’); // Для ввода используется рекомендованная функция ReadInteger.
Println(‘Сгенерированы числа: ‘);
var Summa : Integer := 0; // При описании используется инициализация переменной.
for var i := 1 to n do begin
var Number := Random(101)-50; // Random генерирует случайные числа в диапазоне от 0 до числа, указанного в качестве параметра, уменьшенного на единицу.
Println(Number); // Вывести значение сгенерированного числа.
if Number > 0 then Summa += Number; // Используется расширенное присваивание.
end;
Println(‘Сумма = ‘, Summa);
end.


🔁 Использование циклов. Сумма положительных элементов массива. Циклы for, while, repeat. Шесть примеров решения задачи на языке Паскаль. Варианты для Turbo/Borland/FreePascal и PascalABC.NET

Σ Сумма элементов массива. 🔁 Циклы for, while, repeat. Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET

🔀 Обмен двух чисел в массиве. Тема “Циклы и массивы”. Два варианта решения задачи.

Σ Вычисление суммы цифр числа. Пять вариантов решения задачи, в том числе одно по рекомендациям PascalABC.NET (качество кода 149%).

Рекламный блок

Информационный блок

.



Мастер

(1203),
закрыт



9 лет назад

Дмитрий Алексеевич

Мыслитель

(9830)


9 лет назад

randomize;
sum:= random(10) + random(10);

.Мастер (1203)

9 лет назад

У меня задание получить 9 случайных чисел от 0 до 51,и потом найти их сумму и произведение.Числа я получила,а как дальше?Подскажите пожалуйста.
program idsh;
var i,sum,r: integer;
begin
randomize;
for i:=0 to 8 do writeln (random(52));

Imobilazer
Искусственный Интеллект
(221971)
После бегина напиши sum:=0;

А в цикле фор напиши так:
x:=random(52);
writeln(x);
sum:=sum+x;

DraKulA90

0 / 0 / 0

Регистрация: 06.01.2014

Сообщений: 4

1

Сумма рандомных чисел

08.01.2014, 11:51. Показов 8017. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Помогите. Прога должна была выдавать случайные числа и считывать её сумму. Но прога считает сумму как последнее число. В чём проблема?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
var
a: array[1 ..10] of integer;
o,i,sum:integer;
begin
randomize;
for i:= 1 to 10 do begin
a [i]:= random(5) +1;
writeln(a[i],' ') ;
delay(36000);
delay(36000);
delay(36000);
delay(36000);
clrscr;
sum:=sum+ random(5)+1;
end;
writeln('Сумма чисел');
readln(o);
if o= a[i] then
writeln('Молодец')
else
writeln('Не правильно там должно быть',a[i]);
readln
end.



0



RAFISTAUR

8 / 8 / 12

Регистрация: 16.12.2013

Сообщений: 79

08.01.2014, 12:10

2

Дело в том что a[i] не является суммой, sum является суммой.
Короче вот

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
var
a: array[1 ..10] of integer;
o,i,sum:integer;
begin
randomize;
for i:= 1 to 10 do begin
a [i]:= random(5) +1;
writeln(a[i],' ') ;
delay(36000);
delay(36000);
delay(36000);
delay(36000);
clrscr;
sum:=sum+a[i];
end;
writeln('Сумма чисел');
readln(o);
if o= sum then
writeln('Молодец')
else
writeln('Не правильно там должно быть',sum);
readln
end.



0



0 / 0 / 0

Регистрация: 06.01.2014

Сообщений: 4

08.01.2014, 14:41

 [ТС]

3

какая глупая ошибка :с



0



Заполнение массива A(10) случайными числами и вывод элементов массива

program n_2;

var i: integer;
    a: array[1..10] of integer;

begin
  randomize;

  for i:=1 to 10 do
    a[i]:=random(100);

  for i:=1 to 10 do
    write(a[i],' ');
end.

Вычисление суммы элементов массива

program  n_3;
  var s, i: integer;
      a: array[1..10] of integer;
begin 
  s:=0;
  randomize;
  for i:=1 to 10 do a[i]:=random(100);
  for i:=1 to 10 do write (a[i],' ');
  for i:=1 to 10 do s:=s+a[i];
  writeln('s=', s)
end.

Вычисление суммы элементов массива
[Используем операторные скобки и всё (ввод, вывод, обработку) делаем в одном цикле]

program  n_3_1;
  var s, i: integer;
      a: array[1..10] of integer;
begin 
  s:=0;
  randomize;

  for i:=1 to 10 do
     begin 
        a[i]:=random(100);
        write(a[i],' ');
        s:=s+a[i]
     end;

  writeln('s=', s)
end.

Программа поиска наибольшего элемента в массиве

program  n_4;
  var i, imax: integer; 
      a: array[1..10] of integer;
begin 
  randomize;

  for i:=1 to 10 do a[i]:=random(100);
  for i:=1 to 10 do write(a[i],' ');

  imax:=1;

  for i:=2 to 10 do
    if a[i]>a[imax] then
       imax:=i;

  write('Наибольший элемент   a[', imax, ']=', a[imax])

end.

Поиск элемента, равного 50

program  n_5;

var   n, i: integer; 
      a: array[1..10] of integer;

begin 
  randomize;

  for i:=1 to 10 do a[i]:=random(100);
  for i:=1 to 10 do write(a[i],' ');

  n:=0;
  for i:=1 to 10 do
    if a[i]=50 then
       n:=i;

  if n=0 then
     write('Нет')
  else
     write(n)

end.

Поиск элемента, равного 50

program  n_5_1;
  var n, i: integer; 
      a: array[1..10] of integer;
begin 
  randomize;
  for i:=1 to 10 do a[i]:=random(100);
  for i:=1 to 10 do write(a[i],' ');

  i:=0;
  repeat
    i:=i+1;
  until (a[i]=50) or (i=10);

  if a[i]=50 then
    write(i) 
  else 
    write('Нет')
end.

Для подсчета вводится переменная, значение которой увеличивается на единицу каждый раз, когда найден нужный элемент.

program  kolich;

var   k, i: integer; 
      a: array[1..10] of integer;

begin 
  randomize;

  for i:=1 to 10 do a[i]:=random(100);
  for i:=1 to 10 do write (a[i],` `);

  k:=0;
  for i:=1 to 10 do
    if a[i]>50 then
       k:=k+1;

  write('k=', k)

end.

Сумма значений элементов, удовлетворяющих условию

program  sum ;

var   s, i: integer; 
      a: array[1..10] of integer;

begin 
  randomize;

  for i:=1 to 10 do
    a[i]:=random(100);

  for i:=1 to 10 do
    write (a[i],` `);

  s:=0;
  for i:=1 to 10 do
    if (a[i]>10) and (a[i]<30) then
      s:=s+a[i];

  write('s=', s)

end.

Сортировка массива

program sort;

var   n, i, j, x, imax: integer;
      a: array [1..10] of integer;

begin
  for i:=1 to 10 do read (a[i]);
  for i:=1 to 10 do write (a[i], ' ');

  for i:=1 to 9 do
  begin
    imax:=i;
    for j:=i+1 to 10 do
      if a[j]>a[imax] then
        imax:=j;

    x:=a[i];
    a[i]:=a[imax];
    a[imax]:=x
  end;

  for i:=1 to 10 do
    write(a[i], ' ')
end.

Возведение числа в любую степень.

program calc_stepen;

var
  a, b, h, i: integer;
  c: real;

begin
  b := 1;
  readln( a, h);
  for i := 1 to abs(h) do
    b := b * a;
  if h < 0 then
    c := 1 / b
  else
    c := b;

  writeln( c:3:5 );

end.

Определение гласных и согласных букв:

program alfabet;

var
  s: char;

begin
  read(s);
  case s of 
    'а','е','ё','и','о','у','ы','э','ю','я': writeln('гласные');
    'б','в','г','д','ж','з','й','к','л','м','н','п','р','с','т','ф','х','ц','ч','ш','щ': writeln('согласные');
    
  else
    writeln('знаки');
  end;
end.


Решение 50 типовых задач на Pascal, Душистов


Урок 22. Сумма элементов массива

Просмотров 22.9к. Обновлено 23 ноября 2020

Урок из серии: «Язык программирования Паскаль«

При работе с элементами одномерного массива можно выделить несколько видов подзадач. Алгоритмы для решения этих подзадач   необходимо знать.

На этом уроке рассмотрим  алгоритмы для  нахождения суммы (или произведения) элементов одномерного массива. Здесь могут быть различные модификации — найти сумму элементов с заданным свойством.

Пример 1. Найти сумму элементов массива.

Решение.

Воспользуемся написанными ранее процедурами для ввода и вывода массива.   Массив заполним случайными числами.

Добавим  функцию Sum для  нахождения суммы элементов массива.  В алгоритме переменная i — является счетчиком элементов массива,  s — сумма элементов массива, она вычисляется по реккурентной формуле s = s+m(i).

Обработка элементов массива производится в цикле. Перед циклом сумме присваивается начальное значение равное нулю: sum := 0. В теле цикла записывается рабочая формула для накопления суммы: s := s + m[i].

Текст функции получится таким:

Function Sum(m: myarray): Integer;
Var   i, s : Integer;
Begin
   sum:=0;
   For i:=1 To n Do
     {к уже найденной сумме первых (i-1) элементов прибавляем i-ый элемент}
     s:=s+m[i];
     sum:=s;
End;

Составим программу. В ней воспользуемся для заполнения массива процедурой  Init2, которая заполняет массив случайными числами из заданного интервала.

Program primer_1;
   Const n = 30;  {n - это количество элементов массива}
   Type
      myarray = Array [1...n] Of Integer;
   Var C : myarray;
       s : Integer; {s - сумма всех элементов массива}

   Procedure Init2(a,b: integer; Var m : myarray);
   {Процедура заполнения массива случайными числами из интервала [a,b] и вывода на экран}
   ...
   Function Sum(m: myarray): Integer;
   {Функция для нахождения суммы элементов массива}
   ...
Begin {main}
   {заполняем массив случайными числами из интервала [-25, 25] и выводим на экран}
   Init2(-25, 25, C);
   s:=Sum(C); {находим сумму элементов}
   Writeln ('Их сумма равна ',s);{выводим результат}
   Readln;
End.

Для нахождения произведение  элементов массива,  переменной P перед циклом присваиваем начальное значение  равное 1: P:= 1. В теле цикла ставится рабочая  рекуррентная формула для нахождения произведения: P:= P* C[i].

Пример 2. Найти сумму элементов массива, кратных заданному числу Решение. Воспользуемся функцией Sum из предыдущей программы, но будем суммировать не все элементы, а только те, которые делятся на заданное число (остаток от деления равен 0)

Function Sum(m : myarray) : Integer;
Var i, s, k : Integer;
Begin
   Writeln ('введите число');
   Readln(k);
   s:=0; {начальное значение суммы}
   For i:=1 To n Do
     {если элемент кратен k,то прибавляем его сумме}
     If m[i] Mod k = 0 Then s := s + m[i];
   sum:=s;
End;

Все остальное можно оставить без изменения.

Вы познакомились с алгоритмом суммирования элементов массива. На следующем уроке продолжим изучение алгоритмов для одномерных массивов.

Добавить комментарий