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

Перевод с Fortran на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить блок-схему по коду http://www.cyberforum.ru/cpp-beginners/thread698972.html
напишите пожалуйста блок схему для этого кода #include "stdafx.h" #include "iostream" #include "conio.h" #include "string" using namespace std; struct RockGroup{ string name; int age;
C++ Отсутствие числового индекса при наличии строкового Почему в новой версии php если у элемента массива есть строковой индекс у него нет числового!! тоесть : <?php $array=array('test1'=>"Test 1 text"); echo $array ?> Возникает ошибка http://www.cyberforum.ru/cpp-beginners/thread698683.html
C++ Деструктор и елементы STL
Здравствуйте у меня такой вопрос необходим ли явный деструктор если элементы STL являются членами классa например : class X{ public: X( vector < vector <int> > & ); ~X(){ cout<<"Distroy X\n"; data.~vector< vector<int> > ();
Как правильно написать код? C++
Что надо изменить в этом коде, что бы он работал? Задание: Заданы графики двух функций f1(x) =(1/2)^x , f2(x) =1+(x/2). Надо найти площадь криволинейной трапеции ограниченную графиками этих функций. Решение: #include <math.h> #include <iostream> #include <stdio.h> #include <windows.h> using namespace std; int main()
C++ Объясните, как работают перегрузки оператора? http://www.cyberforum.ru/cpp-beginners/thread696680.html
Объясните, как работают перегрузки оператора = и функций Union ..а точнее указатель this.Заранее спасибо. #include <iostream> using namespace std; class Set { friend istream& operator>>(istream & stream, Set & с); friend ostream& operator<<(ostream & stream, Set & с);
C++ Спектральный анализ - оживить программу Помогите добиться работы ценной и редкой программы для реализации Быстрого Преобразования Хартли. Программа из зарубежной научной монографии на иностранном языке. c ******************************************* PROGRAM FHT c ----- PEREMENNUE OPISANIE ----------------- DIMENSION F(0:8,0:256), R(0:256), X(0:256), M(0:20) DIMENSION S(64), C(64) INTEGER... подробнее

Показать сообщение отдельно
Znahar90
Сообщений: n/a
15.11.2012, 22:16     Перевод с Fortran на С++
Доброго времени суток. Проблема в следующем, никак не могу разобраться с синтаксисом Fortran. В свое время изучал С++, и то правда давно дело было. Есть код программы на Fortran, не могли бы Вы переписать ее на С++. Заранее спасибо.
Fortran
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
      implicit real*8(a-h,o-z)
      dimension rk(200),pk(200),rkt(200),td(100),ed(100),tt(200)
    1,y(200),z(200),en(100),pr1(200),pr2(200)
    data ed/0.,1.02,2.54,5.3,7.8,10.5,13.9,17.7,21.7,26.4,32.3,37.7,
     144,49,52.8,56.1,58.8,61.1,62.4,62.6,62.1,60.2,57.5,54.7,50.,44.9,
    239.8,35.2,30.4,25.4,20.4,15.7,11.9,8.95,5.9,3.27,1.5,.51,0,61*0/
14      format(6e12.4)
      open(1,file='r_v_p.dat')
      gam=1.26
      ne=38
        n=79
       ht=.5d-6
    E0=0.
    en(1)=0.
      do 125 i=1,ne+1       
        td(i)=ht*(i-1)
    ed(i)=ed(i)*1d6
    if(i.ne.1)then
    E0=E0+(ed(i)+ed(i-1))*ht*0.5
    en(i)=E0
    end if 
125     continue
        tau=td(ne+1)
    do 3 i=1,ne+1
    td(i)=td(i)/tau
    ed(i)=en(i)/E0
3   continue        
      dlk=.05            
           pi=3.14159
      c0=1460
    ro0=1d3
    R0=((gam-1)*tau*tau*E0/pi/ro0/dlk)**.25
    print *,'tau',tau,E0,R0  
        dt=.25d-6/tau
    t=dt
    rk(1)=0.725d-3
    y(1)=rk(1)/R0
    z(1)=0.
    pk(1)=ro0*R0**2/tau**2*(0.-z(1)**2*0.5)/y(1)**2+1d5
    r1=.005
    r2=0.008
      do 1 i=2,n    
    if(t.le.tau/tau)then
               do 26 j=1,ne
            if(td(j).le.t.and.t.le.td(j+1))go to 27
26        continue
27      et=ed(j)+(ed(j+1)-ed(j))/(td(j+1)-td(j))*(t-td(j))         
        else
      et=1
        end if
    etk1=et
    ak1=dt*et/y(i-1)**2/dlog(dlk/R0/y(i-1))
    am1=dt*z(i-1)/y(i-1)
    y(i)=y(i-1)+am1
    z(i)=z(i-1)+ak1
    rk(i)=y(i)*R0
    pk(i)=ro0*R0**2/tau**2*(et-z(i)**2*0.5)/y(i)**2+1d5
    x=t-r1/c0/tau
    et=0.
               do 6 j=1,ne
            if(td(j).le.x.and.x.le.td(j+1))go to 7
6        continue
7      et=ed(j)+(ed(j+1)-ed(j))/(td(j+1)-td(j))*(x-td(j))   
    pr1(i)=ro0*R0**2/tau**2*0.5*dlk/r1*et/y(i)**2/dlog(dlk/R0/y(i))
    if(pr1(i).lt.1d5)pr1(i)=1d5
    et=0.
    x=t-r2/c0/tau
               do 16 j=1,ne
            if(td(j).le.x.and.x.le.td(j+1))go to 17
16        continue
17      et=ed(j)+(ed(j+1)-ed(j))/(td(j+1)-td(j))*(x-td(j))      
    pr2(i)=ro0*R0**2/tau**2*0.5*dlk/r2*et/y(i)**2/dlog(dlk/R0/y(i))
    if(pr2(i).lt.1d5)pr2(i)=1d5
        print *,t,x,et
    t=t+dt
1     continue 
    t=0.
    dt=dt*tau
    do 2 i=1,n
    if(i.eq.1)then
    rkt(i)=(rk(2)-rk(1))/dt
    else
    if(i.eq.n)then
    rkt(i)=(rk(n)-rk(n-1))/dt
    else
    rkt(i)=(rk(i+1)-rk(i-1))/(2.*dt)
    end if 
    end if
    write(1,14)t*1d6,rk(i)*1d3,rkt(i),pk(i)*1d-6,pr1(i)*1d-6
     1,pr2(i)*1d-6
    t=t+dt
2   continue
      stop
      end
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru