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

Схема Халецкого - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Последовательности http://www.cyberforum.ru/cpp-beginners/thread74463.html
указать длину такого начального отрезка заданной последовательности целых чисел, для которого отношение встречающихся в нем степеней двойки и чисел Фибоначчи максимально помогите пожалуйста)))
C++ Буквы и цифры в строке Как выбрать из строки только буквы и только цифры? http://www.cyberforum.ru/cpp-beginners/thread74460.html
C++ Списки....записи
ДОБРЫЕ ЛЮДИ ..пожайлусто помогите!!!!!!!!!! В задании необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - поиск записи в списке. Сначала в программе должен вводиться размер списка (целое число), а сам список создается в виде динамического массива структур как список со связанным хранением. После ввода списка программа переходит в...
Использованние средств объектно-ориентированного программирования C++
Помогите пожалуйста, надо сделать программу используя средства объектно-ориентированного программирования.;) Создать класс "Simbol stack", в котором хранится массив с символьными значениями (char) длинной 5 и колличество элементов стека. Для класса создать такие методы: (1) конструктор, (2) деструктор, который сообщает о ликвидации объекта и колличество ликвидированных объектов (если во...
C++ сумма положительных элементов, после первого отрицательного http://www.cyberforum.ru/cpp-beginners/thread74437.html
Доброго времени суток. Значит задали мне задачу. В одномерный массив вводятся положительные и отрицательные целые числа.Найти количество и сумму положительных элементов массива,расположенных после первого отрицательного элемента. Решить задачу при помощи указателей. Прошу помогите.
C++ Симметричная строка через указатели Здравствуйте. Застопорился на абсолютно элементарной задачке: Дан текст из 80 букв. Определить, симметричен ли он, т.е. читается одинаково слева направо и справа налево. Все бы ничего, но вот только для решения данной задачи нужно использовать указатели, которые я все никак не могу осилить. Если для кого-нибудь не составит труда оказать помощь (для знающего человека займет 3-4 минуты),... подробнее

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

Схема Халецкого - C++

14.12.2009, 19:26. Просмотров 2483. Ответов 2
Метки (Все метки)

Очень нужна помощь!!!
нужно написать эту задачку на visual c++, на классах, используя методы get и set

Добавлено через 4 минуты
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
/*
    test108.cpp
 
    2/11/2007
*/
 
#include <stdio.h>
#include <alloc.h>
#include <float.h>
#include <math.h>
 
int cholesky_decomp(float *mat_a, float *mat_b, int sz)
{
    double sum;
    int    ii, jj, kk;
 
    for(ii = 0;ii < sz;ii++)
    {
        for(jj = ii;jj < sz;jj++)
        {
            sum = *(mat_a + ii + sz*jj);
 
            for(kk = ii - 1;kk >= 0;kk--)
                sum = sum - (*(mat_a + ii + sz*kk))*(*(mat_a + jj + sz*kk));
 
            if(ii == jj)
            {
                if(sum < 4*FLT_EPSILON)
                {
                    printf("Cholesky method failed!\n");
 
                    return 0;
                }    
 
                *(mat_b + ii + sz*ii) = sqrt(sum);
            }
            else
                *(mat_b + jj + sz*ii) = *(mat_a+ jj + sz*ii) = sum/( *(mat_b + ii + sz*ii));
        }
    }
 
   return 1;
}
 
void cholesky_solver(float *mat_b, float right[], float xx[], int sz)
{
    double sum;
    float  *p_temp;
    int    ii, jj;
 
    p_temp = (float*)malloc(sz*sizeof(right[0]));
 
    for(ii = 0; ii < sz; ii++)
    {
        sum = 0.0;
 
        for(jj = 0; jj < ii; jj++)
            sum += (*(mat_b + ii + sz*jj))*p_temp[jj];
 
        p_temp[ii] = (right[ii] - sum)/(*(mat_b + ii + sz*ii));
    }
 
    for(ii = sz - 1; ii >= 0; ii--)
    {
        sum = 0.0;
 
        for(jj = sz - 1; jj > ii; jj--)
            sum += (*(mat_b + jj + sz*ii))*xx[jj];
 
        xx[ii] = (p_temp[ii] - sum)/(*(mat_b + ii + sz*ii));
    }
 
     free(p_temp);
}
 
#define EQU_ORDER 4
 
float left[EQU_ORDER][EQU_ORDER] = {
                          {2.0f, -4.0f, -3.25f, 1.0f},
                          {3.0f, -3.0f, -4.3f, 8.0f},
                          {1.0f, -5.0f, 3.3f, -20.0f},
                          {2.5f, -4.0f, 2.0f, -3.0f}};
 
float right[EQU_ORDER] = {4.84f, 8.89f, -14.01f, -20.29f};
 
float bb[EQU_ORDER][EQU_ORDER];
 
float xx[EQU_ORDER];
 
int main()
{
    int ii;
 
    if(!cholesky_decomp((float*)&left[0][0], (float*)&bb[0][0], EQU_ORDER))
        return 0;
 
    cholesky_solver((float*)&bb[0][0], right, xx, EQU_ORDER);
 
    printf("Cholesky's Method\n\n");
    
    for(ii = 0; ii < EQU_ORDER; ii++)
       printf("  X%d = %+f\n", ii, xx[ii]);
 
    return 0;
}
вот нашла задачку,но она написана не на классах(((
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru