Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.01.2012, 00:03   #1
xamelion
Пользователь
 
Регистрация: 25.12.2009
Сообщений: 11
Вопрос rand

Добрый вечер! Возникла проблема с генератором rand. Нужно немного подредактировать код

Условие задачи
По самолёту проводится 3 отдельных выстрела, вероятность попадания каждого раза равно 0,3. Для выхода из строя достаточно 3 попаданий. При одном попадании самолёт выходит из строя с вероятностью 0,2; при двух (выстрелах) попаданиях 0,6. Найти вероятность того, что самолёт будет выведен из строя при 3 выстрелах.

Код на Visual C++:

Код:
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
int main(int argc, char* argv[])
{
 int n,i;
 double rest1,rest2,rest3,kolvopopad,sbili,sbilis,sbiliss;
 cout<<"Введите кол-во попаданий n=";
 cin>>n;
 for (i=1;i<=kolvopopad;i++)
  {
    rand1                           //нужно задать генератор rand1
    rest1=double((rand1%100)/100);
    rest2=double((rand1%100)/100);
    rest3=double((rand1%100)/100);

    kolvopopad=0;
     if(rest1<0.3)
      else kolvopopad=kolvopopad+1;
     
     if (rest2<0.3)
      else kolvopopad=kolvopopad+1;
 
     if (rest3<0.3)
      else kolvopopad=kolvopopad+1;
 
     if (kolvopopad=3)
     sbili=sbili+1;
     if (kolvopopad=2) 
	  if (rest2<0,6)
          sbilis=sbili+1;
     if (kolvopopad=1) 
	  if (rest2<0,2)
          sbiliss=sbili+1;
  }

count<<"Вероятность что самалёт выведен из строя при n выстрелах =";
cin>>sbili;
}
Решение:
Вероятность одного попадания: (0.3*0.7*0.7+0.7*0.3*0.7+0.7*0.7*0. 3)*0.2=0.0882
Вероятность двух попаданий: (0.3*0.3*0.7+0.7*0.3*0.3+0.3*0.7*0. 3)*0.6=0.1134
Вероятность трёх попаданий:
0.3*0.3*0.3=0.27
Вероятность трёх промахов:
0.7*0.7*0.7=0.343
xamelion вне форума
Старый 06.01.2012, 03:45   #2
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию

а зачем после rand писать 1? там скобочки надо ()
Madmaxisss вне форума
Старый 06.01.2012, 14:45   #3
xamelion
Пользователь
 
Регистрация: 25.12.2009
Сообщений: 11
По умолчанию

А что в скобках писать?
xamelion вне форума
Старый 06.01.2012, 15:51   #4
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
#include "ctime"
...

	for (i=1; i < kolvopopad; i++)
	{
		srand(time(NULL));
		rest1 = double((rand() % 100) / 100);
		rest2 = double((rand() % 100) / 100);
		rest3 = double((rand() % 100) / 100);
	}
viron вне форума
Старый 10.01.2012, 20:11   #5
xamelion
Пользователь
 
Регистрация: 25.12.2009
Сообщений: 11
Вопрос

А теперь выдаёт ошибку в последней строке (

Код:
#include <stdlib.h>
#include <math.h>
#include "ctime"
#include <iostream.h>
int main(int argc, char* argv[])
{
 int n,i;
 double rest1,rest2,rest3,kolvopopad,sbili,sbilis,sbiliss;
 cout<<"Введите кол-во попаданий n=";
 cin>>n;
 for (i=1;i<kolvopopad;i++)
  {
    srand(time(NULL));
		rest1 = double((rand() % 100) / 100);
		rest2 = double((rand() % 100) / 100);
		rest3 = double((rand() % 100) / 100);

    kolvopopad=0;
     if(rest1<0.3)
	 {
		 kolvopopad=kolvopopad+1;
	 }
     
     else if (rest2<0.3)
	 {
		 kolvopopad=kolvopopad+1;
	 }
 
    else if (rest3<0.3)
	{
		kolvopopad=kolvopopad+1;
	}
 
     if (kolvopopad=3)
     sbili=sbili+1;
     if (kolvopopad=2) 
	  if (rest2<0,6)
          sbilis=sbili+1;
     if (kolvopopad=1) 
	  if (rest2<0,2)
          sbiliss=sbili+1;
  }

cout<<"Вероятность что самалёт выведен из строя при n выстрелах =";
cin>>sbili;
}
Изображения
Тип файла: jpg Снимок2.JPG (100.0 Кб, 129 просмотров)

Последний раз редактировалось xamelion; 10.01.2012 в 23:37.
xamelion вне форума
Старый 10.01.2012, 23:23   #6
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

кавычку в этой строке удалить надо
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума
Старый 10.01.2012, 23:45   #7
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

xamelion

Код:
#include <iostream.h>
{                                                                          //пишет ошибку
	int main(int argc, char* argv[])
{


C:\Program Files\Microsoft Visual Studio\MyProjects\2\2.cpp(5) : error C2447: missing function header (old-style formal list?)

Что это значит?


Это значит, что ты не знаешь основ языка Си. Пора открывать книгу и начинать получать знания.
Rififi вне форума
Старый 11.01.2012, 14:24   #8
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Поставь перед закрывающей скобкой в конце return 0;

И у тебя не ошибка, а предупреждение.
MaTBeu вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
rand в c++, Якъ Помощь студентам 3 11.11.2010 17:05
с++ rand Якъ Помощь студентам 4 10.11.2010 22:47
rand в С Jasper92 Общие вопросы C/C++ 1 02.04.2010 16:01
rand merets Общие вопросы C/C++ 1 09.09.2009 23:57
rand() ????? Revenholm Общие вопросы C/C++ 7 25.04.2009 18:47