- •Время на выполнение работы: 2 часа
- •Задача 2. Средняя скорость движения мотоциклиста
- •Задача 3. Высота орбиты спутника
- •Задача 4. Колебания маятника
- •Задача 5. Комплексные числа
- •Задача 6. Прыгающий мячик
- •Задача 9. Атака подводной лодки
- •Задание на исследование
- •Контрольные вопросы
- •Задачи для самостоятельного решения
Задача 9. Атака подводной лодки
Рассмотрим
следующую задачу: подводная лодка
атакует корабль, который прикрывает
корабль охраны. У подводной лодки есть
n
торпед,
которые она выпускает
по очереди по кораблю до тех пор, пока
торпеда не попадет в корабль
или пока не закончатся торпеды. Вероятность
попадания торпеды в корабль
равна р.
После
каждого запуска торпеды лодкой корабль
охраны производит залп по подводной
лодке. Вероятность затопления подводной
лодки в
результате залпа корабля охранения
равна р1.
Составим программу, в которой
будет вычисляться вероятность Р(А)
события А,
состоящего в том, что и корабль, и
подводная лодка будут затоплены. При
этом используем формулу
, где введено обозначение
.
Программный код приведен в листинге 9.
Листинг 9. Атака подводной лодки
// Директивы препроцессора добавить самостоятельно
Обращаем внимание на наличие в программе проверки корректности вводимых значений для вероятностей. Известно, что вероятность не может быть отрицательной или больше единицы. В тернарном операторе соответствующее условие реализовано в виде (р<0 || р>1) и (р1<0 || р1>1) соответственно. Если значение вероятности выходит за указанные пределы, выводится сообщение об ошибке Wrong value! и работа программы завершается.
Задание на исследование
В тетради подготовить отчет о выполнении лабораторной работы. Первая страница отчета оформляется в соответствии с правилами (см приложение). На второй странице указывается цель лабораторной работы, приборы (программное обеспечение), ответы на контрольные вопросы, для каждой задачи приводится алгоритм, листинг, комментарии, результаты тестирования.
Прежде, чем приступить к выполнению заданий, внимательно изучить примеры выполнения аналогичных заданий.
Каждый студент выполняет три задания и отвечает на вопросы в соответствии со своим номером в журнале.
№ варианта |
Контрольные вопросы |
Задание №1. (Павловская. Ч.1. Семинар 1) |
Задание 2 и 3 (см ниже) |
1 |
1, 11 |
20 |
1, 11 |
2 |
2, 12 |
19 |
2, 12 |
3 |
3, 13 |
18 |
3, 13 |
4 |
4, 14 |
17 |
4, 14 |
5 |
5, 15 |
16 |
5, 15 |
6 |
6, 16 |
15 |
6, 16 |
7 |
7, 17 |
14 |
7, 17 |
8 |
8, 18 |
13 |
8, 18 |
9 |
9, 19 |
12 |
9, 19 |
10 |
10, 20 |
11 |
10, 20 |
Контрольные вопросы
В чем особенность языка C++?
Из каких блоков состоит программа, написанная в C++?
Что такое «главный метод программы», как он называется и зачем он нужен?
Какие основные типы данных используются в C++?
Что такое «модификатор типа»?
Как в программе объявляются и инициализируются переменные?
Что такое «динамическая инициализация переменной»?
Чем константа отличается от переменной? Как константа объявляется?
Каким образом в программе определяется тип литерала?
Какого типа операторы используются в C++? В чем особенность каждого из типов?
Какие арифметические операторы используются в C++?
Что такое сокращенная форма арифметического оператора?
Что такое оператор инкремента и декремента? Какие существуют формы этих операторов?
Какие логические операторы существуют в C++?
Какие операторы сравнения используются в C++?
Какие основные операторы для выполнения побитовых операций используются в C++?
Что такое автоматическое приведение типов? Как и когда оно выполняется?
Как в C++ выполняется явное приведение типов?
В чем особенности оператора присваивания, используемого в C++?
Что такое тернарный оператор? В чем его особенности?
