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

Ошибка при заполнении матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок-Схема http://www.cyberforum.ru/cpp-beginners/thread588504.html
1. Разработать программу или под программу позволяющую сжимать текстовую информацию, а затем преобразовать сжатую информацию в исходное состояние для этого необходимо несколько переменных:...
C++ Определить процент слов в тексте, которые имеют удвоенную согласную Определить процент слов в тексте, которые имеют удвоенную согласную. вот код: #include <iostream> #include <string.h> #include <conio.h> #include <stdlib.h> #include <stdio.h> using namespace... http://www.cyberforum.ru/cpp-beginners/thread588502.html
Задача на матрицы C++
Дана целочисленная матрица 4x7. Определить минимальное и максимальное значения матрицы и их местоположение. Найти среднее арифметическое значение положительных элементов и модулей отрицательных...
C++ Найти в строке слово, содержащее заданный символ
задаем строку, задаем символ нужно вывести слово которое содержит этот символ никак не получается.. Добавлено через 2 часа 31 минуту ааааап
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread588487.html
Здравствуйте! Помогите, пожалуйста! Не представляю, что делать с задачей Дан текст в файле F1. Описать функцию, которая после каждого пробела вставит в текст восклицательный знак....
C++ Декодер сжатия по хаффману Нашел на форуме алгоритм кодировки по хаффману. Нужен декодер к этому алгоритму: #include <stdio.h> #include <stdlib.h> #include <string.h> struct sym //структуры или записи { ... подробнее

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

Ошибка при заполнении матрицы - C++

27.05.2012, 21:06. Просмотров 495. Ответов 1
Метки (Все метки)

доброго времени суток!

Будьте добры помогите!
Вот код:
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
T_complex** calc_Fullfield(T_complex *fr, double fr_begin, double fr_end, double fr_step,
                     double begin, double end, double step)
{
    double m_omega, z, b_omega, t;
    T_complex ampl1, ampl2, Eomeg, e_minus_ipx, e_minus_iomegax, Eomega2, e_ipx;
    int N, M, NNN_fr, V;
    M=(int)floor((end-begin)/step)+2;
    N=(int)floor((end-begin)/step)+2;
    V=(int)floor((2*end-begin)/step)+2;
    T_complex ** Efull_t;
    Efull_t = (T_complex**)malloc(V*sizeof(T_complex*));
    double ndeltatetta, nq;
    M = 0;
    N = 0;
    for ( z = begin; z < end; z = z + step ) //заполняем массив шагом по p: step 
    {
        for (t = begin; t < end; t = t + step)//заполняем массив  с шагом по t: step 
        {
            NNN_fr = 0;
            Efull_t[N][M].re=0.0;
            Efull_t[N][M].im=0.0;
            for ( m_omega =  -infinity; m_omega < infinity; m_omega = m_omega + intstep) //для данного p интегрируем по x с шагом intstep
                    {
                    ndeltatetta = m_omega-1;    
                    if ( ( ndeltatetta * ndeltatetta ) < ( nkappa * nkappa ) )
                        {
                        nq = sqrt( nkappa * nkappa - ndeltatetta * ndeltatetta );
 
                                ampl1.re = fr[NNN_fr].re*(nq*nq*cosh(nq*l)*cosh(nq*l)*cosh(nq*(z-l)))/(nq*nq*cosh(nq*l)*cosh(nq*l)+ndeltatetta*ndeltatetta*sinh(nq*l)*sinh(nq*l));
                                ampl1.im = fr[NNN_fr].im*(ndeltatetta*sinh(nq*(z-l)*nq*cosh(nq*l)))/(nq*nq*cosh(nq*l)*cosh(nq*l)+ndeltatetta*ndeltatetta*sinh(nq*l)*sinh(nq*l));
                                ampl2.re = fr[NNN_fr].re*(ndeltatetta*sinh(nq*l)*sinh(nq*(z-l)))/(nq*nq*cosh(nq*l)*cosh(nq*l)+ndeltatetta*ndeltatetta*sinh(nq*l)*sinh(nq*l));
                                ampl2.im = fr[NNN_fr].im*(nkappa*nq*sinh(nq*(z-l))*sinh(nq*l))/(nq*nq*cosh(nq*l)*cosh(nq*l)+ndeltatetta*ndeltatetta*sinh(nq*l)*sinh(nq*l));     
                                }
                            if ( ( ndeltatetta * ndeltatetta ) > ( nkappa * nkappa ) )
                                {
                                nq = sqrt( ndeltatetta * ndeltatetta - nkappa * nkappa );
            
                                    ampl1.re = (fr[NNN_fr].re*nq*nq*cos(nq*l)*cosh(nq*l)*cos(nq*(z-l)))/(nq*nq*cos(nq*l)*cos(nq*l)+ndeltatetta*ndeltatetta*sin(nq*l)*sin(nq*l));
                                    ampl1.im = (fr[NNN_fr].im*ndeltatetta*sin(nq*(z-l)*nq*cos(nq*l)))/(nq*nq*cos(nq*l)*cos(nq*l)+ndeltatetta*ndeltatetta*sin(nq*l)*sin(nq*l));
                                    ampl2.re = (fr[NNN_fr].re*ndeltatetta*sin(nq*l)*sin(nq*(z-l)))/(nq*nq*cos(nq*l)*cos(nq*l)+ndeltatetta*ndeltatetta*sin(nq*l)*sin(nq*l));
                                    ampl2.im = (fr[NNN_fr].im*nkappa*nq*sin(nq*(z-l))*sin(nq*l))/(nq*nq*cos(nq*l)*cos(nq*l)+ndeltatetta*ndeltatetta*sin(nq*l)*sin(nq*l));               
                                }
 
                    NNN_fr = NNN_fr + 1;
 
                    e_minus_ipx.re = cos(0.7*z+t);
                    e_minus_ipx.im = sin(0.7*z+t);
 
                    e_ipx.re = cos(0.7*z-t);
                    e_ipx.im = sin(0.7*z-t);
 
                    Eomeg.re = ampl1.re*e_minus_ipx.re - ampl1.im*e_minus_ipx.im + ampl2.re*e_ipx.re + ampl2.im*e_ipx.im;
                    Eomeg.im = ampl1.re*e_minus_ipx.im + ampl1.im*e_minus_ipx.re + ampl2.im*e_ipx.re - ampl2.re*e_ipx.im;
                    
                    e_minus_iomegax.re = cos((m_omega-1)*t);
                    e_minus_iomegax.im = sin((m_omega-1)*t);
                    
                    Eomega2.re = Eomeg.re*e_minus_iomegax.re - Eomeg.im*e_minus_iomegax.im;
                    Eomega2.im = Eomeg.re*e_minus_iomegax.im + e_minus_iomegax.re*Eomeg.im;
            
                    Efull_t[N][M].re=Efull_t[N][M].re+Eomega2.re;
                    Efull_t[N][M].im=Efull_t[N][M].im+Eomega2.re;
                    N=N+1;
                    M=M+1;  
                    }
                    
                }
        }
    return( Efull_t );
}
Ругается так: First-chance exception at 0x00a73f27 in FullField.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
Unhandled exception at 0x00a73f27 in FullField.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.

на данном моменте:
C++
1
2
3
4
5
 for (t = begin; t < end; t = t + step)//заполняем массив  с шагом по t: step 
        {
            NNN_fr = 0;
            Efull_t[N][M].re=0.0;
            Efull_t[N][M].im=0.0;
Уже не могу понять в чем дело. С двумерными массивами работаю первый раз. Делал все по интуиции. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru