1

Тема: Чому програма не записує дані в файл?

Доброго дня! Маю завдання створити програму яка буде обчислювати суми нескінченного ряду(з цим завданням я ніби впоралась), а результати записувати в файл, але файл чомусь залишається порожнім... Допоможіть, будь ласка розібратись у чому помилка...

#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma argsused
#include <tchar.h>
#include <math.h>
#include <stdio.h>
#include <iostream>
 #include <fstream>

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
SetConsoleOutputCP(1251);
SetConsoleCP(1251);

int k=1;
double x,f,result,equation,e=0.001,fact=1;

cout<<"Введіть значення х від (0 до 1)"<<endl;
cin>> x;

do{  f=cos(pow(x,3))/2.4+cos(pow(x,2))/2.4-9.46;
    equation=pow(-1,k)*(f*(sin(3*x+1))*(2*k+1)*pow(x,k))/fact;
    k++;
    fact*=k;
    result+=  equation;
    cout<<"k="<<k-1<<"\t Сума="<< result<<endl;
}

while(fabs( equation)>=e);

   cout<<endl<<"Сума ряду="<<result;
   cout<<endl<<"Для досягнення точності "<<e<<" необхідно "<<k-1<<" доданків " ;
   system("pause");
   string path="file.txt";

ofstream fout;
fout.open(path);

 if(!fout.is_open())  {
    cout<<"Помилка"<<endl;
 }
 else{
       fout <<"Сума ряду="<< result ;
       fout <<"Для досягнення точності "<<e<<" необхідно "<<k-1<<" доданків " ;
 }

 fout.close();

 return 0;

}

2

Re: Чому програма не записує дані в файл?

1. Вирівняйте, будь ласка, код. Невирівняний код складно читати; можливо, просто вирівнявши його, ви знайдете помилку. Початок блоку { - збільшуєте відступ, кінець } - зменшуєте.
2. Що саме виводить програма там, де має бути виведення у файл? Часом не "Помилка"?
3. Як саме ви перевіряєте, що міститься в файлі? Я перевірив на repl.it - усе працює, у файл пишеться.
Проблема, швидше за все, з якимись локальними налаштуваннями.

3

Re: Чому програма не записує дані в файл?

Ой справді на  repl.it усе працює, я просто зберігала програму в embarcadero, відкривала текстовий документ , а він був пустий...

4

Re: Чому програма не записує дані в файл?

Доброго вечора, перепрошую, чи не могли б Ви допомогти розібратися у чому помилка..? Пишу код до того ж завдання лише в формі (завдання створити програму яка буде обчислювати суми нескінченного ряду та вказувати кількість ітерацій). Чомусь в консолі працює нормально, а в формі яке б значення x не вказувала і сума і кількість ітерацій залишається однаковою...
Прочитала правила і понамагалась вирівняти як Ви казали, підкажіть, будь ласка, чи правильно вирівняла код та на що в наступний раз звернути увагу при оформленні/вирівнюванні коду :) 
Сподіваюсь пояснила зрозуміло...

void __fastcall TForm3::Button1Click(TObject *Sender)
{
   int k = 1;
   int fact = 1;
   double x, f, result, equation, step;
   float e = 0.001;
   do {
       f = (cos(pow(x, 3))/ 2.4) + (cos(pow(x, 2))/2.4) - 9.46;
       equation = pow(-1, k)*(f*( sin(3*x+1) )*(2*k+1)*pow(x, k) )/fact;
       k++;
       fact *= k;
       result += equation;
   } while(fabs( equation ) >= e);
       Label2-> Caption= "Сума ряду = " + FloatToStr(result);
       Label3-> Caption="Кількість доданків = "  +  FloatToStr(k);

}

5 Востаннє редагувалося koala (06.12.2022 18:49:24)

Re: Чому програма не записує дані в файл?

А де ви в цьому коді значення x читаєте?
У останніх двох рядків в тілі функції зайві відступи .

6

Re: Чому програма не записує дані в файл?

Х - там де f=... ніби якщо я правильно розумію Вас....

7

Re: Чому програма не записує дані в файл?

Так. Чому цей x дорівнює?