Циклические алгоритмы.

  1. Сумма чисел на промежутке по условию.
  2. Количество чисел на промежутке по условию.
  3. Ввод N чисел. Сумма чисел по условию.
  4. Ввод N чисел. Количество чисел по условию.
  5. Ввод N чисел. Среднее арифметическое.
  6. Ввод N чисел. Минимум, максимум.
  7. Ввод чисел до 0. Сумма чисел по условию.
  8. Ввод чисел до 0. Количество чисел по условию.
  9. Ввод чисел до 0. Среднее арифметическое.
  10. Возведение целого числа в целую степень.
  11. Нахождение 3 максимумов (минимумов) среди вводимых чисел.
  12. Количество делителей.
  13. Количество делителей. Простые числа.
  14. Нахождение НОД. Алгоритм Евклида.
  15. Нахождение НОД. Модифицированный алгоритм Евклида.
  16. Нахождение суммы, количества цифр в числе.
  17. Разворот числа.


Сумма чисел на промежутке по условию.

Pascal
1
2
3
4
5
read(a, b);
count := 0;
For i := a to b do
  count := count + 1;
write(count); 

Количество чисел на промежутке по условию.

Pascal
1
2
3
4
5
read(a, b);
count := 0;
For i := a to b do
  count := count + 1;
write(count);

Ввод N чисел. Сумма чисел по условию.

Pascal
1
2
3
4
5
6
7
8
read(N);
sum := 0;
For i := 1 to N do
  begin
    read(a);
    if a mod 2 = 0 then sum := sum + a;
  end;
write(sum); 

Ввод N чисел. Количество чисел по условию.

Pascal
1
2
3
4
5
6
7
8
read(N);
count := 0;
For i := 1 to N do
  begin
    read(a)
    if a mod 2 = 0 then count := count + 1;
  end;
write(count); 

Ввод N чисел. Среднее арифметическое.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
read(N);
sum := 0;
count := 0;
 
For i := 1 to N do
  begin
    read(a);
    if a mod 2 = 0 then begin
      sum := sum + a;
      count := count + 1
    end;
  end;
 
if count = 0 then write('Таких чисел нет')
  else
    begin
      sr_ar := sum / count;
      write(sr_ar);
    end;

Ввод N чисел. Минимум, максимум.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
// a ∈ [X .. Y]
read(N);
min := Y + 1;
max := X - 1;
 
For i := 1 to N do
  begin
    read(a);
    if a > max then max := a;
    if a < min then min := a;
  end;
 
write(min,' ',max);

Ввод чисел до 0. Сумма чисел по условию.

Pascal
1
2
3
4
5
6
7
8
9
10
sum := 0;
read(a);
 
while a <> o do
  begin
    if a mod 2 = 0 then sum := sum + a;
    read(a);
  end;
 
write(sum);

Ввод чисел до 0. Количество чисел по условию.

Pascal
1
2
3
4
5
6
7
8
9
10
11
count := 0;
read(a);
 
while a <> o do
  begin
    if a mod 2 = 0 then
      count := count + 1;
    read(a);
  end;
 
write(count);

Ввод чисел до 0. Среднее арифметическое.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
count := 0;
sum := 0;
read(a);
 
while a <> 0 do
  begin
    if a mod 2 = 0 then
      begin
        count := count + 1;
        sum := sum + a;
      end;
     read(a);
  end;
 
if count = 0 then write('Таких чисел нет')
else
  begin
    sr_ar := sum / count;
    write(sr_ar);
  end;

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

Pascal
1
2
3
4
5
read(a, b);
degree := 1;
for i := 1 to b do
  degree := degree * a;
write(degree);

Нахождение 3 максимумов (минимумов) среди вводимых чисел.

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
// a ∈ [X..Y]
max1 := x - 1;
max2 := x - 1;
max3 := x - 1;
read(N);
 
for i := 1 to N do
begin
  read(a);
  if a > max1 then 
    begin
      max3 := max2;
      max2 := max1;
      max1 := a;
    end
  else
    if a > max2 then 
      begin
        max3 := max2;
        max2 := a;
      end
     else
       if a > max3 then max3 := a;
end;
 
write(max1, ' ', max2, ' ', max3);

Количество делителей.

Pascal
1
2
3
4
5
6
7
8
// N > 1
read(N);
k := 2;
 
for i := 2 to N div 2 do
  if N mod i = 0 then k := k + 1;
 
write(k);

Количество делителей. Простые числа.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  flag: boolean;
  N, i: integer;
 
begin
  read(N);
  flag := true;
 
  for i := 2 to round(sqrt(N)) do
    if N mod i = 0 then flag := false;
 
  if flag then write('Число простое')
    else
      write('Число не простое');
 
end.

Нахождение НОД. Алгоритм Евклида.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  a, b: integer;
 
begin
  read(a, b);
 
  while a <> b do
    if a > b then a := a - b
      else b := b - a;
 
  write(a);
end.

Нахождение НОД. Модифицированный алгоритм Евклида.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  a, b: integer;
 
begin
  read(a, b);
 
  while a * b > 0 do
    if a > b then a := a mod b
      else b := b mod a;
 
  write(a + b);
end.

Нахождение суммы, количества цифр в числе.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  N, sum, ed: longint;
 
begin
  read(N);
  sum := 0;
  count := 0;
 
  while N > 0 do
    begin
      ed := N mod 10;
      sum := sum + ed;
      count := count + 1;
      N := N div 10;
    end;
 
  write(sum, ‘ ‘, count);
end.

Разворот числа.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  N, new_N: longint;
 
begin
  read(N);
  new_N := 0;
 
  while N > 0 do
    begin
      new_N := new_N *10 + N mod 10;
      N := N div 10
    end;
 
  write(new_N);
end.

Last modified: Thursday, 31 January 2019, 11:57 AM