// Библиотека функций, для выполнения лабораторных работ по курсу "Информатика" // Мальшаков Григорий Викторович, 2008 г. www.malshakov.ru // Этот файл должен быть помещен в папку // C:/Program Files/Borland/CBuilder6/Include // В программе перед её использованием библиотеку необходимо подключить // #include const float pi = 3.141592653589793238462643; // Пи const float ee = 2.718281828459045235360287; // число эйлера // функция для вычисления факториала (n!) long double factorial(long double n) { if (n<=0) return 1; else return n*factorial(n-1); } // функция для вычисления двойного факториала (n!!), с шагом 2 long double dbl_factorial(long double n) { if (n<=0) return 1; else return n*dbl_factorial(n-2); } // Функция перекодировки кириллицы char* Rus(char * S) { static char *cp_str = NULL; static long len_str = 0; int i; // Определяем длину выводимой строки for (i=0;S[i]!=0;++i); // Выделяем динамическую память if (i+1 > len_str){ if (cp_str != NULL) delete [] cp_str; len_str = i+1; cp_str = new char [len_str]; } for (i=0;S[i]!=0;++i) { if (S[i]>='А' && S[i]<='п') cp_str[i]=S[i]-64; else { if (S[i]>='р' && S[i]<='я') cp_str[i]=S[i]-16; else { if (S[i]=='Ё') cp_str[i]=240; else { if (S[i]=='ё') cp_str[i]=241; else { if (S[i]==(char)0xB9) cp_str[i]=0xFC; else cp_str[i]=S[i]; } } } } } cp_str[i]=0; // конец строки return cp_str; } // перегрузка функций нахождения абсолютного значения // исправляем распространённую ошибку студентов, вызова abs вместо fabs, labs double abs(double i) {return (i>0)?i:-i;} float abs(float i) {return (i>0)?i:-i;} long abs(long i) {return (i>0)?i:-i;}