Файл: ПП. Практические работы.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

колледж при МГУТУ, 2015

П-203

Прикладное программирование/ПР

ПП1-0-20 Программа-тест по предмету «Прикладное программирование». Создайте программу-тест из 10 во-

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

1 уровень

ПП1-1-1 Программа-календарь (по году, месяцу, числу – день недели) с удобным вводом (с выпадающим спис-

ком).

ПП1-1-2 Программа нахождения решения неравенства ax + b знак 0 (удобный ввод с выпадающим списком

знака неравенства).

ПП1-1-3 Программа нахождения решения неравенства ax

2

+bx+c знак 0 (удобный ввод с выпадающим списком

знака неравенства).

ПП1-1-4 Программа учета расходов и доходов по месяцам: в элементы управления вводятся доходы за январь-

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

ПП1-1-5 Программа поиска обратной матрицы для матрицы 3 × 3.

ПП1-1-6 Программа для изучения ассемблера. Программа должна позволять вводить два двоичных 32-битных

числа и выполнять операции ADD, SUB и показывать флаги: AF, CF, SF, PF, ZF, OF

ПП1-1-7 Программа нахождения центра и радиуса окружности по координатам трех точек, принадлежащих

ей.

ПП1-1-8 Напишите игру «Пятнашки».

ПП1-1-9 Программа решения системы уравнений

ax + by + c

=

0

dx + ey + f

=

0

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

ПП1-1-10 Программа перевода даты (год, месяцу, число) из григорианского календаря в юлианский и обратно

с удобным вводом (с выпадающим списком).

ПП1-1-11 Программа нахождения площади меньшей из частей круга, порождаемых пересечением круга и пря-

мой, по координатам центра и радиусу круга и по координатам двух точек прямой.

ПП1-1-12 Программа деления двух многочленов: не более, чем четвертой степени, на не более, чем второй.

ПП1-1-13 Программа-игра чет-нечет, где человек задумывает, а программа отгадывает четность/нечетность

загаданных чисел. Программа должна анализировать загадываемые человек числа с целью предска-
зания, выявляя закономерности длиной от 1 до 10 чисел: в случае если человек регулярно загадывает
одинаковую последовательность чисел такой длины, то программа с некоторого момента должна их
угадывать всегда. Если человек чаще всего после некой последовательности длины от 1 до 10 чисел
загадывает чет (или нечет), то программа данное явление также должна выявлять.

ПП1-1-14 Программа решения уравнения ax

2

+ bx + c = 0, где все представленные числа – комплексные.

ПП1-1-15 Программа-калькулятор для матриц 2 × 2. Пользователю доступно задание матриц 2 × 2 и кнопки +,

-, *, /, =, C

1.5 уровень

ПП1-1.5-1 Напишите аналог игры 2048.

ПП1-1.5-2 Программа нахождения площади пересечения двух кругов, заданных координатами центров и ради-

усами.

ПП1-1.5-3 Пусть по некоторым координатам на плоскости установлены столбики. Пользователь окружает верев-

кой пространство, где расположены эти столбики и максимально ее стягивает. В результате веревка
образует многоугольник. Определите ее вершины по координатам расположения столбиков. Столби-
ков не более 10. Указание: обсуждение этой задачи есть в книге Шеня.

ПП1-1.5-4 Программа-калькулятор /без использования встроенного компонента/. Напишите аналог программы-

калькулятора, входящего в Windows, работающего только в обычном (неинжинерном) режиме

ПП1-1.5-5 Программа-калькулятор /без использования встроенного компонента/. Напишите аналог программы-

калькулятора, входящего в Windows, работающего только в обычном (неинжинерном) режиме, осу-
ществляющего ввод-вывод в 16-ой системе счисления. Калькулятор работает только с целыми
числами, не требуется реализовывать корень, нахождение обратного числа и проценты. Деление ра-
ботать должно как целочисленное (div)

6


background image

колледж при МГУТУ, 2015

П-203

Прикладное программирование/ПР

ПП1-1.5-6 Программа-игра в обычные крестики-нолики с компьютером.

ПП1-1.5-7 Программа нахождения площади пересечения любого числа треугольников (до 100). Вводятся коор-

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

2 уровень

ПП1-2-1 Программа приведения матрицы 3 × 3 к главному ступенчатому виду по шагам (пользователь вво-

дит матрицу и нажимая кнопку много раз последовательно видит процесс приведения матрицы к
главному ступенчатому виду)

ПП1-2-2 Программа нахождения пересечения двух многоугольников. Вводятся координаты вершин двух вы-

пуклых многоугольников (до десятиугольников включительно), вывести координаты вершин и пло-
щадь многоугольника, который получится в пересечении. Не забудьте сделать проверку на то, что
исходные многоугольники выпуклые. Относительно алгоритма проверка многоугольника на выпук-
лость смотрите статью на Habrahabr: http://habrahabr.ru/post/147691/.

ПП1-2-3 Программа-калькулятор /без использования встроенного компонента/. Напишите аналог программы-

калькулятора, входящего в Windows, работающего только в обычном (неинжинерном) режиме, рабо-
тающий с обыкновенными дробями (состоящими из знака, целой части, числителя и знаменателя).

ПП1-2-4 Программа обучения делению столбиком. Пользователь вводит два числа и на экран выводится то

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

ПП1-2-5 Программа обучения переводу из 10-ой в другие системы счисления (от 2-ичной до 36-ричной). Нужно

для введенного числа и основания системы счисления вывести то, как выглядит процесс перевода
(как обучали в школе – с промежуточным делением столбиком). Можно считать, что количество
вспомогательных Label’ов не превышает 50 (их можно создать заранее).

ПП1-2-6 Программа перевода выражений из обычной формы в обратную польскую форму записи. Допустимы

арифметические операции, скобки. В обычной форме действуют обычные правила приоритета. В
выражениях используются названия переменных (правила как в Паскале) и числовые константы
(правила как в Паскале для типов integer и real).

ПП1-2-7 Программа обучения делению столбиком многочленов. Пользователь вводит два многочлена и на

экран выводится то как выглядит само деление столбиком (можно считать, что количество промежу-
точных вычитаний не превышает 10).

2.5 уровень

ПП1-2.5-1 Программа-калькулятор с комплексными числами. Напишите аналог программы-калькулятора, вхо-

дящего в Windows, работающего только в обычном (неинжинерном) режиме.

ПП1-2.5-2 Программа-игра с компьютером в крестики-нолики на поле 4×4. Рекомендуем также почитать статью:

http://www.iqfun.ru/articles/tic-tac-toe-silverman.shtml

ПП1-2.5-3 Напишите программу нахождения корней многочлена 3-ей степени. Многочлен и корни над полем

комплексных чисел. Надо изучить формулу Кардано.

ПП1-2.5-4 Программа разложения данного натурального числа в произведение неприводимых гауссовых чисел.

ПП1-2.5-5 Программа нахождения квадратного корня из целого числа в пространстве p-адических чисел.

ПП1-2.5-6 Программа-игра с компьютером в крестики-нолики на поле 5×5. Рекомендуем также почитать статью:

http://www.iqfun.ru/articles/tic-tac-toe-silverman.shtml

ПП1-2.5-7 Программа обучения нахождения наибольшего общего делителя двух многочленов (надо учить собственно

делению и вычислению дальше – пока не получится наибольший общий делитель).

3 уровень

ПП1-3-1 Напишите программу нахождения корней многочлена 4-ой степени. Многочлен и корни над полем

комплексных чисел. Надо изучить формулу Феррари.

ПП1-3-2 Напишите программу нахождения корней многочлена до 10-ой степени включительно (над полем

действительных чисел) в действительных числах. Для решения этой задачи необходимо использо-
вать следующие темы: ряд Штурма, деление многочленов, метод аналогичный методу дихотомии для
уточнения корней.

7


background image

колледж при МГУТУ, 2015

П-203

Прикладное программирование/ПР

ПП1-3-3 Программа решения системы трех линейных уравнений с тремя неизвестными. Результатом решения

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

3. Содержание отчета:

(a) Исходный текст программы

(b) Ответ на контрольные вопросы

4. Контрольные вопросы:

(a) Какие Вы использовали компоненты в программе, объясните их назначение.

(b) Что такое исключение? Как использовать это понятие в практическом программировании?

(c) Что такое событие? Как это понятие используется в событийно-ориентированном программировании?

4

Практическая работа №2. Программирование графики и таймера (6
часов)

1. Цель работы: практическое изучение компонентов TImage, TChart, TTimer, TOpenDialog; класса TCanvas.

2. Порядок выполнения:

(a) осуществите визуальное проектирование пользовательского интерфейса формы (1-ое задание);

(b) разработайте методы – обработчики тех событий, что необходимо использовать в вашей программе

(1-ое задание);

(c) приведите вашу программу в соответствие с требованиями (1-ое задание).

(d) осуществите визуальное проектирование пользовательского интерфейса формы (2-ое задание);

(e) разработайте методы – обработчики тех событий, что необходимо использовать в вашей программе

(2-ое задание);

(f) приведите вашу программу в соответствие с требованиями (2-ое задание).

Второе задание для всех студентов имеет нулевой уровень.

Варианты заданий:

1 задание

0 уровень

Идея решения заданий на кинематику состоит в том, что время разбивается на «кванты» (небольшие
промежутки), на каждом промежутке времени полагается (приблизительно), что движение является рав-
ноускоренным. При рассчётё движения на каждом кванте времени вычисляется равнодействующая сил,
далее применяется второй закон Ньютона, и далее вычисляется координата и скорость движущегося тела
в конце кванта времени.

Задания на геометрическую оптику решаются просто путем нахождения точек пересечения с ближайшей
преградой и постепенного рисования линий (пока эта точка не будет достигнута).

ПП2.1-0-1 Пользователь выбирает начальную скорость мяча, направление движения мяча, массу, а программа

показывает замедленный «мультфильм» того, как мячик летит с учетом упругого отскока от поверх-

ности (Земли) и сопротивления воздуха (

Fс = −α

v ). α так же указывается в элементе управления

ПП2.1-0-2 Пользователь выбирает начальную скорость мяча, направление движения мяча (на бильярдном сто-

ле), массу, а программа показывает замедленный «мультфильм» того, как мячик летит с учетом

упругого отскока от границ бильярдного стола и силы сопротивления (

Fс = −α

v ). α так же указы-

вается в элементе управления. Лунки учитывать не требуется.

ПП2.1-0-3 Пользователь выбирает начальное направление луча света и круг. После чего программа показывает

(в замедленном режиме) распространение этого луча света в предположении, что границы рисунка –
идеальные зеркала, а круг состоит из полностью поглощающего свет материала.

ПП2.1-0-4 Пользователь выбирает начальное направление двух лучей света и месторасположение (координаты)

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

8


background image

колледж при МГУТУ, 2015

П-203

Прикладное программирование/ПР

ПП2.1-0-5 Пользователь выбирает начальное направление луча света и прямоугольник, у которого стороны

параллельны осям. После чего программа показывает (в замедленном режиме) распространение этого
луча света в предположении, что границы рисунка – идеальные зеркала, а прямоугольник состоит из
полностью поглощающего свет материала.

ПП2.1.0-6 Пользователь выбирает начальное направление луча света и треугольник (координатами вершин).

После чего программа показывает (в замедленном режиме) распространение этого луча света в пред-
положении, что границы рисунка – идеальные зеркала, а треугольник состоит из полностью погло-
щающего свет материала.

ПП2.1-0-7 Пользователь управляет шаром (для этого нужно использовать события onKeyDown), который пере-

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

ПП2.1-0-8 Пользователь управляет рисованием двумя линиями внутри прямоугольной области (непрерывны-

ми), используя клавиши-стрелки и ТАБ (для переключения между линиями). Первые точки линий
задаются координатами в TEdit.

ПП2.1-0-9 Пользователь выбирает радиусы двух дисков и скорость вращения одного из них. Программа рисует

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

ПП2.1-0-10 Нарисуйте тележку, которая передвигается между двумя краями рисунка с правильным отображени-

ем вращения ее колес. Скорость движения выбирается пользователем. При достижении края рисунка
скорость мгновенно меняется на противоположно направленную.

ПП2.1-0-11 Нарисуйте следующее движение. Нить зацеплена за зубчик вращающегося диска, эта нить переки-

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

ПП2.1-0-12 Нарисуйте следующее движение. Шар с заданной начальной скоростью и радиусом катится по гори-

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

ПП2.1-0-13 Моделирование движения спутника. Нарисуйте следующее движение. Один шар неподвижен,

другой шар имеет начальную скорость (вектор, задается пользователем), при этом на него дейтсвует
сила в направлении первого шара, имеющая величину

k

r

2

, где k вводится пользователем, а r – рассто-

яние от шара до неподвижного шара. Движение прекращается в случае, если шары соприкасаются.

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

ПП2.1-0-14 Нарисуйте следующее движение. Шар движется по поверхности, расположенной к горизонту под

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

ПП2.1-0-15 Нарисуйте следующее движение. Один диск расположен неподвижно, другой вращается, при этом (за

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

ПП2.1-0-16 Нарисуйте следующее движение. Шар движется по поверхности, расположенной к горизонту под

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

ПП2.1-0-17 Пользователь выбирает начальную скорость мяча, направление движения мяча (на бильярдном сто-

ле), массу, а программа показывает замедленный «мультфильм» того, как мячик летит с учетом
упругого отскока от границ бильярдного стола. Если при этом мяч попадает в квадрат данного раз-
мера вблизи углов бильярдного стола, то он исчезает (проваливается в лунку).

ПП2.1-0-18 На одной горизонтальной прямой расположены центры двух шаров, которые движутся в направлении

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

9


background image

колледж при МГУТУ, 2015

П-203

Прикладное программирование/ПР

ПП2.1-0-19 На одной горизонтальной прямой расположены центры двух шаров одинаковой массы, но разных

радиусов (задаются пользователем). Шары движутся в направлении этой прямой со скоростями, за-
даваемыми пользователем. При достижении границ рисунка шары упруго отскакивают; аналогично
упруго отскакивают они и друг от друга. Нарисуйте такое движение.

ПП2.1-0-20 Рисунок по горизонтали разделен на две одинаковые по размеру части. Предполагается, что сверху

показатель преломления α, снизу – β. Границы рисунка – идеальные зеркала. Пользователь выбирает
место источника луча и начальное направление луча света, после чего программа показывает (в
замедленном режиме) распространение этого луча света.

ПП2.1-0-21 Рисунок по горизонтали разделен на три одинаковые по размеру части. Предполагается, что сверху

и снизу показатель преломления α, а посередине среда – это вакуум. Границы рисунка – идеальные
зеркала. Пользователь выбирает место источника луча и начальное направление луча света, после
чего программа показывает (в замедленном режиме) распространение этого луча света.

ПП2.1-0-22 Рисунок по горизонтали разделен на две одинаковые по размеру части. При этом левая половина

разделительной линии – зеркальная, а правая – прозрачная. Предполагается, что сверху показатель
преломления α, снизу среда – вакуум. Границы рисунка – идеальные зеркала. Пользователь выбирает
место источника луча и начальное направление луча света, после чего программа показывает (в
замедленном режиме) распространение этого луча света.

ПП2.1-0-23 На одной горизонтальной прямой расположены центры двух кубов, которые движутся в направлении

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

1 уровень

ПП2.1-1-1 Пользователь выбирает начальную скорость двух мячей, направление движения мячей (на бильярд-

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

сопротивления (

Fс = −α

v ). α так же указывается в элементе управления. Лунки учитывать не

требуется.

ПП2.1-1-2 Пользователь выбирает координаты расположения и направление испускания источника света и коор-

динаты левого верхнего и правого нижнего угла прямоугольника, соответствующего емкости с веще-
ством, у которого показатель преломления α (также вводится). Предполагается, что границы рисунка
– это идеально отражающие зеркала. Покажите, как будет идти луч света (в чрезвычайно замедлен-
ной «съемке») от источника (след луча света на рисунке остается).

ПП2.1-1-3 Пользователь выбирает координаты расположения источника света (напрвление луча перпендикуляр-

но линзе) и координаты начала и конца отрезка, символизирующего линзу с фокусным расстоянием
f (также вводится). Предполагается, что границы рисунка – это идеально отражающие зеркала. По-
кажите, как будет идти луч света (в чрезвычайно замедленной «съемке») от источника (след луча
света на рисунке остается).

ПП2.1-1-4 Пользователь выбирает начальную скорость двух мячей, направление движения мячей (на бильярд-

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

ПП2.1-1-5 Пользователь выбирает координаты расположения и направление испускания источника света и ко-

ординаты вершин треугольника, соответствующего емкости с веществом, у которого показатель пре-
ломления α (также вводится). Предполагается, что границы рисунка – это идеально отражающие
зеркала. Покажите, как будет идти луч света (в чрезвычайно замедленной «съемке») от источника
(след луча света на рисунке остается).

ПП2.1-1-6 Пользователь выбирает начальную скорость двух мячей, направление движения мячей (на бильярд-

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

ПП2.1-1-7 Пользователь выбирает начальную скорость мяча, направление движения мяча (на бильярдном сто-

ле), а программа показывает замедленный «мультфильм» того, как мяч летит с учетом упрогого

10