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

Программа, моделирующую бросание двух игральных костей() - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
diallfam
1 / 1 / 0
Регистрация: 04.01.2012
Сообщений: 19
04.01.2012, 12:57     Программа, моделирующую бросание двух игральных костей() #1
Нет могу понять чего он от меня хочет в 3-м задании и как это сообразить...
Задание в файле...

Ниже текст cpp-шника ,без 3-го задания:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "stdafx.h"
#include <iostream>
#include <ctime> 
 
using namespace std;
 
void Dice::initWeights() {
    cout << "Введите веса кости:" << endl;
        
    int i = 0;
    do {
        // i+1 удобство для пользователя
        cout << "Грань " << (i+1) << ": ";
        cin >> this->NV[i];
        if (this->NV[i] <= 0 || this->NV[i] >= 1) {
            cout << "Неверное данное! Должно быть в диапазоне (0..1). Повторите ввод!" << endl;
            continue;
        }       
        // А заодно и установка кумулятивных вероятностей
        // NG[0] = NV[0]
        // NG[1] = NG[0] + NV[1]
        // ...
        if (i==0)
            this->NG[i] = this->NV[i];
        else
            this->NG[i] = this->NG[i-1] + this->NV[i];
        // К следующему элементу
        i++;
    } while (i < this->N-1);
}
 
void Dice::conversionProbability() {
    this->NV[N-1] = 1;
    for (int i=0; i<this->N-1; i++) {
        this->NV[N-1] -= this->NV[i];
    }
}
 
bool Dice::checkProbability() {
    // генератор случ. чисел
    srand(time(NULL));
    float sum = 0;
    for (int i=0; i<this->N; i++) {
        sum += this->NV[i];
    }
    /* NV[N] может получиться отрицательной в методе conversionProbability():
       Пример: NV = {0.1, 0.2, 0.3, 0.4, 0.5, X}. 
       NV[6] = X = 1 - (0.1+0.2+0.3+0.4+0.5) = -0.5 - ошибка! */
    if (abs(sum) > 1 || this->NV[N-1] <= 0) {
        return false;
    }
    else 
        return true;
}
 
int Dice::throwDice() {
    // Получить дробное число - вероятность [0..1]
    float SV = (rand() % 1000) / (float)1000;
 
    if (SV < this->NG[1]) 
        return 1;
    else if (SV >= this->NG[1] && SV < this->NG[2])
        return 2;
    else if (SV >= this->NG[2] && SV < this->NG[3])
        return 3;
    else if (SV >= this->NG[3] && SV < this->NG[4])
        return 4;
    else if (SV >= this->NG[4] && SV < this->NG[5])
        return 5;
    return 6;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Вложения
Тип файла: doc Zaochniki_kursovaya_TV.doc (25.5 Кб, 44 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 12:57     Программа, моделирующую бросание двух игральных костей()
Посмотрите здесь:

C++ Бросание двух костей.
Расстановка игральных костей C++
Бросание двух игральных костей C++
C++ Смоделировать бросание каждым из двух игроков трех игральных кубиков
Составить программу, моделирующую игру «крестики-нолики» C++
Программа моделирующая бросание монеты C++
Программа бросания костей C++
Бросают 5 игральных костей, какова вероятность, что выпавшее число будет четным? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 06:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru