Помощь студентам дистанционного обучения: тесты, экзамены, сессия
Помощь с обучением
Оставляй заявку - сессия под ключ, тесты, практика, ВКР
Заявка на расчет

Лабораторная работа по программированию (Вариант 15)

Автор статьи
Валерия
Валерия
Наши авторы
Эксперт по сдаче вступительных испытаний в ВУЗах
Титульный лист Лабораторная работа 1. (Общее задание) Постановка задачи Получен массив строк source_data следующей структуры: id, Название, Цена оптовая, Цена розничная, Полное название, Модель, Код. Разделителем полей является знак табуляции. 1. Напишите код функции get_price, которая будет выводить название и розничную цену картриджей заданного цвета color. Данные отсортируйте по возрастанию цены.При запуске программы будет вызвана основная функция main. Все остальные функции будут вызываться из нее. Цвет картриджа вводится с клавиатуры. 2. Создайте функцию, которая рассчитывает среднюю цену картриджа заданного цвета. Выведите содержимое словаря на экран в порядке возрастания средней цены. 3. Дополнительное задание. Усовершенствуйте программу на ваше усмотрение. Приведен фрагмент программного кода. Требуется завершить программу, следуя заданиям и указаниям в комментариях. # -*- coding: utf-8 -*- source_data = [‘1067 HP 03A C3903A чер. для LJ5p/5mp/6p/6mp 3 828,07 3 403,75 Картридж Hewlett-Packard для LJ 5P/5mp/6p/6mp C3903A 2054’, ‘11429 HP 92A C4092A желт.для LJ1100/1100A/3200 2 534,07 2 253,18 Картридж Hewlett-Packard для LJ 1100 C4092A 2069’, ‘12151 HP 96A C4096A чер.для LJ 2100/2200 4 369,27 3 884,96 Картридж Hewlett-Packard для LJ 2100 C4096A 2070’, ‘12355 HP 29X C4129X чер. пов. емк. для LJ5000 6 902,21 6 137,14 Картридж Hewlett-Packard для LJ 5000 C4129X 2073’, ‘12356 HP 82X C4182X голуб. пов. емк. для LJ 8100 8 090,74 7 193,93 Картридж Hewlett-Packard для LJ 8100/HP Mopier 320 C4182X 2083’, ‘24874 Canon EP-22 чер.для LBP-1120/800/810 2 124,07 2 124,07 Картридж CANON EP-22 (HP C4092A) EP-22 2426’, ‘29694 HP 15A C7115A чер.для LJ 1000/1200/1220 2 636,89 2 344,60 Картридж Hewlett-Packard LJ 1200 C7115A 2211’, ‘31416 Toshiba T-1550E чер. 4 лепесткадля 1550/1560 613,56 545,55 Тонер Toshiba 1550/1560 4\’EU vers.(туб. 240г.) (о) T-1550E 4\’EURO T-1550E 4 EURO 3851’, ‘43701 HP 43X C8543X чер. пов. емк. для LJ9000 11 104,70 9 873,80 Картридж Hewlett-Packard LJ 9000 C8543X 2225’, ‘45275 Xerox 109R00639 чер.для Ph3110/3210 5 556,05 4 940,19 Тонер-картридж XEROX PHASER 3110/3210 (o) 109R00639 0624’] def get_price(color): # напишите здесь ваш код функции, которая выводит названия и цены def main(): initial_color=input() get_price(initial_color) if __name__ == «__main__»: main() Доработкой данного задания будет являться выбор цвета картриджа. Пользователю будет предоставлен список цветов, из которого будет выбран нужный цвет. Полный код программы представлен ниже: import re source_data = [‘1067 HP 03A C3903A чер. для LJ5p/5mp/6p/6mp 3 828,07 3 403,75 Картридж Hewlett-Packard для LJ 5P/5mp/6p/6mp C3903A 2054’, ‘11429 HP 92A C4092A желт. для LJ1100/1100A/3200 2 534,07 2 253,18 Картридж Hewlett-Packard для LJ 1100 C4092A 2069’, ‘12151 HP 96A C4096A чер. для LJ 2100/2200 4 369,27 3 884,96 Картридж Hewlett-Packard для LJ 2100 C4096A 2070’, ‘12355 HP 29X C4129X чер. пов. емк. для LJ5000 6 902,21 6 137,14 Картридж Hewlett-Packard для LJ 5000 C4129X 2073’, ‘12356 HP 82X C4182X голуб. пов. емк. для LJ 8100 8 090,74 7 193,93 Картридж Hewlett-Packard для LJ 8100/HP Mopier 320 C4182X 2083’, ‘24874 Canon EP-22 чер. для LBP-1120/800/810 2 124,07 2 124,07 Картридж CANON EP-22 (HP C4092A) EP-22 2426’, ‘29694 HP 15A C7115A чер. для LJ 1000/1200/1220 2 636,89 2 344,60 Картридж Hewlett-Packard LJ 1200 C7115A 2211’, ‘31416 Toshiba T-1550E чер. 4 лепестка для 1550/1560 613,56 545,55 Тонер Toshiba 1550/1560 4\’EU vers.(туб. 240г.) (о) T-1550E 4\’EURO T-1550E 4 EURO 3851’, ‘43701 HP 43X C8543X чер. пов. емк. для LJ9000 11 104,70 9 873,80 Картридж Hewlett-Packard LJ 9000 C8543X 2225’, ‘45275 Xerox 109R00639 чер. для Ph3110/3210 5 556,05 4 940,19 Тонер-картридж XEROX PHASER 3110/3210 (o) 109R00639 0624’] #данные в виде матрицы source_list = list() # список доступных цветов colors_list = list() #данные, сгруппированные по цвету group_by_color_dict = dict() def parse_source_data(): for data_row in source_data: # разбиение на строки и наполнение source_list данными list_item = data_row.split(‘\t’) list_item[2] = float(list_item[2].replace(‘ ‘, »).replace(‘,’,’.’)) list_item[3] = float(list_item[3].replace(‘ ‘, »).replace(‘,’,’.’)) source_list.append(list_item) for row in source_list: # получение набора доступных цветов color = re.search(r’\b\w+\.’, row[1])[0] if color not in colors_list: colors_list.append(color) # группировка данных по цвету if color not in group_by_color_dict: group_by_color_dict[color] = list() group_by_color_dict[color].append(row) def get_price(color): return sorted(group_by_color_dict[color], key=lambda x: x[3]) def get_average_price_for_all_colors(): avg_price_dictionary = dict() for key in group_by_color_dict: total_price = sum(row[3] for row in group_by_color_dict[key]) avg_price = total_price / len(group_by_color_dict[key]) avg_price_dictionary[key] = avg_price return avg_price_dictionary def main(): parse_source_data() for i, m in enumerate(colors_list, 1): print(f'[{i}] — {m}’) color_id = int(input(‘Введите номер цвета картриджа: ‘)) initial_color = colors_list[color_id-1] print(f’\n — Список картриджей выбранного цвета: {initial_color} —\n’) for row in get_price(initial_color): print(f'{row[1]:<50} | {row[3]:.2f}’) print(f’\n — Список усредненных цен на картриджи: {initial_color} —\n’) for key, value in get_average_price_for_all_colors().items(): print(f'{key:<7}| {value:.2f}’) if __name__ == «__main__»: main() Тестирование программы: При запуске программы, исходя из данных source_data, пользователю выдается сообщение о необходимости выбрать цвет. Выбор цвета происходит вводом соответствующего номера: Если выбран черный цвет: Рис. 1. Если выбран желтый цвет: Рис. 2. Если выбран голубой цвет: Рис. 3. Далее выводится список усредненных цен на картриджи: Рис. 4. Т.к. исходя из данных source_data количество желтых и голубых картриджей равно 1, то остается проверить правильность подсчета средней розничной цены у черных картриджей: (545.55+2124.07+2344.60+3403.75+3884.96+4940.19+6137.14+9873.80)/8 = 4156.76 Индивидуальное задание. I вариант Получен массив строк следующей структуры: id, Название, Цена оптовая, Цена розничная, Полное название, Модель, Код. Разделителем полей является знак табуляции. 1. Напишите код функции get_flash_price, которая будет выводить название и розничную цену флеш-накопителей заданного размера size_of_flash. Данные отсортируйте по возрастанию цены. При запуске программы будет вызвана основная функция main. Все остальные функции будут вызываться из нее. Размер флешки вводится с клавиатуры. Московский технологический институт Объектно-ориентированный подход в программировании Лабораторный практикум 2. Создайте функцию, которая рассчитывает среднюю цену флешки заданного объема. Выведите на экран все объемы флешек и средние цены в порядке возрастания средней цены, используя созданную функцию. 3. Дополнительное задание. Усовершенствуйте программу на ваше усмотрение. Ход работы: 3 пункт индивидуального задания: дополнить программу выводом всех флеш-накопителей, сгруппированных по размеру Ниже представлен код программы: import re source_data = [‘103504 Netac U351 16 Гб. [NT03U351N-016G-30BK] 220 250 Память USB Flash 16 ГБ Netac U351 NT03U351N 30BK’, ‘103505 Mirex Elf 16 Гб.[13600-FMURDE08] 260,50 300,99 Память USB Flash 16 ГБ Mirex Elf FMURDE08 13600’, ‘103746 Goodram UTS2 16 Гб.[UTS2-0160K0R11] 300.78 340,87 Память USB Flash 16 ГБ Goodram UTS2 0160K0R11 UTS20160K0R11’, ‘104593 Samsung BAR Plus 64 Гб.[MUF-64BE3/APC] 1500 1600.34 Память USB Flash 64 ГБ Samsung BAR Plus 64BE3/APC MUF64BE3’, ‘104762 Samsung BAR Plus 128 Гб.[MUF-128BE3/APC] 2300,99 2499,99 Память USB Flash 128 ГБ Samsung BAR Plus 128BE3/APC MUF128BE3’, ‘105473 Goodram UTS2 32 Гб.[UTS2-0320K0R11] 340 380 Память USB Flash 32 ГБ Goodram UTS2 0320K0R11 UTS20320K0R11’, ‘104725 Samsung BAR Plus 256 Гб.[MUF-256BE3/APC] 4300,87 4399.54 Память USB Flash 256 ГБ Samsung BAR Plus 256BE3/APC MUF256BE3’, ‘104972 Kingston DataTraveler 100 G3 64 Гб.[DT100G3/64GB] 800 850 Память USB Flash 64 ГБ Kingston DataTraveler 100 G3 DT100G3 64100G3’, ‘104653 Transcend JetFlash 700 128 Гб.[TS128GJF700] 1400.45 1499 Память USB Flash 128 ГБ Transcend JetFlash 700 TS128GJF700 28GJF’, ‘105736 Sandisk Ultra Flair 32 Гб.[SDCZ73-032G-G46] 600 699 Память USB Flash 32 ГБ Sandisk Ultra Flair SDCZ73 032GG46’, ‘185635 Silicon Power B02 128 Гб.[SP128GBUF3B02V1K] 1300.99 1399,99 Память USB Flash 128 ГБ Silicon Power B02 SP128GB F3B02V1K’, ‘187323 Sandisk Cruzer Fit 16 Гб.[SDCZ33-016G-G35] 400.99 450,54 Память USB Flash 16 ГБ Sandisk Cruzer Fit SDCZ33 016GG35’ ] #данные в виде матрицы source_list = list() # список доступных доступных объемов накопителей sizes_list = list() #данные, сгруппированные по цвету group_by_size_dict = dict() def parse_source_data(): for data_row in source_data: # разбиение на строки и наполнение source_list данными list_item = data_row.split(‘\t’) list_item[2] = float(list_item[2].replace(‘ ‘, »).replace(‘,’,’.’)) list_item[3] = float(list_item[3].replace(‘ ‘, »).replace(‘,’,’.’)) source_list.append(list_item) for row in source_list: # получение набора доступных объемов накопителей match = re.search(r'(\b\d+)\s*[Гг][Бб]’, row[1]) size = int(match[1]) if size not in sizes_list: sizes_list.append(size) # группировка данных по размеру накопителей if size not in group_by_size_dict: group_by_size_dict[size] = list() group_by_size_dict[size].append(row) sizes_list.sort() def get_price(color): return sorted(group_by_size_dict[color], key=lambda x: x[3]) def get_average_price_for_all_sizes(): avg_price_dictionary = dict() for key in group_by_size_dict: total_price = sum(row[3] for row in group_by_size_dict[key]) avg_price = total_price / len(group_by_size_dict[key]) avg_price_dictionary[key] = avg_price return avg_price_dictionary def main(): parse_source_data() for i, m in enumerate(sizes_list, 1): print(f'[{i}] — {m}’) last_id = len(sizes_list)+1 print(f'[{last_id}] — отобразить полный перечень флеш-накопителей:’) id = int(input(‘Введите цифру, соответствующую объему накопителя: ‘)) if id == last_id: for key, value in sorted(group_by_size_dict.items()): print(f’\n— Флеш-накопители объемом {key} Гб.—‘) for row in value: print(f'{row[4]:<55} {row[3]:.2f}’) else: size_of = sizes_list[id-1] print(f’\n — Список флеш-накопителей выбранного объема: {size_of} Гб. —\n’) for row in get_price(size_of): print(f'{row[1]:<50} | {row[3]:.2f}’) print(f’\n— Список усредненных цен на флеш-накопители: —\n’) for key, value in sorted(get_average_price_for_all_sizes().items()): print(f'{key}Гб.\t| {value:.2f}’) if __name__ == «__main__»: main() Тестирование программы: При запуске программы, исходя из данных source_data, пользователю выдается сообщение о необходимости выбрать объем накопителя. Выбор объема накопителя происходит вводом соответствующего номера: Если выбран накопитель объемом 16 Гб: Рис. 5. Если выбран накопитель объемом 32 Гб: Рис. 6. Если выбран накопитель объемом 64 Гб: Рис. 7. Если выбран накопитель объемом 128 Гб: Рис. 8. Если выбран накопитель объемом 256 Гб: Рис. 9. Отображение полного списка флеш-накопителей и их средней цены: Рис. 10. Необходимо проверить правильность подсчета усредненных цен: Для накопителей на 16 Гб. средняя розничная цена равна: (250+300.99+340.87+450.54)/4=335.60 Для накопителей на 32 Гб. средняя розничная цена равна: (380+699)/2=539.50 Для накопителей на 64 Гб. средняя розничная цена равна: (1600.34+850)/2=1225.17 Для накопителей на 128 Гб. средняя розничная цена равна: (2499.99+1499+1399.99)/3=1799.66 Для накопителей на 256 Гб. недостаточно данных, чтобы определить среднюю цену, т.к. с данным объемом представлен один товар Тестирование выполнено, программа работает корректно. Задачи лабораторной работы выполнены.

или напишите нам прямо сейчас

Написать в WhatsApp Написать в Telegram

О сайте
Ссылка на первоисточник:
=HYPERLINK("https://ipkido.ru/")
Поделитесь в соцсетях:

Оставить комментарий

Inna Petrova 18 минут назад

Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики

Иван, помощь с обучением 25 минут назад

Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Коля 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 часов назад

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

Иван, помощь с обучением 6 часов назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Василий 12 часов назад

Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.

Иван, помощь с обучением 12 часов назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Анна Михайловна 1 день назад

Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?

Иван, помощь с обучением 1 день назад

Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Сергей 1 день назад

Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.

Иван, помощь с обучением 1 день назад

Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инна 1 день назад

Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?

Иван, помощь с обучением 1 день назад

Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Студент 2 дня назад

Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.

Иван, помощь с обучением 2 дня назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Ольга 2 дня назад

Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2

Иван, помощь с обучением 2 дня назад

Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вика 3 дня назад

сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.

Иван, помощь с обучением 3 дня назад

Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Игорь Валерьевич 3 дня назад

здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО

Иван, помощь с обучением 3 дня назад

Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вадим 4 дня назад

Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ

Иван, помощь с обучением 4 дня назад

Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Кирилл 4 дня назад

Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?

Иван, помощь с обучением 4 дня назад

Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Oleg 4 дня назад

Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?

Иван, помощь с обучением 4 дня назад

Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Валерия 5 дней назад

ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?

Иван, помощь с обучением 5 дней назад

Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 дней назад

Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.

Иван, помощь с обучением 5 дней назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Иван неделю назад

Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки

Иван, помощь с обучением неделю назад

Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Дарья неделю назад

Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.

Иван, помощь с обучением неделю назад

Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru