икт. Лабораторная работа 3. Лабораторная работа 3 Условные операторы По дисциплине Алгоритмизация и программирование
Скачать 46.81 Kb.
|
Лабораторная работа №3 Условные операторы По дисциплине: «Алгоритмизация и программирование» Выполнил(-а): студент гр. ВТПО-22-1 Есипов Е. В. Проверила: Стукалова А.В. Алматы 2022 Цель: научиться применять условные операторы на языке Python. Познакомиться со встроенными функциями языка. Теоретические сведения (в отчете удалить): Ход выполнения программы может быть линейным, т.е. таким, когда выражения выполняются, начиная с первой строки и заканчивая последней, по порядку, не пропуская ни одной строки кода. Но чаще бывает совсем не так. При выполнении программного кода некоторые его участки могут быть пропущены. Поэтому при написании алгоритмов используется еще и ветвление. Синтаксис условного оператора в Python выглядит следующим образом: if [логическое условие 1]: [последовательность выражений 1] elif [логическое условие 2]: [последовательность выражений 2] elif [логическое условие 3]: [последовательность выражений 3] … else: [последовательность выражений n] Поведение этой цепочки лучше всего смотреть на примере. Напишем скрипт и проанализируем его выполнение: text = 'PostCards' if (2+3==4) and (2+2*2==8): # оба False print('Это не выведет') elif (1+1==11) or (text=='PostCards'): # True print('Вот это сработает, т.к. второе условие истинно') elif (2==2): # True print('А сюда не пойдет, хоть условие и выполняется') else: print ('Это тоже не выведет') В результате выведется лишь строка: Этот кусок кода на Python интуитивно понятен каждому, кто помнит, что if по-английски значит "если", а else - "иначе". В первом условии обе проверки дают False. Интерпретатор даже не проверяет второе условие в and, если уже на первом возврат значении False. Дальше следует вложенное условие else if. Одно условие истинно. Выполняется ветка. Здесь абсолютное значение имеют отступы, ведь выполнится все то, что стоит под условием с отступом в 4 пробела. До следующей проверки дело не дойдет, т.к. интерпретатор проверяет до первого попадания в True выражения из условий. Поэтому ветка else выполняется в последнюю очередь, если все предшествующие будут ложными. Поэтому здесь она не выполнится. Стоит заметить, что elif – это сокращенный else if. Без сокращения пришлось бы применять вложенный оператор ветвления: if a < 0: s = -1 else: if a == 0: s = 0 else: s = 1 В условной инструкции может отсутствовать слово else и последующий блок. Такая инструкция называется неполным ветвлением. Например, если дано число x и мы хотим заменить его на абсолютную величину x, то это можно сделать следующим образом: if x < 0: x = -x print(x) В этом примере переменной x будет присвоено значение -x, но только в том случае, когда x<0. А вот инструкция print(x) будет выполнена всегда, независимо от проверяемого условия. Для выделения блока инструкций, относящихся к инструкции if или else, в языке Python используются отступы. Все инструкции, которые относятся к одному блоку, должны иметь равную величину отступа, то есть одинаковое число пробелов в начале строки. Рекомендуется использовать отступ в 4 пробела и не рекомендуется использовать в качестве отступа символ табуляции. Внутри условных инструкций можно использовать любые инструкции языка Python, в том числе и условную инструкцию. Получаем вложенное ветвление – после одной развилки в ходе исполнения программы появляется другая развилка. При этом вложенные блоки имеют больший размер отступа (например, 8 пробелов). Покажем это на примере программы, которая по данным ненулевым числам x и y определяет, в какой из четвертей координатной плоскости находится точка (x,y): x = int(input()) y = int(input()) if x > 0: if y > 0: # x>0, y>0 print("Первая четверть") else: # x>0, y<0 print("Четвертая четверть") else: if y > 0: # x<0, y>0 print("Вторая четверть") else: # x<0, y<0 print("Третья четверть") В этом примере использовали комментарии – текст, который интерпретатор игнорирует. Комментариями в Питоне является символ # и весь текст после этого символа до конца строки. Операторы сравнения Как правило, в качестве проверяемого условия используется результат вычисления одного из следующих операторов сравнения:
Например, условие (x * x < 1000) означает “значение x * x меньше 1000”, а условие (2 * x != y) означает “удвоенное значение переменной x не равно значению переменной y”. Операторы сравнения в Питоне можно объединять в цепочки (в отличии от большинства других языков программирования, где для этого нужно использовать логические связки), например, a == b == c или 1 <= x <= 10. Задачи: Выясните, пройдет ли кирпич с размерами a×b×c в прямоугольное окно размером x×y, где a, b, c, x, y – действительные положительные числа. Вывести ответ "Да" или "Нет". -print("Введите значения сторон кирпича a*b*c: ") a = float(input("Длина-a = ")) b = float(input("Ширина-b = ")) c = float(input("Высота-c = ")) print("Введите значения сторон окна x*y: ") x = float(input("Длина-x = ")) y = float(input("Ширина-y = ")) if a <= x and b <= y: print("No") else: print("Yes") Определите, является ли треугольник, который определен координатами вершин (x1,y1), (x2,y2), (x3,y3), тупоугольным. Если а, b, c – длины сторон, то треугольник тупоугольный, если выполняется одно из неравенств: -print("Введите значения сторон треугольника: ") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) if a**2 + b**2 < c**2: print("Тупоугольный") elif a**2 + c**2 < b**2: print("Тупоугольный") elif b**2 + c**2 < a**2: print("Тупоугольный") else: print("Не-тупоугольный") ; ; ; Определите, делится ли заданное целое число N нацело на 2, на 3, на 2 и 3, либо не делится ни на 2, ни на 3. Вывести соответствующее сообщение. -print("Введите значение N: ") N1 = float(input("N1 = ")) N2 = N1/2 N3 = N1/3 if N1/2 == round(N2): print("Делиться на 2") elif N1/3 == round(N3): print("Делиться на 3") else: print("Ни на что не делиться") Определите, имеются ли в положительном трехзначном целом числе одинаковые цифры. Вывести ответ «Да» или «Нет». -import random Numbers = range(100,999) N = random.choice(Numbers) print("Случайное число = ", N) a = 4-len(set(str(N))) if a == 1: print("Нет") else: print("Да") Определите, делится ли последняя цифра трехзначного целого числа N на 3. -print("Случайное трехзначное число") a = int(input()) print(a % 10) a2 = a/3 if a/3 == round(a2): print("ДА") else: print("НЕТ") Контрольные вопросы: Что из себя представляют аналог операторских скобок в Python? Представляет из себя отступ для дальнейшей работы кода и программы Что называется разветвляющимся алгоритмом? Алгоритм с ветвлением (разветвляющийся) — это алгоритм, в котором в зависимости от результатов проверки условия выполняется либо одно действие, либо другое. Каков синтаксис условного оператора Python? Синтаксис оператора if прост — сначала надо написать ключевое слово if, после него — условие, а в самом конце строки должно быть двоеточие. Нарисуйте блок-схему (например, средствами Word) для следующей задачи: Вычислите значение функции у: y = sin(x), если x ≥ 1 y = cos(x), если x < 1 |