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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 20:32   #1
Anna1993
 
Регистрация: 16.05.2011
Сообщений: 5
Восклицание Файли. Подкорректировать

Последовательность xi образована по закону xi=(i-0.1)/(i*i*i+|tg(i)|), i= (1, 2, 3...). Задано действительное число ε> 0. Записать в файл члены последовательности {xi}, остановившись после первого члена, для которого выполняется условие |xi|<ε.


Делала приблизительно вот так, но оно не работает. Помогите пожалуйста.

Код:
#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

void main()
{
	double xi,eps=0.1,x;
	int i; char c[5]; 
	FILE *fp; 
	fp=fopen("D://lab5.txt","a");
while (xi<eps);
{
	for(i=1;i<30;i++)
	{
		x=i;
		xi=(x-0.1)/(x*x*x+fabs(tan(x)));
		itoa(xi,c,10);
		fputs(c,fp);
	}
}
    fclose(fp);
}
Anna1993 вне форума Ответить с цитированием
Старый 23.05.2011, 23:45   #2
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Первое, что бросилось в глаза - убери точку с запятой после строчки с while, и используй вместо itoa функцию, умеющую преобразовывать вещественные числа )
Ну и в пути вместо // напиши \\ )
Son Of Pain вне форума Ответить с цитированием
Старый 24.05.2011, 00:37   #3
Anna1993
 
Регистрация: 16.05.2011
Сообщений: 5
По умолчанию

Код:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;

void main()
{
	double xi,eps=0.01 , x;
	int i; char c[5];  
	FILE *fp; 
	fp=fopen("D:\\lab5.txt","a");
do
{
	for(i=1;i<10;i++)
	{
		x=i;
		xi=(x-0.1)/(x*x*x+fabs(tan(x)));
         itoa(xi,c,10);
		fputs(c,fp);
	}
}
while (xi<eps);

 fclose(fp);
}
ну вот так вот, но оно все-равно не работает!
Anna1993 вне форума Ответить с цитированием
Старый 24.05.2011, 00:50   #4
Shadow94
Пользователь
 
Аватар для Shadow94
 
Регистрация: 17.04.2011
Сообщений: 18
По умолчанию

Насколько я понял, у вас условие должно быть другое
do...while (xi>=eps); то есть если будет xi < eps, то запись в файл прекратится, оно нам и нужно.
И кстати у вас же модуль xi сравнивается с eps, поэтому ещё надо сделать так:
xi=fabs((x-0.1)/(x*x*x+fabs(tan(x))));
Shadow94 вне форума Ответить с цитированием
Старый 24.05.2011, 10:50   #5
Anna1993
 
Регистрация: 16.05.2011
Сообщений: 5
По умолчанию

спасибо, на счёт условие, то вы правы, вот в етом была ошибка, а модуль не обязательно, в нас тангенс по модулю!
большое спасибо!))
Anna1993 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо подкорректировать программу на ассемблере!!! Иван1223 Помощь студентам 0 12.04.2011 19:59
нужно подкорректировать! Dilmur Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2010 21:24
подкорректировать прогу на делфи-сортировка в стрингриде west.by Общие вопросы Delphi 5 10.06.2010 00:31
Подкорректировать программу wrmarw Паскаль, Turbo Pascal, PascalABC.NET 5 04.05.2010 14:06