3курс 1 сем / TP_Ianysheva_lr_5
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
кандидат тех. наук, доцент |
|
|
|
А.В. Аграновский |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ № 5 |
СМЕШАННЫЕ АЛГОРИТМЫ |
по курсу: ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ |
|
РАБОТУ ВЫПОЛНИЛА
СТУДЕНТКА ГР. № |
4716 |
|
|
|
С.А. Янышева |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург
2019
Постановка задачи
Полученное задание:
Дана последовательность слов из строчных русских букв, разделенных запятыми. Напечатать в алфавитном порядке все глухие согласные буквы, которые не входят ни в одно слово.
Требования к программе:
Конечная цель задания: получить список, не встречающихся в водимых словах, глухих согласных букв.
Ограничения на входные данные: от пользователя требуется ввести набор слов через запятую.
Ограничения на выходные данные: в результате программа выводит список, не встречающихся в водимых словах, глухих согласных букв.
Дополнительные требования к программе: Отсутствуют
Математическая модель:
Введённые данные записываются в список, при этом каждое слово разбивается посимвольно. Полученный список сравнивается со списком, в котором в алфавитном порядке записаны глухие согласные буквы. Если символ встречается в обоих списках то он удаляется из списка глухих букв.
Описание разработанной программы
Список входных данных представлен в таблице №1.
Таблица №1 - Список входных данных
Имя переменной |
Тип переменной |
Назначение |
x |
string |
Аргумент функции |
x1 |
string |
Переменная для теста |
x2 |
string |
Переменная для теста |
x3 |
string |
Переменная для теста |
x4 |
float |
Переменная для теста |
x5 |
string |
Переменная для теста |
x6 |
string |
Переменная для теста |
Вычислительная сложность программы:
Сложность алгоритма
А лгоритм программы:
Листинг программы
def check_input(x): # Проверка введённого значения x на ошибки
try: # Проверка на флоатовское значение
float(x)
except ValueError:
return ('Ok')
x = float(x)
return x
def LAB5_VAR_4(x):
k = check_input(x)
gluh = ['к', 'п', 'с', 'т', 'ф', 'ш', 'ч', 'щ', 'ц', 'х']
stroka = []
if check_input(k) == 'Ok':
stroka += x
z = len(stroka)
for i in range(0, z):
if stroka[i] in gluh:
gluh.remove(stroka[i])
print(gluh)
else:
print('Ошибка. Введено числовое значение')
def TEST_LAB5_VAR_4():
print('Тест 1')
print('x1 = скажи-ка, дядя, ведь, не, даром')
x1 = 'скажи-ка, дядя, ведь, не, даром'
LAB5_VAR_4(x1)
print('----------------------------')
print('Тест 2')
print('x2 = москва, спаленная, пожаром')
x2 = 'москва, спаленная, пожаром'
LAB5_VAR_4(x2)
print('----------------------------')
print('Тест 3')
print('x3 = французу, отдана')
x3 = 'французу, отдана'
LAB5_VAR_4(x3)
print('----------------------------')
print('Тест 4')
print('x4 = 8.000(заданно как число)')
x4 = 8.000
LAB5_VAR_4(x4)
print('----------------------------')
print('Тест 5')
print('x5 = 8.000 (заданно как строка)')
x5 = '8.000'
LAB5_VAR_4(x5)
print('----------------------------')
print('Тест 6')
print('x6 = воссемь')
x6 = 'восемь'
LAB5_VAR_4(x6)
print('----------------------------')
TEST_LAB5_VAR_4()
Описание тестового набора
Тестирование будет производится на следующих данных, представленных в таблице №2.
Таблица №2 – Тестовый набор
Входные данные |
Ожидаемый результат |
Результат теста |
x = скажи-ка, дядя, ведь, не, даром |
['п', 'т', 'ф', 'ш', 'ч', 'щ', 'ц', 'х'] |
Пройден |
x = москва, спаленная, пожаром |
['т', 'ф', 'ш', 'ч', 'щ', 'ц', 'х'] |
Пройден |
x = французу, отдана |
['к', 'п', 'с', 'ш', 'ч', 'щ', 'х'] |
Пройден |
x = 8 |
Ошибка. Введено числовое значение |
Пройден |
x = 8.000 |
Ошибка. Введено числовое значение |
Пройден |
x = восемь |
['к', 'п', 'т', 'ф', 'ш', 'ч', 'щ', 'ц', 'х'] |
Пройден |
Ожидаемые результаты работы программы получены ручным расчетом.
Первый, второй и третий тест направлен на определение корректности работы программы.
Четвертый и пятый тест направлен на выявление ошибки при вводе числового значения.
Шестой тест направлен на определение корректности работы программы.
Пример работы программы
На рисунке 1 представлен пример работы программы.
Рисунок 1 – Пример работы программы
Вывод
Выполняя данную лабораторную работу, я закрепила навык работы со списками и повторила синтаксис циклов.