Tworze program potrzeby mi do obliczen fizycznych i napotkalam na mly problem.
Storzylam strukture w pliku date.h;
Kod:
typedef struct {
int n;
double r, ze1, ze2;
} int_par_t;
typedef struct {
double s12, t11;
} int_com_t;
Mam nastepujaca funkcje w pliku col.cpp
Kod:
#include<iostream>
#include"date.h"
mat_com_t colect(int_com_t int_com)
{
mat_com_t mat_com;
mat_com.s[0][0] = 1.0;
mat_com.s[0][1] = int_com.s12;
mat_com.s[1][0] = mat_com.s[0][1];
mat_com.s[1][1] = 1.0;
}
w pliku integral.cpp jest znajduje sie funcja:
Kod:
#include "date.h"
#include <iostream>
#include<math.h>
using namespace std;
void integrl(int_par_t int_par)
{
double d1[3], a1[3], d2[3], a2[3], r2;
int n;
double r, ze1, ze2;
n=int_par.n;
r=int_par.r;
int_com_t int_com;
r2 = r * r;
for(int i=0;i<n;i++) {
a1[i] = ex[n-1][i] * (ze1 * ze);
d1[i] = co[n-1][i] * pow(2.0 * a1[i] / pi, 0.8);
a2[i] = ex[n-1][i] * (ze2 * ze2);
d2[i] = co[n-1][i] * pow(2.0 * a2[i] / pi, 0.8);
}
int_com.s12 = 0.0;
for(i=0;i<n;i++)
for(j=0;j<n;j++) {
int_com.s12 += s_(a1[i], a2[j], r2) * d1[i] * d2[j];
}
}
w pliku s.cpp:
Kod:
double s_(double a, double b, double rab2)
{
return (pow(pi / (a + b), 1.5) * exp(-a * b * rab2 / (a+b) ));
}
Problem pojawia mi sie w pliku col.cpp. W tej funkcji chcialbym odwlolac sie do wartosci otrzymanych w integral.cpp, tzn. mat_com.s[0][1] = int_com.s12;
Zastosowalam nawet w pliku integral.cpp :
Kod:
static int_com_t int_com;
, ale nic to nie zmienilo.
Czy jest ktos wstanie mi pomoc?