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

Отладка программных решений. Учебно-методическое пособие для студентов направлений подготовки бакалавриата 09.03.03 «Прикладная информатика», 09.03.04

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
61
8. Абстрактный класс – фигура с функцией прорисовки (параметры
задаются пользователем). Реализации: круг, закрашенный прямоугольник.
======================================================
9. Абстрактный класс, описывающий фигуру (параметры задаются
пользователем). Интерфейс, описывающий метод прорисовки абстрактной фигуры. Классы-наследники от абстрактного класса и интерфейса: квадрат, закрашенный овал.
10. Абстрактный класс, описывающий фигуру (параметры задаются
пользователем). Интерфейс, описывающий метод прорисовки абстрактной фигуры. Классы-наследники от абстрактного класса и интерфейса: прямоугольник, закрашенный круг.
11. Абстрактный класс, описывающий фигуру (параметры задаются
пользователем). Интерфейс, описывающий метод прорисовки абстрактной фигуры. Классы-наследники от абстрактного класса и интерфейса: овал, закрашенный квадрат.
12. Абстрактный класс, описывающий фигуру (параметры задаются
пользователем). Интерфейс, описывающий метод прорисовки абстрактной фигуры. Классы-наследники от абстрактного класса и интерфейса: круг, закрашенный прямоугольник.
Задание 3. Полиморфизм
1. Имеется класс, умеющий вычислять сумму 2-х целочисленных
переменных (метод). Продумать две различные перегрузки для этого метода.
2. Имеется класс, умеющий вычислять разность 2-х целочисленных
переменных (метод). Продумать две различные перегрузки для этого метода.
62
3. Имеется класс, умеющий вычислять произведение 2-х целочисленных
переменных (метод). Продумать две различные перегрузки для этого метода.
4. Имеется класс, умеющий вычислять деление 2-х целочисленных
переменных (метод). Продумать две различные перегрузки для этого метода.
======================================================
5. Имеется класс, умеющий вычислять сумму 2-х целочисленных
переменных (метод). Создать наследник этого класса с переопределением метода так, чтобы он считал квадрат суммы 2-х целочисленных переменных.
6. Имеется класс, умеющий вычислять разность 2-х целочисленных
переменных (метод). Создать наследник этого класса с переопределением метода так, чтобы он считал корень квадратный разности 2-х целочисленных переменных.
7. Имеется класс, умеющий вычислять произведение 2-х целочисленных
переменных (метод). Создать наследник этого класса с переопределением метода так, чтобы он считал корень квадратный суммы 2-х целочисленных переменных.
8. Имеется класс, умеющий вычислять деление 2-х целочисленных
переменных (метод). Создать наследник этого класса с переопределением метода так, чтобы он считал квадрат разности 2-х целочисленных переменных.
======================================================
9. Имеется параметризованный класс, умеющий вычислять сумму 2-х
переменных (метод). Параметр ограничен простым типом (int, char, double и т.п.).
10. Имеется параметризованный класс, умеющий вычислять разность 2-х
переменных (метод). Параметр ограничен простым типом (int, char, double и т.п.).
63
11. Имеется параметризованный класс, умеющий вычислять произведение
2-х переменных (метод). Параметр ограничен простым типом (int, char, double и т.п.).
12. Имеется параметризованный класс, умеющий вычислять деление 2-х
переменных (метод). Параметр ограничен простым типом (int, char, double и т.п.).
64
ПРАКТИЧЕСКАЯ РАБОТА № 04.
ТРАССИРОВКА
Цель
Разработать программу и выполнить трассировку по вариантам.
Теория
Пример выполнения лабораторной работы Для примера рассмотрим следующий фрагмент кода (листинг 4.1).
double h = 0.5; double x = Math.PI * (-1); while (x <= Math.PI) { double y; if (x > 2.5) { y = 2 * x; } else if (x >= 0) { y = x * x * x - x; } else { y = x * Math.Sin(x); } Console.WriteLine("{0}\t{1}", x, y); x += h;
}
Листинг 4.1 – Фрагмент кода
В данном коде выполняется расчет значения переменной y от x в
диапазоне от –Pi до Pi. У нас есть:
2 изменяемые переменные x и y, 3 проверяемых условия и вывод на экран.
Составим таблицу (таблица 4.1):
Таблица 4.1 – Трассировка кода
№ x y
x <= Math.PI
x > 2.5
x >= 0
Console.WriteLine
1.
-3.14
2.
+
3.
-
65
4.
- 5.
0.17
6.
-3.14 0.17
7.
-2.64
8.
+ 9.
- 10.
-
11.
0.12
12.
-2.64 0.12
13.
-2.14
14.
+ 15.
-
16.
-
17.
0.08
18.
-2.14 0.08
19.
-1.64
20.
+
21.
-
22.
- 23.
0.02
24.
-1.64 0.02
25.
-1.14
26.
+
27.
- 28.
- 29.
0.02
30.
-1.14 0.02
31.
-0.64
32.
+
66
33.
- 34.
-
35.
0.007
36.
-0.64 0.007
37.
-0.14
38.
+ 39.
-
40.
-
41.
0.0003
-0.14 0.0003
42.
0.36
43.
+ 44.
-
45.
+
46.
-0.31
47.
0.36 -0.31
48.
0.86
49.
+
50.
-
51.
+ 52.
-0.22
53.
1.36
0.86 -0.22
54.
+
55.
-
56.
+ 57.
1.15
58.
1.36 1.15
59.
1.86
60.
+
61.
-
67
62.
+ 63.
4.57
64.
1.86 4.57
65.
2.36
66.
+ 67.
- 68.
+
69.
10.78
70.
2.36 10.78
71.
2.86
72.
+ 73.
+
74.
5.72
75.
2.86 5.72
76.
3.36
77.
-
На каждом шаге программы выполняться может только одно действие.
Отсюда получается подобная схема.
Ваша задача, исходя из варианта, создать аналогичное решение, но под
desktop-приложение!
Общее задание
1. Требуется сделать desktop-приложение по реализации
алгоритма. Необходимо реализовать следующее:
а. На форме разместить элемент DataGridView, наполнить
его колонками, исходя из задания по варианту. Разместить элемент(ы) TextBox для ввода исходных данных для
отработки задания по варианту. Разместить элемент
68
Button, при нажатии которого должен запускаться механизм расчета.
б. В процессе расчета, на каждом шаге итерации, в
DataGridView добавляется строка с данными, идентичная строки в таблице трассировки.
в. Обязательно! Программа должна корректно
отрабатывать случаи недостаточности данных для выполнения задания.
Задание
1. В начале года в банк положили X рублей. Банк начисляет на вклады
0,95% каждый месяц. Начисленные проценты присоединяются к
основному вкладу. Напечатать таблицу увеличения суммы вклада по месяцам на год. Сумма вклада вводится с клавиатуры.
2. Напечатать таблицу перевода температуры из градусов по шкале
Цельсия в градусы по шкале Фаренгейта для значений от 15С° до 38С° с шагом 1С° (перевод осуществляется по формуле F = 1,8C°+32).
3. Население 2-х стран в 2014 году равно N1 и N2 человек соответственно.
Прирост населения этих стран составляет P1 и P2 % в год соответственно. Население N1<N2, а P1>P2. Определить, в каком году население первой страны превзойдет население второй страны.
4. Ежегодный прирост рыбы в пруду составляет 15%. Запасы рыбы
оценены в A тонн. Ежегодный план отлова B тонн. Наименьший запас рыбы, ниже которого запас уже не восстанавливается, составляет С тонн. Составить алгоритм и программу, подсчитывающую, сколько лет можно выдержать заданный план.
5. В банк сделали 2 вклада – один вклад 100000 рублей под 10% годовых,
второй 200000 рублей под 2% годовых. Вывести изменение суммы вкладов по годам до тех пор, пока сумма на первом вкладе не превысит сумму на втором.
69
6. Каждый год выпуск продукции увеличивается на А%, а спрос падает на
В%. В первый год выпускалось 100 единицы продукции при спросе в
150000. Подсчитать в каком году производство превысит спрос.
7. Вместимость новой тюрьмы 15000 арестантов. Каждый год количество
заключенных прибавляется на 5% и каждые два года убавляется на 6%. Посчитать, в каком году тюрьма заполнится полностью.
8. В одном банке % вклада составляет 4% в год, в другом банке 6%. В
обоих банках открыли по вкладу и внесли туда по 50000 руб. Выводить разницу между вкладами за каждый год до момента, когда эта разница станет большей, чем вклад в одном из банков. Вывести год, когда это произойдет.
9. Ежегодно вылавливают 50 т. крабов. Воспроизводство составляет 30
тонн в год. Известно, что на 2013 г. в запасах находилось 4500 тонн краба. Вывести статистику запасов за каждый год до момента, когда она станет ниже 50 т.
10. Ежегодный прирост населения составляет 7%, смертность – 5%. В 2014
году количество населения равнялось 300 000. Выводить ежегодный прирост населения, пока численность населения не удвоится по сравнению с 2014 годом.
70
ПРАКТИЧЕСКАЯ РАБОТА № 05.
ЛОГИРОВАНИЕ
Цель
Разработать программу и выполнить трассировку по вариантам с
использованием логов.
Теория
Логирование – это процесс фиксации и структурирования необходимой
информации о функционировании системы с возможностью оперативного доступа к ней в случае необходимости.
Для каких задач используют логирование:
сказать, что же делает система прямо сейчас, не прибегая к
помощи отладчика, или не имя возможности его использования;
провести «расследование» обстоятельств, которые привели к
определенному состоянию системы (например, падению), либо выявить угрозу;
проанализировать, на что тратится больше времени/ресурсов, т.е.
профилирование.
Информация, попадающая в логи имеет разную «ценность» и скорость
отклика на нее должна зависеть от этой «ценности»:
Отладочная информация. К такой информации относят записи для
анализа поведения системы в процессе поиска ошибок. Также к ней можно отнести информацию о действиях пользователя. Как правило, если ведется запись отладочной информации, он занимается самое больше место в логах, поэтому, при, так называемом, «боевом» развертывании (когда программа внедрена и ей активно пользуются), ее запись включают только по необходимости, если возникает исключительная ситуация и требуется проводить анализ ее возникновения.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]