Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
#1

Вычисление вероятности затопления авианосца - C++

14.10.2012, 13:39. Просмотров 829. Ответов 4
Метки нет (Все метки)

Всем доброго время суток. Группа из n подводных лодок атакует авианосец. Лодки по очереди выпускают по одной торпеде с ядерным зарядом: если выпущенная лодкой торпеда не попала в авианосец, торпеду выпускает следующая подводная лодка. Вероятность попадания торпеды в авианосец равна p. выпуская торпеду, лодка демаскирует себя, в силу чего подвергается атаке со стороны кораблей охранения. Вероятность затопления демаскированной подводной лодки кораблями охранения равна p1. Написать программу для вычисления вероятности P(A) события A, состоящего в том, что авианосец будет затоплен, а подводные лодки уйдут из зоны действия кораблей охранения без потерь. Вероятность P(A) события A, состоящего в том, что авианосец будет затоплен вычисляется по формуле:
http://www.cyberforum.ru/cgi-bin/latex.cgi?P(A) = p * (1 - p1) * \frac{(1 - {q}^{n})}{(1 - q)},
где
http://www.cyberforum.ru/cgi-bin/latex.cgi?q = (1 - p) * (1 - p1)
Вот сама программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
 setlocale( LC_ALL,"Russian" );
    double p,p1,P,q;
    int n;
    cout << "p = "; cin >> p;
    (0 < p || p > 1)  ?  (cout<<"Неверное значение!"<< endl, exit(0)) : cout << "p1 = "; // Проверка корректности значения p
    cin >> p1;
    (0 < p1 || p1 > 1)  ?  (cout << "Неверное значение!"<< endl, exit(0))  :  cout << "n = "; // Проверка корректности значения p1
    cin >> n;
    q = (1 - p) * (1 - p1);
    P = p * (1 - p1) * (1 - pow(q,n))/(1 - q);
    system("pause");
    return 0;
}
При вводе значений p и p1 меньше 0 или больше 1, должно появляться сообщение: "Неверное значение!" до тех пор пока пользователь не введет значения удовлетворяющие условию вероятностей, затем вычислить результат и вывести его на экран. У меня программа работает не корректно???? Подскажите пожалуйста как исправить ошибку???? Заранее огромное спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычисление вероятности затопления авианосца (C++):

Вычисление вероятности - C++
Задача : В порт в среднем приходит 3 корабля в день. Какова вероятность того, что в порт в день придет 2 корабля;4 корабля?....

Вычисление вероятности для решения бота - C++
Доброго времени суток! У меня в задании сказано сделать логику для ботов в игре блэк джэк. Я сделал так, что если сумма очков &lt;=10 то...

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

(python3.3) вычисление вероятности ошибки - Python
Друзья, есть файл с данными ( он у меня на диске d\:123\file.txt) . Мне надо с помощью питона решить задачу по обработке данных, а...

Теория вероятности. Расчет плотности вероятности суммы двух случайных величин - MathCAD
Добрый вечер уважаемые Форумчане :) Очень нужна помощь с практикумом по теории вероятности. Вот задание: ...

Задачи по теории вероятности. На основные теоремы вероятности - Теория вероятностей
1. Из колоды в 36 карт наудачу внимают три карты. Найти вероятность того, что они будут одной и той же масти. 2. Из колоды в 36 карт...

4
snw
10 / 10 / 0
Регистрация: 11.10.2012
Сообщений: 93
14.10.2012, 13:55 #2
Каков текст ошибки? Ведь телепаты в отпуске
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
14.10.2012, 13:58 #3
Как по-вашему пользователь сможет сделать повторный ввод в случае ошибки, если у вас там exit прописан.
и бросьте использовать конструкцию условие?действие1:действие2, если эти действия не тривиальны

да и не скомпилится то, что написано сейчас
0
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
14.10.2012, 14:00  [ТС] #4
Все нашел ошибку, вот правильная программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
 setlocale( LC_ALL,"Russian" );
    double p,p1,P,q;
    int n;
    cout << "p = "; cin >> p;
    (p < 0 || p > 1)  ?  (cout<<"Неверное значение!"<< endl, exit(0)) : cout << "p1 = "; // Проверка корректности значения p
    cin >> p1;
    (p1 < 0 || p1 > 1)  ?  (cout << "Неверное значение!"<< endl, exit(0))  :  cout << "n = "; // Проверка корректности значения p1
    cin >> n;
    q = (1 - p) * (1 - p1);
    P = p * (1 - p1) * (1 - pow(q,n))/(1 - q);
    cout << "P = " << P << endl;
    system("pause");
    return 0;
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
14.10.2012, 14:58 #5
Цитата Сообщение от isaak Посмотреть сообщение
Подскажите пожалуйста как исправить ошибку?
Цитата Сообщение от isaak Посмотреть сообщение
(0 < p || p > 1)
надо (p < 0 || p > 1) своим неверным условием ты по сути задавал весь числовой ряд как неверное значение
Цитата Сообщение от isaak Посмотреть сообщение
(0 < p1 || p1 > 1)
- тоже самое надо (p1 < 0 ||
Формулу не проверял, полагаю что в ней косяков нет ввиду простоты
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 14:58
Привет! Вот еще темы с ответами:

Теория вероятности(Плотность вероятности) - Теория вероятностей
Ребята помогите пожалуйста решить задачи по теор.веру По учебе завал не успеваю сделать. 1. Функция a(x) = 0 , если -1 &lt; x &lt; 1 и...

Найти математическое ожидание, дисперсию, построить кривую вероятности; найти вероятности событий - Теория вероятностей
Доброго времени суток. Есть задача: Плотность вероятности случайной величины имеет вид: ...

Сапер: расчет вероятности, расчет вероятности нахождения мины - Алгоритмы
Доброго времени суток! Помогите пожалуйста составить алгоритм для решения задачи. Имеется игровое поле для игры в сапер. Оно...

Вычисление периметра(вычисление расстояния между вершинами реализовать в виде функции) - Pascal ABC
даны координаты вершин многоугольника (X1,Y1), (X2,Y2),...(Xn,Yn). Напишите программу для вычисления его периметра( вычисление расстояния...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
14.10.2012, 14:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru