Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Султонов Фирдавс.docx
Скачиваний:
6
Добавлен:
08.11.2023
Размер:
2.08 Mб
Скачать
  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('Номер школы: '))

pupils[i].geography = int(input('Кол-во баллов по географии: '))

pupils[i].informatika = int(input('Кол-во баллов по информатике: '))

def inf_geo(n):

for i in range(n):

if pupils[i].school == 5:

k1 = pupils[i].geography

if (pupils[i].geography + pupils[i].informatika) > k1:

k1 = pupils[i].geography + pupils[i].informatika

return k1

def inf(n):

k2 = 0

for i in range(n):

if (pupils[i].informatika >= 45):

k2 += 1

proc = round((k2*100)/n,1)

return proc

summa_ballov = inf_geo(n)

rez = inf(n)

print('Наибольшая сумма баллов по двум предметам среди учащихся школы №5: ', summa_ballov)

print('Процентаж учеников получивших по информатике не менее 45 баллов: ', rez)