Полиморфизмы методов класса

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00673.docx

 Полиморфизмы методов класса

Базовый уровень

Задание: построить класс 1-го уровня с указанными в индивидуальном задании (табл. 11.7) полями и методами:

-     конструктор;

-    функция, которая определяет «качество» объекта Q   по заданной фор- муле (табл11. 7, столб 2);

-   вывод информации об объекте.

Построить класс 2-го уровня (класс-потомок), который содержит:

-   дополнительное поле P;

-    функция, которая определяет «качество» объекта класса 2-го уровня Qp, которая перекрывает функцию качества класса 1-го уровня (Q ), выполняя вычисление по новой формуле (табл. 11.7, столб 3).

Создать проект для демонстрации работы: ввод и вывод информации об объектах классов 1-го и 2-го уровней.


Таблица 11.7 Варианты индивидуальных заданий

 

вар

Поля и функция «качества» (Q )

класса 1-го уровня

Поле и функция «качества»

Qp класса 2-го уровня

 

 

1

Компьютер:

-   наименование процессора;

-тактовая частота процессора (МГц);

-   объем оперативной памяти (Мб).

Q = (0,1·частота) + память

P: объем винчестера (Гб)

Qp=Q+0,5·Р

 

 

2

Оператор мобильной связи:

-   название оператора;

-   стоимость 1 минуты разговора;

-   площадь покрытия.

Q = 100 · площадь покрытия / стоимость 1 минуты разговора

P: наличие платы за каждое соединение

Qp = 0,7·Q, если Р - истина, иначе Qp = 1,5·Q

 

 

3

Товар на складе:

-   наименование;

-   цена;

-   количество.

Q = цена / количество

P: год выпуска товара

 

Qp = Q + 0,5· (Т–Р),

где Т - текущий год

 

 

4

Кабель:

-   тип;

-   количество жил кабеля;

-   диаметр.

Q = диаметр / количество жил

P: наличие оплетки

 

Qp: если Р - истина, то    Qp = 2·Q; иначе Qp = 0,7·Q

 

 

5

Учебник по программированию:

-   название;

-   количество страниц;

-   цена.

Q = цена / количество страниц

P: год издания

 

Qp = Q 0,2· (Т–Р),

где Т - текущий год

 

 

6

Мобильный телефон:

-   марка;

-   цена;

-   объем памяти.

Q = объем памяти / цена

P: количество SIM карт

 

Qp = Q·Р


вар

Поля и функция «качества» (Q )

класса 1-го уровня

Поле и функция «качества»

Qp класса 2-го уровня

 

 

 

 

7

Спутниковая антенна (тарелка):

-   диаметр;

-   материал;

-   цена.

 

Q = диаметр / цена

P: тип подвески (азиму- тальная, полярная, торои- дальная)

 

Qp= Q, если тип подвески азимутальный,

Qp = 2·Q, если тип подвес- ки полярный,

Qp = 2,5·Q, если тип под- вески тороидальный

 

 

8

Экзамен:

-   дисциплина;

-   число студентов на экзамене;

-   продолжительность экзамена (ч).

Q = число студентов / продолжительность

P: процент двоек

 

 

Qp = Q· ( 100-Р)/100

 

 

9

Спортсмен:

-   фамилия;

-   число соревнований;

-       сумма  мест,   занятых  спортсменом  в соревнованиях.

Q = (число соревнований)/ (сумма мест)

P: занимал ли хотя бы раз первое место

 

Qp = 1,5·Q, если Р - исти- на, иначе Qp= Q,

 

 

 

10

Программист:

-   фамилия;

-   число программ, написанных програм- мистом;

-   число языков программирования, которыми он пишет программы.

Q = (число программ)*(число языков)

P:    число программ, кото- рые работают  правильно

 

 

Qp = Q · Р / (число всех программ)

 

 

11

Спектакль:

- название;

n1 число зрителей в начале;

n2 число зрителей в конце.

Q = (n2 – n1)/ n1

P: год написания пьесы

 

Qp = Q · (Т-Р+1),

где Т - текущий год

 

 

12

Алмаз:

-   название;

-   вес каратах);

-   качество огранки в баллах (число).

Q = 0,4·вес + 0,6·качество огранки

P: цвет (белый, голубой, желтый, и тп)

Qp: если цвет голубой, то Qp=Q+1;

а если желтый,

то Qp = Q 0,5 иначе Qp=Q


вар

Поля и функция «качества» (Q )

класса 1-го уровня

Поле и функция «качества»

Qp класса 2-го уровня

 

 

13

Компьютерная сеть:

-   название организации;

-   число рабочих станций;

-      среднее расстояние между станциями (м).

Q = число станций · среднее расстояние

P: средняя скорость пере- дачи данных в сети (Мб/с)

 

Qp = Q·Р

 

 

14

Армия:

-   вид войск;

-   численность (тыс человек):

-   вооруженность (баллы - число).

Q=0,3·численность+0,7·вооруженность

P: опыт (число месяцев, на протяжении которых армия вела боевые дей- ствия)

Qp = Q · (Р+1)

 

 

15

Автомобиль:

-   марка автомобиля;

-   мощность двигателя (кВт);

-   число мест.

 

Q = 0,1·мощность·число мест

P: год изготовления

 

Qp=Q-1,5· (Т-Р) ,

где Т - текущий год

 

 

 

16

Партия:

-   название;

-   численность (тыс. членов);

-   процент голосов на последних выборах.

 

Q = 0,3·численность+0,7· процент гол

P: численность партии в прошлом году

 

Qp: если численность в текущем году увеличилась, то Qp=1,2·Q;

а    если    сократилась,   то

Qp=0,8·Q

 

 

17

Высшее учебное заведение:

-   название заведения;

-     количество студентов, зачисленных на 1-й курс;

-   количество выпускников.

Q = количество выпускников / количество зачисленных

P: процент выпускников, которые работают по специальности

 

Qp = Р*Q

 

 

18

Солдат:

-   фамилия;

-   рост (м);

-   вес (кг).

Q = рост·вес

P: образование (начальное, среднее, высшее)

Qp: если образование высшее, то Qp=2·Q; а если начальное, то Qp=0,5·Q; иначе Qp=Q


вар

Поля и функция «качества» (Q )

класса 1-го уровня

Поле и функция «качества»

Qp класса 2-го уровня

 

 

19

Телевизор:

-   фирма;

-   диагональ экрана (дюйм);

-   звуковая мощность (дб).

Q = диагональ+(0,05·мощность)

P: страна-производитель Qp: если страна - Япония, то Qp=2·Q;

а если Сингапур или Корея,

то Qp=1,5·Q; иначе Qp=Q

 

 

20

Митинг:

- название события;

n1 число ораторов;

n2 число участников.

Q = n1/n2

P: число групп ораторов, которые          высказывали одинаковые мысли

 

Qp = Q + Р/n2

 

 

21

Дом:

-   номер дома;

-   число квартир;

-   год сооружения.

Q=(число квартир)+2· (Т

год сооружения), где Т - текущий год

P: район (центр, окраина, и тп)

 

Qp: если район - центр, то

Qp=2·Q;

иначе Qp=0,5·Q

 

 

22

Руководитель:

-             фамилия;

-   самооценка баллах - целое число);

-   оценка другими людьми баллах).

Q = (оценка другими)/самооценка

P:     оценка потомками баллах)

 

 

Qp = 0,3·Q + 0,7·Р

 

 

23

Студент:

-   фамилия;

-   средний балл;

-   курс.

 

Q = 0,2 · средний балл · курс

P:   изучает дисциплины на английском языке

 

Qp = 2·Q, если Р - истина, иначе Qp = 0,9·Q

 

 

24

Антенна:

-   название;

-   мощность;

-   высота (м).

Q = мощность +0.5·высота

P: коэффициент излучения

 

Qp = Q 0.1·Р

 

 

25

Самолет:

-   марка;

-   количество двигателей;

-   высота полета.

 

Q = кол-во двигателей · высота полета

/1000

P: страна-производитель

 

Qp: если страна - Россия, то

Qp=Q+1;

а     если     Франция,     то

Qp=Q+0.5


вар

Поля и функция «качества» (Q )

класса 1-го уровня

Поле и функция «качества»

Qp класса 2-го уровня

 

 

26

Студент:

-   фамилия;

-   число экзаменов;

-   число оценок «пять».

 

Q = число оценок «пять» / число экзаменов

P: число оценок «три»

 

 

Qp = Q – 0.5Р

 

 

27

Фирма:

-   название;

-   доход (тыс $ );

-   рейтинг баллах).

Q = доход · рейтинг

P:   инвестиции    в   фирму (тыс $ )

 

Qp = Р3 + Q

 

 

28

Военный корабль:

-   название;

-   длина;

-   число пушек главного калибра.

Q = (число пушек) / длина

P: крейсерская скорость морских узлах)

 

Qp = 0.25Q + Р

 

 

29

Коробка спичек:

-   фирма изготовитель;

-   число спичек в коробке;

-   время горения одной спички (с).

Q = (число спичек) · время

P: средний % бракованных спичек в коробке

 

Qp = ( 100-Р)Q / 100

 

 

30

Полководец:

-   фамилия;

-   число битв;

-   число побед.

Q = (число побед)2/(число битв)

P: число побед с меньши- ми, чем у противника, силами

 

Qp = Р2/битвы +Q

 

Средний уровень

Задание: написать программу согласно заданию. Во всех классах опи- сать необходимые конструкторы, при помощи которых будут создаваться объекты классов. Параметры создаваемых объектов задавать константами или вводить с клавиатуры/формы (по желанию студента) и передавать в конструк- торы объектов в виде параметров. Вывод информации должен осуществляться либо на консоль или в многострочное текстовое поле (Memo).

 

вар.

Задача

 

1

Создать класс Автомобиль со свойствами: Название, Максимальная скорость км/ч). Определить 2 виртуальных метода: метод «Стои- мость» –стоимость автомобиля, рассчитываемую по формуле. Макси-

мальная скорость * 100 и метод «Обновление модели», увеличивающий


вар.

Задача

 

максимальную скорость на 10. Определить также метод «Информация», который возвращает строку, содержащую информацию об объекте: Название, Максимальную скорость и Стоимость.

Создать также класс наследник Представительский автомобиль, в котором переопределить методы: метод «Стоимость» возвращает число, равное. Максимальная скорость * 250, а метод «Обновление модели» увеличивает скорость на 5 км/ч.

В главной программе (либо по нажатию на кнопку) создать объект класса Автомобиль с максимальной скоростью 140 км/ч и класса Пред- ставительский автомобиль с максимальной скоростью 160 км/ч. Вывести на экран (или форму) информацию об автомобилях. Обновить модели автомобилей и снова вывести информацию о них.

 

 

 

 

 

 

2

Создать класс Треугольник, заданный значениями длин трех сторон (a,

b, c), с методами «Периметр» и «Площадь». Определить также метод

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

Создать также класс наследник Четырехугольник, с дополнительными параметрами – длиной четвертой стороны (d) и длинами диагоналей (e, f) и переопределить методы «Периметр» (сумма всех сторон) и «Площадь». Площадь            вычислять            по             следующей            формуле

4e2 f 2 - (b2 + d 2 - a2 - c2 )2

S =

16                       .

В главной программе (либо по нажатию на кнопку) создать объект класса Треугольник и объект класса Четырехугольник и вывести

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

 

 

 

 

 

 

 

3

Создать класс Компьютер со свойствами: Частота процессора (в МГц), количество ядер, объем памяти (в МБ), объем жесткого диска (в ГБ). Определить два виртуальных метода: «Стоимость», возвращающую примерную расчетную стоимость компьютера, рассчитываемую по формуле. Частота процессора * количество ядер / 100 + количество памяти / 80 + объем жесткого диска / 20 и логический метод «Пригод- ность», возвращающий истину (true), если частота процессора не менее 2000 МГц, количество ядер не менее 2, объем памяти не менее 2048 МБ, и объем жесткого диска не менее 320 Гб. Определить также метод

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

Создать также класс наследник Ноутбук, с дополнительным свойством. Продолжительность автономной работы (в минутах) и переопределить методы: метод «Стоимость» возвращает число, равное стоимости обыч- ного компьютера + количество минут автономной работы / 10, а метод


вар.

Задача

 

«Пригодность» возвращает истину, тогда когда и ноутбук пригоден как обычный  компьютер, и   Продолжительность автономной  работы  не

меньше 60 минут. В главной программе (либо по нажатию на кнопку) создать обычный компьютер и ноутбук и вывести информацию о них.

 

 

 

 

 

 

 

 

 

4

Создать класс Прямоугольник, заданный значениями длин двух сторон

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

Создать также класс наследник Прямоугольник со скругленными углами, с дополнительным параметром радиус скругления (r). Для него переопределить. Периметр по формуле p – 8·r + 2·π·r, где p – периметр обычного прямоугольника с теми же сторонами, а Площадь по формуле S – 4·r2 + π·r2, где S – площадь обычного прямоугольника. Также переоп- ределить метод «Увеличить в два раза» так, чтобы он также увеличивал в два раза радиус скругления (по-прежнему увеличивая стороны в два раза).

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

 

 

 

 

 

 

 

 

5

Создать класс Фотоаппарат со свойствами: Модель, Оптическое увели- чение (Zoom, вещественное число от 1 до 35) и материал корпуса (ме- талл либо пластик). Определить виртуальный метод: метод «Стоимость»

– возвращает число – стоимость фотоаппарата (в $), рассчитываемую по формуле (Zoom+2)·10, если корпус пластиковый и (Zoom+2)·15, если материал металлический. Определить также метод «Информация», который возвращает строку, содержащую информацию об объекте: Модель, Zoom и Стоимость. Также определить логический метод «Доро- гой», который будет возвращать истину (true), если стоимость фотоаппа- рата больше 200$.

Создать также класс наследник Цифровой фотоаппарат, в котором будет дополнительный целый параметр количество мегапикселей и переопределить метод «Стоимость», который будет возвращать число, равное стоимости обычного фотоаппарата умножить на количество мегапикселей, а также определить новый метод «Обновление модели», который увеличивает количество мегапикселей на 2.

В главной программе (либо по нажатию на кнопку) создать объект класса Фотоаппарат с 4-ми кратным оптическим увеличением (Zoom=4)


вар.

Задача

 

и пластиковым корпусом, а также Цифровой фотоаппарат с металличе- ским корпусом, 8-ю мегапикселями и 3-кратным оптическим увеличени- ем. Вывести на экран (или форму) информацию о фотоаппаратах и о том, являются ли они дорогими. Обновить модели цифрового фотоаппарата и

снова вывести информацию о нем.

 

 

 

 

 

 

 

 

 

6

Создать класс Студент со свойствами: ФИО, факультет, курс, мини- мальная оценка по экзаменам за последнюю сессию (по 5-ти бальной системе). Определить виртуальные методы: «Перевести на следующий курс», увеличивающий курс на 1, если минимальная оценка не менее 3, иначе не делающий ничего, а также «Стипендия», возвращающий стипендию (в грн): 0 грн, если минимальная оценка не выше 3, 200 грн, если минимальная оценка равна 4 и 300 грн, если минимальная оценка равна 5. Определить также метод «Информация», который возвращает строку, содержащую информацию о студенте: ФИО, факультет, курс, минимальная оценка по экзаменам и начисленную стипендию.

Создать также класс наследник Студент-контрактник, в котором будет дополнительный логический параметр – уплачен ли контракт и переоп- ределены методы «Перевести на следующий курс», увеличивающий курс на 1, если минимальная оценка не менее 3 и за контракт уплачено, а также «Стипендия» возвращающий всегда 0 грн.

В главной программе (либо по нажатию на кнопку) создать объект класса Студент и 2 объекта класса Студент-контрактник (один из которых уплатил за контракт, а другой нет). Выдать информацию о студентах, затем применить к ним метод «Перевести на следующий курс» и снова выдать информацию о них.

 

 

 

 

 

 

7

Создать класс Круг заданный своим радиусом (r), с виртуальным мето- дом «Площадь», возвращающим площадь круга, а также виртуальный метод «Увеличить» с одним вещественным параметром – во сколько раз увеличить, увеличивающий радиус в заданное число раз. Определить также метод «Информация», который возвращает строку, содержащую информацию о круге: радиус и площадь.

Создать также класс наследник Кольцо, с дополнительным параметром

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

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

 

8

Создать класс Табуретка со свойствами: Высота (h, в см), Качество изделия (низкое, среднее, высокое). Определить два виртуальных мето-

да: «количество древесины», которое требует табуретка, по формуле


вар.

Задача

 

h+12, если качество низкое, и h+14, если качество среднее или высокое, а также «стоимость», равная d·2, для низкого качества, d·3, для среднего качества, d·4, для высокого качества, где d – количество древе- сины, которое требует данный объект. Определить также метод «Ин- формация», который возвращает строку, содержащую информацию об объекте: Высоту, качество материала, количество древесины и стои- мость.

Создать также класс наследник Стул с дополнительным свойством: высота спинки (h2, в см), и переопределить метод «количество древеси- ны», по формуле d+2h2+5, где d – количество древесины, которые требу- ет табуретка с такими же параметрами (Метод «стоимость» не переопределять).

В главной программе (либо по нажатию на кнопку) создать экземпляры классов Табуретка и Стул, и напечатать информацию в таком виде:

«табуретка» + информация о табуретке и «стул» + информация о стуле.

 

 

 

 

 

 

9

Создать класс Фильм со свойствами: Название, Режиссер, длительность минутах), количество актеров. Определить виртуальный метод:

«Стоимость», возвращающую примерную расчетную стоимость фильма (в тыс. $), рассчитываемую по формуле длительность*20 + количество актеров*30, но если режиссер = «Стивен Спилберг» или «Джеймс Кэмерон», то стоимость в два раза выше (по сравнению с вышеуказан- ной формулой). Определить также метод «Информация», который возвращает строку, содержащую информацию о фильме: Название, режиссера, длительность, количество актеров и стоимость.

Создать также класс наследник Мультфильм, в котором переопреде- лить метод «Стоимость» по формуле длительность*25 + количество актеров*10 (вне зависимости от режиссера).

В главной программе (либо по нажатию на кнопку) создать 2 фильма с режиссерами: «Стивен Спилберг» и «Ежи Гофман», а также мульт-

фильм и вывести информацию о них.

 

 

 

 

 

10

Создать класс Самолет со свойствами: Марка, Модель, Максимальная

скорость (в км/ч), Максимальная высота (в метрах). Определить вирту- альный метод «Стоимость» – стоимость самолета, рассчитываемую по формуле Максимальная скорость * 1000 + Максимальная высота * 100 Определить также метод «Информация», который возвращает строку, содержащую информацию об объекте: Марка, Модель, Максимальную скорость, Максимальную высоту и Стоимость.

Создать также класс наследник Бомбардировщик, в котором переопре- делить метод «Стоимость», который вернет удвоенную стоимость относительно формулы для класса Самолет. Также создать класс Ис- требитель – наследник класса Самолет, для которого переопределить метод «Стоимость» как утроенную стоимость, относительно формулы стоимости для Самолета.


вар.

Задача

 

В главной программе (либо по нажатию на кнопку) создать объект

класса Самолет, класса Бомбардировщик, класса Истребитель. Вывес- ти на экран (или форму) информацию о самолетах.

 

Высокий уровень

Задание: описать несколько классов: абстрактный класс-родитель с по- лями и методами, характерными для всех объектов задания, при этом некото- рый метод или методы может быть чисто виртуальным и несколько классов- наследников, определяющих дополнительные поля (при необходимости) и переопределяющие некоторый виртуальный метод (методы).

В главной программе должен быть объявлен массив (статический или ди- намический) объектов (родительского класса), в который помещаются классов- потомков (В C++ необходимо использование массива указателей на объекты). В главной консольной программе или по нажатию кнопки в графической про- грамме создаются соответствующие объекты и выполняются действия, указан- ные в задании.

 

вар.

Задание

 

 

 

 

 

 

 

 

 

 

1

Программно промоделировать разговор людей. Всего есть 5 людей. Каждый человек имеет имя (строку) и возраст (число).

Установите возраст каждого человека - случайное число от 20 до 40, а имена установите случайным образом из списка «Александр», «Андрей»,

«Анастасия»,  «Ирина»,   «Наталья»,  «Павел»,   «Роман»,   «Светлана»,

«Сергей», «Татьяна».

Любой человек способен выполнять два действия:

-   здороваться с другим человеком;

-   рассказывать о себе.

Люди делятся на 3 типа (разные классы):

1     (Формалисты) Здороваются со всеми так: «Здравствуй, <имя>», где

<имя> имя человека, с которым он здоровается.

2   (Неформалы) Со всеми здороваются: «Привет, <имя>!»

3   (Реалисты) Если возраст собеседника меньше или равен или больше не более чем на 5 лет, говорит «Привет, <имя>!», иначе «Здравствуй,

<имя>».

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

Рассказ о человеке является строкой вида «Меня зовут Вася, мой возраст 21 лет, я неформал» (вместо Вася имя человека, вместо 21 его возраст, как видите у людей с грамматикой не все в порядке и они говорят «лет» после любого числа, если хотите, можете реализовать правильную


вар.

Задание

 

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

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

Петя: Привет, Вася! Вася: Здравствуй, Петя Петя: Привет, Женя!

 

 

 

 

 

 

 

2

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

Люди делятся на новичков, опытных и ветеранов (потомки класса человек). Для каждого человека определите полиморфный метод. «Стре- лять» без параметров, возвращающих логическое значение (попал – true, не попал – false). Попадание определяется случайным образом, причем для новичка вероятность попасть равна 0,01*стаж обучения; для опытно- го = 0,05*стаж обучения стрельбе; для ветерана = 0,9 – 0,01*возраст.

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

В главной программе создайте массив из 7 людей в таком порядке: новичок, опытный, ветеран, опытный, новичок и произведите стрельбу с выводом ее результатов.

 

 

 

 

 

 

3

Программно промоделировать сдачу зачета студентами. Каждый студент

характеризуется ФИО и количеством посещенных занятий. Также известно количество общих занятий = 20. Студенты делятся на обычных, сообразительных и гениев (потомки класса студент). Для каждого человека определите полиморфный метод «Сдать зачет» без параметров, возвращающих логическое значение (сдал – true, не сдал – false). Обыч- ные студенты точно сдают зачет, если посетили все занятия, если были более чем на половине занятий, то сдают с вероятностью 0,5; иначе не сдают. Сообразительные студенты тоже точно сдают зачет, если посети- ли все занятия, если были более чем на половине занятий, то сдают с вероятностью 0,7; иначе не сдают зачет Гении точно сдают зачет, если были хотя бы на одном занятии, иначе не сдают.

Создайте массив из 10 студентов (5 обычных, 4 сообразительных и 1 гения), задайте их ФИО и количество посещенных занятий константами, указанными в конструкторах объектов и промоделируйте сдачу зачета с


вар.

Задание

 

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

результате сдачи).

 

 

 

 

 

 

 

4

Промоделировать отливку листов стали.

Листы стали характеризуются толщиной (в мм), и плотностью стали (в кг/м3).

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

В главной программе создайте массив из 15 листов стали, создав 5 квадратных, 7 прямоугольных и 3 треугольных листа случайных разме- ров. Выведите информацию о листах и посчитайте суммарную площадь и суммарный вес всех листов.

 


 

Скачано с www.znanio.ru