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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2017, 13:52   #1
vadimc
Пользователь
 
Регистрация: 13.10.2012
Сообщений: 30
Восклицание Цикл

Здравствуйте прошу помочь мне отредактировать код.
Суть программы заключается в том что есть начальные параметры объема , давления , массы и температуры которые изменяются с каждым шагом который равен 0.05 , соответственно за 360 градусов будет выполнено 7200 шагов ( 7200 изменений параметров ) которые необходимо записать в файл, Проблема в том что параметры не записываются в файл.

Код:
int main()
{
    FILE *file;
    float D,SH,RL,AM,AN,A,RM,RLL,TCT,PB,PH,TB,NO,N,CP,R,CV,B,XB,DU;
 
    D = 0.05;
    SH = 0.05;
    RL = 0.2;
    TCT = 330;
    PB = 100000;
    PH = 500000;
    TB = 330;
    AM = 0.05;
    NO = 1000;
    N = 7200;
    CP = 1000;
    R = 287;
    CV = 712;
    AN = 1.4;
    A = 0.25;
    B = 600;
    XB = 0.8;
 
    int P = PB;
    int T = TB;
 
    float DWI = (2*3,14159)/N; /*Шаг интегрирования*/
    float WI = 3.14159;
 
    /*СЧИТАЕМ ПАРАМЕТРЫ*/
    float VH = ((3.14159*D*D*SH)/4)*(1*AM);
    float GH = VH*GH*TB;
    float U = CV*GH*TB;
    int i;
     for (i = 1; i <= N; i++) // задаем начальное значение 1, конечное N и задаем шаг цикла - 1.
    {
        float WI = WI + DWI;
        float VH1 = (3.14159*D*D*SH)/4;
        float VM = AM*VH1;
        float V = (VH1/2)*(1-cos(WI))+(RL/4)*(1-cos(2*WI))+VM;
        float VP = fabs((SH/2)*((3.14159*NO)/30)*sin(WI)+(RL/2)*sin(2*WI));
        float RO = P/(R*T); /*ПЛОТНОСТЬ*/
        float RE = (VP*D)/(RM*RO); /*КОЭф РЕЙН*/
        float ANU = A*exp(XB*log10(RE))+B; /*КОЭФ НУСИЛЬДА*/
        float ALFA = (ANU*RL)/D; /*КОЭФ ТЕПЛООТДАЧИ*/
        float FP = (3.14159*D*D)/4;
        float S = V/FP;
        float FT = (FP*2)+3.14159*D*S;
        float CN1 = (3.14159*NO)/30;
        float DTAU = DWI/CN1;
        float DQ = ALFA*FT*(TCT-T)*DTAU;
        float DU = DQ+P*VP+FP*DTAU;
        float U=U+DU;
 
        float P = ((AN-1)*U)/V;
        float T = (P*V)/(GH*R);
 
        scanf("Переменная V = ",V);
        scanf("Переменная DU = ",DU);
        scanf("Переменная P = ",P);
        scanf("Переменная T = ",T);
 
        file = fopen("fileresult.txt", "w");
        fprintf(file, "%s %u %.2f\n", V, DU, P, T);
        fclose(file);
    }
 
    }
vadimc вне форума Ответить с цитированием
Старый 27.04.2017, 13:55   #2
vadimc
Пользователь
 
Регистрация: 13.10.2012
Сообщений: 30
По умолчанию

Это в печатном варианте
Изображения
Тип файла: jpg wLKIrEz2-k4.jpg (84.3 Кб, 143 просмотров)
Тип файла: jpg RkyjX4B2SAI.jpg (84.9 Кб, 145 просмотров)
vadimc вне форума Ответить с цитированием
Старый 27.04.2017, 14:06   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

fopen создает пустой файл а у вас он внутри цикла.
Либо используйте "a" либо вынесите fopen за пределы цикла.
waleri вне форума Ответить с цитированием
Старый 27.04.2017, 14:26   #4
vadimc
Пользователь
 
Регистрация: 13.10.2012
Сообщений: 30
По умолчанию

Как правильно это сделать подскажите пож-ста ?
vadimc вне форума Ответить с цитированием
Старый 27.04.2017, 14:33   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вам же уже ответили
Цитата:
Либо используйте "a" либо вынесите fopen за пределы цикла.
p51x вне форума Ответить с цитированием
Старый 27.04.2017, 16:10   #6
alexander13
Форумчанин
 
Аватар для alexander13
 
Регистрация: 07.02.2013
Сообщений: 267
По умолчанию

Это как бы далеко не единственная проблема с кодом. Вообще он странно организован.
И так это не работает:
Код:
 fprintf(file, "%s %u %.2f\n", V, DU, P, T);
Upd. И scanf тоже так не работает (это не вывод на экран)
Μολὼν λαβέ
alexander13 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если поставить цикл For в цикл Repeat то как будут выполняться циклы? Владимир10101 Помощь студентам 3 14.11.2016 20:14
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34