Нужна помощь на СИ (небольшая)

  • Автор темы Can
  • Дата начала
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
для тех кто не спит и помнит язык программирования Си.
хотел рассчитать формулу большущую с помощью языка Си, с измененим одного параметра и результат записать в файл. Но с нуля совсем не могу вспомнить что да как

вот набросал

#include <stdio.h>
#include <math.h>

void main()
{
double l=0.03;
double a1=0.23;
double b1=0.10;
double a2=0.90;
double b2=1.35;
double a3=0.83;
double b3=1.03;
double o=0.785;
double H1, H2, H3, E1, E2, E3;

где-то файл открыть надо...
FILE *rez;
rez=fopen("rez","w");


while( o < 2.355)
{ H1=l*l*l*l*cos(3.14*a1*sin(o)/l)*cos(3.14*a1*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a1*a1*sin(o)*sin(o))*(l*l-4*a1*a1*sin(o)*sin(o)))
H2=....
H3=.....
}
printf( не помню как указать имя файла правильно. будет много колонок. 7. первая с безразмерным временем, 6ть другие с результатами"%lf", H1);
наверное как-то так fprintf(rez, "%lf %lf %lf",H1,H2,H3);
}



формулу конечно я расписал по-серьезному. заыбыл как степень ставится(
вроде через "^" ?
 
OP
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
попробую в люниксе первую версию программы:


#include <stdio.h>
#include <math.h>

void main()
{
double l=0.03;
double a1=0.23;
double b1=0.10;
double a2=0.90;
double b2=1.35;
double a3=0.83;
double b3=1.03;
double o=0.785;
double H1, H2, H3, E1, E2, E3;
int i=1;

где-то файл открыть надо...
FILE *rez;
rez=fopen("rez","w");

while( o < 2.355)
{ H1=l*l*l*l*cos(3.14*a1*sin(o)/l)*cos(3.14*a1*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a1*a1*sin(o)*sin(o))*(l*l-4*a1*a1*sin(o)*sin(o)))
H2=...
H3=...
fprintf(rez," %f %f %f %f",i,H1,H2,H3)
o=o+0.001
i=i+1;
}
fclose(rez);
}
 
Nusferatus

Nusferatus

Super Moderator
Регистрация
01.12.2006
Сообщения
40 161
Реакции
179
Баллы
63
Навскидку, чёто типа такого:
Работать будет.

#include <stdio.h>
#include <math.h>
void main()
{
double l=0.03;
double a1=0.23;
double b1=0.10;
double a2=0.90;
double b2=1.35;
double a3=0.83;
double b3=1.03;
double o=0.785;
double H1, H2, H3, E1, E2, E3;
int i=1;
//;где-то файл открыть надо...
FILE *rez;
//Open file
rez=fopen("rez","wb");
while( o < 2.355)
{
H1=l*l*l*l*cos(3.14*a1*sin(o)/l)*cos(3.14*a1*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a1*a1*sin(o)*sin(o))*(l*l-4*a1*a1*sin(o)*sin(o)));
H2=1; //какаято формула
H3=1; //какаято формула
fprintf(rez,"%d %f %f %f\n",i,H1,H2,H3);
o+=0.001;
i++;
}
fclose(rez);
return;
}
 
Nusferatus

Nusferatus

Super Moderator
Регистрация
01.12.2006
Сообщения
40 161
Реакции
179
Баллы
63
Возведение в степень - например
double pow(double x, double y);
Она как раз в библиотеке math.h
 
OP
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
#include <stdio.h>
#include <math.h>
#include <stdlib.h>


main()
{
double l=0.03;
double a1=0.23;
double b1=0.10;
double a2=0.90;
double b2=1.35;
double a3=0.83;
double b3=1.03;
double o=0.785;
double H1, H2, H3, E1, E2, E3;
int i=1;

FILE *rez;
rez=fopen("rez","w");

while( o < 2.355)
{ H1=l*l*l*l*cos(3.14*a1*sin(o)/l)*cos(3.14*a1*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a1*a1*sin(o)*sin(o))*(l*l-4*a1*a1*sin(o)*sin(o)));
H2=l*l*l*l*cos(3.14*a2*sin(o)/l)*cos(3.14*a2*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a2*a2*sin(o)*sin(o))*(l*l-4*a2*a2*sin(o)*sin(o)));
H3=l*l*l*l*cos(3.14*a3*sin(o)/l)*cos(3.14*a3*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*(l*l-4*a3*a3*sin(o)*sin(o))*(l*l-4*a3*a3*sin(o)*sin(o)));


E1=l*l*sin(3.14*b1*sin(o)/l)*sin(3.14*b1*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*3.14*3.14*b1*b1*sin(o)*sin(o));
E2=l*l*sin(3.14*b2*sin(o)/l)*sin(3.14*b2*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*3.14*3.14*b2*b2*sin(o)*sin(o));
E3=l*l*sin(3.14*b3*sin(o)/l)*sin(3.14*b3*sin(o)/l)*(1+cos(o))*(1+cos(o))/(4*3.14*3.14*b3*b3*sin(o)*sin(o));


fprintf(rez," %d %f %f %f %f %f %f\n",i,H1,H2,H3,E1,E2,E3);
o=o+0.001;
i=i+1;
}
fclose(rez);
return 0;
}


вроде компилируется
 
OP
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
Нусфератусу пасибо)))))))))

вроде схожие результаты)
 
OP
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
считает. тему можно закрывать)
 
Nivur

Nivur

Участник
Регистрация
11.01.2007
Сообщения
1 419
Реакции
0
Баллы
38
В следующий раз пиши на паскале)))
 
Nusferatus

Nusferatus

Super Moderator
Регистрация
01.12.2006
Сообщения
40 161
Реакции
179
Баллы
63
Один из наиболее известных языков программирования, широко применяется в промышленном программировании[4], обучении программированию в высшей школе, является базой для большого числа других языков.
Бгг)
Был создан Никлаусом Виртом в 1968-69 годах (опубликован в 1970 году) после..
изобретения им же виртуального секса.
 
London

London

Новичок
Регистрация
29.06.2009
Сообщения
10 169
Реакции
75
Баллы
0
Серёж, это тебя случайно не Михалыч озадачил?
 
OP
Can

Can

Активный участник
Регистрация
09.12.2005
Сообщения
26 261
Реакции
2 161
Баллы
113
Верх Низ