Отчет 3. Лабораторная работа 3 Циклы Работу Лукин Егор Максимович Группа иэс16617 Часть 1 Задание 1
Скачать 110.47 Kb.
|
НИУ «МЭИ» Инженерно-Экономический Институт Лабораторная работа №3 Циклы Работу выполнил: Лукин Егор Максимович Группа: ИЭС-166-17 Часть 1 Задание 2.1 Разработать блок схему и программу для решения задач «Задания 1, 2», стр. 59. Даны целые числа K и N (N > 0). Вывести N раз число K Решение: K, N = input("Введите K, N через пробел: ").split(' ') for i in range(int(K)): print(N) Результат: Задание 2.2 Разработать блок схему и программу для решения задач «Задания 1, 2», стр. 59. Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел. Решение: A, B = input('A, B: ').split(' ') A, B = int(A), int(B) count = 0 for i in range(A, B + 1): count += 1 print(i) print("Всего: ",count - 1) Результат: Задание 3 Разработать блок схему и программу для решения задачи «Задание 7», стр. 60. Вычислить суммы Решение: S = 0 for i in range(1, 100): S += 1/(3*i +2) print("S1 = ", S) S = 0 for i in range(1, 100): S = 1/(i ** 2) print("S2 = ", S) Результат: Задание 4 Разработать блок схему и программу для решения одной задачи из таблицы «Задание 1», стр. 62. Задачу решить с использованием оператора цикла for. 2) Sin(1/x), a = pi/8, b = 2/pi, m = 15 Решение: import math a = math.pi/8 b = math.pi/8 m = 15 h = (b-a)/m print(a, b) for x in range(a, b, h): print(math.sin(1/x)) Результат: Часть 2 Задание 5 Разработать блок схему и программу для задания 6 из раздела «Задания», стр. 60 с использованием двух вариантов организации цикла. Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + … + 1/N Решение: N = int(input("N -> ")) summ, i = 0, 0 while(i < N): if(i == 0): summ += 1 else: summ += 1/i i += 1 print(summ) Результат: Задание 6 Разработать блок схему и программу для задания 7 из раздела «Задания», стр. 60 с использованием трех вариантов организации цикла. Решение 1: S = 0 for i in range(1, 100): S += 1/(3*i +2) print("S1 = ", S) S = 0 for i in range(1, 100): S = 1/(i ** 2) print("S2 = ", S) Решение 2: i, S1, S2 = 1, 0, 0 while(i < 100): S1 += 1/(3*i + 2) S2 += 1/(i**2) i += 1 print("S1 = ", S1) print("S2 = ", S2) Результат: Часть 3 Задание 1 Разработать блок схему и программу для одного из вариантов задания 1, стр. 62. 2) Sin(1/x), a = pi/8, b = 2/pi, m = 15 Решение: import math a = math.pi/8 b = math.pi/8 m = 15 h = (b-a)/m print(a, b) for x in range(a, b, h): print(math.sin(1/x)) Результат: Задание 2 Разработать блок схему и программу для одного из вариантов задания 2, стр. 62. Используя операторы цикла с предусловием и постусловием, найти сумму ряда с точностью e= 10-3 и e = 10-4, общий член которого an. Определить, сколько членов ряда просуммировано.
Решение: n = int(input("n = ")) print(n**2/3**n) Результат: Задание 3 Решить задачу 1 из файла «Доп материал по теме Алгоритм организации счетчика в теле цикла». Сначала в варианте, представленном в файле, затем добавить фрагмент программы. Вычислить значения функции z(i), которая определена таким образом: для 100 значений i=1,2,...,100. Решение: import math z, i, k = 0, 1, 0 for i in range(100): if i % 2 == 0: z = math.sqrt(i) * math.cos(i) else: z = math.sin(i/2) if z > 0.5: k += 1 print("Количество = ", k) Результат: Задание 4 Решить задачу 2 из файла «Доп материал по теме Алгоритм организации счетчика в теле цикла». Сначала в варианте, представленном в файле. Затем доработать текст программы таким образом, чтобы выполнялась проверка корректности введенных данных. Известны оценки за экзамен по информатике для группы из n студентов, 2≤n≤25. Оценить количественную (Yкол) и качественную (Yкач) успеваемость группы по формулам: , , где k1 - количество "троек", "четверок" и "пятерок", k2 - количество только "четверок" и "пятерок". Решение: n = int(input("кол-во учеников: ")) if ((2 >= n) or (n >= 25)): print("неверное число!!!") else: Ykach, Ycol = 0, 0 k1, k2 = 0, 0 for i in range(0, n): a = int(input("Введите оценку студента: ")) if (a > 2): k1 += 1 if a > 3: k2 += 1 Ycol = k1/n*100 Ykach = k2/n*100 print('Количественная: ',Ycol) print('Качественная: ', Ykach) Результат: Задание 5 Решить задачу построение таблицы значений функции от двух переменных. Вывести на экран таблицу значений функции f от двух переменных: z и x. zпринимает значения: от 2 до 4.5 с шагом 0.5. X принимает значения: 0.1; 0.3; 0.5; 0.7; 0.9 Решение: import math z, x, f = 2, 0.1, 0 print("z | ", " x | ", " f(x) ") while(z < 4.5 or x <= 0.9): f = math.tan(x) + z z += 0.5 x += 0.2 print("%g" % z,"| ", "%g" % x, "| ", "%g" % f) Результат: Часть 4 Задача 1 В институте максимальный номер группы первого курса дневного отделения равен 17 (номер группы лежит в диапазоне от 1 до 17). Разработать программу, которая дает возможность ввести номер группы только из диапазона: номер группы> = 1 И номер группы <= 17. Если номер группы принадлежит указанному диапазону, то на экран вывести сообщение: Группа ИМ-хх-17 Где хх – номер группы, введенный с клавиатуры. Решение: n = 0 while(n < 1 or n > 17): n = int(input("Введите номер группы из диапозона от 1 до 17: ")) print("Группа ИМ-" + str(n) + "-17") Результат: Задача 2 Вычислить значение функции у(х) для десяти значений x (вводятся с клавиатуры). Функция определена таким образом: Вычисления прекратить, если введено значение x, для которого функция не определена. Решение: import math for i in range(10): x = 0 x = int(input('введите -10 < х > 10: ')) a = int(input('a -> ')) if x < 0 and x > -10: b = a**2 * math.fabs(x) print(b) elif x > 0 and x > 10: print(math.cos(x**2)) else: print("Введено неверное число!") i = 0 Результат: Задача 3 Основное условие – условие задачи 2. Рассмотреть два варианта выполнения программы (реализовать сначала вариант 1, затем – вариант 2): Вариант 1. Если введено значение х, для которого функция не определена, то вывести сообщение об этом и вычисление функции прекратить. Вариант 2. Если введено значение х, для которого функция не определена, то вывести сообщение об этом и продолжить вычисление функции. Решение: import math num = int(input('Номер варианта: ')) for i in range(10): x = 0 x = int(input('введите -10 < х > 10: ')) if x == 0 and num == 1: print("Функция не определена.") break elif num == 2: a = int(input('a -> ')) if x < 0 and x > -10: b = a**2 * math.fabs(x) print(b) elif x > 0 and x > 10: print(math.cos(x**2)) Результат: Задача 4 Разложение функции ex в ряд:
Решение: import math x = int(input('x -> ')) e = 0 for i in range(0, x): if i == 0: e += 1 else: e += x**i/math.factorial(i) print("С помощью формулы: ", e) print("С помощью exp:", math.exp(x)) if e == math.exp(x): print("Одинаковы") else: print("Неодинаковы") Результат: |