Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Пошаговое объяснение программы. https://www.cyberforum.ru/ cpp-beginners/ thread41421.html
Задаются точные арифметические операции, в которых некоторые цифры либо стерты, либо заменены буквами. В данной операции одна и та же буква заменяет одну и ту же цифру и разные буквы представляют поэтому разные цифры. Нужно восстановить исходную операцию. Уравнение: ABCDE*9 = FGHIJ Код написан, но я его не понимаю до конца. Может кто нибудь по шагово объяснить его? пожаааааааалуйста =) ...
делитель файла на 2 C++
Пословный делитель файла на 2. Из достаточно длинного файла выбирать четные и нечетные слова и сохранять их в двух других файлах. есть что нить подобное??? Исходники, или алгоритмы???Желательно С++. Добавлено через 17 часов 11 минут 40 секунд #include <stdio.h> main() { FILE* inpf = fopen("d:\\borlandc\\bin\\text.txt", "r");
C++ Работа с переменными размером 64 бита Очень нужно манипулировать битами в переменной длиной не менее 64 бит (целое). Т.е. например необходимо получить 23 бит в 64 битном числе. Так вот возник вопрос, как определить такие переменные. Я пробовал и long long и __int64 на что компилятор Borland С++ 5.0 неимоверно ругается и не позволяет это сделать. Может подскажет кто? плз. https://www.cyberforum.ru/ cpp-beginners/ thread41406.html C++ Не работает графический режим https://www.cyberforum.ru/ cpp-beginners/ thread41399.html
Всем привет) сделал программу на Турбо С++ с использованием графического режима. Запускается exe-шка только в папке где содержится Турбо С++. Если переместить в другое место выдает ошибку, что не может запустить графический режим. Подскажите пожалуйста что нужно чтобы запустить программу. Спасибо!
Блок-схема C++
Есть код на С, можно по нему составить блок-схему???
C++ бинарные деревья в c++ https://www.cyberforum.ru/ cpp-beginners/ thread41383.html
Ребят, нужна помощь. Вообщем надо построить бинарное дерево (дерево поиска), а потом из него удалить ветвь, начинающюся с ключа M... есть ф-я построения дерева и ф-я вывода его на экран, помогите написать ф-ю удаления ветки, нач-ся с ключа M, и вывести на экран получившееся дерево... #include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <conio.h> struct Node { int...
C++ Транспонирование n мерной квадратной матрицы(двумерный динамический массив) https://www.cyberforum.ru/ cpp-beginners/ thread41375.html
"Создайте программу для транспонирования квадратной матрицы A. Значение n вводится с клавиатуры, элементы масива тоже." Пробовал делать, но не получилось, остановился на том что выделил память под масив, но как заполнить его с клавиатуры не получаестя, а как потом сделать так чтоб ее транспонировало, даже не знаю, подскажите сам не догадаюсью.
Как правильно объявить массив байтов? C++
Как правильно объявить массив байтов? Надо ли вручную выставлять ему размер после "GetBitmapBits"? Я делал так: extern byte pxls; Но он при "билде" на что-то ругается... MFCDlgAppDlg.obj : error LNK2001: unresolved external symbol "unsigned char * pxls" (?pxls@@3PAEA)
C++ Создать класс треугольник Экзаменационная задача...помогите, пожалуйста!! Создать класс треугольник.Обеспечить ввод треугольников, их вывод на экран и контроль существования. https://www.cyberforum.ru/ cpp-beginners/ thread41336.html C++ Игральные карты !! Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 < N < 14) и M — масть карты (1 < M < 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п. Добавлено через 3 минуты... https://www.cyberforum.ru/ cpp-beginners/ thread41334.html
Задачка на виртуальный метод C++
5 олимпийских окружностей движутся вниз по экрану и меняют свои цвета (как только доходят вниз, появляются вверху экрана и двигаются дальше вниз). Фигура имеет рамку из 2-х прямоугольников. Вот пример подобной задачи: #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<iostream.h> #include<math.h> #include<graphics.h> #include<dos.h>
C++ Наследование и полиморфизм Здравствуйте всем как можно решить эту задачу и спасибо за ранее. Описать классы (Java или C++) для хранения таких чисел: целых, действительных, комплексных. При описании классов использовать наследование и полиморфизм. Объекты каждого из классов должны иметь такие методы: что возвращают значение модуля числа; что прибавляют к собственному числу значения указанного числа и сохраняют... https://www.cyberforum.ru/ cpp-beginners/ thread41294.html
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
22.06.2009, 23:39  [ТС] 0

Две матрицы - C++ - Ответ 200158

22.06.2009, 23:39. Показов 703. Ответов 9
Метки (Все метки)

Ответ

Ой ппц, так сказал же первый код не трогайте, это CGI, вставьте в 127 строку второй код, я просто с переменными там чето не могу разобраться, компилятор вечно на чтото жалуется

Добавлено через 5 часов 4 минуты 3 секунды
Так, ну я собсно помудрил еще посидел, и вот до чего в итоге дошел...

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
#include <vcl.h>
#include <iostream.h>
#include <string.h>
#include <sstream> // в некоторых версиях STL называется stringstream
#include <map>
 
const int nn=100;
typedef double arr[nn][nn];
typedef double vect[nn];
 
arr A;
 
int main()  {
    // HTTP-заголовок
    cout << "Content-type: text/html\n\n";
    
    // Содержимое HTML-документа
    cout << "<HTML>" << endl;
    cout << "<BODY>" << endl;
    
    //Все переменные окружения (для проверки работоспособности) - extern char **__environ;
    cout << "<h1>CGI Environment</h1>" << endl << "<UL>" << endl;
    char **pe = environ;
    while(*pe != NULL)
    {
        cout << "<LI>" << *pe++ << "<br>" << endl;
    }
    cout << "</UL>" << endl << endl;
    
    // Выделяем строку с GET-параметрами переданными из формы
    cout << "<h1>GET parameters:</h1>\n";
    string sq;
    char* pq = getenv("QUERY_STRING");
    if (pq!=NULL)
        sq = pq;
    cout << "sq=[" << sq.c_str() << "]";
    cout << endl;
    
    // формирование хеша (масива со строковым индексом) параметров GET
    map <string, string> gp;    // результат данной операции - параметры GET
    string name, value;     // имя и зщначение параметра
    bool modename = true;   // режим накопления имени vs режим накопления значения
    sq+='&'; // добавляем ещё один символ '&' в конец
    // этот символ был разделителем пар имя=значение, 
    // а теперь его можно рассматривать как признак конца пары
    for (size_t pos=0; pos<sq.length(); pos++)
    {
        switch (sq[pos])
        {
        case '=' :  // конец имени данной пары
            modename=false;
            break;
        case '&' :  // конец значения данной пары и всей пары
            if (!name.empty())  // если имя определено
            {
                gp[name]=value; // сохраняем пару
            }
            modename=true;
            name.clear();       // важно сбросить накопители имени и значения!
            value.clear();
            break;
        default:    // обычный символ
            if (modename)       // идёт...
            {
                name+=sq[pos];  // либо в имя
            }
            else
            {
                value+=sq[pos]; // либо в значение
            }
        }
    }
    
    // Создан хеш типа строка -> строка
    // формируем из него хеш строка -> число
    map <string, double> gpf; // результат данной операции - параметры GET,со знач-ми float
    for (map <string,string>::const_iterator it=gp.begin(); it!=gp.end(); it++)
    {   // перебор всех пар
        gpf[it->first] = atof(it->second.c_str()); // и преобразование значений
    }
    
    // Вывод в браузер
    cout << "<h1>Pairs of GET-parameters decoded (name=value)</h1>" << endl;
    cout << "<UL>" << endl;
    for (map <string,double>::const_iterator it=gpf.begin(); it!=gpf.end(); it++)
    {
        cout << "<LI>" << it->first << "=" << it->second << "<br>" << endl;
    }
    cout << "</UL>" << endl << endl;
    
    // Приведение в "привычное состояние" для решения СЛАУ
    double a[9], b[3], exp; // параметры уравнения
    int i,j,k=0;
    for (i=1; i<=3; i++)
    {
        for (j=1; j<=3; j++)
        {
            stringstream namea;
            namea << "a" << i << j;
            a[k++]=gpf[namea.str()];
        }
 
        stringstream nameb;
        nameb << "b" << i;
        b[i-1] = gpf[nameb.str()];
    }
    exp=gpf["exp"];
    
    // Контрольный вывод на экран значений перед решением уравнений
    cout << "<h1>Matrix, vector and exp values ready to process:</h1>" << endl;
    for (i=0; i<3; i++) for(j=0; j<3; j++)
    {
        cout << "a[" << i << "," << j << "] = " << a[i*3+j] << "<BR>" << endl;
    }
    for (i=0; i<3; i++) 
    {
        cout << "b[" << i << "] = " << b[i] << "<BR>" << endl;
    }
    cout << "exp = " << exp << "<BR>" << endl << endl;
    
    
    // ... по идее тут надо вставить код для решения СЛАУ (метод Зейделя)...
    vect x, p, B;
    double sum;
for (i=0; i<3; i++){     // Начало
        x[i]=1;
        p[i]=1;
    }
 
    do {
        for (i=0; i<3; i++){
            sum = 0;
            for (j=0; j<3; j++)
                if (i!=j) sum+=x[j]*A[i][j];
 
            p[i]=x[i];
            x[i]=(B[i] - sum)/A[i][i];
 
        }
    } 
 
for (j=0; j<3; j++)
printf("X%d = %.3f\n",j+1,x[j]);
    // **********************************************
    
    
    // Завершение HTML
    cout << "</BODY>" << endl;
    cout << "</HTML>" << endl;
}
P.s. Хоть это и не компилируемый вариант, но уже почти всё...
Компилятор ругается, говорит что в 141 строке нужна функция while, но я не знаю, что мне писать (хотя мне и нужно где-то вписать точность по эпсиланту).
Что делать??? Я в ступоре

Добавлено через 3 часа 51 минуту 43 секунды
Аааааа, я сделал, помогите откомпилировать программу!!! Плиииз, там одно предупреждение, а из-за него программа не работает =(

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 <vcl.h>
#include <iostream.h>
#include <string.h>
#include <sstream> // в некоторых версиях STL называется stringstream
#include <map>
#include <math.h>
#include <conio.h>
 
const int nn=100;
typedef double arr[nn][nn];
typedef double vect[nn];
 
bool exact(const double *px, const double *pp);
 
arr A;
double eps;
 
int main()  {
    // HTTP-заголовок
    cout << "Content-type: text/html\n\n";
    
    // Содержимое HTML-документа
    cout << "<HTML>" << endl;
    cout << "<BODY>" << endl;
    
    //Все переменные окружения (для проверки работоспособности) - extern char **__environ;
    cout << "<h1>CGI Environment</h1>" << endl << "<UL>" << endl;
    char **pe = environ;
    while(*pe != NULL)
    {
        cout << "<LI>" << *pe++ << "<br>" << endl;
    }
    cout << "</UL>" << endl << endl;
    
    // Выделяем строку с GET-параметрами переданными из формы
    cout << "<h1>GET parameters:</h1>\n";
    string sq;
    char* pq = getenv("QUERY_STRING");
    if (pq!=NULL)
        sq = pq;
    cout << "sq=[" << sq.c_str() << "]";
    cout << endl;
    
    // формирование хеша (масива со строковым индексом) параметров GET
    map <string, string> gp;    // результат данной операции - параметры GET
    string name, value;     // имя и зщначение параметра
    bool modename = true;   // режим накопления имени vs режим накопления значения
    sq+='&'; // добавляем ещё один символ '&' в конец
    // этот символ был разделителем пар имя=значение, 
    // а теперь его можно рассматривать как признак конца пары
    for (size_t pos=0; pos<sq.length(); pos++)
    {
        switch (sq[pos])
        {
        case '=' :  // конец имени данной пары
            modename=false;
            break;
        case '&' :  // конец значения данной пары и всей пары
            if (!name.empty())  // если имя определено
            {
                gp[name]=value; // сохраняем пару
            }
            modename=true;
            name.clear();       // важно сбросить накопители имени и значения!
            value.clear();
            break;
        default:    // обычный символ
            if (modename)       // идёт...
            {
                name+=sq[pos];  // либо в имя
            }
            else
            {
                value+=sq[pos]; // либо в значение
            }
        }
    }
    
    // Создан хеш типа строка -> строка
    // формируем из него хеш строка -> число
    map <string, double> gpf; // результат данной операции - параметры GET,со знач-ми float
    for (map <string,string>::const_iterator it=gp.begin(); it!=gp.end(); it++)
    {   // перебор всех пар
        gpf[it->first] = atof(it->second.c_str()); // и преобразование значений
    }
    
    // Вывод в браузер
    cout << "<h1>Pairs of GET-parameters decoded (name=value)</h1>" << endl;
    cout << "<UL>" << endl;
    for (map <string,double>::const_iterator it=gpf.begin(); it!=gpf.end(); it++)
    {
        cout << "<LI>" << it->first << "=" << it->second << "<br>" << endl;
    }
    cout << "</UL>" << endl << endl;
    
    // Приведение в "привычное состояние" для решения СЛАУ
    double a[9], b[3]; // параметры уравнения
    int i,j,k=0;
    for (i=1; i<=3; i++)
    {
        for (j=1; j<=3; j++)
        {
            stringstream namea;
            namea << "a" << i << j;
            a[k++]=gpf[namea.str()];
        }
 
        stringstream nameb;
        nameb << "b" << i;
        b[i-1] = gpf[nameb.str()];
    }
    eps=gpf["eps"];
    
    // Контрольный вывод на экран значений перед решением уравнений
    cout << "<h1>Matrix, vector and eps values ready to process:</h1>" << endl;
    for (i=0; i<3; i++) for(j=0; j<3; j++)
    {
        cout << "a[" << i << "," << j << "] = " << a[i*3+j] << "<BR>" << endl;
    }
    for (i=0; i<3; i++) 
    {
        cout << "b[" << i << "] = " << b[i] << "<BR>" << endl;
    }
    cout << "eps = " << eps << "<BR>" << endl << endl;
    
    
    // ... по идее тут надо вставить код для решения СЛАУ (метод Зейделя)...
    vect x, p, B;
    double sum;
for (i=0; i<3; i++){     // Начало
        x[i]=1;
        p[i]=1;
    }
 
    do {
        for (i=0; i<3; i++){
            sum = 0;
            
            for (j=0; j<3; j++)
                if (i!=j) sum+=x[j]*A[i][j];
            p[i]=x[i];
            x[i]=(B[i] - sum)/A[i][i];
 
        }
    }  while (!exact(x,p)) ;
 
for (j=0; j<3; j++)
printf("X%d = %.3f\n",j+1,x[j]);
    // **********************************************
     getch();
    
    // Завершение HTML
    cout << "</BODY>" << endl;
    cout << "</HTML>" << endl;
}
 
bool exact(const double *px, const double *pp)
{
    int i;
    bool done=true;
 
    for (i=0; i<3; i++)
        if ( fabs( *(px+i) - *(pp+i) ) > eps){
            done=false;
            break;
        }
    return done;
}
142ая строка...
Пишет мол A[i][i] не может быть равна нулю.... Я и так е и сяк, ну не хочет она корректно работать, помогите, плиииз. То она у меня выдает еденицы, то тупо подвисает

Вернуться к обсуждению:
Две матрицы C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2009, 23:39
Готовые ответы и решения:

Функция: получить две матрицы и вернуть номер матрицы, среднее арифметическое элементов которой максимально
нужна помощь в этой задаче!!! Написать функцию, получающую в качестве параметров два массива...

Даны две квадратные матрицы. Вычислить среднее арифметическое элементов главной и побочной диагонали каждой матрицы
помогите написать программный код на c++

Даны две целочисленные матрицы 4-го порядка. Получить новую * матрицу путем вычитания из элементов каждого столбца первой матрицы
даны две целочисленные матрицы 4-го порядка. Получить новую матрицу путем вычитания из элементов...

1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение элементов каждой строки первой матрицы на наибольшее из
1)Даны две действительные квадратные матрицы порядка n. Получить новую матрицу : А) умножение...

9
22.06.2009, 23:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2009, 23:39
Помогаю со студенческими работами здесь

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением элементов каждой строки первой матрицы на наибольш
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: а) умножением...

Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: путем умножения элементов каждой строки первой матрицы на наибольшее из
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу: путем умножения...

Перемножить две матрицы
Сформировать два одномерных массива целочисленных из 10 элементов каждый, а потом сформировать...

Как сложить две матрицы ?
Есть такой код #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt;...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru