![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Georgiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
В C++ Builder ввожу вещественное число с клавиатуры в код с циклом
cout<<Rus("Введите предел ")<<endl; cin>>N; for(int i=1;i<=N;i++){ cout<<Rus("Введите число ")<<endl; cin>>sdelka[i]; cout<<Rus("Вот число ")<<sdelka[i];} вещественное число показывается первое и то целое ,и цикл запускается самотёком ,и показывает самые разные числа. Подскажите пожалуйста как быть. Почти полный код в подфоруме C++ Builder под автором Georgiy. Это сообщение отредактировал(а) Georgiy - 27.11.2006, 22:50 Присоединённый файл ( Кол-во скачиваний: 4 )
___.txt 2,20 Kb |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
покажи как у тебя переменная\массив объявлены..
кстати не забыл что в С, индексы с нуля начинаются?? |
|||
|
||||
| Xenon |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
У тебя, для начала, в цикле
Ты за пределы массива выходишь. Нужно
Ибо в С++ массива индексируются с нуля. И где тот самый массив sdelka? Где ты выделяешь под его память? PS. И пользуйся тегами ! Читай правила сверху! Это сообщение отредактировал(а) Xenon - 26.11.2006, 22:50 |
||||
|
|||||
| ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: -2 Всего: -1 |
100% массив int вот он и округляет не явно
смени int на double,float --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
| Georgiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Решил запрограммировать простенькую формулу,а упёрса лбом в стену не хочет работать прога и всё.Вот полный исходник по формулам: TWR=E(1-f*(-сделка/наибольший проигрыш):G=TWR*(1/количество сделок);
#pragma hdrstop #pragma argsused //--------------------------------------------------------------------------- #include <iostream> #include <conio> #include <windows> #include <math> using namespace std; //----------------------------------------------------------------------------- char* Rus (const char* text); //---------------------------------- class TWR{ int N;//Количество сделок double sdelka[];//Массив для сделок double f;//Оптимальное f; double temp; double twr_f; double twr; double Max_Loss;//Наибольший проигрыш public: TWR();//Конструктор с кол-ом сделок void set_sdelka();//Заполнение массива сделками void set_twr();//Рассчёт TWR //---------------------------------- TWR::TWR(){ cout<<Rus("Работает конструктор")<<endl; temp1=0.0; twr_f=1; f=0.01; twr=0.0; cout<<Rus("Ввести наибольший проигрыш =")<<endl; cin>>Max_Loss; cout<<Rus("Ввести количество сделок =")<<endl; cin>>N;} //---------------------------------- void TWR::set_sdelka(){ //Инициализация массива сделок; for(int i=0,int j=1;i=N;i++,j++)//j всего лишь номер сделки; {cout<<Rus("ввести сделку ")<<j<<" ="; cin>>temp; sdelka[i]=temp;}//Напрямую cin>>sdelka[i] также не получается; } void TWR::set_twr(){ while(f<=1){ for(int i=0;i<N;i++) {twr_f*=(1-f*(-sdelka[i]/Max_Loss));}//Нахождение twr ////первого оптим. f; if(twr>twr_f){ cout<<"TWR = "<<twr<<endl; break;} f+=0.01; twr=twr_f; } double G; G=pow(twr,(1/N));//Вывод среднего геометрического cout<<Rus("Среднее геометрическое G= "<<G<<endl;} int main(int argc, char* argv[]) { TWR ob1; ob1.set_sdelka(); ob1.set_twr(); getch(); return 0; } char bufRus[256]; char* Rus(const char*text) { CharToOem (text,bufRus); return bufRus; } //--------------------------------------------------------------------------- |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Georgiy, научись выделять код цветом! Читать неприятно. Нажми на бокс "Код" выбери язык (С++) и вставь в него свой исходник.
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Georgiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Спасибо за подсказку Это сообщение отредактировал(а) Georgiy - 27.11.2006, 23:04 |
|||
|
||||
| witex |
|
||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 0 Всего: 4 |
а чё цикл бесконечный? У тебя вместо уравнения присваивание стоит! Тут точно цикл бесконечный! А посколько массив ещё не определён по размеру, о он просто что висит в памяти! то и кидает тебе! А на счёт дробуй! то бывает по разнуому принимает! надо черз запятую писать, а бывает через дробь! так пробуй! а цикл тогда так
Лудше создай динамический массив, чем не определённой длинны. Тем более его можно без константы создать!
Меньше проблем сразу будет! Это сообщение отредактировал(а) witex - 28.11.2006, 02:12 --------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
||||||
|
|||||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Georgiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Извините за не точности, а вобщем сам смысл в самом массиве.Набирал код наспех.А динамический массив создавал таже петрушка.
|
|||
|
||||
| Georgiy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.11.2006 Репутация: нет Всего: нет |
Отладил код с выделением динамической памяти,всё равно вместо сделок ставит 0,если перед последующей сделкой ввести вещественное число и запускает самовольно.
Вот код:
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |