Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2курс 2сем / TP_Ianysheva_lr_4

.docx
Скачиваний:
10
Добавлен:
16.04.2021
Размер:
80.81 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

доцент, канд. техн. нау, доцент

А. В. Аграновский

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №4

Смешанные алгоритмы

по дисциплине: Технологии программирования

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург 2019

1. Постановка задачи

Вариант №9. Дан текст. Определите количество различных литер в данном тексте.

Результатом работы программы является целое число.

На вход подаётся строка.

2. Математическая модель

В процессе чтения строки записываем все литеры, которые не встречались до этого. По окончании чтения строки считаем сколько литер выписали.

3. Описание разработанной программы

Список входных данных представлен в таблице №1.

Таблица №1 - Список входных данных

Имя переменной

Тип переменной

Назначение

text

String

Данный текст

Список выходных данных представлен в таблице №2.

Таблица №2 - Список выходных данных

Имя переменной

Тип переменной

Назначение

n

Int

Количество уникальных литер

Программа вычисляет значение по модели, приведённой в п. 2.

Блок-схема разработанной программы представлена на рисунке 1.

Начало

Ввод текста

Конец строки?

да нет

Читаем литеру

Литера уникальна?

Читаем следующую литеру

да нет

Записываем литеру

Вывод n

Конец

Рисунок 1 – Блок-схема программы

Листинг программного кода:

def LAB_4_VAR_9(text):

list = set() #Объявляем множество, куда будем выписывать литеры

for i in text: #Перебор символов

if i.isalpha(): #Проверка является ли символ литерой

list.add(i.lower())

return len(list) #В списках не может быть повторяющихся элементов

def TEST(name, expected, argument): #Автоматизация тестирования

test = LAB_4_VAR_9(argument)

print("Test", name, end = " ")

if test == expected:

print("passed!")

else:

print("not passed! Returned:", test)

def TEST_LAB_4_VAR_9():

text = "Собака лает,\n Лес шумит."

TEST("Simple", 12, text)

text = "Python 3 - высокоуровневый язык программирования общего назначения.\n Разработчики языка Python придерживаются философии 'The Zen of Python'."

TEST("Hard", 35, text)

TEST_LAB_4_VAR_9()

4. Описание тестового набора

Тестирование будет производиться на следующих данных, представленных в таблице №3.

Таблица №3 – Тестовый набор

Входные данные (text)

Результат программы

Ожидаемый результат

"Собака лает,\n Лес шумит."

12

12

"Python 3 - высокоУровневый язЫк программИрования Общего назначЕния.\n РазрабОтчики языкА Python придЕрживаются филосОфии 'The Zen of Python'."

35

35

Ожидаемые результаты работы программы получены ручным расчётом.

Первый тест направлен на определение корректности работы программы при небольшом количестве символов.

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

5. Пример работы программы

На рисунке 2 представлен пример работы программы.

Рисунок 2 – Пример работы программы

6. Выводы

В ходе выполнения лабораторной работы была реализована программа подсчёта по математической модели. Были получены практические навыки написание расчётных программ на языке программирования Python.

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

Соседние файлы в папке 2курс 2сем