Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаборат работа 1_15 (программирование).docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
253.06 Кб
Скачать

Задача 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

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

  1. В чем особенность языка C++?

  2. Из каких блоков состоит программа, написанная в C++?

  3. Что такое «главный метод программы», как он называется и зачем он нужен?

  4. Какие основные типы данных используются в C++?

  5. Что такое «модификатор типа»?

  6. Как в программе объявляются и инициализируются переменные?

  7. Что такое «динамическая инициализация переменной»?

  8. Чем константа отличается от переменной? Как константа объявляется?

  9. Каким образом в программе определяется тип литерала?

  10. Какого типа операторы используются в C++? В чем особенность каждого из типов?

  11. Какие арифметические операторы используются в C++?

  12. Что такое сокращенная форма арифметического оператора?

  13. Что такое оператор инкремента и декремента? Какие существуют формы этих операторов?

  14. Какие логические операторы существуют в C++?

  15. Какие операторы сравнения используются в C++?

  16. Какие основные операторы для выполнения побитовых операций используются в C++?

  17. Что такое автоматическое приведение типов? Как и когда оно выполняется?

  18. Как в C++ выполняется явное приведение типов?

  19. В чем особенности оператора присваивания, используемого в C++?

  20. Что такое тернарный оператор? В чем его особенности?