Файл: Лабораторные работы Султонов Фирдавс.docx

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

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

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

Добавлен: 14.03.2024

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

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

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

СОДЕРЖАНИЕ

Оглавление

Лабораторная работа №1 «Запись арифметических выражения на языке Python. Обработка исключений. Запись информации в текстовый файл. Создание пользовательских функций»

Лабораторная работа №2 «Программирование алгоритмов разветвляющихся структур. Нахождение максимального и минимального значения»

Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»

Часть 1

2 Часть

Арифметическое выражение лр1: Арифметическое выражение лр2:

Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»

Лабораторная работа №5 «Табулирование функции»

Лабораторная работа №6 «Работа с библиотеками Python»

Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»

3. Выполнение проекта и получение результатов

4.Доказательство правильности работы программ

Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»

1.Задание на разработку проекта

2.Разработка алгоритма

3.Выполнение проекта и получение результатов

4.Доказательство правильности работы программ

Лабораторная работа №9 «Работа с кортежами»

Лабораторная работа №10 «Работа со словарями»

1 Часть

2. Разработка алгоритма

2 Часть

Лабораторная работа №11 «Работа со списками»

Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»

Лабораторная работа №13 «Работа со вложенными последовательностями»

Дополнительное задание «Реализация пошаговой детализации»

3. Выполнение проекта и получение результатов

root.mainloop()


3.Выполнение проекта и получение результатов

На рисунках 1-3 показаны результаты работы программы с тестирование 3-х веток кусочно-ломанной функции:

Рисунок 18 - Результат работы программы первой ветки

Рисунок 19 - Результат работы программы второй ветки

Рисунок 20 - Результат работы программы третьей ветки

4.Доказательство правильности работы программ

Все выведенные значения совпадают с результатами работы программы из ЛР№2 (Рисунок 4):

Рисунок 21 - Результаты программы из ЛР№2

Лабораторная работа №9 «Работа с кортежами»

  1. Задание на разработку проекта

Дан кортеж из 10 элементов. Элементы кортежа могут принимать целые значения от 0 до 1000 включительно. Необходимо найти в этом массиве максимальный элемент, шестнадцатеричная запись которого заканчивается максимальным (по значению) символом.

Для выполнения задания следовало разработать:

  1. Функцию koteg(a), предназначенную для нахождения максимального значения в заданном кортеже в шестнадцатеричной записи

  2. В функции korteg(a) осуществить поиск максимального значения по заданному условию.

  3. В функции korteg(a) осуществить вывод полученного результата

В основной части программы осуществить создание кортежа, а также выполнение пользовательской функции. Протестировать программу на другом кортеже.

Формализация задания:

Чтобы перевести число в шестнадцатеричную запись, без использования внешних библиотек, достаточно просто вычислить остаток от деления числа на 16. Этот остаток будет и записью числа в шестнадцатеричной системе, только сокращенно.

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


  1. Разработка алгоритма

На рисунке 1 показана блок-схема пользовательской функции korteg():

Рисунок 22 - Блок-схема функции korteg(), которая находит максимальный элемент в кортеже в шестнадцатеричной записи.

На рисунке 2 показана блок-схема основной части программы.

Рисунок 23 - Блок-схема основной части программы

Ниже представлен код пользовательской функции, а также код основной части программы.

Код пользовательской функции:

def koteg(kort):

maximum = kort[0]

for i in kort:

if i%16 > maximum%16:

maximum = i

return maximum

Код основной части программы

a = (592, 82, 776, 542, 899, 600, 26, 38, 567, 447)

rez = koteg(a)

print('Кортеж элементов: \n', a)

print('Максимальное число в кортеже в десятичной системе: ', rez)

print('Максимальное число в кортеже в шестнадцатеричной системе: ', rez%16)


  1. Выполнение проекта и получение результата

Далее на рисунке 3 показан результат работы программы:

Рисунок 24 - Результат работы программы

  1. Доказательство правильности работы программы

Рисунок 25 - Тестирование программы на других значениях

На рисунке 4 показано тестирование программы на новом кортеже:

Лабораторная работа №10 «Работа со словарями»

1 Часть

  1. Задание на разработку проекта

Дана таблица результатов тестирования учащихся по информатике и географии:

1

Ученик

Школа

География

Информатика

2

Лиштаев Евгений

1

81

79

3

Будин Сергей

2

63

90

4

Христич Анна

5

62

69

5

Иванов Данила

7

63

74

6

Глотова Анастасия

4

50

66

7

Лещенко Владислав

1

60

50

Написать программу, позволяющую определить:

  1. Чему равна наибольшая сумма баллов по двум предметам среди учащихся школы №5?

  2. Сколько процентов от общего числа учеников получили по информатике не менее 45 баллов?


Для выполнения задания следовало разработать:

  • Функцию inf_geo(n), позволяющую находить сумму баллов по двум предметам

  • В функции inf_geo(n) организовать вывод значений.

  • Функцию inf(n), позволяющую находить процент учеников, которые получили по информатике больше 45 баллов

  • В функции inf(n) организовать вывод ответа в процентах.

В основной части программы реализовать создание пустого класса Tpupil(), в котором впоследствии создаётся список учеников, которые вводит сам пользователь. Осуществить выполнение функций, а также вывод ответа.

Формализация задания:

Для того чтобы создать пустой класс, нужно после объявления класса написать pass и закрыть класс. После создать пустой список и начать циклический алгоритм, с помощью которого этот список наполняется значениями, которые вводит пользователь. В функциях inf_geo(n) и inf(n) с помощью циклического алгоритма перебирать значения списка и, если они совпадают с заданными условиями соответственно работать с ними.

2. Разработка алгоритма

Ниже представлена блок-схема функции inf_geo(n) по нахождению суммы баллов по двум предметам среди учащихся школы №5 (Рисунок 1)

Рисунок 1 - Блок-схема функции inf_geo(), которая находит сумму баллов по двум предметам среди учащихся школы №5.

Ниже представлена блок-схема функции inf() для выведения процентажа учеников, у которых баллы больше 45. (Рисунок 2)

Рисунок 2 - Блок-схема функции inf(), которая находит процентаж учеников у которых баллы больше 45.

Рисунок 3 - Блок-схема основной части программы

На рисунке 3 показана блок-схема основной части программы.

Ниже представлен код программы:

Код программы:

class Tpupil:

pass

pupils = []

n = int(input('Сколько учеников в хотите добавить? '))

for i in range(n):

pupils.append(Tpupil())

print('Введите информацию о ', str(i + 1), ' ученике: ')

pupils[i].name = str(input('Имя и Фамилия ученика: '))

pupils[i].school = int(input('Номер школы: '))