![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Мизеракль |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.11.2012 Репутация: нет Всего: нет |
Доброго времени суток.
У меня возникла не большая проблема с кодом, решил посоветоваться у вас на форуме. На С++(пишу на Visual Studio 2010 Ultimate) написать программу которая моделирует загрузку инопланетного корабля золотыми слитками Форт Нокса. Суть задачи: Програма случайным образом генерирует значение для переменных: Vmax (объем трюма) и Mmax (грузоподъемность инопланетного корабля). После генерации значений программа начинает загружать трюм инопланетного корабля золотыми слитками. Она будет выполняться (загружать трюм слитками), пока выполняется условие: if ((V <Vmax) and (M <Mmax)) Если условие не выполняется, то программа завершает свое выполнение. Если условие выполняется, загружается на конвейер новый слиток. Программа генерирует случайные параметры слитка (линейные размеры и среднюю плотность: X, Y, Z, ρ). Если слиток не может поместиться в трюме, т.е. условие if ((V + x * y * z <= Vmax) and (M + ρ * x * y * z <= Mmax)) не выполняется, то мы его выбрасываем (drop) и загружаем новый слиток. Если слиток помещается в трюме, то мы должны проверить условие прохождения слитка через окошко в трюм: if(((a>=x)and(b>=y))or((a>=y)and(b>=x))or((a>=x)and(b>=z))or((a>=z)and(b>=x))or((a>=z)and(b>=y))or((a>=y)and(b>=z))or((a>=y)and(b>=z))) a и b - размеры окошка генерируються случйно. Если условие не выполняется, мы его выбрасываем (drop) и загружаем новый слиток. Если слиток проходит в окошко, то дальше мы поворачиваем слиток на конвейере так, чтобы он прошел сквозь окошко, используя действия «rotate» (повернуть по оси y) и «turn» (повернуть по оси х). Если слиток прошел сквозь окошко в трюм, то загружается новый слиток на конвейер. Программа заканчивает выполнение, когда невозможно загружать больше слитков в трюм корабля. Вот код: #include <iostream> #include <time.h> #include <cstdlib> using namespace std; using std::srand; using std::rand; int main () { double Mmax,Vmax,x,y,z,r,a,b,V,M,m,v; srand(time(0)); Mmax=1000+rand()%10000; Vmax=100+rand()%2000; a=4+rand()%3; b=4+rand()%6; V=0; M=0; m=Mmax*(7+rand()%7)/100; v=Vmax*(7+rand()%7)/100; cout<<"(Mmax,Vmax):('<<Mmax<<','<<Vmax<<')"<<endl; cout<<"(A,B):('<<a<<','<<b<<')"<<endl; cout<<endl<<"(x,y,z,r):"<<endl; //------------------------------------------------ while (M<=Mmax-m, V<=Vmax-v); { x=4+rand()%4; y=4+rand()%4; z=4+rand()%4; r=4+rand()%4; cout<<endl; cout<<"('<<x<<','<<y<<','<<z<<','<<r<<')"; cout<<"(Actions with gold: put)"; if ((M+x*y*z*r<=Mmax)&&(V+x*y*z<=Vmax)) { if((x<=a)&&(z<=b)) {cout<<"->Accept"<<endl;M=M+x*y*z*r;V=V+x*y*z;} else if((x<=a)&&(y<=b)){cout<<"->Turn->Accept"<<endl;M=M+x*y*z*r; V=V+x*y*z;} else if((y<=a)&&(z<=b)){cout<<"->Turn->Rotate->Turn->Accept"<<endl;M=M+x*y*z*r;V=V+x*y*z;} else if((x<=b)&&(y<=a)){cout<<"->Turn->Accept"<<endl;M=M+x*y*z*r;V=V+x*y*z;} else if((x<=b)&&(z<=a)){cout<<"->Rotate->Accept"<<endl;M=M+x*y*z*r;V=V+x*y*z;} else cout<<"->Drop"<<endl; } } Не могу понять где ошибка, при запуске кода не могу вводить значения переменных отвечающие за параметры слитка и вместо случайных значений пишуться названия переменных. Заранее спасибо за помощь. |
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
Это не код. Вот код:
Добавлено @ 12:37 Строковые литералы отграничены символами "...", а Вы пытаетесь выдумать что-то своё: "...' Всё, что выделено красным цветом - один-единственный строковый литерал, который и будет благополучно напечатан. Это шедевр - эти запятые и точки с запятой... Срочно в ветку для новичков ![]() Добавлено через 12 минут и 1 секунду Здесь тоже не пойми что с чем сравнивается. А скобки то стоят, да не там... Это сообщение отредактировал(а) feodorv - 3.11.2012, 12:38 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Мизеракль |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 3.11.2012 Репутация: нет Всего: нет |
Спасибо feodorv за исправления)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |