Файл: 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


Вопросы и задания