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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
#1

Интересная задачка, метод кв. корней - C++

05.01.2014, 15:36. Просмотров 194. Ответов 2
Метки нет (Все метки)

Здрасте вам. Сейчас пытаюсь реализовать метод квадратных корней в С++. Вот что у меня пока-что получилось:
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
#include <cstdlib>
#include <iostream>
#include <Math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    setlocale( LC_ALL,"Russian" );
    //=========================================================================//
    //======================ÎáúÿâëåГ*ГЁГҐ ïåðåìåГ*Г*ûõ ГЁ ââîä Г¤Г*Г*Г*ûõ================//
    //=========================================================================//
    int **A, *rav, n, i, j;
    cout << "n = " ; cin >> n ;
    A = new int *[n];
    for(i = 0; i < n; i++){
            A[i] = new int [n];
        }
    rav = new int [n];
    
    for(i = 0; i < n; i++){
        cout<<i+1<<" ur-e: \n";
        for(j = 0; j < n; j++){
            cout<<"Vv. koef pri x"<<j+1<<" : "; cin>>A[i][j];
            }
        cout<<"vv. to chemu ravno ur-e "<<i+1<<" : "; cin>>rav[i];
        }
    for(i = 0; i < n; i++, cout<<"\n"){
        for(j = 0; j < n; j++, cout<<"\t"){
            cout<<A[i][j];
            }
        }
    //=========================================================================//
    //======================ÏðîâåðêГ* Г*Г* ñèììåòðè÷Г*îñòü=========================//
    //=========================================================================//
    
    bool b = true;
    
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            if(A[i][j] != A[j][i]) b = false;
            }
        }
    if(!b) {
        cout<<"ГЋГёГЁГЎГЄГ*. Âû ââåëè Г*ГҐ ñèììåòðè÷åñêóþ Г¬Г*òðèöó.\n";
        system("pause");
        return EXIT_SUCCESS;
        }
    else cout<<"\nГЊГ*òðèöГ* ÿâëÿåòñÿ ñèììåòðè÷åñêîé\n";
    
    //=========================================================================//
    //==========================Âû÷èñëåГ*ГЁГї=====================================//
    //=========================================================================//
    
    int **U, **Ut, k, S;
    //ÑîçäГ*Г*ГЁГҐ U
    U = new int *[n];
    for(i = 0; i < n; i++){
        U[i] = new int [n];
        }
    //ÑîçäГ*Г*ГЁГҐ Ut
    Ut = new int *[n];
    for(i = 0; i < n; i++){
        Ut[i] = new int [n];
        }
    //Âû÷èñëåГ*ГЁГҐ ýëåìåГ*òîâ Г¬Г*òðèöû U.
    for(i = 0; i < n; i++){
        for(j = 0; j < n; j++){
            if(j < i) U[i][j] = 0;
            else{
            if(i == 0 && j == 0){
                U[i][j] = sqrt(A[0][0]);
                }
            if(i == j && j != 0 && i != 0){
                S = 0;
                for(k = 1; k < i; k++){
                    S = S + pow(U[k][j], 2);
                    }
                U[i][j] = sqrt(A[i][j] - S);
                }
            else{
                if(i != j){
                    S = 0;
                for(k = 1; k < i; k++){
                    S = S + (U[k][j]*U[k][i]);
                    }
                U[i][j] = (1/U[i][i])*(A[i][j] - S);
                }
                    }
                }
            }
        }
    cout<<"ГЊГ*òðèöГ* U: \n";
    for(i = 0; i < n; i++, cout<<"\n"){
        for(j = 0; j < n; j++, cout<<"\t"){
            cout<<U[i][j];
            }
        }
        
    //Г’Г°Г*Г*Г±ГЇГ®Г*èðîâГ*Г*ГЁГҐ Г¬Г*òðèöû U.
    for(i=0; i<n; i++){
        for(j=0; j<i; j++){
            if(i != j) Ut[i][j] = U[j][i];  
            else Ut[i][j] = U[i][j];
            }
        }
    
    cout<<"ГЊГ*òðèöГ* Ut: \n";
    for(i = 0; i < n; i++, cout<<"\n"){
        for(j = 0; j < n; j++, cout<<"\t"){
            cout<<Ut[i][j];
            }
        }
    system("pause");
    return EXIT_SUCCESS;
}
У меня какая-то проблема при переписывании транспонированной матрицы U в Ut, не переписывает главную ось. И еще вопрос..как мне реализовать сам подсчет корней? Программа же не может выразить, а как записать общую формулу для любого n? Буду благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2014, 15:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интересная задачка, метод кв. корней (C++):

Интересная задачка - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { double z1,z2; double a,b,c,d,s,t,u; ...

Интересная задачка(оптимизация) - C++
Вот недавно писал районку по информатике.И там была такая вот задача.Я то её решил, но у меня даже ввод чисел из некоторых тестов не...

Очень интересная задачка на C++ - C++
Исследовать сходимость ряда Фурье по косинусам для функции f(x)=l-x на отрезке ,l=1. Определить, сколько членов ряда Фурье необходимо...

Одна интересная задачка - C++
Помогите, пожалуйста, с написанием программы. Буду благодарна, если даже просто подтолкнете к мысли решения. Даны натуральное число...

Интересная задачка, и блок схема нужна С++ - C++
Плот составлен из n бревен длиной l и диаметром d. Со-ставить программу определения, выдержит ли этот плот k пу-тешественников со средней...

Знатоки С++ и СИ, где вы ? Интересная олиппиадная задачка (Нужно перевести ) - C++
Буду благодарна за любую помощь // Меньшиков. Тренировка 1. // 1E. Степень // Длинная арифметика // ibelyaev: 20Feb2010 ...

2
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
05.01.2014, 15:41  [ТС] #2
Остались вот эти 2 шага.

Интересная задачка, метод кв. корнейИнтересная задачка, метод кв. корней
0
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
05.01.2014, 16:43  [ТС] #3
Стоп, я кажется понял...

Добавлено через 21 минуту
Блин, нет, не понял =(
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2014, 16:43
Привет! Вот еще темы с ответами:

Нахождения корней уравнения: метод половинного деления (бисекции) или метод хорд - C++
Разработать программу нахождения корней уравнения f(x) =0 на интервале с точностью e = 0,001 (интервал или подобрать самостоятельно). При...

Простая и интересная задачка по C++: объяснить почему результат работы программы именно такой, какой он есть - C++
Всем привет, я сам ещё новичок в C++(&lt; 2 лет изучаю), но уже что-то понимаю и решил сделать задачу на основы языка для совсем зелёных, для...

Интересная задачка с битовыми операторами, флагами, переменными, или "до меня не дошло письмо из штаба" - C++
Дорогие форумчане! Недавно я занялся исправлять пробелы в знании C++ одной замечательной книжкой, которую мне помогли найти! Книжка...

Метод бисекции для нахождения корней в нелинейном уравнении - C++
Решил реализовать метод бисекции для нахождения корней в нелинейном уравнении. Открыл псевдо код на википедии, но почему то оно у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.