контрольная информтиака. While ( циклпока) for (цикл с параметрами) Программирование циклов с заданным условием продолжения работы
Скачать 415 Kb.
|
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ Ключевые слова 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 (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 Вопросы и задания |