Разноуровневые задания по теме:
«Программирование циклов с
заданным условием продолжения работы»
Для решения
в классе.
1. Задачи
из сборника Л.Л. Босовой для 7-9 класса (Информатика.
7-9кл. Сб. задач и упражн._Босова_2018 -224с)
2. Написать программу. Обработка
числовых последовательностей
1.
Дано натуральное число.
Определить
А)
количество цифр
Б)
сумму цифр в числе
В)
Произведение цифр в числе
2.
Дана непустая
последовательность целых чисел, оканчивающаяся нулем. Найти:
а)
сумму всех чисел последовательности;
б)
количество всех чисел последовательности.
3.
Дана непустая
последовательность неотрицательных целых чисел, оканчивающаяся отрицательным
числом. Найти среднее арифметическое всех чисел последовательности (без учета
отрицательного числа).
4.
Дана последовательность из
n вещественных чисел. Первое число в последовательности нечетное. Найти
сумму всех идущих подряд в начале последовательности нечетных чисел. Условный
оператор не использовать.
5.
Среди чисел 1, 4, 9, 16,
25, ... найти первое число, большее n.
3.
Анализ
готовой программы. Использование условного оператора в теле операторов цикла с
условием.
1.
Ниже записана программа.
Получив на вход число x , эта программа печатает два
числа, L и M. Укажите наименьшее из таких
чисел x, при вводе которых алгоритм печатает сначала 3, а потом 8.
var x, L, M: integer;
begin
readln(x);
L := 0;
M := 0;
while x > 0 do
begin
L := L + 1;
if x mod
2 = 0 then
M:=
M + x mod 10;
x := x div
10;
end;
writeln(L);
writeln(M); end.
2. Получив
на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из
таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 8;
else
b := b * x mod 8;
x := x div 8;
end;
writeln(a); write(b);
end.
3. Получив на
вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из
таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 21.
var x, a, b: integer;
begin
readln(x);
a:=0; b:=1;
while x>0 do
begin
a:=a+1;
b:=b*(x mod 10);
x:= x div 10
end;
writeln(a); write(b);
end.
4.
Закрепление.
Написать программы.
1.
Дано натуральное
число.
а) Определить его
максимальную и минимальную цифры.
б) Определить, на
сколько его максимальная цифра превышает минимальную.
в) Найти сумму его
максимальной и минимальной цифр.
2.
Дано натуральное
число. Определить:
а) количество цифр 3 в
нем;
б) сколько раз в нем
встречается последняя цифра;
в) количество четных
цифр в нем. Составное условие и более одного неполно- го условного оператора не
использовать;
г) сумму его цифр,
больших пяти;
д) произведение его
цифр, больших семи;
е) сколько раз в нем
встречаются цифры 0 и 5 (всего).
5.* Гражданин 1 марта открыл счет в банке, вложив
1000 руб. Через каждый ме-сяц размер вклада увеличивается на 2% от имеющейся
суммы. Определить:
а) за какой месяц
величина ежемесячного увеличения вклада превысит 30 руб.;
б) через сколько
месяцев размер вклада превысит 1200 руб.
6. Задача:
Найти наибольший общий делитель двух чисел, используя алгоритм Евклида.
Домашнее задание№ 1 Выучить теорию + решить задачи:
1.
Чему равно значение s после
выполнения программы:
2.
Определите что будет на
выходе и запишите условие задачи, для которой составлен данный алгоритм.
3.
Дано натуральное число.
а) Верно ли, что сумма
его цифр больше 10?
б) Верно ли, что
произведение его цифр меньше 50?
в) Верно ли, что
количество его цифр есть четное число?
г) Верно ли, что его
первая цифра не превышает 6?
д) Верно ли, что оно
начинается и заканчивается одной и той же цифрой?
е)
Определить, какая из его цифр больше: первая или последняя.
4.
Начав тренировки, лыжник в
первый день пробежал 10 км. Каждый следую-щий день он увеличивал пробег на 10%
от пробега предыдущего дня. Определить:
а) в какой день он
пробежит больше 20 км;
б) в какой день суммарный пробег за все
дни превысит 100 км.
5. Получив на вход число x, этот алгоритм печатает
два числа: a и b. Укажите наименьшее из таких
чисел x, при вводе которых алгоритм печатает сначала 13, а потом 5.
var x, a, b, c: integer;
begin
readln(x);
a := 0; b := 10;
while x>0 do
begin
c
:= x mod 10;
a
:= a+c;
if
c < b then b := c;
x
:= x div 10;
end;
writeln(a); write(b);
end.
6. Получив на вход натуральное десятичное число x,
этот алгоритм печатает два числа: L и M. Укажите
наибольшее число x, при вводе которого алгоритм печатает сначала
21, а потом 3.var x, L, M: integer;
begin
readln(x);
L := 1;
M := 0;
while x>0 do
begin
M :=M+1;
if x mod
2 <> 0 then
L
:= L * (x mod 8);
x := x div
8;
end;
writeln(L)
writeln(M)
end.
7. Дана
правильная дробь А/B. Составить программу, сокращающую эту дробь(команда
«пока»).(используйте полученные знания об алгоритме Евклида)
Домашнее задание№ 2 Выучить теорию +
решить задачи
- Определите, что будет напечатано в
результате работы следующего фрагмента программы:
var k, s: integer;
begin
s:=5;
k:=0;
while k < 15 do begin
k:=k+2;
s:=s+k;
end;
write(s);
end.
- Определите, что будет напечатано в
результате работы следующего фрагмента программы:
var k, s: integer;
begin
s:=0;
k:=0;
while k < 12 do begin
s:=s+2*k;
k:=k+3;
end;
write(s);
end.
- Дана
непустая последовательность целых чисел, оканчивающаяся нулем. Найти:
а) сумму всех
чисел последовательности;
б) количество всех
чисел последовательности.
- Дана
непустая последовательность неотрицательных целых чисел, оканчивающаяся
отрицательным числом. Найти среднее арифметическое всех чисел
последовательности (без учета отрицательного числа).
- Дана
последовательность из n вещественных чисел. Первое число в
последовательности нечетное. Найти сумму всех идущих подряд в начале
последовательности нечетных чисел. Условный оператор не использовать.
- Среди
чисел 1, 4, 9, 16, 25, ... найти первое число, большее n.
7. Получив на вход число x, этот алгоритм печатает два числа: a
и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает
сначала 2, а потом 21.
var x, a,
b: integer;
begin
readln(x);
a:=0; b:=1;
while x>0 do
begin
a:=a+1;
b:=b*(x
mod 10);
x:=
x div 10
end;
writeln(a); write(b);
end.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.