Файл: Лабораторная работа Вводвывод. Линейный алгоритм Создать программу, автоматизирующую процесс решение задачи в соответствии с.docx

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

Категория: Не указан

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

Добавлен: 25.10.2023

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

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

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


Учебная практика по модулю ПМ02. Разработка внедрение и адаптация программного обеспечения отраслевой направленности

Выполнил – Лаврентьев А.А.

Проверил(а) – Егорова Г.Н.

Вариант 10
Лабораторная работа 1. Ввод-вывод. Линейный алгоритм
Создать программу, автоматизирующую процесс решение задачи в соответствии с вариантом.

  1. В магазин привезли овощи. В первый день продали N% и еще S кг привезенных овощей, после чего в магазине осталось M кг овощей. Сколько килограммов овощей привезли в магазин?



Ниже я указываю переменные a,b,c для того,чтобы формула работала

a = int(input("Введите процент, проданный в первый день: "))

b = float(input("Введите количество овощей, проданных в первый день: "))

c = float(input("Введите количество овощей оставшихся в магазине: "))

x = c / (1 - a / 100) – b #формула которая была дана в задаче

print("Количество овощей привезенных в магазин:", round(x, 2), "кг")

выше выводится результат вычисления количества овощей привезенных в магазин.

В качестве аргументов функция round() используется для округления результата до двух десятичных знаков.



Лабораторная работа 2. Логические операторы

Задача 1

a = int(input("Введите значение переменной a: "))

b = int(input("Введите значение переменной b: "))

if (int(a + b) % 9 == 0):

print("Выражение истинно")

else:

print("Выражение ложно")

Главное не забывать делать отступ перед print, поскольку у меня выходила ошибка : IndentationError: expected an indented block,и пришлось гуглить эту ошибку чтобы найти решение,поскольку код простой , и он был правильным. Ниже текст с сайта с ошибкой:

Компьютер знает, что в Python после двоеточия в цикле идёт тело цикла, которое отделяется отступами. В нашем коде команда цикла начинается на том же уровне, что и начало цикла, а в Python так не принято. Компилятор ругается, что не хватает отступов, и просит обратить на это внимание.




Задача 2

x = int(input("Введите значение переменой x: "))

y = int(input("Введите значение переменной y: "))

if x or y and not(x):

print("Выражение истинно")

else:

print("Выражение ложно")



Решение похоже на 1,и тут тоже нужно сделать отступ чтобы код заработал.

Задача 3

x = input("Введите значение переменной x (true/false): ")

if x.lower() == 'true':

x = True

else:

x = False

if not(x or not(x)) and not (x):

print("Выражение истинно")

else:

print("Выражение ложно")



not(x or not(x)) - это отрицание выражения, которое означает: (x или не x), т.е. True в любом случае, кроме того, когда x = False.

not (x) - это просто отрицание x. Если оба условия истинны, то выражение в if-конструкции вернет True. В остальных случаях будет False.

Метод lower() — это строковый метод, который возвращает новую строку полностью в нижнем регистре. Если исходная строка содержит прописные буквы, в новой строке они будут строчными. При этом любая строчная буква или любой символ, не являющийся буквой, не изменяется.

Лабораторная работа 3.1 Математические функции

Написать программу для расчета по формулам в соответствии с вариантом, представленном в таблице.



import math

alpha1 = float(input("Введите значение угла в градусах: "))

sin_alpha = math.sin(math.radians(4*alpha1))

cos_alpha = math.cos(math.radians(alpha1))

z = sin_alpha + math.pow(cos_alpha, 4) * math.cos(math.radians(2*alpha1)) + math.pow(cos_alpha, 2)

print("Значение выражения равно:", z)

В начале надо установить модуль math для использования функций sin и cos. Затем запросить значение угла alpha1, переводим его из градусов в радианы и вычисляем значения sin alpha и cos alpha.

Далее мы используем эти значения для вычисления переменной z по формуле. И потом выводим результат командой print

Теперь, если ввести значение, например, 30, то программа выведет на экран значение выражения z, которое будет равно 1.8972754037844388



Лабораторная работа 3.2 Ветвление
Составить программу, которая определяет, попадает ли точка с заданными координатами

X, Y в закрашенную область. Значение радиусавводится с клавиатуры.


import math

x = float(input("Введите X: "))

y = float(input("Введите Y: "))

r = float(input("Введите радиус круга: "))

if x <= 0 and y <= 0 and math.sqrt(x**2 + y**2) <= r:

print("Точка ({}, {}) попадает в закрашенную область".format(x, y))

else

print("Точка ({}, {}) не попадает в закрашенную область".format(x, y))

import math – Добавление библиотеки math для того, чтобы был доступ к математическим формулам

float – функция чтобы можно было писать числа с запятой

input – функция чтобы можно было получать вводимую с клавиатуры информацию

if – если формула верна то оно выводит True, т.е. в случае из задачи print("Точка ({}, {}) попадает в закрашенную область".format(x, y))

else- если формула не верна, то выводит print("Точка ({}, {}) не попадает в закрашенную область".format(x, y))

math.sqrt – функция чтобы получить квадратный корень из числа

Что получилось:



Задание 2

Составить программу для вычисления значения функции в соответствии со своим вариантом. В качестве f(x) использовать по выбору: x2, ex.

Значения переменных x,y,b вводит пользователь. Операция max-нахождение максимума, операция min – нахождения минимума. Эти операции реализовать самостоятельно через if.



import math
x = float(input("Введите значение переменной x: "))

q = float(input("Введите значение переменной q: "))

b = input("Введите операцию (max или min): ")
if abs(x*q) > 10:

k = (x**2 + abs(q)) * math.exp(x**2+q)

k = math.log(k, 10)
elif abs(x*q) < 10:

k = abs(x*q)
else:

k = 0
if b == "max":

result = max(k, x, q)
elif b == "min":

result = min(k, x, q)
print("Результат =", result)





Ключевое слово elif - это способ Python сказать, что “если предыдущие условные были неверными, тогда попробуйте это условное”.

Лабораторная работа 4. Циклы
Задание 1. Создать программу, автоматизирующую процесс решение задачи в соответствии с вариантом.


Известны оценки по физике каждого из 20 учеников класса. Определить среднюю оценку. Решить задачу используя циклическую конструкцию for.
grades = []
for i in range(20):

grade = int(input("Введите оценку для ученика {}: ".format(i+1)))

grades.append(grade)
total_grades = sum(grades)

num_grades = len(grades)
average_grade = total_grades / num_grades
print("Средняя оценка по физике: ", average_grade)


Grades – с помощью этой функции мы создаем список для хранения оценок

For – цикл чтобы не печатать в ручную в коде, т.е. не нужно будет отдельно прописывать print для всех 20 учеников

Задание 2.

2.Дано число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 + 1/2 + … + 1/K будет меньше A, и саму эту сумму.

Решить задачу используя циклическую конструкцию while.

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

summa = 0

K = 1

while summa < A:

summa += 1/K

if summa > A:

break

K += 1

print("Наибольшее K:", round(K-1))

print("Соответствующая сумма:", round(summa-1/(K-1)))



round – использовал для того, чтобы число выводилось целое

+= - это сокращенная запись операции сложения с присваиванием. Этот оператор позволяет прибавить значение справа от него к переменной слева и сохранить результат в этой же переменной

Лабораторная работа 5. Строки
Создать программу, автоматизирующую процесс решение задачи в соответствии с вариантом.

S = input("Введите слово: ").lower() # Приводим слово к нижнему регистру

last_letter = S[-1] # Получаем последнюю букву слова

if last_letter in "аеёиоуыэюя": # Проверяем, является ли последняя буква гласной

print("Слово оканчивается на гласную букву")

else:

print("Слово оканчивается на согласную букву")



метод lower() - используется для того, чтобы привести слово к одному (к нижнему) регистру, независимо от того, как именно оно было введено

last _letter – нужен чтобы считывать последнюю букву в слове


Лабораторная работа 6. Списки
Создать программу, автоматизирующую процесс решение задачи в соответствии с вариантом.
Задание 1
Создать список имен (должен получиться новый список, в котором длина слов – нечетное число). Начальный список: ['Чебурашка', 'Пьеро', 'Буратино', 'Василиса', 'Иван'].


names = ['Чебурашка', 'Пьеро', 'Буратино', 'Василиса', 'Иван']

odd_length_names = [name for name in names if len(name) % 2 != 0]

print(odd_length_names)



len(name) % 2 != 0 используется для проверки того, является ли длина имени нечётным числом.

Оператор % используется для получения остатка от деления. Если длина имени является чётным числом, то при делении на 2 остаток будет равен 0, и условие len(name) % 2 != 0 не выполнится т.к. это значит что словоо четное. Если нечетная то выполнится

Задание 2

1. Определите, есть ли в списке повторяющиеся элементы, если да, то вывести на экран первое повторяющееся значение, иначе сообщение об их отсутствии.

2. Дан одномерный список из 15 элементов. Элементам списка меньше 10 присвоить нулевые значения, а элементам больше 20 присвоить 1. Вывести на экран монитора первоначальный и преобразованный список в строчку.

A = [21, 2, 3, 1, 8, 23, 43, 5, 6, 7, 0, 28, 25, 29, 43]
# Выводим исходный список на экран

print("Исходный список:")

print(' '.join(map(str,A)))
# Преобразуем список A согласно условию

A = [0 if i < 10 else 1 if i > 20 else i for i in A]
# Выводим преобразованный список на экран

print("Преобразованный список:")

print(' '.join(map(str,A)))
# Проверяем наличие повторяющихся элементов

duplicates = set()

for item in A:

if A.count(item) > 1:

duplicates.add(item)
# Если есть повторяющиеся элементы, выводим первое повторяющееся значение

if duplicates:

print("Первое повторяющееся значение:", duplicates.pop())

else:

print("Повторяющиеся значения отсутствуют")



Лабораторная работа 7. Словарь

Используя словарь реализовать поставленную задачу.

Воспользовавшись записью СТУДЕНТ из варианта №1, определите, какой из предметов был сдан группой хуже всего.

student1 = {

"ФИО": "Осипов Денис Ильич",