!!Сборник задач по программированию
..pdf5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
181
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
182
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
183
29 |
30 |
|
|
Высокий уровень
Задание: написать программу работы асинхронного автомата.
1
2
3 |
4 |
184
5
6
7
8
9
10
11
12
185
11. Элементы объектно-ориентированного программирования
11.1. Cоздание данных типа «класс»
Базовый уровень
Задание: для всех вариантов задач создать класс с указанными двумя полями (Поле 1, Поле 2) и тремя методами:
-конструктор для инициализации объекта;
-функция формирования строки с информацией об объекте;
-функция обработки значений полей по индивидуальному варианту.
В основной программе вводить значения полей каждого объекта из компонентов Edit и выводить результаты в компонент Memo. Индивидуальные варианты заданий приведены в таблице 11.1.
Таблица 11.1 − Варианты индивидуальных заданий
№ |
Поле 1 |
Поле 2 |
Функция обработки полей |
|
вар. |
||||
|
|
|
||
1 |
Номинал купюры (1, |
Количество купюр |
Вычислить сумму купюр |
|
2, 5, 10 и т.д.) |
|
|
||
|
|
|
||
2 |
Номинал монеты |
Количество монет |
Вычислить сумму монет |
|
(1, 2, 5, 10 и т.д.) |
|
|
||
|
|
|
||
3 |
Цена товара |
Количество единиц |
Вычислить общую стои- |
|
|
товара |
мость товара |
||
|
|
|||
4 |
Калорийность 100г |
Вес продукта в |
Вычислить общую кало- |
|
продукта |
граммах |
рийность продукта |
||
|
||||
|
Вещественное число |
Вещественное число |
Квадрат длины диапазона |
|
5 |
– левая граница |
– правая граница |
|
|
|
диапазона |
диапазона |
|
|
6 |
Количество минут |
Количество секунд |
Вычислить общее количе- |
|
|
|
ство секунд |
||
|
|
|
||
7 |
Количество часов |
Количество минут |
Вычислить общее количе- |
|
|
|
ство минут |
||
|
|
|
||
|
Вещественное число |
Вещественное число |
Вычислить площадь прямо- |
|
8 |
– первый катет |
– второй катет |
угольного треугольника |
|
прямоугольного |
прямоугольного |
|
||
|
|
|||
|
треугольника |
треугольника |
|
|
|
Вещественное число |
Целое число – время |
Вычислить пройденное |
|
9 |
– скорость движения |
движения в минутах |
расстояние (в метрах) |
|
|
(м/cек) |
|
|
|
|
Вещественное число |
Вещественное число |
Вычислить длину гипотену- |
|
10 |
– первый катет |
– второй катет |
зы прямоугольного тре- |
|
|
прямоугольного |
прямоугольного |
угольника |
|
|
треугольника |
треугольника |
|
|
186 |
|
|
|
№ |
Поле 1 |
Поле 2 |
Функция обработки полей |
|
вар. |
||||
|
|
|
||
11 |
Целое число – |
Целое число – |
Вычислить полу-сумму |
|
нижнее основание |
верхнее основание |
оснований трапеции |
||
|
трапеции |
трапеции |
|
|
|
Вещественное число |
Вещественное число |
Вычислить тангенс угла , |
|
12 |
– первый катет |
– второй катет |
противолежащего второму |
|
|
прямоугольного |
прямоугольного |
катету прямоугольного |
|
|
треугольника |
треугольника |
треугольника |
|
13 |
Вещественное число |
Вещественное число |
Вычислить полу-разность |
|
|
|
чисел |
||
|
|
|
||
14 |
Вещественное число |
Вещественное число |
Вычислить корень квадрат- |
|
|
|
ный из произведения чисел |
||
|
|
|
||
15 |
Целое число – х |
Целое число – y |
Вычислить целую часть от |
|
|
|
деления х на y |
||
|
|
|
||
16 |
Целое число – х |
Целое число – y |
Вычислить квадрат мень- |
|
|
|
|
шего из чисел |
|
17 |
Целое число – х |
Целое число – y |
Вычислить куб большего из |
|
|
|
чисел |
||
|
|
|
||
|
Продолжительность |
Стоимость одной |
Вычислить общую стои- |
|
18 |
телефонного разго- |
минуты разговора |
мость разговора |
|
|
вора в минутах |
|
|
|
|
Координата точки на |
Координата точки |
Определить периметр |
|
19 |
плоскости (по |
на плоскости (по |
прямоугольника, ограни- |
|
горизонтали) |
вертикали) |
ченного координатами |
||
|
|
|
точки и осями Ox и Oy |
|
20 |
Вещественное число |
Вещественное число |
Вычислить разность квад- |
|
– a |
– b |
ратов чисел a2 – b2 |
||
21 |
Вещественное число |
Вещественное число |
Вычислить сумму квадра- |
|
– a |
– b |
тов чисел a2 + b2 |
||
|
Координата точки на |
Координата точки |
Определить площадь |
|
22 |
плоскости (по |
на плоскости (по |
прямоугольника, ограни- |
|
горизонтали) – x1 |
вертикали) – y1 |
ченного координатами |
||
|
|
|
точки и осями Ox и Oy |
|
|
Координата точки на |
Координата точки |
Вычислить расстояние от |
|
23 |
плоскости (по |
на плоскости (по |
точки до начала координат |
|
|
горизонтали) – x1 |
вертикали) – y1 |
|
|
24 |
Количество часов |
Тариф оплаты за час |
Общая стоимость работы |
|
работы |
работы |
|
||
25 |
Радиус окружности |
Угол в радианах |
Вычислить длину дуги |
|
26 |
Радиус окружности |
Высота цилиндра |
Вычислить площадь по- |
|
основания |
|
верхности цилиндра |
||
27 |
Радиус окружности |
Высота конуса |
Вычислить объем конуса |
|
основания конуса |
|
|
||
|
|
|
187 |
№ |
Поле 1 |
Поле 2 |
Функция обработки полей |
|||
вар. |
||||||
|
|
|
|
|
||
28 |
Напряжение (в |
Сопротивление (в |
Вычислить значение тока (в |
|||
Вольтах) |
Омах) |
Амперах) |
|
|
||
|
Ток в амперах |
Сопротивление |
Вычислить мощность на |
|||
29 |
|
резистора R1(в |
участке электрической цепи |
|||
|
|
Омах) |
(в Ваттах) |
|
|
|
|
Масса тела – m (в |
Скорость движения |
Вычислить кинетическую |
|||
30 |
граммах) |
– v (в м/с) |
энергию движущегося тела |
|||
|
|
|
W mv2 |
|||
|
|
|
k |
2 |
|
|
|
|
|
|
|
Средний уровень
Задание: создать класс с полями, указанными в индивидуальном задании (табл. 11.2, столб 2).
Реализовать в классе методы:
-конструктор по умолчанию;
-конструктор перезагрузки с параметрами;
-деструктор для освобождения памяти (с сообщением об уничтожении объекта);
-функции обработки данных (1 и 2), указанные в индивидуальном задании (табл. 11.2, столбцы 3 и 4);
-функцию формирования строки информации об объекте.
Создать проект для демонстрации работы: сформировать объекты со зна- чениями-константами и с введенными значениями полей объекта из компонентов Edit. Выводить результаты в компонент Memo.
Таблица 11.2 – Варианты индивидуальных заданий.
№ |
Класс-родитель и |
Функция-метод 1 |
Функция-метод 2 обра- |
вар. |
его поля |
обработки данных |
ботки данных |
|
Дата (три числа): |
Определить, являет- |
Увеличить дату на 5 дней |
1 |
день, месяц, год |
ся ли год высокосным |
|
|
|
(кратным 4) |
|
2 |
Дата (три числа): |
Увеличить год на 1 |
Уменьшить дату на 2 дня |
день, месяц, год |
|
|
|
|
|
|
|
3 |
Дата (три числа): |
Определить, совпа- |
Увеличить дату на один |
день, месяц, год |
дают ли номер |
месяц |
|
|
|
месяца и число дня |
|
|
Время (три числа): |
Вычислить количест- |
Увеличить время на 5 |
4 |
часы, минуты, |
во секунд в указан- |
секунд |
|
секунды |
ном времени |
|
|
Время (три числа): |
Вычислить количест- |
Уменьшить время на 10 |
5 |
часы, минуты, |
во полных минут в |
минут |
|
секунды |
указанном времени |
|
188 |
|
|
|
№ |
Класс-родитель и |
Функция-метод 1 |
Функция-метод 2 обра- |
|
вар. |
его поля |
обработки данных |
ботки данных |
|
6 |
Время (три числа): |
Определить количе- |
Увеличить время 100 |
|
часы, минуты, |
ство минут до полу- |
минут |
||
|
секунды |
ночи (24:00:00) |
|
|
|
Координаты |
Вычислить площадь |
Изобразить прямоуголь- |
|
7 |
изображения |
прямоугольника в |
ник на форме |
|
прямоугольника: |
пикселях |
(Image) с толщиной линии |
||
|
||||
|
x1, y1, x2, y2 |
|
2 пикселя |
|
|
Координаты |
Вычислить длину |
Изобразить прямоуголь- |
|
8 |
изображения |
диагонали прямо- |
ник и его диагональ на |
|
прямоугольника: |
угольника в пикселях |
форме |
||
|
||||
|
x1, y1, x2, y2 |
|
(Image) |
|
|
Координаты |
Определить, является |
Изобразить прямоуголь- |
|
|
изображения |
ли прямоугольник |
ник на форме |
|
9 |
прямоугольника: |
квадратом? |
(Image), закрашенный |
|
|
x1, y1, x2, y2 |
|
зеленым цветом |
|
|
|
|
|
|
|
Правильная дробь: |
Выразить значение |
Найти сумму цифр значе- |
|
10 |
числитель, знаме- |
дроби в процентах |
ния знаменателя |
|
|
натель |
|
|
|
|
Комплексное |
Вычислить модуль |
Найти комплексное |
|
11 |
число: действи- |
комплексного числа |
число, обратное заданно- |
|
тельная (a1) и |
|
му |
||
|
мнимая (b1) части |
|
|
|
|
числа |
|
|
|
|
Комплексное |
Вычислить произве- |
Вычислить аргумент |
|
|
число: действи- |
дение комплексного |
комплексного числа в |
|
12 |
тельная и мнимая |
числа на число, |
градусах |
|
|
часть числа |
вводимое пользова- |
|
|
|
|
телем |
|
|
|
Книга: название, |
Вычислить среднюю |
Увеличить цену книги в |
|
13 |
количество стра- |
стоимость одной |
два раза, если название |
|
ниц, цена |
страницы |
начинается со слова |
||
|
|
|
«Программирование» |
|
|
Книга: название, |
Вычислить, сколько |
Количество дней, про- |
|
14 |
автор, год издания |
лет книге |
шедших после года |
|
|
|
|
издания книги |
|
|
Работник: фамилия, |
Вычислить стаж |
Сколько дней прошло |
|
15 |
оклад, год поступ- |
работы работника на |
после года поступления на |
|
|
ления на работу |
данном предприятии |
работу |
|
|
Работник: фами- |
Вычислить возраст |
Сколько календарных |
|
16 |
лия, оклад, год |
работника |
дней до исполнения |
|
|
рождения |
|
работнику 50 лет |
|
|
|
|
189 |
№ |
Класс-родитель и |
Функция-метод 1 |
Функция-метод 2 обра- |
вар. |
его поля |
обработки данных |
ботки данных |
|
Вектор на плоско- |
Вычислить длину |
Изобразить линию векто- |
17 |
сти: координаты |
вектора |
ра на форме (Image) с |
|
вектора на плоско- |
|
толщиной линии 2 пиксе- |
|
сти (x1, y1, x2, y2) |
|
ля |
|
Вектор на плоско- |
Вычислить координа- |
Равен ли угол наклона |
18 |
сти: координаты |
ты середины вектора |
вектора 45 градусов? |
|
вектора на плоско- |
|
|
|
сти (x1, y1, x2, y2) |
|
|
|
Вектор на плоско- |
Вычислить координа- |
Вычислить площадь |
|
сти: координаты |
ты вектора, удвоен- |
прямоугольного треуголь- |
19 |
вектора на плоско- |
ной длины |
ника, образованного |
|
сти (x1, y1, x2, y2) |
|
вектором и прямыми, |
|
|
|
параллельн. осям Оx, Оy. |
|
Цилиндр: диаметр |
Вычислить объем |
Изобразить круг заданно- |
20 |
основания, высота |
цилиндра |
го диаметра на форме |
|
|
|
(Image), закрашенный |
|
|
|
красным цветом. |
|
Параллелепипед: |
Вычислить объем |
Вычислить длину наи- |
21 |
длины сторон |
параллелепипеда |
большей диагонали |
|
|
|
параллелепипеда |
22 |
Параллелепипед: |
Вычислить площадь |
Вычислить сумму длин |
длины сторон |
поверхности |
всех ребер параллелепи- |
|
|
|
|
педа. |
|
Четыре целых |
Вычислить среднее |
Определить максимальное |
23 |
числа: a, b ,c, d |
арифметическое |
из чисел |
|
|
чисел |
|
|
Три вещественных |
Вычислить среднее |
Определите, сколько цифр |
24 |
числа x, y, z |
геометрическое чисел |
содержит сумма заданных |
|
|
|
трех чисел. |
|
Товар: наименова- |
Определить, сколько |
Увеличить цену товара на |
25 |
ние, цена, год |
лет назад был выпу- |
20%, если в наименовании |
|
выпуска |
щен товар |
товара есть слово «TV». |
|
Товар: наименова- |
Пересчитать цену |
Увеличить цену товара в |
26 |
ние, цена в гривне, |
товара в долларах |
долларах, если название |
|
изготовитель |
|
товара содержит слово |
|
|
|
«Toyota». |
|
Координаты |
Определить, является |
Изобразить эллипс на |
27 |
изображения |
ли эллипс окружно- |
форме (Image) зеленым |
|
эллипса: x1, y1, x2, |
стью? |
цветом . |
|
y2 |
|
|
28 |
Книга: название, |
Увеличить количест- |
Уменьшить цену в два |
|
количество стра- |
во страниц на 10 |
раза, если количество |
190 |
|
|
|