Как найти сумму всех i pascal

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

Просмотров 23к. Обновлено 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;

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

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

Сумма элементов массива. Циклы for, while, repeat

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

Σ Сумма случайных чисел. 🔁 Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET

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

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


Пять примеров решения задачи на языке Паскаль. В некоторых вариантах используется синтаксис для PascalABC.NET

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

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

Var
i, Summa : Integer;
A : array [1..10] of Integer;
begin
write(‘Введите 10 целых чисел ‘);
for i := 1 to 10 do readln(A[i]);
Summa := 0;
for i := 1 to 10 do Summa := Summa + A[i];
writeln(‘Сумма = ‘, Summa);
end.

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

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

begin
// Вариант для PascalABC.NET — «здоровье кода» составляет 101%.
var A : array [1..10] of Integer; // Замечание: Используется статический массив, вместо рекомендованного динамического

write(‘Введите 10 целых чисел ‘);
for var i := 1 to 10 do readln(A[i]); // Замечание: Для ввода использована не рекомендованная процедура Readln

var Summa : Integer := 0;
for var i := 1 to 10 do Summa := Summa + A[i];
Println(‘Сумма = ‘, Summa);
end.

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

Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Для решения задачи использовать цикл while.

Program Task_01;
Var
i, Summa : Integer;
A : array [1..10] of Integer;
begin
write(‘Введите 10 целых чисел ‘);
i := 1;
while i <= 10 do begin
readln(A[i]);
i := i + 1;
end;
Summa := 0;
i := 1;
while i <= 10 do begin
Summa := Summa + A[i];
i := i + 1;
end;
writeln(‘Сумма = ‘, Summa);
end.

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

Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Для решения задачи использовать один цикл while.

(*
Вариант для PascalABC.NET — «здоровье кода» составляет 125%.
*)
begin
var i : Integer = 1;
var Summa : Integer = 0;
var A : array [1..10] of Integer;

writeln(‘Введите 10 целых чисел ‘);
while i <= 10 do begin
A[i] := ReadInteger;
Summa += A[i];
i += 1;
end;
Println(‘Сумма = ‘, Summa);
end.

Цикл repeat. Найти сумму элементов целочисленного массива

Задание:
Заполнить с клавиатуры массив из 10 целых чисел.
Найти сумму элементов массива.
Использовать синтаксис для PascalABC.NET

// Вариант для PascalABC.NET — «здоровье кода» составляет 129%.
begin
var i : Integer = 1;
var Summa : Integer = 0;
var A : array [1..10] of Integer;

Println(‘Введите 10 целых чисел ‘);
repeat
A[i] := ReadInteger;
Summa += A[i];
i += 1;
until i < 10;
Println(‘Сумма = ‘, Summa);
end.


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

Σ Сумма случайных чисел. 🔁 Циклы for, while. Три задачи на нахождение суммы случайно сгенерированных элементов. Для каждой задачи приведено два варианта — классический синтаксис (Turbo/Borland Pascal) и PascalABC.NET

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

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

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

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

2 / 2 / 0

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

Сообщений: 8

1

Найти сумму элементов массива

22.12.2009, 22:05. Показов 90582. Ответов 24


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

Народ помогите пожалуйста решить. срочно.

1)Дан одномерный массив. определить:
а) сумму всех эллементов массива
б)произведение отр. элементов
в) сумму квадратов всех положительных элементов

2) Дан массив одномерный. Найти среднеарифметическое положительных и отрицательных элементов

3) Дан 2умерный массив. Заменить значения всех элементов четвертой строки массива на число 4.
4) к элементам 4-ого столбца двумерного массива рахмеронстью 6*6 прибавить элементы 2-го столбца
5) Дан двумерный масив. определить сумму элементов четвертого столбца меньших 100



1



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 22:33

2

1)Дан одномерный массив. определить:
а) сумму всех эллементов массива
вот решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
 a:array [1..20] of integer;
 i,s,n:integer;
 begin
    writeln('введите размер массива');
    readln(n);
  {Заполнение случайными числами и вывод массива}
  for i:=1 to n do
      a[i]:=random(100);
  writeln('исходный массив');
  for i:=1 to n do
      write(a[i]:4);  writeln;
      s:=0;
  for i:=1 to n do
     s:=s+a[i];
   writeln('сумма=',s)
end.



2



Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 22:34

3

lera8, Это все одна программа! — пунк а,б,с — вместе!



1



MEGAETX

2 / 2 / 0

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

Сообщений: 8

22.12.2009, 22:35

 [ТС]

4

чуть чуть не понял….

а просто нельзя так:

Pascal
1
2
3
4
5
6
7
Begin
s:=0
for i:=1 to n do
begin s:=s+a[i];
end
write (s);
end.



0



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 22:36

5

б)произведение отр. элементов

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
 a:array [1..20] of integer;
 i,pr,n:integer;
 begin
    writeln('введите размер массива');
    readln(n);
  {Заполнение случайными числами и вывод массива}
  for i:=1 to n do
      a[i]:=random(100)-50;
  writeln('исходный массив');
  for i:=1 to n do
      write(a[i]:4);  writeln;
      pr:=1;
  for i:=1 to n do
      if a[i]<0 then
        pr:=pr*a[i];
   writeln('произведение=',pr)
end.



1



Давид

Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 22:39

6

MEGAETX, Вот первая!

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
25
26
27
28
29
program hhh;
Uses crt;
 Var x:array [1..100] of integer;
     i,n,s1,p,s2:integer;
begin
clrscr;
Writeln (' Vvedite kol - vo elementov ');
Readln (n);
 for i:=1 to n do begin
                  write ('Vvedite ',i, ' element ');
                  Readln (x[i]);
                  end;
Writeln (' polycheny chisla ');
for i:=1 to n do write (x[i]:3);
writeln;
s1:=0;
for i:=1 to n do
s1:=s1+x[i];
Writeln ('Summa BCEX = ',s1);
p:=1;
for i:=1 to n do
  if x[i]<0 then p:=p*x[i];
writeln ('Proizvedenie el-ov<0 =',p);
s2:=0;
for i:=1 to n do
if x[i]>=0 then s2:=s2+sqr(x[i]);
Writeln ('Summa kvadratov ele-ov>0 =',s2);
REadln
end.



1



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 22:42

7

вот первая вся вместе

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
25
var
 a:array [1..20] of integer;
 i,pr,n,s,s1:integer;
 begin
    writeln('введите размер массива');
    readln(n);
  {Заполнение случайными числами и вывод массива}
  for i:=1 to n do
      a[i]:=random(100)-50;
  writeln('исходный массив');
  for i:=1 to n do
      write(a[i]:4);  writeln;
      pr:=1;
  s:=0;
  for i:=1 to n do
     s:=s+a[i];
 
  for i:=1 to n do
      if a[i]<0 then
        pr:=pr*a[i];
  for i:=1 to n do
     if a[i]>0 then
       s1:=s1+a[i]*a[i];
   writeln('произведение=',pr,'  ', 'сумма=',s,'  ','сумма квадратов=',s1)
end.

Добавлено через 49 секунд

Цитата
Сообщение от MEGAETX
Посмотреть сообщение

чуть чуть не понял….

а просто нельзя так:

Pascal
1
2
3
4
5
6
7
Begin
s:=0
for i:=1 to n do
begin s:=s+a[i];
end
write (s);
end.

я вас не понимаю, как просто?



2



2 / 2 / 0

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

Сообщений: 8

22.12.2009, 22:44

 [ТС]

8

Спасибо Огромное народ, что помогаете) по гроб жизни должен буду.



0



Давид

Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 22:44

9

MEGAETX, Вторая

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
25
26
27
28
29
30
31
32
33
34
35
36
program hhh;
Uses crt;
 Var x:array [1..100] of integer;
     i,n,k,k1,s,s1:integer;
     sr1,sr2:real;
begin
clrscr;
Writeln (' Vvedite kol - vo elementov ');
Readln (n);
 for i:=1 to n do begin
                  write ('Vvedite ',i, ' element ');
                  Readln (x[i]);
                  end;
Writeln (' polycheny chisla ');
for i:=1 to n do write (x[i]:3);
writeln;
s:=0;
k:=0;
for i:=1 to n do
  if x[i]>=0 then begin
                  s:=s+x[i];
                  k:=k+1;
                  end;
sr1:=s/k;
Writeln ('Sred.Arifmet elem-ov > 0 =',sr1:4:2);
s1:=0;
k1:=0;
for i:=1 to n do
   if x[i]<0 then begin
                  s1:=s1+x[i];
                  k1:=k1+1;
                  end;
sr2:=s1/k1;
writeln ('Sred.arifM elementov < 0 =',sr2:4:2);
readln
end.



2



2 / 2 / 0

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

Сообщений: 8

22.12.2009, 22:44

 [ТС]

10

Цитата:
Сообщение от MEGAETX Посмотреть сообщение
чуть чуть не понял….

а просто нельзя так:

Код Pascal

1
2
3
4
5
6
7

Begin
s:=0
for i:=1 to n do
begin s:=s+a[i];
end
write (s);
end.

я вас не понимаю, как просто?

не обращайте внимания. я просто не то спросил.



0



Тамила

753 / 546 / 211

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

Сообщений: 1,100

22.12.2009, 22:44

11

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
uses crt;
var
a:array[1..100,1..100]of integer;
i,j,n,m,sum,kol:integer;
sr:real;
begin clrscr;
write('n=');
read(n);
write('m=');
read(m);
for i:=1 to m do
for j:=1 to n do
 begin
  write('a[',i,',',j,']=');
  read(a[i,j]);
 end;
for i:=1 to m do
 begin
  for j:=1 to n do
  write(a[i,j],'  ');
  writeln;
 end;
writeln;
sum:=0;
kol:=0;
for i:=1 to m do
for j:=1 to n do
if a[i,j]>0 then
 begin
  sum:=sum+a[i,j];
  inc(kol);
 end;
sr:=sum/kol;
writeln('sredn./arifm. polojitelnyh=',sr:2:3);
 
sum:=0;
kol:=0;
for i:=1 to m do
for j:=1 to n do
if a[i,j]<0 then
 begin
  sum:=sum+a[i,j];
  inc(kol);
 end;
sr:=sum/kol;
writeln('sredn./arifm. otricatelnyh=',sr:2:3);
readkey;
end.



2



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 22:51

12

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
25
26
27
28
29
30
var
 a:array [1..20] of integer;
 i,k,k1,n,s,s1:integer;
 sredarf,sredarf2:real;
 begin
    writeln('введите размер массива');
    readln(n);
  {Заполнение случайными числами и вывод массива}
  for i:=1 to n do
      a[i]:=random(100)-50;
  writeln('исходный массив');
  for i:=1 to n do
      write(a[i]:4);  writeln;
 
  s:=0;
  for i:=1 to n do
     if a[i]>0 then begin
        s:=s+a[i];
        k:=k+1
     end;
   s1:=0;
  for i:=1 to n do
     if a[i]<0 then begin
       s1:=s1+a[i];
       k1:=k1+1;
     end;
   sredarf:=s/k;
   sredarf2:=s1/k1;
   writeln('среднеарифметическое положительных=',s,'  ','среднеарифметическое отрицательных=',s1);
end.



2



Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 22:52

13

Лучший ответ Сообщение было отмечено как решение

Решение

Тамила,
lera8,

Не по теме:

Ви опаздали!я решил первый:p



3



753 / 546 / 211

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

Сообщений: 1,100

22.12.2009, 22:55

14

Лучший ответ Сообщение было отмечено как решение

Решение

Цитата
Сообщение от Давид
Посмотреть сообщение

Не по теме:
Ви опаздали!я решил первый

Не по теме:

Вам за это СУПЕРприз…)))…от автора…



3



Давид

Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 22:55

15

MEGAETX, Третья!

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
25
26
27
28
29
30
31
32
33
Program maxim;
Uses crt;
Const n=4;
 var b:array [1..n,1..n] of integer;
     i,j:integer;
begin
clrscr;
 for i:=1 to n do
    for j:=1 to n do begin
                     write ('B[',i,',',j,']=');
                     Readln (b[i,j]);
                     end;
writeln (' Polychena matrica ');
for i:=1 to n do
 begin
 for j:=1 to n do
    Write ('  ',b[i,j],' ');
    writeln;
 end;
writeln;
for i:=4 to n do
  for j:=1 to n do
  b[i,j]:=4;
writeln;
writeln (' OTBET ');
for i:=1 to n do
 begin
 for j:=1 to n do
    Write ('  ',b[i,j],' ');
    writeln;
 end;
Readln
end.



1



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 23:09

16

Лучший ответ Сообщение было отмечено как решение

Решение

Вот ваша 5) Дан двумерный масив. определить сумму элементов четвертого столбца меньших 100

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
 a:array [1..20,1..20] of integer;
 i,j,s,n,m:integer;
 begin
    writeln('введите размер массива');
    readln(n,m);
  {Заполнение случайными числами и вывод массива}
  for i:=1 to n do
   for j:=1 to m do
      a[i,j]:=random(200)-50;
  writeln('исходный массив');
  for i:=1 to n do  begin
   writeln;
  for j:=1 to m do
      write(a[i,j]:4);
   end;     writeln;
  s:=0;
  for i:=1 to n do
     if a[i,4]<100 then
        s:=s+a[i,4];
   writeln('сумма=',s);
end.

Добавлено через 7 минут

Не по теме:

Ви опаздали!я решил первыйю Угу обогнали нас;)



3



2 / 2 / 0

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

Сообщений: 8

22.12.2009, 23:25

 [ТС]

17

блии….н Народ. я вам безмерно Благодарен. Спасибо огромное. и .. не сочтите за наглость а 4ю не поможете ?



0



lera8

636 / 219 / 64

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

Сообщений: 488

22.12.2009, 23:26

18

Лучший ответ Сообщение было отмечено как решение

Решение

4) к элементам 4-ого столбца двумерного массива рахмеронстью 6*6 прибавить элементы 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
25
var
 a:array [1..6,1..6] of integer;
 i,j,c:integer;
 begin
  {Заполнение случайными числами и вывод массива}
  for i:=1 to 6 do
   for j:=1 to 6 do
      a[i,j]:=random(70)-10;
  writeln('исходный массив');
  for i:=1 to 6 do  begin
   writeln;
  for j:=1 to 6 do
      write(a[i,j]:6);
   end;     writeln;
 
  for i:=1 to 6 do
     a[i,4]:=a[i,4]+a[i,2];
   {вывод массива}
   writeln('Преобразованный массив');
   for i:=1 to 6 do  begin
   writeln;
  for j:=1 to 6 do
      write(a[i,j]:4);
   end;
end.



3



Программист 1С

859 / 647 / 187

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

Сообщений: 1,154

22.12.2009, 23:31

19

lera8, молодец!!!!хорошее решение!



2



lera8

22.12.2009, 23:36


    Найти сумму элементов массива

Не по теме:

Цитата
Сообщение от Давид
Посмотреть сообщение

lera8, молодец!!!!хорошее решение!

Спасибо большое за комплимент:-[



2



В этом примере продемонстрировано использование оператора +=, внутриблочных описаний переменных, автоопределения типа и описания переменной в заголовке цикла for для поиска суммы N введенных чисел

var 
  N: integer;
  sum: real;

begin
  write('Введите количество чисел: ');
  readln(N);
  
  write('Введите числа: ');
  sum := 0;
  for var i := 1 to N do
  begin
    var x := ReadReal;
    sum += x;
  end;
  writeln('Сумма введенных чисел = ',sum);
end.

Следует обратить внимание, что описание переменной x внутри блока в цикле не приводит к потере производительности программы или повторному выделению памяти. Память под внутриблочную переменную выделяется один раз при входе в основную программу.

Ссылки

  • Особенности языка: базовый уровень
  • Сайт PascalABC.NET: Особенности языка

Заполнение массива 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, Душистов


Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти документ на немецком
  • Как найти свою заначку в квартире
  • Как найти эмина агаларова
  • Как найти кошку который нет уже месяца
  • Экран стал черным на ноутбуке как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии