Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

Задание № 1

Работа с наборами данных БЕЗ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА (GUI)
формулировка Во внешнем файле resourse_1.txt дан текст. Выведите все слова, встречающиеся в тексте, по одному на каждую строку, через пробел укажите количество повторений. Слова должны быть отсортированы по убыванию их количества появления в тексте, а при одинаковой частоте появления — в лексикографическом порядке. Вывод должен осуществляться в текстовый файл result_1.txt. При необходимости можно продублировать вывод в консоль.
Методические указания После того, как вы создадите словарь всех слов, необходимо отсортировать его по частоте встречаемости слова. Желаемого можно добиться, если создать список, элементами которого будут кортежи из двух элементов: частота встречаемости слова и само слово. Например, [(2, ‘hi’), (1, ‘what’), (3, ‘is’)]. Тогда стандартная сортировка будет сортировать список кортежей, при этом кортежи сравниваются по первому элементу, а если они равны — то по второму. Знаки препинания не должны учитываться.

Программу сохранить под именем exercise_1.py

Входные данные Преподаватель вводит текст в текстовый файл resourse_1.txt (5-6 абзацев) и сохраняет его.

hi

hi

what is your name

my name is bond

james bond

my name is damme

van damme

claude van damme

jean claude van damme

Выходные данные Выведите ответ на задание № 1 в текстовый файл result_1.txt.

Damme 4

Is 3

Name 3

Van 3

Bond 2

claude 2

hi 2

my 2

james 1

jean 1

what 1

 

Задание № 2

Разработка экспертной системы С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)
формулировка Некоторый банк хочет внедрить систему управления счетами клиентов, поддерживающую следующие операции:

  1. Пополнение счета клиента.
  2. Снятие денег со счета.
  3. Запрос остатка средств на счете.
  4. Перевод денег между счетами клиентов.
  5. Начисление процентов всем клиентам.
Методические указания Необходимо реализовать такую систему. Первоначально у банка 1 клиент. Клиент(ы) банка идентифицируются именами (уникальная строка, не содержащая пробелов). Вам необходимо задать в качестве имени клиента – свою фамилию на английском языке с большой буквы. На вашу фамилию должен быть открыт счет с суммой равной вашему ID.

Ivanov 70121903

В отдельном поле должна быть предусмотрена возможность ввода простых команд, которые поддерживают следующие операции:

DEPOSIT name sum Зачислить сумму sum на счет клиента name. Если клиента нет, то он создается и на него заводится счет с указанной суммой.
WITHDRAW name sum Снять сумму sum со счета клиента name. Если клиента, то счет создается. Баланс при выполнении такой операции у вновь созданного клиента должен быть отрицательный.
BALANCE name Узнать остаток средств на счету клиента name. Для каждого запроса BALANCE программа должна вывести остаток на счету данного клиента. Если же у клиента с запрашиваемым именем не открыт счет в банке, выводится сообщение «NO CLIENT». Если пользователь не указал имя клиента – то выводится баланс всех существующих клиентов.
TRANSFER name1 name2 sum Перевести сумму sum со счета клиента name1 на счет клиента name2. Если у какого-либо клиента, то он заводится в системе и ему создается счет с переведенной суммой.
INCOME p Начислить всем клиентам, у которых открыты счета, p% от суммы счета. Проценты начисляются только клиентам с положительным остатком на счету, если у клиента остаток отрицательный, то его счет не меняется. После начисления процентов сумма на счету остается целой, то есть начисляется только целое число денежных единиц. Дробная часть начисленных процентов отбрасывается.

 

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

Количество команд, которые может ввести пользователь за один раз – не более 20. При необходимости следует предусмотреть прокрутку в поле. Пользователю допускается вводить «пустые строки» — несколько раз нажимать на кнопку «enter». При нажатии клавиши ввода «enter», фокус не должен переходить на кнопку «Calculate».

Формат и внешний вид окна определяет разработчик. Для «очистки» левого и правого полей можно предусмотреть кнопку «Clear», при этом данные о ранее введенных клиентах не должны быть потеряны.

ВАЖНО:

1. Команды вводятся пользователем только большими буквами. Сама команда, имя клиента, суммы (числа) разделяются пробелами.

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

3. Как только для несуществующего ранее клиента проводится операция пополнения (DEPOSIT), снятия (WITHDRAW) или перевода денег (TRANSFER), он вносится в систему, ему заводится счет с указанным балансом. Все дальнейшие операции проводятся только с этим счетом. Сумма на счету может быть как положительной, так и отрицательной, при этом всегда является целым числом.

Программу сохранить под именем exercise_2.py

Входные данные Преподаватель вводит текст в текстовый файл resourse_2.txt (5-6 абзацев) и сохраняет его.
Выходные данные Выведите ответ на задание № 1 в текстовый файл result_2.txt.

Damme 4

Is 3

Name 3

Van 3

Bond 2

claude 2

hi 2

my 2

james 1

jean 1

what 1

 

Задание № 3

Разработка аналитической системы С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)
формулировка Разработать калькулятор со стандартным и расширенным функционалом.

Стандартный функционал

  1. Арифметические действия + — * /.
  2. Возможность ввода отрицательного числа
  3. Возведение в степень.
  4. Извлечение квадратного корня.
  5. Работа с памятью, состоящей из одной ячейки.
  6. Должна быть кнопка сброса и кнопка «=» (равно).

Расширенный функционал

1.      Наличие кнопки/меню перехода в расширенный режим

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

3.      Отображение последовательности математических операций и цифр в n-строчном «дисплее», с возможностью «прокрутки». Количество строк «дисплея» калькулятора выбирается согласно методическим указаниям.

4.      Реализация «инженерных» функций расширенного режима. Конкретный перечень функций выбирается согласно методическим указаниям.

Методические указания Необходимо разработать программу и GUI для реализации стандартных функций калькулятора. Примерный вид внешнего интерфейса представлен на рисунке.

screenshot 1 22

Конкретная компоновка элементов интерфейса, внешний вил, цветовая палитра, максимальное количество отображаемых цифр, число отображаемых строк на «дисплее» калькулятора могут отличаться от представленного рисунка и должны согласовываться с руководителем курсовой работы.

 

Функционал «инженерного» режима работы калькулятора добавляется при нажатии на кнопку перехода в расширенный режим, либо выбора соответствующего пункта меню.

Расширенный режим работы определяется внешним видом «цифрового дисплея», количеством ячеек памяти (кнопки M+, M-, MS, MR, MS) и кнопками, отвечающими за дополнительные функции.

 

Количество строк «цифрового дисплея» должно определяться как последовательная сумма всех цифр ID студента. Суммирование отдельных цифр числа должно осуществляться до получения однозначного числа, состоящей из 1-й цифры. Данный процесс рекомендуется реализовать с помощью рекурсивной функции. Для данной функции должна быть предусмотрена специальная кнопка .screenshot 2 20

Например: обучающийся Иванов Иван Иванович, имеет ID 80121986

Сумма всех цифр равна:

8+0+1+2+1+9+8+6=35;

3+5=8

Следовательно, «цифровой дисплей» калькулятора должен иметь 8 строк.

screenshot 3 19

 

Если после последовательного суммирования ID получилась цифра «1», например, для ID=82121986:

8+2+1+2+1+9+8+6=37;

3+7=10

1+0=1

В этом случае количество строк «цифрового дисплея» должно быть равно 10.

Таким образом, в зависимости от ID число «цифровых строк» дисплея калькулятора может варьироваться от 2-х до 10.

 

Количество ячеек памяти калькулятора должно определяться как последовательная сумма последних 3-х чисел ID. Суммирование отдельных цифр числа должно осуществляться до получения однозначного числа, состоящей из 1-й цифры. Данный процесс также рекомендуется реализовать с помощью рекурсивной функции.

Например: обучающийся Иванов Иван Иванович, имеет ID 80121986

Сумма последних трёх цифр равна:

9+8+6=23;

2+3=5

Следовательно, должно быть предусмотрено 5 ячеек памяти для работы с (M+, M-, MС, MR, MS).

screenshot 4 19

Если после последовательного суммирования 3-х цифр ID получилась цифра «1», например, для ID=82121001:

0+0+1=1;

В этом случае количество ячеек памяти должно быть равно 2.

Таким образом, в зависимости от ID число ячеек памяти (и соответствующих кнопок, реализующий данный функционал) калькулятора может варьироваться от 2-х до 9.

 

Дополнительные функции расширенного режима, которые должны быть реализованы определяются в соответствие с таблицей по первой букве Фамилии обучающегося

Первая буква

фамилии

Наименование функции Описание функции
А Pi, sin,tan,exp, n!, Frac Число Пи, синус, тангенс, экспонента, факториал; отсекает целую часть, оставляет дробную
Б asin, acos, atg, log_xy, n! Арксинус, арккосинус, арктангенс, логарифм по основанию, факториал
В //, ctg, 10х,  asin, acos Целочисленное деление, котангенс, 10 в степени х, арксинус, арккосинус
Г F – E, y√x, lg10 переключает ввод чисел в экспоненциальном представлении и обратно, y-ый корень числа x, где y обычно является положительным целым числом, десятичный логарифм
Д gcd(a, b);  tanh, Ln, X3 Возвращает наибольший общий делитель a и b;  гиперболический тангенс, натуральный логарифм по основанию «e»; возвести в степень 3
Е hypot(x, y),  isqrt(),  Sinh, Mod функция вычисляет гипотенузу треугольника c катетами x и y; Возвращает целочисленный квадратный корень аргумента, округлённый вниз;  гиперболический синус, вычислить остаток от деления одного числа на другое
Ж tanh, Ln, X3,  Frac гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3; отсекает целую часть, оставляет дробную
З sinh-1,  exp,  asin, acos обратный гиперболический синус,  экспонента,  арксинус, арккосинус
И Mod,  tanh,  asin, acos вычислить остаток от деления одного числа на другое, гиперболический тангенс;  арксинус, арккосинус
К Ln, X3,  Dms,  sin натуральный логарифм по основанию «e», возвести в степень 3; переводит из десятичного вида в формат в градусы, минуты, секунды; синус
Л Х3,  asin, acos Возведение в куб,  арксинус, арккосинус
М Sinh, Mod,  y√x, lg10 гиперболический синус, вычислить остаток от деления одного числа на другое;  y-ый корень числа x, где y обычно является положительным целым числом, десятичный логарифм
Н deg,  y√x, lg10,  sin, cos перевод угла в градусах, минутах и секундах в десятичные доли градуса;  y-ый корень числа x, где y обычно является положительным целым числом, десятичный логарифм; синус, косинус
О Int,  Pi,  tanh, Ln, X3 отображает целую часть десятичного числа, число Пи, выдает значение Pi для расчетов; гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3
П Inv, sin, cos, tan обратная функция для sin, cos, tan, переключает интерфейс на другие функции; синус; косинус; тангенс
Р Dms, sin, cos, tan переводит из десятичного вида в формат в градусы, минуты, секунды; синус; косинус; тангенс
С Dms, 10^x,  Pi,  tanh, Ln переводит из десятичного вида в формат в градусы, минуты, секунды; возведение десяти в произвольную степень, число Пи, гиперболический тангенс, натуральный логирифм
Т F – E,  acos, atg, log_xy, n! переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус, арктангенс, логорифм по основанию, факториал
У Pi, sin,tan,exp,  asin, acos Число Пи, синус, тангенс, экспонента,  арксинус, арккосинус
Ф Mod,  tanh, Ln, X3,  exp,  asin, acos вычислить остаток от деления одного числа на другое, гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3,  экспонента,  арксинус, арккосинус
Х pow(a, b),   n!,  F – E,  acos функция выполняет возведение числа a в степень b и возвращает затем вещественный результат; вычисление факториала;  переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус
Ц Pi, sin,tan,  floor() Число Пи, синус, тангенс;  Округляет число до ближайшего целого, но в меньшую сторону
Ч sin, cos, tan,  Ln, X3 синус; косинус; тангенс; натуральный логарифм по основанию «e», возвести в степень 3
Ш Mod,  tanh,   F – E,  acos вычислить остаток от деления одного числа на другое, гиперболический тангенс,  переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус
Щ F – E,  acos,  tanh, Ln, X3 переключает ввод чисел в экспоненциальном представлении и обратно; арккосинус;  гиперболический тангенс, натуральный логарифм по основанию «e», возвести в степень 3
Э tanh, Ln, X3,  log_xy, n! гиперболический тангенс, натуральный логирифм, возведение в куб, логорифм по основанию, факториал
Ю X3, 10^x,  Pi,  tanh возведение в куб, возведение десяти в произвольную степень, число Пи, гиперболический тангенс
Я tanh,  asin, acos,  F – E гиперболический тангенс; арксинус, арккосинус, переключает ввод чисел в экспоненциальном представлении и обратно

 

Примерный внешний вид, реализующий данный функционал может быть следующим:

screenshot 5 19

ВАЖНО:

1. Программа должна использовать распространенные библиотеки. Если с согласия руководителя предполагается для реализации дополнительных функций и отрисовки интерфейса использование сторонних библиотек, то в пояснительной записке к курсовой работе должно быть представлено обоснование и подробное их описания.

2. При разработке программы следует использовать принципы объектно-ориентированного программирования.

3. Калькулятор должен работать и корректно выдавать результат.

4. Размер кнопок, цветовая палитра, расположение и т.п. определяется самостоятельно. Внешний вид калькулятора не оценивается, однако следует придерживаться традиционных компоновок.

5. При намеренном выполнении некорректных операций, например, извлечение квадратного корня из отрицательного числа, калькулятор должен на цифровой дисплей выдавать соответствующее сообщение об ошибке. Если же программу останавливает интерпретатор – то проверяемая функция считается не до конца отработанной.

 

 

Программу «Калькулятор» сохранить под именем exercise_3.py

Входные данные Преподаватель с помощью мыши вводит числа и выполняет арифметические операции.

Преподаватель с помощью мыши вводит числа и выбирает заявленные дополнительные функции.

Преподаватель вводит намеренно некорректные операции (попытка деления на 0)

 

 

Выходные данные На цифровом дисплее должен отображаться результат, либо сообщение об ошибке при некорректной операции.

 

Проверяется количество строк в «цифровом дисплее» калькулятора и количество ячеек памяти.

 

Задание № 4

Задача о Ханойских башнях  

С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ (GUI)

формулировка Модифицированная задача о Ханойских башнях:

Существует 8 шпинделей, пронумерованых от 8 до 1 слева направо. На каждом шпинделе надеты диски, в количестве, равном соответствующей цифре из ID студента. Все диски имеют разные диаметры. Диаметр диска равен M * 10 + N, где М – номер шпинделя, на котором надет диск, а N – это номер диска на шпинделе, считая сверху вниз.

1.      Необходимо визуально изобразить предложенную задачу.  Диски на шпинделях сделать случайных цветов. На каждом диске отображать цифру, равную его диаметру. Диаметр диска также показывать его фактическим размером в пикселях.

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

а) За одну итерацию можно переместить не более одного диска

б) Диски можно класть только с большего на меньший

в) Со шпинделя номер 8 можно перекладывать диски только на шпиндели 7 и 6

г) Со шпинделя номер 1 можно перекладывать диски только на шпиндели номер 2 и 3

д) Со шпинделей от 2 по 7 можно перекладывать диски только на два соседних шпинделя.

3. Необходимо отобразить начальное и конечное расположение дисков на шпинделях, для этого под изображением Ханойских башен предусмотреть две кнопки «Начало» и «Окончание». При нажатии на нее, в надписи под схемой должен выводится текст «Итерация ХХ», где ХХ – номер итерации (либо 0, либо номер итоговой итерации, соответственно).

4. Необходимо графически отобразить четыре промежуточные итерации перекладывания дисков. Для этого:

а) общее количество итераций признаётся равным 100%,

б) ID студента делится на 4 двузначных числа, каждое из которых обозначает итерацию, соответствующую этому проценту выполнения общей задачи.

в) Под изображением Ханойских башень предусмотреть четыре поля для ввода цифр с процентами выполнения. По-умолчанию добавить туда числа из п. б)

г) Под каждым полем для ввода предусмотреть кнопку, при нажатии на которую схема Ханойской башни отображает расположение дисков на соответствующей итерации. Также в надписи под схемой должен выводится текст «Итерация ХХ», где ХХ – номер итерации

5. Дать возможность пользователю изменять проценты в полях для ввода цифр, и по нажатию соответствующей кнопки просматривать расположение дисков на данной итерации.

Методические указания Так как задача алгоритмически достаточно проста, то основная часть работы над задачей студента сводится к правильной визуализации полученных результатов, а также оптимальному поиску промежуточных результатов.  Схема ханойских башен должна выглядеть примерно таким образом:

(В данном примере расположение дисков соответствует ID студента 70256421)

Так как размер диска должен соответствовать его номеру на шпинделе и номеру самого шпинделя, умноженного на 10, то как нетрудно догадаться, максимальный диаметр диска может быть 89. Поэтому для правильной визуализации без наложения дисков рекомеднуется выдерживать расстояние между шпинделями примерно в 100-120 пикселей (для окна формата 1280х1024).

Поскольку диски близких размеров будут отличаться всего на один пиксель, то для контроля на каждом диске необходимо проставить его диамер в виде цифры. Так как в конце задачи все диски будут находиться на первом шпинделе, а общее количество дисков теоретически может быть равно 72, то рекомендуется сделать толщину одного диска примерно равной 10-12 пикселям, для указанного окна.

Остальные элементы управления под схемой Ханойской башни рекомендуется выстраивать в следующем порядке:

На данном рисунке также видно, как следует разбивать ID студента для выведения промежуточных итогов.  При нажатии на кнопки, нужно показать итерации, соответствующие 70%, 25%, 64% и 21% выполнения задачи.

Уточнение

Если по какому-либо проценту получается дробная итерация, то необходимо её визуализировать как промежуточный этап переноса диска. При этом диск изобразить в воздухе, между тем шпинделем, с которого он снят, и тем, на который он переносится.  Номер итерации в таком случае отображать как дробный, с округлением до 3 цифр после нуля.

Программу сохранить под именем exercise_4.py

Входные данные Идентификатор студента.

 

Промежуточные проценты, вводимые преподавателем в соответсвующие поля над кнопками.

Выходные данные На цифровом дисплее должно отображаться окно с начальным расположением дисков на шпинделях Ханойских башень. Шпиндели пронумерованы, на дисках также обозначены соответствующие диаметры.  Под ней отображается шесть кнопок и четыре поля для ввода цифр. В нижней части экрана демонстрируется надпись «Итерация 0»

 

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

Была ли полезна данная статья?
Да
61.04%
Нет
38.96%
Проголосовало: 1101

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

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Написать в MAXНаписать в TelegramНаписать в WhatsApp