Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2014, 17:39   #1
OstapGr
Новичок
Джуниор
 
Регистрация: 01.07.2014
Сообщений: 3
По умолчанию проблемы с кодом на С++. Компилятор коряво интерпретирует или руки не оттуда растут? Помогите разобраться, пожалуйста.

краткое описание:
1 блок задаем переменные
2 блок рассчитываем Р0 для СМО- считает правильно
3 блок рассчитываем Р для состояний с Р1 до Ри 10 заявок в очереди- здесь первая проблема на втором шаге цикла(и=1) используется Р0 для первого шага, третий шаг считает правильно
4 блок-рассчитывает вероятность что во всех очередях системы больше 10 заявок- тут почему-то сразу проблема!!- значения массива S куда-то пропали,.... для теста задал их вручную-сам блок считает вроде правильно
5 блок- просто тест 4 блока, делает то же самое, только для конкретного варианта(для конкретной сети СМО)

Компилил в DEV C++ 4.9.9.2
пробовал на разных машинах

Собственно проблема в блоках 3 и 4.
Почему в 3 блоке на итерации i=1, получаем не P[1][0], a P[0][0], хотя на итерации i=2 все правильно P[2][0]?-если быть точнее то P[1][0] каким-то образом получает значение P[0][14].-КАК?
Куда после 3 блока пропали значения s[0] и s[1], кстати s[2] осталось прежним равным 3, таким как мы его инициализировали в 1 блоке?

Подскажите, пожалуйста.


Код:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
   //1
    cout<<"vvedite kol-vo SMO v modele(v nashem variante 3)\n";
    int x;
    cin>>x;
    
    int s[x-1];
    for (int i=0;i<x;i++){
        cout<<"vvedite kol-vo canalov v SMO"<<i+1<<" (v nashem variante 4,2,3)\n";
        cin>>s[i];
        }
        
    float w[x-1];
    for (int i=0;i<x;i++){
        cout<<"vvedite srednee vremia v ocheredi v SMO"<<i+1<<" \n(v nashem variante 3.75,1.25,2.5)\n";
        cin>>w[i];
        }
        
    cout<<"vvedite kol-vo zaiavok v ocheredi dlia kotorogo nado poshitat veroiatnost\n(v nashem variante 10)\n";
    int OSN;
    cin>>OSN;
    int i,j,l,n,k;
    
    int max=s[0];
    for (i=1;i<x;i++){
        if (max<s[i]) max=s[i];}
    //2    
    float P[x-1][OSN+max];
    float P0;
    for(i=0;i<x;i++){
            P0=1;
            float G=1;
            for(n=1;n<s[i];n++){
                    G=G*w[i]/n;
                    P0=P0+G;
                    }
            P0=P0+(G*w[i]/s[i])/(1-w[i]/s[i]);
            P[i][0]=1/P0;
            cout<<"vivod P0 dlia controlia rasheta SMO"<<i+1<<endl;
            cout<<P[i][0]<<endl;
            }
    /*        
     for(i=0;i<x;i++){
            cout<<"vivod P0 dlia controlia rasheta SMO"<<i+1<<endl;
            cout<<P[i][0]<<endl;
            }
            */
    //3        
    for(i=0;i<x;i++){
            float T=P[i][0];
            for(n=1;n<s[i];n++){
                    P[i][n]=P[i][n-1]*w[i]/n;
                    //T=T+P[i][n];
                    cout<<P[i][n]<<" "<<T<<" "<<P[i][0]<<endl;
                    }
             for(n=s[i];n<=OSN+s[i];n++){
                    P[i][n]=P[i][n-1]*w[i]/s[i];
                    //T=T+P[i][n];
                    cout<<P[i][n]<<" "<<T<<" "<<P[i][0]<<endl;
                    }
            cout<<"veroiatnost chto v ocheredi bolshe "<<OSN<<" zaiavok dlia SMO"<<i+1<<endl;
            //cout<<1-T<<endl;                   
            }
    //4     
    s[0]=4;
    s[1]=2;
    s[2]=3;           
    k=1;        
    for (i=0;i<x;i++){
        k=k*(OSN+s[i]+1);
        cout<<s[i]<<" k= "<<k<<endl;
        }
        
    float Pisk=0;     
    int a[x-1];
    for (i=0;i<k;i++){
        a[x-1]=i;
        for (j=x-1;j>0;j--){
            a[j-1]=a[j]/(OSN+s[j]+1);
            a[j]=a[j]%(OSN+s[j]+1);
            }
            for (l=0;l<x;l++){
            //cout<<a[l]<<" ";
            }
        int z=0;
            for (l=0;l<x;l++){
            if (a[l]-s[l]<=0) a[l]=0;
            else a[l]=a[l]-s[l];
            z=z+a[l];
            }
            ///cout<<z<<endl;
        float Pplus=1;
        if (z<=OSN) for (l=0;l<x;l++){
                        //cout<<a[l]<<endl;
                        Pplus=Pplus*P[l][a[l]];
                        }
        else Pplus=0;
        Pisk=Pisk+Pplus;
        }
        cout<<"veroiatnost chto v ocheredi bolshe "<<OSN<<" zaiavok dlia vsei Seti"<<endl;                
        cout<<1-Pisk<<endl;    
    //5        
    Pisk=0;
    int ik,jk;         
    for(int i=0;i<=OSN+s[0];i++){
        if (i<=s[0]) ik=0;
        else ik=i-s[0];
        for(int j=0;j<=OSN+s[1]-ik;j++){
            if (j<=s[1]) jk=0;
            else jk=j-s[1];
            for(int k=0;k<=OSN+s[2]-ik-jk;k++){
                Pisk=Pisk+P[0][i]*P[1][j]*P[2][k];
                //cout<<i<<" "<<j<<" "<<k<<endl;
                //cout<<1-Pisk<<endl;
            }
        }
    }
    cout<<"veroiatnost chto v ocheredi bolshe "<<OSN<<" zaiavok dlia vsei Seti"<<endl;  
    cout<<1-Pisk<<endl;                 
    system("PAUSE");
    return 0;
}

Последний раз редактировалось OstapGr; 01.07.2014 в 19:54.
OstapGr вне форума Ответить с цитированием
Старый 02.07.2014, 15:25   #2
OstapGr
Новичок
Джуниор
 
Регистрация: 01.07.2014
Сообщений: 3
По умолчанию

Спасибо, сообществу! Полазил по форуму нашел много интересного и вкусного.
Ошибку отловил сам. Увеличил размерность массива Р на столбец и все заработало.
Просьба модераторам закрыть тему. Тема больше не нужна.
OstapGr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с vba (проблемы создания макросов) Leojse Microsoft Office Excel 4 26.12.2013 20:09
C++. проблемы с gets() Skull_psyhothik Помощь студентам 1 03.10.2012 01:10
проблемы с Qt CodeNOT Qt и кроссплатформенное программирование С/С++ 3 27.03.2012 12:17
проблемы с IE Tradua HTML и CSS 1 05.08.2011 06:54
Проблемы с БД Verwolf C/C++ Базы данных 2 22.05.2011 09:52