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

C++ ошибка в рекурсивной функции...помогите разобраться... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread7040.html
Необходимо подсчитать сколько слов в файле, состоящих из не более 4 символов. (на С++)Вот я написал, но она показыватся общее число слов в файле. КАк еще поставить ограничение, чтобы считала только слова, которые не длинее 4 символов понять не могу. Код C++ <code> // Подсчет числа слов #include <iostream.h> #include <fstream.h> #include <ctype.h> int main(int argc, char *argv)
C++ Перехожу на C Не могу закончить программу на Delphi, перехожу на С! Подскажите с чего лучше начать? Надо написать драйвер для Windows! Спасибо!!! http://www.cyberforum.ru/cpp-beginners/thread7033.html
Помогите с комментами к задаче... plzzz!!! C++
Я новичок в программинге... нашел прогу... двунаправленная Шейкер сортировка... но к сожелению не все понимаю что и для чего....!!! Кого не затруднит пожалйста напишите коменты к данной программе (где есть ?????)... чтобы было понятно новичку;) ....Заранее благодарю!!! . . . текст программы: #include <iostream.h> #include <stdio.h> void shakerSort(int array, int size){ int i, j, k,...
Сбивается указатель при считывании из файла C++
Сбивается указатель, считывается не то значение (вместо '1' считывается пробел и всё летит). Но если открыть этот файл в WordPad'e добавить туда что-нить и это же удалить(оставить его без изменений) и сохранить, то всё считвается отлично. Считывается посредством fgets(stream, 8, str); Кто знает в чём проблема или кто сталкивался вообще с подобным откликнитесь:help:
C++ Уплотнить массив, отбросив из него элементы меньшие 3 по модулю, и упорядочить по убыванию http://www.cyberforum.ru/cpp-beginners/thread6917.html
Задача : нужно уплотнить массив отбросив из него элементы меньшие 3 по модулю и упорядочить по убыванию.? Плиииииииз код на C++.
C++ Зачем нужен .def - файл? Не так давно, где-то лет 5 назад, когда я учился писать первые программы на С++, я установил Borland C++ 5.0 (поскольку МАДИшный Borland C 3.1 у меня не устанавливался). И всем он был хорош до тех пор, пока я не попробовл писать проги под WINDOWS. В этом случае приходилсь создавать проэкт, который включал в себя 3 основных файла: .cpp, .rc и .def. С первыми двумя было все предельно ясно, а вот... подробнее

Показать сообщение отдельно
VarkrafT
Сообщений: n/a

C++ ошибка в рекурсивной функции...помогите разобраться... - C++

04.04.2008, 16:01. Просмотров 942. Ответов 0
Метки (Все метки)

Здравствуйте. Ниже написана программа с использованием рекурсивной функции...
Функции s1,s2,s3,s4,s5-функции, вычисляющие суммы членов ряда,
next- функция вычисления очередного члена ряда, stx-функция вычисления степени x. s1,s2-считают правильно, а в s3,s4,s5 не знаю где ошибка((( Помогите пожалуйста разобраться...
Код
#include<math.h>
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<fstream.h>
#include<stdlib.h>
ofstream fout;
double p=3.141592653589793;
float stx(float x, int n)
{if(x==0) return(0);
 else if(n==0)return(1);
 else if(n==1) return (x);
 else return(x*stx(x,n-1));
}
float next(float x,int n)
{
 return atan(x/sqrt(1-stx(x,2)));
}
typedef float(*func)(float,int);
float s1(float x,float e)
{
   float a=((2*1-1)*stx(x,2*1+1))/((2*1)*(2*1+1)),s=p/2-x;
   int n=1;
   while (fabs(a)>e)
   {s-=a; a*=((2*n-1)*stx(2*n+1,2)*stx(x,2))/((2*n+2)*(2*n+3));
   n++;
   }
   return(s+a);
}
float s2(float x,float e)
{ float a=a=((2*1-1)*stx(x,2*1+1))/((2*1)*(2*1+1)),s=p/2-x;
int n=1;
do
  {s-=a; a*=(((2*n-1)*stx(2*n+1,2)*stx(x,2))/((2*n+2)*(2*n+3)));
  n++;
  }
  while (fabs(a)>e);
  return(s+a);
}
float s3(int n,float x,float e, func fn)
{
 float f=fn(x,n),s=p/2;
 while(fabs(f)>e)
 {s-=f;n++;f=fn(x,n);}
 return(s+f);
}
 

float s4(int n,float x,float e,func fn)
{
 float f=fn(x,n),s=p/2;
 do {s-=f;n++;f=fn(x,n);}
 while(fabs(f)>e);
 return(s+f);
}
float s5(int n,float x, float e,func fn)
{
float f=fn(x,n);
if(fabs(f)<e)return f;
else return(f+s5(n+1,x,e,fn));
}
 
void main()
{float e=1.e-5;
fout.open("15.res");
if(!fout)
{cout<<"oshibka otkrbItij fajla rezylbtatov";exit(0);}
fout<<"\t\t\tRezylbtatbI dlj e="<<e<<'\n'
<<"|-----|----------|----------|----------|----------|----------|----------|"<<'\n'
<<"|  x  |  arccos  |   s1     |    s2    |   s3     |   s4     |   s5     |"<<'\n'
<<"|-----|----------|----------|----------|----------|----------|----------|";
for(float x=0.1; x<1; x+=1)
{
 fout<<endl<<'|'<<setw(3)<<x<<setw(3)<<'|'<<setw(10)<<acos(x)<<'|'
 <<setw(10)<<s1(x,e)<<'|'<<setw(10)<<s2(x,e)<<'|'
 <<setw(10)<<s3(1,x,e,next)<<'|'<<setw(10)<<s4(1,x,e,next)<<'|'
 <<setw(10)<<s5(1,x,e,next)<<'|';
}
fout<<'\n'<<"|-----|----------|----------|----------|----------|----------|----------|";
fout.close();

}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru