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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 23:04   #1
AlinAA
 
Регистрация: 19.02.2009
Сообщений: 5
По умолчанию Помогите! язык c Тейлор + проблемы считывания файла

пожалуйста,помогите!!
вроде,всё написано.. только недоработка остались..
1.Тейлор вычисление sin
Код:
#include<stdio.h>
#include<math.h>

double sinx(double x,double eps);

double sinx(double x,double eps)
{  double snx, xn, x2;
int n=1;
snx=x;
xn=x;
x2=-x*x;

do
{n +=2;
xn *=x2/n/(n-1);
snx +=xn;
}
while(fabs(x-eps)>0);
return snx;
}

int main(void)
{double a, eps;
printf("Vvedite chislo\n");
scanf("%lf",&a);
printf("Vvedite priblishenie\n");
scanf("%lf",&eps);

printf("Znachenie %lf,sinx(a,eps)\n");
printf("Pogreshost %lf,fabs(sinx(a,eps) - sin(a))\n");

return 0;
  }
вопрос таков, если ввести большой x, То и значение выведется большое. помогите записать то,что мы подставляем число меньшее на целое число периодов,например, x=50=3,1415*15 (pi*15).
Есть ли встроенное значение числа pi?

2. в файле даны точки,по которым строиться многочлен..


Код:
#include <stdio.h>
#include <stdlib.h>

double func_f(double x_par, int n_size, double *x, double *y);

double (*f_u) (double x_par, int n_size, double *x, double *y); /*Ukazatelj na funkciju */

void main(void)
{

FILE* in_file;

double *x;
double *y;
double x_per;
double rez_f;
int interv;
int i;
char lett;

f_u = &func_f; /*f_u ukazyvaet na Func_f */

if ((in_file=fopen("data.txt", "wb"))==NULL) {
printf("Problems with file\n");

} else {

fscanf(in_file, "%d", &interv);


x = (double*) malloc (sizeof(double)*interv);
y = (double*) malloc (sizeof(double)*interv);

for(i=0; i<interv; i++){
fscanf (in_file, "%lf", &x[i]);
fscanf (in_file, "%lf", &y[i]);
}

fclose(in_file);
}

for(i=0; i<interv; i++)
printf("%.2lf\t%.2lf\n", x[i], y[i]);
fflush(stdin);

do{ printf("x?\n");
scanf("%lf", &x_per);
} while((x_per<x[0])||(x_per>x[interv-1]));

/*--------------------------------------------------------------------------- */

rez_f = f_u(x_per, interv, x, y);

printf ("%.4lf\n", rez_f);

puts("enter a letter to end the programm");
fflush(stdin);
scanf("%c", &lett);
free((void*)x);
free((void*)y);
} 


.....
правильно ли записано,что если файл не может быть открыт,то программа ничего не должна делать и основной вопрос,как записать,что если файл существует,но пуст,то тоже надо закончить работу

помогите,пожалуйста! заранее огромное спасибо
AlinAA вне форума Ответить с цитированием
Старый 13.03.2009, 21:46   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

2.
Код:
if ((in_file=fopen("data.txt", "r"))==NULL)
{;// ошибка открытия файла
}

char c = ' ';
while(!feof(in_file) && isspace(c))
            fscanf(in_file, "%c", &c); 
if(feof(in_file))
{;	//файл пустой
}
1. Программа зависнет в цикле, т.к. условие выхода из цикла постоянно. Во-первых, fabs по определению >0. Во-вторых, Вы не меняете ни x, ни eps в цикле.
Код:
do
{n +=2;
xn *=x2/n/(n-1);
snx +=xn;
}
while(fabs(x-eps)>0);
Вывод результата:
Код:
printf("Znachenie %lf sinx(a,eps)\n", sinx(a, eps));
printf("Pogreshost %lf fabs(sinx(a,eps) - sin(a))\n", fabs(sinx(a,eps) - sin(a)));

Последний раз редактировалось Svetlag; 13.03.2009 в 21:54.
Svetlag вне форума Ответить с цитированием
Старый 13.03.2009, 22:20   #3
AlinAA
 
Регистрация: 19.02.2009
Сообщений: 5
По умолчанию

спасибо!
насчёт первой не совсем ясно((
что такое isspace(c)
AlinAA вне форума Ответить с цитированием
Старый 13.03.2009, 22:34   #4
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

Во-первых, подключите <ctype.h>.
isspace - функция, которая проверяет, является ли символ пробелом, концом строки и т.п.
Svetlag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема такова: язык:Delphi7; сохранения файла; загрузка файла в String Grid lightdevil Общие вопросы Delphi 3 06.03.2009 23:10
Метод хорд. Тейлор AlinAA Помощь студентам 1 26.02.2009 00:31
считывания данных с TCP/IP kyc0k Помощь студентам 1 08.04.2008 11:45
Осуществление последовательного считывания атрибутов Meskalito БД в Delphi 5 01.04.2008 17:17