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

Компиляция программы, max и getch - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправить простой код с оператором cout http://www.cyberforum.ru/cpp-beginners/thread660752.html
Добрый день! Помогите пожалуйста исправить ошибки в этом коде. Изучаю С++ совсем недавно и ещё не все ошибки могу разобрать, т.к. исправив одну, получаю другую. #include <iostream.h> #include <stdafx.h> using namespace std; int main() {
C++ Про указатели с использованием функции Вопросы в комментариях к коду #include <iostream> #include <cctype> #include <cstring> using namespace std; void stringupper(char *str); int main() { http://www.cyberforum.ru/cpp-beginners/thread660736.html
C++ Марковские процессы
Задача: Дублированная система состоит из двух различных элементов в нагруженном режиме. Интенсивности отказов элементов равны λ1 и λ2 соответственно. Интенсивности восстановления u1 и u2 . Ремонтный орган имеет одну ремонтную бригаду с прямой дисциплиной обслуживания («первым пришел — первым обслужен»). Составить граф состояний системы и найти среднее время до отказа системы. Помогите,...
C++ Определить, сколько точек попадает в круг радиусом R с центром в точке (0,0)
Люди помогите пожалуйста решить 2. В ПК вводятся по очереди координаты n точек. Определить, сколько из них попадает в круг радиусом R с центром в точке (0,0).
C++ Включить массив В в качестве нового столбца массива А http://www.cyberforum.ru/cpp-beginners/thread660702.html
1. ЗАдан массив А размером 5 на 3 и вектор В размером 3. Элементы первой строки массива А упорядочены по убыванию. Включить массив В в качестве нового столбца массива А.
C++ Получить для х=1,2,3 значения р(х+2)р(х+1), где р(у)=а0*у^2+a1*y^5+..+a6 2. Даны действительные числа а0,....,а5. Получить для х=1,2,3 значения р(х+2)р(х+1), где р(у)=а0*у^2+a1*y^5+..+a6. подробнее

Показать сообщение отдельно
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
30.09.2012, 14:55     Компиляция программы, max и getch
Я так не сказал. Я сказал, что не понимаю зачем она там нужна.Сейчас попробую разобраться.

Добавлено через 11 минут
Решил твою проблему. Дело было в unsigned , я объявил все переменные как int и код скомпилировался.

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include "stdafx.h"
#include <iostream>
#include <conio.h>
//#include <stdlib.h>
#include <iomanip>
//#include <time.h>
//#include <algorithm>
using namespace std;
//using std::max;
const unsigned int ColTasks=5;
struct STRtask {
     int tk;//длительность выполнения требования
     int Dk;//директивный срок
     int Gok;//время если требование первое
     int Ck;//важность
     int TRel[ColTasks];//время для перегрузки ПО
};
 
//Функции
//void InitTasksA(STRtask *ITtasks);//генерация случайных чиел
void  InitTasksH(STRtask *ITtasks);//построенеи по заданным значениям
void Shtraf(STRtask *PRtasks);//вычисление функции штрафа
void ShowTasks(STRtask *STtasks);//вывод результатов
void GeneratePosl(STRtask *GPtasks);//генерируем последовательности
 
//Переменные
unsigned int TekPosl[ColTasks];//текущая посл. вып. треб.
unsigned int OptPosl[ColTasks];//оптимальная посл. треб.
unsigned long FOpt=424967295;//оптимальное знач. ф-ии штрафа
STRtask tasks[ColTasks];//требования
 
//Поехали
 
void main()//Главный метод
{
    char spos[1];
    while (1)
    {
        cout<<"Выберите способ ввода данных: автоматически (А) или вручную (Н): ";
        cin>>spos;
        /*if((spos[0]=='A')||(spos[0]=='a'))
        {
            InitTasksA(tasks);
            break;
        }*/
        if((spos[0]=='H')||(spos[0]=='h'))
        {
            InitTasksH(tasks);
            break;
        }
        cout<<"Вы ошиблись при выборе режима. Попробуйте еще раз."<<endl;
    }
    ShowTasks(tasks);
    Shtraf(tasks);
    GeneratePosl(tasks);
 
    cout<<endl<<"Оптимальной последовательностью является:"<<endl;
    for(unsigned int ca=0; ca<ColTasks; ca++)
    {
        cout<<OptPosl[ca]<<" ";
    }
    cout<<endl<<"функция штрафа = "<<FOpt<<endl<<"Конец.";
    _getch();
}
 
 
/*void InitTasksA(Strtask *ITtasks)
{
    for (unsigned int ca=0; ca<ColTasks; ca++)
    {
        ITtasks[ca].tk = random(20)+1;
        ITtasks[ca].Dk = random(5*ColTasks)+1;
        ITTasks[ca].Gok = random(3)+1;
        //ITtasks[ca].Ck = random(3)+1;
        for (unsigned int cb=0; cb<ColTasks; cb++)
        {
            ITtasks[ca].Trel[cb] = random(14);
        }
        TekPosl[ca] = ca;
    }
}
*/
 
void InitTasksH(STRtask *ITtasks)//вычисления по заданным значениям
{
    //cout<<"# *"<<"tk"<<"Dk"<<"Gok"<<"Ck"<<endl;
    cout<<"# *"<<"tk"<<"Dk"<<"Gok"<<endl;
    for (unsigned int ca=0; ca<ColTasks; ca++)
    {
        cout<<ca<<": ";
        //cin>>ITtasks[ca].tk>>ITtasks[ca].Dk>>ITtasks[ca].Gok>>ITtasks[ca].Ck;
        cin>>ITtasks[ca].tk>>ITtasks[ca].Dk>>ITtasks[ca].Gok;
        cout<<endl<<" TRel: "<<endl;
        for (unsigned int cb=0; cb<ColTasks; cb++)
        {
            if(ca!=cb)
                cin>>ITtasks[ca].TRel[cb];
            else
            {
                ITtasks[ca].TRel[cb]=-1;
                cout<<" - "<<endl;
            }
        }
        TekPosl[ca]=ca;
    }
}
 
void GeneratePosl(STRtask *GPtasks)//Генерация последовательности
{
    unsigned int i, j;
    while (1)
    {
        TekPosl[ColTasks-1]++;
        for(i=ColTasks-1; i>0; i--)
        {
            if(TekPosl[i]>ColTasks-1)
            {
                TekPosl[i]=0;
                TekPosl[i-1]++;
            }
        }
        if(TekPosl[0]>ColTasks-1)
            return;
        for(i=0; i<ColTasks-1; i++)
        {
            for(j=i+1; j<ColTasks; j++)
            {
                if(TekPosl[i]==TekPosl[j])
                    goto endp_while;
            }
        }
        Shtraf(GPtasks);
endp_while:;
    }
}
 
void Shtraf(STRtask *SHTasks)//вычисление функции штрафа
{
    unsigned int FTek = 0;
    unsigned int tsk = TekPosl[0];
    int t = SHTasks[tsk].Gok+SHTasks[tsk].tk;
    FTek=SHTasks[tsk].Ck * max(t-SHTasks[tsk].Dk,0);
    //FTek=1*max(t-SHTasks[tsk].Dk,0);//функция штрафа
    for (unsigned int ca=1; ca<ColTasks; ca++)
    {
        tsk=TekPosl[ca];
        t+=SHTasks[tsk].TRel[TekPosl[ca-1]] + SHTasks[tsk].tk;
        FTek+= SHTasks[tsk].Ck * max((t-SHTasks[tsk].Dk), 0);
        //FTek+= 1*max((t-SHTasks[tsk].Dk),0);
    }
    if(FTek<FOpt)
    {
        FOpt=FTek;
        for (unsigned int ca=0; ca<ColTasks; ca++)
        {
            OptPosl[ca] = TekPosl[ca];
        }
    }
}
 
void ShowTasks(STRtask *STtasks)
{
    cout<<"Данные имеют следующий вид: "<<endl;
    //cout<<"# *"<<"tk*"<<"Dk*"<<"Gok*"<<"Ck*"<<endl;
    cout<<"# *"<<"tk*"<<"Dk*"<<"Gok*"<<endl;
    for (unsigned int ca=0; ca<ColTasks; ca++)
    {
        //cout<<setw(3)<<ca<<"*"<<setw(4)<<STtaks[ca].tk<<"*"<<setw(4)<<STtasks[ca].Dk<<"*"<<setw(5)<<Sttasks[ca].Gok<<"*"<<setw(4)<<STtasks[ca].Ck<<"* Gij: ";
        cout<<setw(3)<<ca<<"*"<<setw(4)<<STtasks[ca].tk<<"*"<<setw(4)<<STtasks[ca].Dk<<"*"<<setw(5)<<STtasks[ca].Gok<<"*"<<"* Gij: ";
        for (unsigned int cb=0; cb<ColTasks; cb++)
        {
            if(ca!=cb)
                cout<<" "<<setw(3)<<STtasks[ca].TRel[cb]<<" ";
            else cout<<" - ";
        }
        cout<<endl;
    }
}
 
Текущее время: 00:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru