Главная страница
Навигация по странице:

  • Задача 2 Получить таблицу значений функции y=x2

  • Задача 4 Вычислить факториал числа k . k! = 1∙2∙3∙ … ∙k

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

  • Задача Вычислить факториал числа k

  • для

  • (n, k, s)

  • Примеры записи оператора цикла с параметром

  • Задача 1 Получить таблицу значений функции y=x2

  • Задача 3 Вычислить факториал числа k . k! = 1∙2∙3∙ … ∙k

  • Циклы в Python. Пока условие истинно. Если условие ложно


    Скачать 163.72 Kb.
    НазваниеПока условие истинно. Если условие ложно
    АнкорЦиклы в Python
    Дата30.04.2023
    Размер163.72 Kb.
    Формат файлаpptx
    Имя файлаЦиклы в Python.pptx
    ТипЗадача
    #1098335

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

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

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


    Выполнение тела цикла повторяется, пока условие истинно.

    Если условие ложно, то управление передается следующему после цикла оператору.

    Если условие изначально ложно, тело цикла не выполнится ни разу.

    Если условие никогда не станет ложным, то программа «зациклится».

    Используется в основном тогда, когда количество повторов заранее неизвестно.

    while <условие>:

    <блок_операторов>

    условие

    тело цикла

    да

    нет

    Задача 1

    Лыжник в первый день тренировок пробежал 10 км. Каждый следующий день он увеличивал пройденное расстояние на 10% от пройденного в предыдущий день. В какой день он пробежит больше 20 км?

    начало

    n = 1

    x ≤ 20

    да

    нет

    вывод n,x

    x = x+0,1∙x

    конец

    n = n+1

    x = 10

    # Лыжная тренировка

    n = 1 # день номер 1

    x = 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.0

    3 12.1

    4 13.3

    5 14.6

    6 16.1

    7 17.7

    8 19.5

    9 21.4

    # Таблица квадратов

    print("Квадраты чисел:")

    x = 1 # начальное значение x

    while 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 = 1

    x ≤ 10

    да

    нет

    вывод x,y

    x = x+1

    конец

    y = x2

    Квадраты чисел:

    1 1

    2 4

    3 9

    4 16

    5 25

    6 36

    7 49

    8 64

    9 81

    10 100

    Задача 3а

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

    начало

    x = 1

    x ≤ n

    да

    нет

    вывод s

    x = x+1

    конец

    s = s+x

    ввод n

    s = 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 («прервать»).

    while True:

    <операторы>

    if <условие>: break

    условие

    тело цикла

    да

    нет

    Используется в тех случаях, когда требуется, чтобы тело цикла выполнилось хотя бы один раз.

    Задача

    Вычислить факториал числа k (при k не более 15).

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

    i = 1

    i > k

    да

    нет

    вывод p

    i = i+1

    конец

    p = 1

    p = 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>k

    print("Факториал числа равен", 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 = n

    for <параметр> in range(<диапазон>):

    <операторы_тела_цикла>

    Примеры записи оператора цикла с параметром

    # для i в диапазоне от 0 до 9

    for i in range(10):

    print(i, end=" ")

    print("Всё!")

    # для i в диапазоне от 1 до 9

    for i in range(1,10):

    print(i, end=" ")

    print("Всё!")

    # для i в диапазоне от 1 до 9 с шагом 2

    for i in range(1,10,2):

    print(i, end=" ")

    print("Всё!")

    # для i в диапазоне от 9 до 1 с шагом -2

    for 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 = x2

    x = 1, 10

    # Таблица квадратов

    print("Квадраты чисел:")

    for x in range(1, 11): # для i от 1 до 10

    y = x**2 # вычисление функции

    print("{:3}".format(x), "{:5}".format(y))

    Квадраты чисел:

    1 1

    2 4

    3 9

    4 16

    5 25

    6 36

    7 49

    8 64

    9 81

    10 100

    Задача 2

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

    вывод s

    s = s+x

    ввод n

    s = 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 до n

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

    print("s=", s)

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

    Введите n: 20

    s= 210

    Задача 3

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

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

    вывод p

    p = p ∙ i

    ввод k

    p = 1

    начало

    конец

    i = 1, k

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

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

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

    for i in range(1, k+1): # для i от 1 до k

    p = 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 до n

    s = s+1/2**i # добавить к сумме

    print("S =", s)

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

    Введите n: 4

    S = 0.9375

    вывод s

    s = s+1/2i

    ввод n

    s = 0

    начало

    конец

    i = 1, n

    Задача 5

    Банк принимает вклады под 10% годовых. На счет положена сумма 10000 рублей. Какая сумма будет на счету через 5 лет?

    начало

    вывод g, s

    конец

    s = 10000

    s = s+0,1*s

    g = 1, 5

    # Вклад в банке

    s = 10000 # начальный вклад

    print("Начальная сумма", s)

    for g in range(1, 6): # для g от 1 до 5

    s = s+0.1*s # добавление 10%

    print(g, "год сумма", s)

    Начальная сумма 10000

    1 год сумма 11000.0

    2 год сумма 12100.0

    3 год сумма 13310.0

    4 год сумма 14641.0

    5 год сумма 16105.1

    Задача 6

    Вывести на экран степени числа 2 до десятой степени, используя различные типы циклов.

    начало

    i = 1

    i ≤ 10

    да

    нет

    вывод i, 2i

    i = i+1

    конец

    начало

    i = 1

    i > 10

    нет

    да

    вывод i, 2i

    i = i+1

    конец

    i = 1, 10

    начало

    вывод i, 2i

    конец

    Задача 6

    Вывести на экран степени числа 2 до десятой степени, используя различные типы циклов.

    # Степени числа 2

    i = 1 # нач. знач. i

    while i<=10: # пока i<=10:

    print(i, 2**i)

    i = i+1 # след. знач. i

    # Степени числа 2

    i = 1 # нач. знач. i

    while True: # начало цикла

    print(i, 2**i)

    i = i+1 # след. знач. i

    if i>10: break # выход при i>10

    # Степени числа 2

    # для i в диапазоне от 1 до 10

    for i in range(1,11):

    print(i, 2**i)

    1 2

    2 4

    3 8

    4 16

    5 32

    6 64

    7 128

    8 256

    9 512

    10 1024

    Используемые материалы:
    • Босова Л.Л. Информатика. 8-9 классы. Начала программирования на языке Python. Дополнительные главы к учебникам – М. : БИНОМ. Лаборатория знаний, 2020.
    • Поляков К.Ю. Информатика. 10 класс. Базовый и углубленный уровни : в 2ч. Ч. 2 – М. : БИНОМ. Лаборатория знаний, 2018.


    написать администратору сайта