Итерационные алгоритмические структуры. Лекция №2

Содержание

Слайд 2

ЗАДАНИЕ

Определите количество принадлежащих отрезку [2·1010; 4·1010] натуральных чисел, которые делятся на 7

ЗАДАНИЕ Определите количество принадлежащих отрезку [2·1010; 4·1010] натуральных чисел, которые делятся на
и на 100 000 и при этом не делятся на 13, 29, 43 и 101, а также наименьшее из таких чисел. В ответе запишите два целых числа: сначала количество, затем наименьшее число.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [190201; 190280], числа, имеющие ровно 4 различных ЧЁТНЫХ делителя. Выведите эти четыре делителя для каждого найденного числа в порядке убывания.
Имеется набор данных, состоящий из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 3 и при этом была максимально возможной. Гарантируется, что искомую сумму получить можно. Программа должна напечатать одно число – максимально возможную сумму, соответствующую условиям задачи.

Слайд 3

ЗАДАЧА
Вывести на экран монитора 5 раз слово «ПРИВЕТ».

ЗАДАЧА Вывести на экран монитора 5 раз слово «ПРИВЕТ».

Слайд 4

ОПЕРАТОРЫ ОРГАНИЗАЦИИ ИТЕРАЦИОННЫХ СТРУКТУР

Для реализации циклических структур используются операторы циклов:
с заданным

ОПЕРАТОРЫ ОРГАНИЗАЦИИ ИТЕРАЦИОННЫХ СТРУКТУР Для реализации циклических структур используются операторы циклов: с
числом итераций (повторов) (FOR)
с неизвестным числом итераций
(While, Repeat).

Слайд 5

СЧЕТНЫЙ ЦИКЛ

for i:=m1 to m2 do
<оператор>;
{шаг цикла +1 }
for

СЧЕТНЫЙ ЦИКЛ for i:=m1 to m2 do ; {шаг цикла +1 }
i:=m1 downto m2 do
<оператор>;
{шаг цикла –1 }
for i:=1 to 10 do for j:=10 downto 1 do
begin begin
… …
end; end;

Слайд 6

ПРИМЕР

Var i:integer;
Begin
For i:=1 to 5 do
writeln(‘ПРИВЕТ’);
End.

ПРИМЕР Var i:integer; Begin For i:=1 to 5 do writeln(‘ПРИВЕТ’); End.

Слайд 7

ПРИМЕР

Var i,n:integer;
Begin
Write(‘n?’);
Readln(n);
For i:=1 to n do
writeln(‘ПРИВЕТ’);
End.

ПРИМЕР Var i,n:integer; Begin Write(‘n?’); Readln(n); For i:=1 to n do writeln(‘ПРИВЕТ’); End.

Слайд 8

ЦИКЛ С ПРЕДУСЛОВИЕМ (ЦИКЛ-ПОКА)

While <усл.> do
<оператор>;
Цикл работает пока условие истинно (TRUE).

ЦИКЛ С ПРЕДУСЛОВИЕМ (ЦИКЛ-ПОКА) While do ; Цикл работает пока условие истинно

a:=0;
While a>=0 do
readln(a);

Если в цикле требуется выполнить более одного оператора, то используется составной оператор (операторные скобки):
While <усл.> do
begin
<оператор1>;
<оператор2>;
<оператор3>;
….
end;

Слайд 9

i:=1;
While i<=5 do
begin
writeln(‘ПРИВЕТ’);
i:=i+1;
end;

i:=1; While i begin writeln(‘ПРИВЕТ’); i:=i+1; end;

Слайд 10

ЦИКЛ С ПОСТУСЛОВИЕМ (ЦИКЛ-ДО)

Repeat
<Оператор 1>;
<Оператор 2>;

<Оператор n>
Until <усл.>;
Тело цикла повторяется

ЦИКЛ С ПОСТУСЛОВИЕМ (ЦИКЛ-ДО) Repeat ; ; … Until ; Тело цикла
до тех пор, пока условие не станет истинным.

Слайд 11

ЗАДАНИЕ

Вводится последовательность целых неотрицательных чисел. Вычислить среднее арифметическое последовательности
var i: integer;
Begin
i:=0;
Repeat

ЗАДАНИЕ Вводится последовательность целых неотрицательных чисел. Вычислить среднее арифметическое последовательности var i:
i:=i+1;
writeln(‘ПРИВЕТ’);
Until i>5;
end.

Слайд 12

Для повтора действий в программе предусмотрены операторы циклов.
Циклом называется любая многократно

Для повтора действий в программе предусмотрены операторы циклов. Циклом называется любая многократно
исполняемая последовательность действий.
Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла.
Единичное выполнение тела цикла называется итерацией. 
Выражение, определяющее, будет в очередной раз выполняться итерация или цикл завершится, называется условием выхода или условием окончания цикла.
Переменная, хранящая текущий номер итерации, называется  счётчиком (параметром) цикла. 
Исполнение любого цикла включает:
первоначальную инициализацию переменных цикла,
проверку условия выхода,
исполнение тела цикла и
обновление переменной цикла на каждой итерации.

Слайд 13

ПРИМЕР

Вывести все делители натурального числа N.
Program delits;
var n, i: integer;
begin
Writeln(‘вв. натуральное

ПРИМЕР Вывести все делители натурального числа N. Program delits; var n, i:
число’);
Readln(n);
For i:=1 to n do
If n mod i=0 then write(i:3);
end.

Слайд 14

При программировании вложенных циклов, необходимо помнить, что переход на следующую итерацию внешнего

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

Program deliteli_chisla;
var i,j:integer;
begin
For i:=1 to 5 do
Begin
Write(i);
For j:=1 to 3 do
Write(‘*’);
Writeln;
End;
end.
1 * * *
2 * * *
3 * * *
4 * * *
5 * * *

Вложенные циклы

Параметры внешнего и внутреннего циклов должны быть различны!

Слайд 15

При программировании вложенных циклов, необходимо помнить, что переход на следующую итерацию внешнего

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

Program deliteli_chisla;
var N,del,S:integer;
begin
For N:=10 to 20 do
Begin
Write(N, ‘:’);
For del:=1 to N do
If n mod del=0 then write(del:3);
Writeln;
End;
end.
10: 1 2 5 10
11: 1 11
12: 1 2 3 4 6 12
13: 1 13
14: 1 2 7 14

Вложенные циклы

Слайд 16

ЗАДАНИЕ

Написать программу, которая выводит:
1
1 1
1 1 1
1 1 1 1
б) *

ЗАДАНИЕ Написать программу, которая выводит: 1 1 1 1 1 1 1
* * *
* * *
* *
*

Слайд 17

ЗАДАНИЕ

Вводятся два числа. Определить наибольшее из них.
Вводятся четыре числа. Определить наибольшее из

ЗАДАНИЕ Вводятся два числа. Определить наибольшее из них. Вводятся четыре числа. Определить
них.
Вводится последовательность из 20 различных чисел. Определить наибольшее из них.
Вводится последовательность из N различных чисел. Определить два наибольших значения.

Слайд 18

АЛГОРИТМ НАХОЖДЕНИЯ МАКСИМУМА

За первоначальное значение максимума берется первое число последовательности (Max=А1);
Далее все

АЛГОРИТМ НАХОЖДЕНИЯ МАКСИМУМА За первоначальное значение максимума берется первое число последовательности (Max=А1);
числа последовательности сравниваются со значением переменной Max;
Если число оказалось больше максимального значения (а>Max), то запоминаем его как новое значение (Max=a).
write('Введите число: ');
readln(a);
max:=a; {первое максимальное значение}
for i:=2 to N do
begin
write('Введите число: ');
readln(a);
if a>max then max:=a; {выявление очередного
end; максимума}
writeln('max=',max);

Слайд 19

ЗАДАНИЕ

Вводится N целых чисел. Найти максимальное число, кратное трём. Если таких чисел

ЗАДАНИЕ Вводится N целых чисел. Найти максимальное число, кратное трём. Если таких
не было, вывести слово ‘NO’.

Слайд 20

АЛГОРИТМ НАКОПЛЕНИЯ СУММЫ

АЛГОРИТМ НАКОПЛЕНИЯ СУММЫ

Слайд 21

ЗАДАЧА
Вычислить сумму 5 элементов числовой последовательности.
Program Summa_1;
Var A1, A2, A3, A4,

ЗАДАЧА Вычислить сумму 5 элементов числовой последовательности. Program Summa_1; Var A1, A2,
A5,SUMMA:REAL;
Begin
read(a1, a2, a3, a4, a5);
SUMMA:=A1+A2+A3+A4+A5;
WRITELN('SUMMA= ',SUMMA:5:1)
End.

Слайд 22

АЛГОРИТМ НАКОПЛЕНИЯ СУММЫ
S:=0;
For i:=1 to N do
begin
readln(a);
S:=S+a;
end;

Последовательно прибавлять

АЛГОРИТМ НАКОПЛЕНИЯ СУММЫ S:=0; For i:=1 to N do begin readln(a); S:=S+a;
очередное число к переменной-накопителю

Переменная-накопитель перед началом суммирования должна быть инициализирована

Слайд 23

ЗАДАЧА

Вычислить сумму N элементов числовой последовательности.
Program summa_3;
Var a,summa: real;
i,n:integer;
Begin
Write('Введите n=');Readln(n);
Summa:=0;
for i:=1

ЗАДАЧА Вычислить сумму N элементов числовой последовательности. Program summa_3; Var a,summa: real;
to n do
begin
write('введите число:');
readln(a);
summa:=summa+a ;
end;
writeln('summa= ',summa:4:2)
End.

Слайд 24

ЗАДАЧА

Посчитать количество отрицательных элементов последовательности из n целых чисел.
Program Kol_otr_elem;
var A,I,n,kol:INTEGER;
Begin
write('Введите

ЗАДАЧА Посчитать количество отрицательных элементов последовательности из n целых чисел. Program Kol_otr_elem;
n='); readln(n);
kol:=0;
FOR I:=1 TO n DO
BEGIN
write('ВВЕДИТЕ ЧИСЛО:');
readln(A)
If A<0 Then kol:=kol+1;
END;
WRITELN('Кол-во отрицательных элементов = ',kol)
end.

Слайд 25

ЗАДАНИЕ

Дано вещественное число A и целое число N . Вычислить AN = A·A· … ·A.
Вводится последовательность из N чисел (Числа

ЗАДАНИЕ Дано вещественное число A и целое число N . Вычислить AN
могут повторяться). Определить, сколько раз встречается минимальное значение.
Имя файла: Итерационные-алгоритмические-структуры.-Лекция-№2.pptx
Количество просмотров: 45
Количество скачиваний: 0