Similar presentations:
Программирование, цикл while
1.
Программирование,цикл while(пока)
2.
Способы записи алгоритмовс помощью блок-схем
начало
конец
Блок ввода
информации
readln (a,b);
a,b
Простое действие,
операция
присваивания
Блок вывода
информации
writeln (a,b);
s=a*b/2
вывод max
Блок
проверки
условия
да
нет
a<>0
if (a<>b) then <действие1>
else < действие 2>;
i=a, b
Тело цикла,
повторяющиеся
операторы
for i:=a to b do
begin
Тело цикла,
повторяющиеся
операторы
end;
3.
Условия поиска элементов последовательности1.
2.
3.
4.
5.
Четные элементы: a mod 2 = 0 , нечетные: a mod 2 = 1 ;
Двузначные числа: (a > 9 ) and ( a < 100 ) ;
Число кратно 5: a mod 5 = 0 ;
Число оканчивается на 3: a mod 10 = 3 ;
Число оканчивается на 2 и кратно 4: (a mod 10 = 2) and (a mod 4 = 0)
Поиск количества или суммы элементов, отвечающих
условию; минимального или максимального элементов.
1. В последовательности из n элементов найти количество элементов, кратных 3.
Для этого заводим целую переменную k (k:=0 до входа в цикл), и в цикле
увеличиваем ее значение на 1, если очередное число кратно 3.
2. В последовательности из n элементов найти сумму элементов, оканчивающихся
на 5. Для этого заводим целую переменную sum (sum:=0 до входа в цикл), и в
цикле прибавляем к ней очередное число, если оно оканчивается на 5.
3. Для поиска максимального элемента заводим переменную max (max:=
минимальному элементу последовательности до входа в цикл), в цикле
сравниваем значение max с очередным элементом. Если он больше max, то
max:=a, иначе остается старое значение.
4.
Программа поиска количества элементовпоследовательности, удовлетворяющих условию
Напишите программу, которая в последовательности натуральных чисел определяет количество
чисел, кратных 4. Программа получает на вход натуральные числа, количество введённых чисел
неизвестно, последовательность чисел заканчивается числом 0 (0 — признак окончания ввода, не
входит в последовательность). В последовательности всегда имеется число, кратное 4. Количество
чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести
одно число — количество чисел, кратных 4.
Для этого заводим целую переменную k (k:=0 до входа в цикл), и в цикле увеличиваем ее
значение на 1, если очередное число кратно 4.
начало
k:=0
a
нет
k
a < > =0
да
a mod
4=0
конец
k:=k+1
a
var k, a: integer;
begin
k:=0;
readln(a);
while (a<>0) do
begin
if (a mod 4 = 0) then
k:=k+1;
readln(a);
end;
writeln(k);
end.
Таблица
трассировки.
Цикл
прекращается,
когда вводится
0.
a
k
1
0
4
1
8
2
0
2
5.
Программа поиска суммы элементовпоследовательности, удовлетворяющих условию
Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел,
кратных 6. Программа получает на вход натуральные числа, количество введённых чисел
неизвестно, последовательность чисел заканчивается числом 0 В последовательности всегда
имеется число, кратное 6. Количество чисел не превышает 100. Введённые числа не превышают
300. Программа должна вывести одно число — сумму чисел, кратных 6.
Для этого заводим целую переменную sum (sum:=0 до входа в цикл), и в цикле прибавляем к
sum очередное введенное число, если оно кратно 6.
начало
k:=0
a
нет
k
a < > =0
да
a mod
6=0
конец
sum:=sum+a
a
var n, i, k, a: integer;
begin
sum:=0;
readln(a);
while (a<>0) do
begin
if (a mod 6 = 0) then
sum:=sum+a;
readln(a);
end;
writeln(sum);
end.
Таблица
трассировки.
Цикл
прекращается,
когда вводится
0.
a
sum
1
0
4
4
8
12
0
12
6.
Программа поиска максимального элементапоследовательности, удовлетворяющего условию
Напишите программу, которая в последовательности натуральных чисел определяет максимальное
число, кратное 5. Программа получает на вход натуральные числа, количество введённых чисел
неизвестно, последовательность чисел заканчивается числом 0 В последовательности всегда
имеется число, кратное 5. Количество чисел не превышает 1000. Введённые числа не превышают 30
000. Программа должна вывести одно число — максимальное число, кратное 5.
Для этого заводим целую переменную max (max:=0 до входа в цикл), в цикле проверяем
очередное введенное число, если оно кратно 5 и больше max, записываем его в переменную max.
начало
max:=0
a
нет
max
a<>0
да
(a mod 5=0)
and
(a>max)
a
конец
max:=a
var i, n, a, max: integer;
begin
max:=0;
readln(a);
while (a <>0) do
begin
if (a mod 5 = 0) and
(a>max) then
max:=a;
readln(a);
end;
writeln(max);
End.
Таблица трассировки.
Цикл прекращается,
когда вводится 0.
a
max
1
0
15
15
5
15
0
15
Если надо найти
минимальное число в
последовательности, то в
min надо положить верхнюю
границу интервала, т.е.
min:=30000 и изменить
условие (a<min)