Файл: Пока условие истинно. Если условие ложно.pptx

ВУЗ: Не указан

Категория: Решение задач

Дисциплина: Не указана

Добавлен: 07.12.2023

Просмотров: 363

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Язык программирования Python

Операторы цикла в языке Python

Операторы цикла Цикл с предусловием (с заданным условием продолжения работы, цикл «ПОКА»)

Выполнение тела цикла повторяется, пока условие истинно. Если условие ложно, то управление передается следующему после цикла оператору. Если условие изначально ложно, тело цикла не выполнится ни разу.Если условие никогда не станет ложным, то программа «зациклится».Используется в основном тогда, когда количество повторов заранее неизвестно. while <условие>:<блок_операторов>условиетело цикладанетЗадача 1Лыжник в первый день тренировок пробежал 10 км. Каждый следующий день он увеличивал пройденное расстояние на 10% от пройденного в предыдущий день. В какой день он пробежит больше 20 км? началоn = 1x ≤ 20данетвывод n,xx = x+0,1∙xконецn = n+1x = 10# Лыжная тренировкаn = 1 # день номер 1x = 10 # расстояние в 1 деньwhile x<=20: # пока x<=20 повторять:n = n+1 # номер следующего дняx = x+0.1*x # расстояние в следующий деньprint("{:3}".format(n), "{:6.1f}".format(x))2 11.03 12.14 13.35 14.66 16.17 17.78 19.59 21.4# Таблица квадратовprint("Квадраты чисел:")x = 1 # начальное значение xwhile x<=10: # пока x<=10 повторять:y = x**2 # вычисление функцииprint("{:3}".format(x), "{:5}".format(y))x = x+1 # следующее значение xЗадача 2Получить таблицу значений функции y=x2 для x=1; 2; 3; …; 10.началоx = 1x ≤ 10данетвывод x,yx = x+1конецy = x2Квадраты чисел:1 12 43 94 165 256 367 498 649 8110 100Задача 3аВычислить значение суммы s = 1+2+3+…+n для заданного n.началоx = 1x ≤ nданетвывод sx = x+1конецs = s+xввод ns = 0# Сумма натуральных чиселprint("s=1+2+3+...+n")

n = int(input("Ведите n: "))

s = 0 # начальное значение суммы

x = 1 # начальное знач. слагаемого

while x<=n: # пока x<=n повторять:

s = s+x # добавить к сумме слагаемое

x = x+1 # следующее знач. слагаемого

print("s=", s)

s=1+2+3+...+n

Введите n: 20

s= 210

Задача 3б

Вычислить значение суммы s = 1+3+5+7+…+n для заданного нечётного n.

начало

x = 1

x ≤ n

да

нет

вывод s

x = x+2

конец

s = s+x

ввод n

s = 0

# Сумма нечетных натуральных чисел

print("s=1+3+5+...+n")

n = int(input("Ведите n: "))

s = 0 # начальное значение суммы

x = 1 # начальное знач. слагаемого

while x<=n: # пока x<=n повторять:

s = s+x # добавить к сумме слагаемое

x = x+2 # следующее знач. слагаемого

print("s=", s)

s=1+3+5+...+n

Введите n: 19

s= 100

Задача 4

Вычислить факториал числа k.

k! = 1∙2∙3∙ … ∙k

i = 1

i ≤ k

да

нет

вывод p

i = i+1

конец

p = 1

p = p*i

начало

ввод k

# Факториал натурального числа

k = int(input("Введите k: "))

p = 1 # начальное знач. произвед.

i = 1 # начальное знач. множителя

while i<=k: # пока i<=k повторять:

p = p*i # добавить к произведению

i = i+1 # следующее знач. множителя

print("Факториал числа равен", p)

Введите k: 5

Факториал числа равен 120

Введите k: 15

Факториал числа равен 1307674368000

Задача 5

Вычислить сумму ряда (n слагаемых).

начало

ввод n

i ≤ n

да

нет

вывод s

конец

s = 0

i = 1

a = 1/2

s = s+a

i = i+1

a = a/2

a1 = 1/2; a2 = 1/4 = a1/2; a3 = 1/8 = a2/2; …; ai = ai-1/2

# Сумма ряда

print("S = 1/2+1/4+1/8+1/16+ ... ")

n = int(input("Введите n: "))

s = 0 # начальное значение суммы

i = 1 # номер первого слагаемого

a = 1/2 # первое слагаемое

while i<=n: # пока i<=n повторять:

s = s+a # добавить к сумме слагаемое

i = i+1 # следующий номер слагаемого

a = a/2 # следующее слагаемое

print("S =", s)

S = 1/2+1/4+1/8+1/16+ ...

Введите n: 4

S = 0.9375

начало

n ≥ 0

да

нет

вывод k

k = k+1

конец

n = n // 10

ввод n

k = 0

Задача 6

Подсчитать количество цифр в записи целого положительного числа.

Введите число: 2020

Количество цифр в числе 4

# Количество цифр целого числа

n = int(input("Введите число: "))

k = 0 # начальное значение счетчика

while n>0: # пока число>0 повторять:

n = n//10 # отбрасываем последнюю цифру


k = k+1 # увеличиваем счетчикprint("Количество цифр в числе", k)

Операторы цикла Цикл с постусловием (с заданным условием окончания работы, цикл «ДО»)

В языке Python нет оператора цикла с постусловием, но его можно организовать с помощью оператора while («пока») с условием True («истина»). Такой цикл будет выполняться бесконечно. Выход из цикла произойдет при истинности условия в операторе ветвления с помощью специального оператора break («прервать»).whileTrue:<операторы>if <условие>: breakусловиетело цикладанетИспользуется в тех случаях, когда требуется, чтобы тело цикла выполнилось хотя бы один раз. ЗадачаВычислить факториал числа k (при kне более 15). k! = 1∙2∙3∙ … ∙ki = 1i > kданетвывод pi = i+1конецp = 1p = p*iначалоk < 13данетввод kПроверка корректности данных# Факториал натурального числа до 15# проверка корректности данныхwhile True: # бесконечный циклk = int(input("Введите k (не более 15): "))if k<=15: break # выход из цикла# вычисление факториалаp = 1 # начальное знач. произвед.i = 1 # начальное знач. множителяwhile True: # начало циклаp = p*i # добавить к произведениюi = i+1 # следующее знач. множителяif i>k: break # конец цикла при i>kprint("Факториал числа равен", p)Введите k (не более 15): 17Введите k (не более 15): 16Введите k (не более 15): 15Факториал числа равен 1307674368000

Операторы цикла Цикл с параметром (с заданным числом повторений, цикл «ДЛЯ»)

тело циклаi = n, kТело цикла повторяется фиксированное число раз для каждого значения параметра. Параметр – переменная целого типа. Функция range («диапазон») задаёт количество повторов тела цикла и содержит от одного до трёх чисел.
  • Одно число (k) – параметр цикла изменяется от 0 до k-1 с шагом 1.
  • Два числа (n, k) – параметр цикла изменяется от n до k-1 с шагом 1.
  • Три числа (n, k, s) – параметр цикла изменяется от n до k-1 с шагом s.

  • Возможно изменение параметра от большего значения к меньшему. В этом случае n должно быть больше k, а s – отрицательное.

i ≤ kданетi = i+1тело циклаi = nfor <параметр>in range(<диапазон>):<операторы_тела_цикла>Примеры записи оператора цикла с параметром# для i в диапазоне от 0 до 9for i in range(10):print(i, end=" ")print("Всё!")# для i в диапазоне от 1 до 9for i in range(1,10):print(i, end=" ")print("Всё!")# для i в диапазоне от 1 до 9 с шагом 2for i in range(1,10,2):print(i, end=" ")print("Всё!")# для i в диапазоне от 9 до 1 с шагом -2for i in range(9,0,-2):print(i, end=" ")print("Всё!")0 1 2 3 4 5 6 7 8 9 Всё!1 2 3 4 5 6 7 8 9 Всё!1 3 5 7 9 Всё!9 7 5 3 1 Всё!Задача 1Получить таблицу значений функции y=x2 для x=1; 2; 3; …; 10.началовывод x,yконецy = x2x = 1, 10# Таблица квадратов print("Квадраты чисел:")for x in range(1, 11): # для i от 1 до 10y = x**2 # вычисление функцииprint("{:3}".format(x), "{:5}".format(y))Квадраты чисел:1 12 43 94 165 256 367 498 649 8110 100Задача 2Вычислить значение суммы s = 1+2+3+…+n для заданного n.вывод ss = s+xввод ns = 0началоконецx = 1, n# Сумма натуральных чисел print("s=1+2+3+...+n")n = int(input("Ведите n: "))s = 0 # начальное значение суммыfor x in range(1, n+1): # для i от 1 до ns = s+x # добавить к сумме слагаемоеprint("s=", s)s=1+2+3+...+nВведите n: 20s= 210Задача 3Вычислить факториал числа k. k! = 1∙2∙3∙ … ∙kвывод pp = p ∙ iввод kp = 1началоконецi = 1, k# Факториал натурального числаk = int(input("Введите k: "))p = 1 # начальное знач. произвед.for i in range(1, k+1): # для i от 1 до kp = p*i # добавить к произведениюprint("Факториал числа равен", p)Введите k: 5Факториал числа равен 120Задача 4 Вычислить сумму ряда (n слагаемых).a1 = 1/21; a2 = 1/22; a3 = 1/23; …; ai = 1/2i# Сумма рядаprint("S = 1/2+1/4+1/8+1/16+ ... ")n = int(input("Введите n: "))s = 0 # нач. знач. суммыfor i in range(1, n+1): # для i от 1 до ns = s+1/2**i # добавить к суммеprint("S =", s)S = 1/2+1/4+1/8+1/16+ ... Введите n: 4S = 0.9375вывод ss = s+1/2iввод ns = 0началоконецi = 1, nЗадача 5Банк принимает вклады под 10% годовых. На счет положена сумма 10000 рублей. Какая сумма будет на счету через 5 лет?началовывод g, sконецs = 10000s = s+0,1*sg = 1, 5# Вклад в банкеs = 10000 # начальный вкладprint("Начальная сумма", s)for g in range(1, 6): # для g от 1 до 5
s = s+0.1*s # добавление 10%print(g, "год сумма", s)Начальная сумма 100001 год сумма 11000.02 год сумма 12100.03 год сумма 13310.04 год сумма 14641.05 год сумма 16105.1Задача 6Вывести на экран степени числа 2 до десятой степени, используя различные типы циклов.началоi = 1i ≤ 10данетвывод i, 2ii = i+1конецначалоi = 1i > 10нетдавывод i, 2ii = i+1конецi = 1, 10началовывод i, 2iконецЗадача 6Вывести на экран степени числа 2 до десятой степени, используя различные типы циклов.# Степени числа 2i = 1 # нач. знач. iwhile i<=10: # пока i<=10:print(i, 2**i) i = i+1 # след. знач. i# Степени числа 2i = 1 # нач. знач. iwhile True: # начало циклаprint(i, 2**i) i = i+1 # след. знач. iif i>10: break # выход при i>10# Степени числа 2# для i в диапазоне от 1 до 10for i in range(1,11):print(i, 2**i)1 22 43 84 165 326 647 1288 2569 51210 1024Используемые материалы:
  • Босова Л.Л. Информатика. 8-9 классы. Начала программирования на языке Python. Дополнительные главы к учебникам – М. : БИНОМ. Лаборатория знаний, 2020.
  • Поляков К.Ю. Информатика. 10 класс. Базовый и углубленный уровни : в 2ч. Ч. 2 – М. : БИНОМ. Лаборатория знаний, 2018.