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

Прога проскакивет условие выхода, не могу найти ошибку в коде - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В каждой строке матрицы поменять местами первый элемент и максимальный по модулю http://www.cyberforum.ru/cpp-beginners/thread519345.html
В каждой строке матрицы А (7х9) поменять местами первый элемент и максимальный по модулю заранее благодарю)
C++ создать класс строка наследующий от класса последовательность цифр пожалуйста помогите по С++ : создать класс строка наследующий от класса последовательно с цифр содержащий перегруженные методы с поиском максимальных цифр в строке вычисление длины строки и преобразования в переменную типа int http://www.cyberforum.ru/cpp-beginners/thread519342.html
C++ Assertion failed
Делаю программу Преобразование Фурье, если задать число входных данных 2^21 или больше, то возникает такая ошибка: Assertion failed: ! "Bad error code", file VMem.c, line 715 и билдер виснет напрочь. Подскажите, как сделать, чтобы эта ошибка не возникала.
Распараллеливание цикла в MPI (0ая ветвь рассылает задание остальным ветвям, как только те освобождаются) C++
Имеется примерно такой код (упрощённая запись). int size, rank; int operations = 10000; //всего операций int op_na_1_proc; // операций на каждый процессор double x, y, z; /**/MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank);
C++ Перевести код с Паскаля на С++ http://www.cyberforum.ru/cpp-beginners/thread519332.html
Фирме принадлежат два магазина. Известна стоимость товаров, проданных в каждом магазине за каждый день в июле и августе, которая хранится в двух массивах. Получить общую стоимость проданных фирмой товаров за два месяца. program turner; uses crt; var a: array of integer; b: array of integer; i, s, s1: integer; begin clrscr; Randomize; for i := 1 to 30 do begin
C++ C++ Поиск пикселя заданного цвета и замена другим. Ребята, помогите пожалуйста с решением задачи. Кучу документации перекопала - никак не могу найти решение. Нужно разработать программу, которая: в заданной области находит точки зеленого цвета, используя режим чтения 0, и заменяет их на красные, используя режим записи 2. ЗАрание всем спасибо. подробнее

Показать сообщение отдельно
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
15.03.2012, 20:14  [ТС]     Прога проскакивет условие выхода, не могу найти ошибку в коде
C++
1
while(d1>=d2);
хотя условие четкое, но почему то не срабатвает, или может ли интерпритатор его игнорить?

Добавлено через 1 час 27 минут
к данному коду еще добавляет деление многочлена на нод, который находиться в первом коде
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
179
180
181
182
183
184
185
186
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    double e1[10], e2[10], cop1[10], cop2[10], otv[10], cop22[10], ee2[10];
    int d1, d2;
    cout<<"Введите многочлен"<<endl;
    A:  cout<<"Введите значениe старшей степени многочлена:"; cin>>d1;
            if(!cin.good())
            {
                cout<<"Ошибка! Введите значениe старшей степени многочлена, заново!"<<endl;
                _flushall();
                cin.clear();
                _getch();
                goto A;
            }
 
            for(int i=0; i<d1+1; i++)
            {
    A1:      cout<<"Введите коэффициент x^"<<i<<"=";
             cin>>e1[i];
             if(!cin.good()&&(e1[d1]!=3)||(e1[i]==0))
                {
                    cout<<"Ошибка"<<endl;
                    _flushall();
                    cin.clear();
                    goto A1;
                }
            }
            int rez=d1;
            cout<<e1[d1]<<"(x^"<<d1<<")";
            for(int i=d1-1; i>=0; i--)
            {   
                if(e1[i]>0) cout<<"+"<<e1[i]<<"(x^"<<i<<")";
                else cout<<e1[i]<<"(x^"<<i<<")";
            }
        for(int i=d1; i>=0; i--)
        {
            e2[i]=e1[i];
            cop1[i]=e1[i];//копия 1
        }
    cout<<" "<<endl;
 
    cout<<"Производная многочлена:";
    for(int i=d1; i>=1; i--)
    {
        e2[i-1]=e1[i]*i;
    }
    d2=d1-1;
    cout<<e2[d2]<<"(x^"<<d1-1<<")";
    for(int i=d2-1; i>=0; i--)
            {   
                if(e2[i]>0) cout<<"+"<<e2[i]<<"(x^"<<i<<")";
                else cout<<e2[i]<<"(x^"<<i-1<<")";
                ee2[i]=e2[i];
            }
    cout<<" "<<endl;
w:  if(d1<0) {cout<<"ОШИБКА";}
    else{
    int e = d1 - d2;
    cout<<"делимое:";
    cout<<cop1[d1]<<"(x^"<<d1<<")";
            for(int i=d1-1; i>=0; i--)
            {   
                if(cop1[i]>0) cout<<"+"<<cop1[i]<<"(x^"<<i<<")";
                else cout<<cop1[i]<<"(x^"<<i<<")";
            }
    cout<<"делитель:";
    cout<<e2[d2]<<"(x^"<<d1-1<<")";
    for(int i=d2-1; i>=0; i--)
            {   
                if(e2[i]>0) cout<<"+"<<e2[i]<<"(x^"<<i<<")";
                else cout<<e2[i]<<"(x^"<<i-1<<")";
            }
    for(int i=0; i<d1+1; i++)
        {
            if(i==0) cop2[i]=0;
            else cop2[i]=e2[i-1];
        }
                //деление многочлена на производную
            do
            {
                        double u = cop1[d1]/cop2[d1];
                        cout<<"Коэф:";
                        for(int i=0; i<d1+1; i++)
                        {
                            cop22[i] = cop2[i] * u;
                            cout<<"   "<<cop22[i];
                        }
                        cout<<" "<<endl;
                        cout<<cop22[d1]<<"(x^"<<d1<<")";
                        for(int i=d1-1; i>=0; i--)
                        {
                            if(cop22[i]>0) cout<<"+"<<cop22[i]<<"(x^"<<i<<")";
                            else cout<<cop22[i]<<"(x^"<<i<<")";
                        }
                        cout<<" "<<endl;
                        for(int i=0; i<d1+1; i++)
                        {
                            otv[i]=cop1[i]-cop22[i];
                        }
                        cout<<"Промежуточн отв"<<endl;
                        cout<<otv[d1]<<"(x^"<<d1<<")";
                        for(int i=d1-1; i>=0; i--)
                        {
                            if(otv[i]>0) cout<<"+"<<otv[i]<<"(x^"<<i<<")";
                            else cout<<otv[i]<<"(x^"<<i<<")";
                        }
                        cout<<""<<endl; 
                        d1 = d1 - 1;
                        cout<<"Razmer"<<endl;
                        cout<<d1<<endl;
                        cout<<d2<<endl;
                        for(int i=0; i<d1+1; i++)
                        {
                            cop1[i] = otv[i];
                            cop2[i] = e2[i];
                        }
                    
            }while(d1>=d2);
                if(otv[d1] > -0.001 && otv[d1] < 0.001)
                                {       cout<<"НОД"<<endl;
                                    cout<<cop2[d2]<<"(x^"<<d2<<")";
                                    for(int i=d2-1; i>=0; i--)
                                    {
                                        if(cop2[i]>0) cout<<"+"<<cop2[i]<<"(x^"<<i<<")";
                                        else cout<<cop2[i]<<"(x^"<<i<<")";
                                    }
                                }
                else{
                    d1=d2;
                    d2=d1-1;
                        for(int i=0; i<d1+1; i++)
                        {
                            cop1[i]=e2[i];
                            e2[i]=otv[i];
                        }
                        goto w;
                    }
    }
/////////////////////////рез деление многочлена на нод
    double w[10], w2[10], posl[10], zam[10];
    int y=rez-d2;
    for(int i=0; i<d2; i++){zam[i]=cop2[i];}
    for(int i=rez; i>=0; i++)
    {
        if((i-y)<0) w[i]=0;
        else w[i]=cop2[i-y];
    }
    do{
 
        double q=e1[rez]/w[rez];
        for(int i=0; i<rez+1; i++)
        {
            w2[i]=w[i]*q;
        }
        for(int i=0; i<rez+1; i++)
        {
            posl[i]=e1[i]-w2[i];
        }
        cout<<"Ответ деления"<<endl;
        cout<<posl[rez]<<"(x^"<<d1<<")";
        for(int i=rez-1; i>=0; i--)
        {
            if(posl[i]>0) cout<<"+"<<posl[i]<<"(x^"<<i<<")";
            else cout<<posl[i]<<"(x^"<<i<<")";
        }
        cout<<""<<endl;
        rez=rez-1;
        for(int i=0; i<rez+1; i++)
        {
            e1[i]=posl[i];
            w[i]=zam[i];
        }
 
      }while(rez>=d2);
 
    system("pause");
    return 0;
}
и все равно та же ошибка с d1 и d2 где не срабатывает условие
 
Текущее время: 14:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru