Форум программистов, компьютерный форум 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++ Зачем нужен .def - файл? http://www.cyberforum.ru/cpp-beginners/thread6913.html
Не так давно, где-то лет 5 назад, когда я учился писать первые программы на С++, я установил Borland C++ 5.0 (поскольку МАДИшный Borland C 3.1 у меня не устанавливался). И всем он был хорош до тех пор, пока я не попробовл писать проги под WINDOWS. В этом случае приходилсь создавать проэкт, который включал в себя 3 основных файла: .cpp, .rc и .def. С первыми двумя было все предельно ясно, а вот...
C++ Хочу учиться программировать на C++ Вопрос вот собственно в чем, нашёл кучу учебников там в основном начинается с того как сделать первую программу т.д. и т.п. И к сожаленью нету информации какими программами нужно пользоваться чтобы собственно программировать... Если не сложно напишите что это за программы... (желательно если это будут ссылки на них) p.s. заранее спасибо... подробнее

Показать сообщение отдельно
VarkrafT
Сообщений: n/a
04.04.2008, 16:01     C++ ошибка в рекурсивной функции...помогите разобраться...
Здравствуйте. Ниже написана программа с использованием рекурсивной функции...
Функции 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();

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