С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Подключить библиотеку что бы русские коментарии выдовал - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как по файлам узнать в какой среде компилировался код? http://www.cyberforum.ru/cpp-beginners/thread534238.html
Собственно вопрос названии. Возможно ли вообще узнать таким образом. Спрашиваю,потому что у меня есть код на языке С++,который я компилирую на VS 2010, но когда я открывал файл, ВС сказал мне что...
C++ Задача с постусловием(while do) и предусловием(while). Задача: Найти среднее арифметическое нечетных чисел делящихся на 3 без остатка. Диапазон чисел от 1 до 50.С постусловием. Код C++ с For. #include<iostream.h> #include<conio.h> ... http://www.cyberforum.ru/cpp-beginners/thread534224.html
C++ Cреднее арифметическое чисел, лежащих ниже главной диагонали
Задача должна находить среднее арифметическое чисел лежащих ниже главной диагонали #include "stdafx.h" #include <iostream> #include <stdio.h> #include <conio.h> #include <stdlib.h> #define N 3...
Создание таблицы для судоку C++
Всем доброго времени суток.Пишу курсовую на тему "Судоку",надо в двумерный массив случайным образом заносить числа от 1 до 9.Вот часть программы где заполняет таблицу. И вот проблема,вайл...
C++ Как перегрузить оператор = http://www.cyberforum.ru/cpp-beginners/thread534207.html
ну там чтоб он например сложение делал или чтото другое
C++ Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? Подскажите как правильно составить программу к этим задачам: 1.Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел? Если можно, то указать тройку x, y,... подробнее

Показать сообщение отдельно
maxemus1
0 / 0 / 0
Регистрация: 13.04.2011
Сообщений: 9

Подключить библиотеку что бы русские коментарии выдовал - C++

29.03.2012, 22:54. Просмотров 1559. Ответов 5
Метки (Все метки)

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
//Все что смог придумать перепробовал уже ( 
 #include <iostream>
#include <windows.h>
#include<math.h>
 
char bufRus[256];
 
char* Rus(char* text) {
CharToOem(text, bufRus);
return bufRus;
}
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
    double mas[11][26];double index[11];double shit[11][26];int baz[10];int zn[10];double c,min;int i,j,i1,i2,z=0,n,k,ohshit,lol,lol1;bool ind_ne_ok=true;
    //vvod
    do
    {
        cout<<"Введите количество неравенств (от 2 до 10): ";
        cin>>n;
    }
    while(n<2 || n>10);
    n++;
    do
    {
        cout«Rus»<<"Введите количество неизвестных (от 2 до 15): ";
        cin>>k;
    }
    while(k<2 || k>16);
    k++;
    for(i=0;i<n-1;i++)
    {
        cout<<"Введите коэффициенты "<<i+1<<"-го неравенства:"<<endl;
        for(j=1;j<k;j++)
        {
            cout<<"Введите коэффициент перед Y"<<j<<": ";
            cin>>mas[i][j];
        }
        cout<<"Введите свободный член: ";
        cin>>mas[i][0];
        do
        {
            cout<<"Введите знак неравенства (-1 - <=; +1 - >=): ";
            cin>>zn[i];
        }
        while(zn[i]<-1 || zn[i]>1 || zn[i]==0);
    }
    for(i=0;i<k;i++)
    {
        if(i==0)
            cout<<"Введите свободный член целевой функции: ";
        else
            cout<<"Введите коэффициент перед Y"<<i<<": ";
        cin>>mas[n-1][i];
    }
    //приведение неравенств к уравнения
    for(i=0;i<n-1;i++)
    {
        if(zn[i]==-1)
        {
            k++;
            mas[i][k-1]=1;
            for(j=0;j<n;j++)
                if(j!=i)
                    mas[j][k-1]=0;
            zn[i]=0;
        }
            if(zn[i]==1)
            {
                k++;
                mas[i][k-1]=-1;
                for(j=0;j<n;j++)
                    if(j!=i)
                        mas[j][k-1]=0;
                zn[i]=0;
            }
    }
    //изменение знаков свободных членов на положительные
    for(i=0;i<n-1;i++)
        if(mas[i][0]<0)
            for(j=0;j<k;j++)
                mas[i][j]=mas[i][j]*(-1);
    //Добавление базиса
    for(i=0;i<n-1;i++)
    {ohshit=0;
        for(j=1;j<k;j++)
            if(mas[i][j]==1)
            {for(i1=0;i1<n-1;i1++)
                    if(mas[i1][j]!=0&&i1!=i)
                    {ohshit++;break;}
                    else if((mas[i1][j]==0&&i1==n-2&&i!=n-2)||(i==n-2&&mas[i1][j]==1)) {baz[z]=j;z++;}}else ohshit++;
                    if(ohshit==k-1)
                    {
                        k++;
                        mas[i][k-1]=1;
                        for(i2=0;i2<n;i2++)
                            if(i2!=i) mas[i2][k-1]=0;
                        baz[z]=k-1;
                        z++;
                    }
    }
    //первичное заполнение индексной строки
    for(i1=0;i1<k;i1++)
    {c=0;
        for(i=0;i<z;i++)
            c=c+mas[n-1][baz[i]]*mas[i+1][i1];
        if(i1==0) index[i1]=c+mas[n-1][i1];
        else index[i1]=c-mas[n-1][i1];}
    //симплекс метод
    while (ind_ne_ok){
        lol=0;
        min=0;
        for(i=0;i<n;i++)
            for(j=0;j<k;j++)
                shit[i][j]=mas[i][j];
        //поиск ключевого столбца
        for(i=1;i<k;i++)
            if(index[i]<0)
            {
                for(i1=0;i1<n-1;i1++)
                    if(mas[i1][i]>0)
                    {
                        lol=i;
                        break;
                    }
                if(lol!=0) break;
            }
        if(i==k && lol==0) break;
        //поиск ключевой строки
        for(i=0;i<n-1;i++)
            if(mas[i][lol]>0 && min==0) {min=mas[i][0]/mas[i][lol];lol1=i;}
            else if(mas[i][lol]>0 && mas[i][0]/mas[i][lol]<min) {min=mas[i][0]/mas[i][lol];lol1=i;}
        for(j=0;j<k;j++)
            if(j!=lol) mas[lol1][j]=mas[lol1][j]/mas[lol1][lol];
        mas[lol1][lol]=1;
        baz[lol1]=lol;
        for(i=0;i<n-1;i++)
            if(i!=lol1) mas[i][lol]=0;
        //расчет новой таблицы
        for(i=0;i<n-1;i++)
            for(j=0;j<k;j++)
                if(i!=lol1 && j!=lol)
                    mas[i][j]=mas[i][j]-shit[i][lol]*mas[lol1][j];
        //расчет индексной строки
        for(i=0;i<k;i++)
            if(i!=lol)
                index[i]=index[i]-index[lol]*mas[lol1][i];
        index[lol]=0;
    }
    //vivod
        cout<<"Последняя cимплекс-таблица "<<":"<<endl;
        for(i=0;i<n-1;i++)
            for(j=0;j<k;j++)
                if(j!=k-1)
                    cout<<mas[i][j]<<"  ";
                else
                    cout<<mas[i][j]<<endl;
        for(i=0;i<k;i++)
            cout<<index[i]<<"  ";
    cout<<endl;
    cout<<"Максимальное значение целевой функции: "<<index[0];
    cout<<endl<<"Базисные неизвестные двойственной задачи: ";
    for(i=0;i<n-1;i++)
        cout<<"Y"<<baz[i]<<"; ";
    cin>>i;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.