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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2012, 14:43   #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 (2).bmp (26.3 Кб, 129 просмотров)

Последний раз редактировалось ACE Valery; 12.05.2012 в 02:02.
AlekCaHdpyLLlka вне форума Ответить с цитированием
Старый 11.05.2012, 15:25   #2
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

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

void main ()
{
 int sign, i;
 double eps, sum=0, elem, x, x2;
 sum = 0; //  Провтыкали =)
 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 = %f",sum);
 scanf("%d",&sum);
}
AlexDark вне форума Ответить с цитированием
Старый 11.05.2012, 17:11   #3
AlekCaHdpyLLlka
Новичок
Джуниор
 
Регистрация: 30.03.2012
Сообщений: 26
По умолчанию

Цитата:
Сообщение от AlexDark Посмотреть сообщение
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

void main ()
{
 int sign, i;
 double eps, sum=0, elem, x, x2;
 sum = 0; //  Провтыкали =)
 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 = %f",sum);
 scanf("%d",&sum);
}


Вот такую ошибочку выдаёт... Что это такое?
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
AlekCaHdpyLLlka вне форума Ответить с цитированием
Старый 11.05.2012, 17:22   #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, 22:35   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Вот такую ошибочку выдаёт... Что это такое?
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
Создали не КОНСОЛЬНЫЙ проект.
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка правильности кода программы Petrowa C++ Builder 4 25.11.2015 18:41
Проверка кода програмы Мax и Мin [Pascal] mark1ra Помощь студентам 0 11.10.2011 17:20
excel.Проверка VBA и проверка функции Будда Помощь студентам 0 14.04.2011 21:10
Язык С, работа с файлами. (проверка кода) TIT0 Помощь студентам 0 08.12.2010 15:49
проверка правильности кода введенного в форму moidadir JavaScript, Ajax 1 13.07.2009 18:43