Файл: While ( циклпока) for (цикл с параметрами) Программирование циклов с заданным условием продолжения работы.ppt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.01.2024
Просмотров: 23
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова
while ( цикл-ПОКА)
for (цикл с параметрами)
Программирование циклов с заданным условием продолжения работы
Общий вид оператора:
while <условие> :
<оператор>
<условие> - логическое выражение; пока оно истинно, выполняется тело цикла;
<оператор> - простой или составной оператор, с помощью которого записано тело цикла.
Тело цикла
Условие
да
нет
да
нет
Начало
x, y - цел
r = x
q = 0
r >=у
r = r - y
q= q +1
Конец
q, r
print ('Частное и остаток')
x = int(input (' Введите делимое х>>'))
y = int(input (' Введите делитель y>>'))
r = х
q = 0
while r >= y:
r = r – y
q += 1
print ('Частное q=‘, q)
print ('Остаток r=', r)
Программирование циклов с заданным условием окончания работы
В языке Python нет цикла с заданным условием окончания работы, но его можно организовать с помощью цикла while:
while True:
<операторы>
if <условие>: break
Тело цикла
Условие
да
нет
Такой цикл будет выполняться бесконечно, потому что условие True всегда истинно. Оператора break обеспечивает выход из цикла если условие истинно (в переводе с англ. – «прервать», досрочный выход из цикла).
print ('График тренировок')
i = 1
x = 10
while True:
i += 1
x = x + 0.1 * x
if x >= 25: break
print ('Начиная с ', i, '-го дня спортсмен будет пробегать 25 км')
Конец
да
нет
Начало
i = 1
x = 10
x >= 25
i = i +1
x = x + 0.1 * x
i
Программирование циклов с заданным числом повторений
Общий вид оператора:
for <параметр> in range (k, n, m):
<оператор>
<параметр> - переменная целого типа
range() – диапазон значений:
k – начальное значение переменной (по умолчанию равен 0)
n –конечное значение переменной, не включая последнее
m – шаг изменения переменной, по умолчанию равен 1
После каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условие выхода из цикла - достижение параметром конечного значения.
Тело цикла
i = k,n,m
# Возведение в степень
a= float(input (' Введите основание а>>'))
n= int(input (' Введите показатель n>>'))
y=1
for i in range(n):
y = y * a
print('y=', y)
Конец
Начало
y = 1
y = y * a
y
а – вещ, n - цел
i = 0, n-1
# цикл будет работать от 0 до n-1
# ровно n раз
Различные варианты программирования циклического алгоритма
Для решения одной и той же задачи могут быть созданы разные программы.
Организуем ввод целых чисел и подсчёт количества введённых положительных и отрицательных чисел.
Ввод должен осуществляться до тех пор, пока не будет введён ноль.
В задаче в явном виде задано условие окончания работы.
Воспользуемся циклом с постусловием
k1 = k2 = 0
while True:
n = int (input (' Введите целое число>>'))
if n > 0:
k1 += 1
if n < 0:
k2 += 1
if n == 0: break
print ('Введено:')
print('положительных чисел -', k1)
print('отрицательных чисел -', k2)
да
нет
n - цел
n > 0
Начало
n < 0
n = 0
k1, k2
Конец
k1=0
k2=0
k1=k1+1
k2=k2+1
да
да
нет
нет
n = int (input (' Введите целое число>>'))
k1=k2 = 0
while n != 0:
if n > 0:
k1 += 1
if n < 0:
k2 += 1
n = int (input (' Введите целое число>>'))
print ('Введено:')
print ('положительных - ', k1);
print ('отрицательных - ', k2)
Ввод осуществляется до тех пор, пока не будет введён ноль.
Работа продолжается, пока n 0.
Воспользуемся оператором while:
да
n > 0
да
нет
Начало
n != 0
k1, k2
Конец
k1 = 0
k2 = 0
k1=k1+1
k2=k2+1
нет
n
n - цел
n < 0
да
нет
Самое главное
В языке Python имеются два вида операторов цикла:
while (цикл-ПОКА)
for (цикл с параметром).
Если число повторений тела цикла известно, то лучше воспользоваться оператором for;
в остальных случаях используется оператор while
Опорный конспект
while (цикл-ПОКA)
for (цикл с параметром)
Число повторений
цикла известно
В языке Python имеются два вида операторов цикла:
Число повторений
цикла неизвестно
Дана последовательность операторов:
a = 1
b = 2
while a + b < 8:
a = a + 1
b = b + 2
s = a + b
Сколько раз будет повторен цикл и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
Вопросы и задания
Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1до n).
Программист торопился и написал программу неправильно.
Ниже приведён фрагмент его программы, в котором содержится четыре ошибки:
k = 1
f = 0
while k < n:
f = f * k
k += 1
Найдите ошибки. Допишите необходимые операторы.
Вопросы и задания
Дана последовательность операторов:
a = 1
b = 1
while True:
a = a + 1
b = b * 2
if b > 8: break
s = a + b
Сколько раз будет повторено тело цикла и какими будут значения переменных a, b, s после исполнения этой последовательности операторов?
Вопросы и задания
Сколько раз будет выполнено тело цикла?
а) for i in range(15): s = s + 1
б) for i in range(10, 15): s = s + 1
в) for i in range(-1, 1): s = s + 1
г) for i in range(1, 1): s = s + 1
д) k = 5
for i in range(k-1, k+1): s = s + 1
Вопросы и задания
Какой из двух рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить второй?
Обоснуйте свою точку зрения.
Вопросы и задания
Напишите программу, которая 10 раз выводит на экран ваши имя и фамилию.
Вопросы и задания
Напишите программу, выводящую на экран изображение шахматной доски, где чёрные клетки изображаются звёздочками, а белые - пробелами. Рекомендуемый вид экрана после выполнения программы представлен ниже:
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
* * * *
Вопросы и задания
Напишите программу, которая генерирует 10 случайных чисел в диапазоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее арифметическое.
Вопросы и задания
Напишите программу, которая вычисляет сумму:
а) первых n натуральных чисел;
б) квадратов первых n натуральных чисел;
в) всех чётных чисел в диапазоне от 1 до n;
г) всех двузначных чисел.
Вопросы и задания
Напишите программу вычисления наибольшего общего делителя двух целых чисел, используйте оператор while.
Вопросы и задания
Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и определение максимального (наибольшего) из введённых чисел.
Вопросы и задания
Напишите программу, в которой осуществляется ввод целых чисел (ввод осуществляется до тех пор, пока не будет введён ноль) и подсчёт суммы и среднего арифметического введённых положительных чисел.
Вопросы и задания
Пример входных данных | Пример выходных данных |
Введите n> 5 | 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50 |
Напишите программу, которая выводит на экран таблицу умножения на n (n - целое число в диапазоне от 2 до 10, вводимое с клавиатуры).
Вопросы и задания
Напишите программу, которая выводит на экран таблицу степеней двойки (от нулевой до десятой).
Рекомендуемый вид экрана после выполнения программы представлен ниже:
Таблица степеней двойки:
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
Вопросы и задания