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

Построение дифракционной картины - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод сообщения в левой части экрана http://www.cyberforum.ru/cpp-beginners/thread1490576.html
Подскажите пожалуйста как сделать,чтобы сообщение выводилось н экран не в левой части экрана ,а в правой ?
C++ Получить в порядке убывания все делители данного числа Получить в порядке убывания все делители данного числа. http://www.cyberforum.ru/cpp-beginners/thread1490570.html
C++ Runtime error при выборе одного из пунктов программы
#include <iostream> #include <cstdlib> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h> #include <sstream> using namespace std;
C++ Resize вектора вызывает ошибку
std::vector<MyClass*> vec; vec.resize(1, NULL) vec = new MyClass(); vec.resize(5, NULL); // Тут возникает ошибка Ошибка в файле xmemory в функции "_Destroy_range" Если же перед...
C++ Ошибка в коде - не могу найти http://www.cyberforum.ru/cpp-beginners/thread1490550.html
Здравствуйте, подскажите пожалуйста, в чём проблема. Без последней строки cout<<count; в методе Show программа закрывается. Со строкой программа отрабатывает нормально но неправильно работает String...
C++ Пояснить по работе с указателями Здравствуйте! волнует вопрос об указателях: 1) указатель на переменную используется для ускорения выполнения программы, заменяя реальное значение переменной, указателем на адрес первого байта. int... подробнее

Показать сообщение отдельно
qwen1234
0 / 0 / 0
Регистрация: 29.09.2014
Сообщений: 93
30.06.2015, 18:31  [ТС]
Renji,zss Вот у меня есть программа по построению интерференционной картины, но там есть ошибка, и что там не так, никак не могу понять, ибо выдает, что I = 0 ,а так не должно быть.
Либо я там не так обнуляю, либо уже не знаю что там может быть неправильного.

А построение дифракционной картины уравнением от интерференционной не отличается.
то есть оно будет точно таким же как в коде который ниже I+=1/4/M_PI*sqrt(ls[i].P*ls[j].P)/(rj*ri)*cos(2*M_PI/lambda*(rj-ri));

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
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <fstream>
using namespace std;
struct lightsource
{
    double P;
    double x;
    double y;
    double z;
};
    lightsource ls[10];
    double lambda = 500E-9;
    double c=3E8;
    double a=20E-2; double b=20E-2;
    int N=100; double I; double rj,ri,x,y;
    int main()
    { 
        int da,db;
        FILE *out;
        out = fopen("out.txt","w");
//      ofstream f1("output.txt");
 
        ls[1].P= 3; ls[2].P= 5; ls[3].P= 6;
        ls[1].x=-11E-4 ; ls[2].x=11E-4 ; ls[3].x= -11E-4;
        ls[1].y= 11E-4; ls[2].y= 0.98E-3; ls[3].y=-11E-4 ;
        ls[1].z= 1; ls[2].z= 1.01; ls[3].z= 1.02;
        
        for ( da=0;da<N;da++)
        {
            for ( db=0;db<N;db++);
                { 
                    y=0; I=0;
 
                    
                    { 
                        for (int i=1; i<=3; i++)
                        {
                            for (int j=1; j<=3; j++)
                            {
                                x+=da*a/N;
                                y+=db*b/N;
                                rj=sqrt((ls[j].x-x)*(ls[j].x-x)+(ls[j].y-y)*(ls[j].y-y) +ls[j].z*ls[j].z);
                                ri=sqrt((ls[i].x-x)*(ls[i].x-x)+(ls[i].y-y)*(ls[i].y-y) +ls[i].z*ls[i].z);
                                I+=1/4/M_PI*sqrt(ls[i].P*ls[j].P)/(rj*ri)*cos(2*M_PI/lambda*(rj-ri));
                                    
                             }
                        }
                            
                    }
                    fprintf(out,"%f %f %e\n",x,y,I);
                //  fprintf(f1,"%lf %lf %lf\n",x,y,I,"\n") ;
//                  f1 << x << '\t' << y << '\t' << I << '\n';
                    
                }
                  //fprintf(out,"\n");
        }
        
fclose((out));
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru