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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2014, 11:14   #1
corp.delta
 
Регистрация: 07.03.2014
Сообщений: 7
По умолчанию Помогите исправить ошибку в программном коде(С++)

Код:
// Lab1(4Method).cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
	double a, b, x, y, Y, xk, p, c, e = 0.001;
	int k, chet = 0;
	a = 1;//значение левой границы по умолчанию
	b = 2;//значение правой границы по умолчанию
	while (chet == 0)
	{

		y = a*a*a + 4 * a - 6;//значение функции в левой границе
		Y = b*b*b + 4 * b - 6;//значение функции в правой границе
		if (y < 0 && Y < 0)//условие при котором граница переносится в право на 1
		{
			a = a + 1;
			b = b + 1;
		}
		if (y>0 && Y>0)//определена нужная граница
		{
			chet = chet + 1;//конец цикла
		}
	}
	cout << "1-Method polovinnogo deleniya" << endl;//выбор метода половинного деления
	cout << "2-Metod kasatelnoy" << endl;//выбор метода касательной
	cout << "3-Metod hord" << endl;//выбор метода хорд
	cout << "4-Metod prostyh interaciy" << endl;//выбор метода простых интераций
	cin >> k;//ввод номера метода решения
	switch (k)
	{
	case1:
	 
		do
		{
			x = (a + b) / 2;//центр границы
			y = x*x*x + 4 * x - 6;//значение функции при значении (a+b)/2
			Y = a*a*a - a + 4 * a - 6;//значение функции на левой границе
			if (y*Y > 0)
			{
				a = x;
			}
			else
			{
				b = x;
			}
			p = b - a;
			if (p < 0)//возведение в модуль
				p = -p;
		} while (p>e);//цикл
		cout << x;//выход результата
	 
		break;
	case2:
		 
			x = b;
			do
			{
				xk = x - (x*x*x + 4 * x - 6) / (4 * x*x - 1);//определение следующей точки для проведения касательной(ОШИБКА)
				p = xk - x;
				if (p < 0)
					p = -p;
				x = xk;
			} while (p>e);//цикл
			cout << x;//вывод результата
		 
		break;
	case3:
		 
			c = b;//определение неподвижной границы
			x = a;//определение неподвижной границы по умолчанию
			do
			{
				xk = x - ((x*x*x + 4 * x - 6)*(x - c)) / ((x*x*x + 4 * x - 6) - (c*c*c + 4 * c - 6));//определение следующей границы для проведения хорды
				p = x - xk;
				if (p < 0)//возведение в модуль
					p = -p;
				x = xk;
			} while (p>e);//цикл
			cout << x;//вывод результата
		 
		break;
	case4:
		 
			x = a;//значение по умолчанию
			do{
				xk = -(x*x*x - 6) / 4;//определение следующей точки приближенного значения(ОШИБКА)
				p = x - xk;
				if (p < 0)//возведение в модуль
					p = -p;
				x = xk;
			} while (p>e);//цикл
			cout << x;//вывод результата
		 
		break;

	default:cout << "ERROR";
	}

	system("pause");//задержка результата
}
Предупреждение 1 warning C4065: оператор switch содержит метку "default", но не содержит ни одной метки "case"

Последний раз редактировалось MaTBeu; 07.03.2014 в 13:08.
corp.delta вне форума Ответить с цитированием
Старый 07.03.2014, 11:19   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,770
По умолчанию

а ошибка то какая?

П.С. case 1, а не case1 и т.д.
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться в программном коде на Visual Basic Людмила_И Помощь студентам 4 20.11.2013 13:41
исправить ошибку в коде 22hope22 C# (си шарп) 3 28.05.2013 18:08
Помогите исправить ошибку в коде на делфи True_girl Помощь студентам 2 02.07.2009 00:57
Помогите исправить ошибку в коде... prizrak1390 Общие вопросы Delphi 4 26.04.2008 13:19