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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2012, 14:41   #1
AlekCaHdpyLLlka
Новичок
Джуниор
 
Регистрация: 30.03.2012
Сообщений: 26
По умолчанию Вопрос по коду программы на С++. Проверить.

Здравствуйте, уважаемые программисты! Нуждаюсь в Вашей помощи!

Задача: написать программу для вычисления arctg для |X|<1 c точностью eps.

Проверьте код пожалуйста, точнее, запустить у себя (я делала в visual studio express 2010), программа работает, но результат странный: числа всегда отрицательны и оооочень длинные.

Спасибо большое заранее!


#include <stdio.h>
#include <conio.h>
#include <math.h>
int sign, i;
double eps, sum, elem, x, x2;

eps= 0.001;
x= 0.1;
sign= 1;
x2= x;
for ( i= 0; ; i++ ) {
elem= sign*x2/(2*i+1);
sum+= elem;
if ( fabs( elem )<eps ) { break; }
sign= -sign;
x2*= x*x;
}

printf( "sum=%.10f\n", sum );
Изображения
Тип файла: bmp 0f2470d7bb52.bmp (26.3 Кб, 124 просмотров)
AlekCaHdpyLLlka вне форума Ответить с цитированием
Старый 11.05.2012, 15:13   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
int sign, i;
double eps, sum=0, elem, x, x2;
и оформляйте программу тегом CODE, для чего выделите текст программы и нажмите на значок# на панели сообщения
Неприятности приходят и уходят, а жизнь продолжается!

Последний раз редактировалось Sweta; 11.05.2012 в 15:16.
Sweta вне форума Ответить с цитированием
Старый 11.05.2012, 17:12   #3
AlekCaHdpyLLlka
Новичок
Джуниор
 
Регистрация: 30.03.2012
Сообщений: 26
По умолчанию

Вот такую ошибочку выдаёт... Что это такое?
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
AlekCaHdpyLLlka вне форума Ответить с цитированием
Старый 11.05.2012, 17:23   #4
AlekCaHdpyLLlka
Новичок
Джуниор
 
Регистрация: 30.03.2012
Сообщений: 26
По умолчанию

Код:
#include <iostream>
using namespace std;
// Программа вычисляет значение факториала целого числа в диапазоне от 0 до 170
// с использованием рекурсивной функции (подпрогрпммы)

// Объявление функции в формате:
// [тип_возвращаемого_значения] имя_функции ( [тип_аргументов] имена_аргументов)
double fakt (unsigned short int n);
// Основная функция main ():
int main ()
	{
	// Директива, позволяющая выводить кириллицу на экран без перекодировки:
	setlocale (LC_ALL, "Russian");

	// Объявление переменных:
	unsigned long int number; // number - натуральное число
	double fakt; // fakt - значение факториала

	// Ввод значения натурального числа с проверкой
	// его принаджежности интервалу от 0 до 170:
		do
		{
		system("cls");
		cout << "Программа вычисляет значение факториала целого числа" << endl;
		cout << "в диапазоне от 0 до 170" << endl << endl;
		cout << "Введите число (от 0 до 170):  ";
		cin >> number;
		}
		while (number<0 || number>170);

		// Использование ранее объявленной функции:
		fakt = faktor(number);

		//Вывод результата в формате с фиксированной запятой (fixed)
		// с точностью до 0 знаков после запятой (cout.precision(0)):
		cout << number << "! = " << fixed << cout.precision(0) << fakt << endl << endl;

		// Один из способов задержки экрана без дополнительного сообщения
		// "Для продолжения нажмите любую клавишу . . . ":
		system("pause");

		// Значение возвращаемой функцией main():
		return 0;
}
// Описание ранее объявленной фуекции
	double faktor (unsigned short int n)
	{
		// Значение, возвращаемое функцией faktor() при n==0 [ 0!=1 ] :
		if (n==0) return 1;
		// Значение, возвращаемое функцией faktor () при n>0 [ n!=(n-1) !*n ] :
		else return faktor(n-1)*n;
	}
Вот это для факториала, нужно взять за основу эту схему)
AlekCaHdpyLLlka вне форума Ответить с цитированием
Старый 11.05.2012, 18:13   #5
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Вот Вы объявляете функцию
Код:
// Объявление функции в формате:
// [тип_возвращаемого_значения] имя_функции ( [тип_аргументов] имена_аргументов)
double fakt (unsigned short int n);
а здесь ее описание
Код:
// Описание ранее объявленной фуекции
	double faktor (unsigned short int n)
	{
		// Значение, возвращаемое функцией faktor() при n==0 [ 0!=1 ] :
		if (n==0) return 1;
		// Значение, возвращаемое функцией faktor () при n>0 [ n!=(n-1) !*n ] :
		else return faktor(n-1)*n;
	}
Имена в названии функции и ее описании должны совпадать.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 11.05.2012, 18:24   #6
AlekCaHdpyLLlka
Новичок
Джуниор
 
Регистрация: 30.03.2012
Сообщений: 26
По умолчанию

Тут всё верно, это программа работает! Она для примера приведена в методичке. Я про предыдущую.
AlekCaHdpyLLlka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальные переменные. Вопрос по коду. DarkAltair Общие вопросы C/C++ 1 23.02.2012 14:48
написать описание к коду программы sergey92 Помощь студентам 1 06.06.2011 06:00
Вопрос по коду BeZone Помощь студентам 10 28.12.2009 13:21
Вопрос по коду(Pascal) DeFt Помощь студентам 6 09.06.2009 21:20
C++. нужни коментарии к коду программы Myau Thai Помощь студентам 1 04.06.2009 19:32