Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2013, 14:32   #1
maksimka95
Пользователь
 
Регистрация: 07.04.2013
Сообщений: 10
По умолчанию код на С+ или С++?

вот код программы...
________________
Код:
#include <iostream.h>
#include <math.h>
int A,B,n,N;
double f,fi,R1,R2,R3,R4,R5,R6,t0,t1,t2,L,C,h,E0,w,pi,D1,D2,D3,FI,FU,T1,T2,Int,S1,S2;
double I[400],U[400],t[400];
double E(double tl)
{if(tl>=t1) {return 0;} else{return E0+E0*sin(w*tl+fi);}}

double fI(double tl,double Il,double Ul)
{return (-1*Il*(R4+R3*D1+R1*D3)-Ul*D1+ E(tl)*D3)/L;}

double fU(double tl,double Il,double Ul)
{return (1/C)*(-1*Ul*D2+Il*D1);}

void main()
{
int i;
cout<<"t=         I=       U="<<endl;
pi=acos(-1);
f=50; fi=6*pi/5;
R1=30;R2=25;R3=50;R4=1.88;R5=15;R6=50;
t0=0;t1=0.01;t2=0.02;
E0=15; L=5.57*pow(10,-3); C=20*pow(10,-6);
w=2*pi*f; n=200;

h=(t2-t0)/n;
cout<<h<<endl;
U[1]=0; I[1]=0; t[1]=0;

D1=(R5+R6)/(R3+R5+R6);
D2=1/(R3+R5+R6);
D3=R2/(R1+R2);
for(i=1;i<n;i++)
{
t[i+1]=t[i]+h;
FI=fI(t[i],I[i],U[i]);
FU=fU(t[i],I[i],U[i]);

I[i+1]=I[i]+(h/2)*(FI+fI(t[i]+h,I[i]+FI*h,U[i]+FU*h));
U[i+1]=U[i]+(h/2)*(FU+fU(t[i]+h,I[i]+FI*h,U[i]+FU*h));
cout<<i<<"   "<<t[i]<<"   "<<I[i]<<"   "<<U[i]<<endl;
 }

cin>>D1;
}
_____________________
как я понял этот код написан на языке с+, или я ошибаюсь?
помогите пожалуйста преобразовать в С++, а то вообще не втыкаю что то((

Последний раз редактировалось ACE Valery; 07.04.2013 в 16:13.
maksimka95 вне форума Ответить с цитированием
Старый 07.04.2013, 14:38   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Первый раз слышу о C+.
Работы на 30 секунд (читайте, на что жалуется компилятор и исправляйте):
Код:
#include <iostream>
#include <cmath>

using namespace std;

int A,B,n,N;
double f,fi,R1,R2,R3,R4,R5,R6,t0,t1,t2,L,C ,h,E0,w,pi,D1,D2,D3,FI,FU,T1,T2,Int ,S1,S2;
double I[400],U[400],t[400];

double E(double tl)
{
    if(tl>=t1)
    {
        return 0;
    }
    else
    {
        return E0+E0*sin(w*tl+fi);
    }
}

double fI(double tl,double Il,double Ul)
{
    return (-1*Il*(R4+R3*D1+R1*D3)-Ul*D1+ E(tl)*D3)/L;
}

double fU(double tl,double Il,double Ul)
{
    return (1/C)*(-1*Ul*D2+Il*D1);
}

int
main()
{
    int i;
    cout<<"t= I= U="<<endl;
    pi=acos(-1);
    f=50;
    fi=6*pi/5;
    R1=30;
    R2=25;
    R3=50;
    R4=1.88;
    R5=15;
    R6= 50;
    t0=0;
    t1=0.01;
    t2=0.02;
    E0=15;
    L=5.57*pow(10,-3);
    C=20*pow(10,-6);
    w=2*pi*f;
    n=200;

    h=(t2-t0)/n;
    cout<<h<<endl;
    U[1]=0;
    I[1]=0;
    t[1]=0;

    D1=(R5+R6)/(R3+R5+R6);
    D2=1/(R3+R5+R6);
    D3=R2/(R1+R2);
    for(i=1; i<n; i++)
    {
        t[i+1]=t[i]+h;
        FI=fI(t[i],I[i],U[i]);
        FU=fU(t[i],I[i],U[i]);

        I[i+1]=I[i]+(h/2)*(FI+fI(t[i]+h,I[i]+FI*h,U[i]+FU*h));
        U[i+1]=U[i]+(h/2)*(FU+fU(t[i]+h,I[i]+FI*h,U[i]+FU*h));
        cout<<i<<" "<<t[i]<<" "<<I[i]<<" "<<U[i]<<endl;
    }

    cin>>D1;
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.04.2013, 14:48   #3
maksimka95
Пользователь
 
Регистрация: 07.04.2013
Сообщений: 10
По умолчанию

спасибо за отзывчивость, но у меня что-то компиллятор ругается.. (VS C++ 2008)

___________

1>------ Построение начато: проект: проект, Конфигурация: Debug Win32 ------
1>Компиляция...
1>проект.cpp
1>c:\users\user\desktop\проект\прое кт\проект.cpp(37) : error C2668: acos: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(541): может быть 'long double acos(long double)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(493): или 'float acos(float)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(107): или 'double acos(double)'
1> при попытке сопоставить список аргументов '(int)'
1>c:\users\user\desktop\проект\прое кт\проект.cpp(50) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>c:\users\user\desktop\проект\прое кт\проект.cpp(51) : error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(527): или 'float pow(float,int)'
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>Журнал построения был сохранен в "file://c:\Users\User\Desktop\проект\проект \Debug\BuildLog.htm"
1>проект - ошибок 3, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
maksimka95 вне форума Ответить с цитированием
Старый 07.04.2013, 14:51   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

У меня нет VS под рукой.
Попробуйте:
Код:
pi=acos(-1.0);
...
L=5.57*pow(10.0,-3);
C=20*pow(10.0,-6);
UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 07.04.2013 в 15:00.
BDA вне форума Ответить с цитированием
Старый 07.04.2013, 14:57   #5
maksimka95
Пользователь
 
Регистрация: 07.04.2013
Сообщений: 10
По умолчанию

заработало)) спасибо огромное)))))))
maksimka95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужен исходник или код игры арканоид на с# насим Свободное общение 2 14.12.2012 20:09
Вот код одномерного масива.Нужно чтобы он добавлял на начало 3 елемента со значением +2.Язык С или С++ ну или С Шарп. DIQUON Помощь студентам 9 09.11.2012 18:43
Доработать код или посоветуйте аналог Romanmani JavaScript, Ajax 7 12.03.2011 15:11
Indy или проблемный код? garyanikin Работа с сетью в Delphi 3 18.01.2010 16:21