Форум программистов, компьютерный форум CyberForum.ru

Ошибка в С++ - C++

Восстановить пароль Регистрация
 
Gnomuk_Rus
1 / 1 / 1
Регистрация: 02.04.2012
Сообщений: 10
20.05.2012, 14:30     Ошибка в С++ #1
Здравствуйте, программа выдает при запуске Error: ( stream != NULL ) ; объясните(укажите мне на ошибку где у меня тут не правильно).

Задание такое:

1) Составить программу интерполирования функции с использованием полинома Лагранжа.
2) Ввод исходных данных организовать через файлы.
3) Ввод порядка полинома и длинны массива исходных данных организовать через терминал.
4) Максимальный возможный порядок восстанавливающего полинома n<10.
5) Максимальное количество узлов восстанавливаемой функции m<121.
6) Результаты решения и исходные данные вывести в файл.
7) Предусмотреть возможность многократного ввода порядка полинома и выбора восстанавливающего базиса.

Код
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{
	FILE *fW, *fRx, *fRy;
	int n,m,b,e;
	float xx, S, P, x[2][110];
	
	fRx = fopen("labx.txt", "r");
	fRy = fopen("laby.txt", "r");
	fW = fopen("rez.txt", "w");
	
	do
	{
		printf("Vvedite dlinu massiva (m>0 & m<121)\n"); //вводим длину массива
		scanf("%d", &m);
	}while (m <= 0|| m >= 121); //проверка условия
	
	for (int j = 0; j < m; j++)
	{
		fscanf(fRx, "%f", &x[0][j]);
	}
		
	for (int i = 0; i < m; i++)
	{
		fscanf(fRy, "%f", &x[1][i]);
	}
		
	printf("Uzli i znacheniya funkciy v uzlah:\n");//вывод узлов и значения функции в них 
	fprintf(fW, "Uzli i znacheniya funkciy v uzlah:\n");
		
	for(int j = 0; j < m; j++)
	{
		printf("%.2f %.2f\n", x[0][j],x[1][j]);
		fprintf(fW,"%.2f %.2f\n", x[0][j],x[1][j]);
	}
		
	b=0;
	e=0;
		
	do
	{
		printf("Vvedite porjadok polinoma (n>0 & n<10)\n");//вводим порядок полинома
		scanf("%d", &n);
	}while (n <= 0||n >= 10||n >= m);
		
	fprintf(fW, "Poryadok polinoma = %d\n", n);
	printf("Vvedite argument (x popadaet v promezhutok [%.0f;%.0f])\n", x[0][0], x[0][m-1]);//вводим Х, значение функции в котором мы должны найти
		
	do
	{
		scanf("%f", &xx);
	}while (xx < x[0][0]||xx > x[0][m-1]);
		
	for(int i = 0; i < m; i++)
	{
		if (x[0][i] > xx)
		{
			b = i-(n+1)/2;// Определение интервала интерполяции
			e = b+n;
		}
			
		if( b < 0)
		{
			b = 0;
			e = n;
		}

		if (e > m-1)
		{
			b = m-1-n;
			e = m-1;
		}
		if ((e-b+1) > n+1)
		{
			e = e-1;
			S = 0;
		}
	}
			
	for(int i=b; i <= e; i++)
	{
		P=1;
		for(int j = b; j <= e;j++)
		{
			if( i != j)
			{
				P = P*(xx-x[0][j])/(x[0][i]-x[0][j]);
				S = S+x[1][i]*P;
			}
		}
	}
	
	printf("F(%.3f)=%.3f\n", xx,S);//вывод результатов
	fprintf(fW,"F(%.3f)=%.3f\n", xx,S);
	fcloseall();
	getchar();
	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 14:30     Ошибка в С++
Посмотрите здесь:

При компиляции ошибка. Ошибка c++ C2678 C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Дмитрий3241
 Аватар для Дмитрий3241
634 / 505 / 52
Регистрация: 07.07.2011
Сообщений: 1,226
20.05.2012, 15:37     Ошибка в С++ #2
Gnomuk_Rus, извините но вы пролетели разделом и написали в раздел "C# для начинающих", вам нужно обратиться в раздел "C++ для начинающих" или "C++ для экспертов".
Gnomuk_Rus
1 / 1 / 1
Регистрация: 02.04.2012
Сообщений: 10
20.05.2012, 16:04  [ТС]     Ошибка в С++ #3
Спасибо =) вы меня даже таких своим ответом осенили =)) все разобрался =)))
Yandex
Объявления
20.05.2012, 16:04     Ошибка в С++
Ответ Создать тему
Опции темы

Текущее время: 06:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru