49139 (Стандартные библиотечные функции С++), страница 3
Описание файла
Документ из архива "Стандартные библиотечные функции С++", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49139"
Текст 3 страницы из документа "49139"
Параметр typedef_mexcep, также определенный в файле math.h, перечисляет следующие символические константы, представляющие собой возможные математические ошибки: (см. Таблицу 1).
Исходный код для функции matherr, определенной по умолчанию находится на дистрибутивных дисках с системой Turbo C++.
Стандарт UNIX функции matherr несовместим со стандартом ANSI C. Если вам требуется версия функции matherr для системы UNIX, пользуйтесь программой matherr.c, поставляемой на дистрибутивных дискетах пакета Turbo C.
Возвращаемое По умолчанию функция matherr возвращает 1 если значение ошибка UNDERFLOW или TLOSS, иначе 0. Функция matherr также может модифицировать параметр e->retval, который посредством функции matherr передается в вызывающую программу. Когда функция matherr возвращает 0, (означающий, что обработать ошибку она не может), функция _matherr устанавливает переменную errno и печатает сообщение об ошибке. Когда функция matherr возвращает ненулевое значение, (означающее, что ошибка успешно обработана), глобальная переменная errno не устанавливается и сообщение об ошибке не выводится.
Переносимость matherr доступна на многих компиляторах Си, однако она не поддерживается стандартом ANSI C.
matherr в стиле системы UNIX (которая печатает сообщение и завершает выполнение программы) поставляется вместе с пакетом Turbo C++ в файле MATHERR.C. matherr может не поддерживаться в дальнейших версиях Turbo C++.
Пример:
#include
#include
#include
int matherr(struct exception *a);
{
if (a -> type == DOMAIN)
{
if(strcmp(a -> name, "sqrt") == 0)
{
a -> retval = sqrt (-(a -> arg1));
return (1);
}
}
return (0);
}
int main(void)
{
double x,y;
x = -2.0;
y = sqrt(x);
printf("Значение, скорректированное matherr: %lf\n",y);
return 0;
}
4. Программная часть
4.1 Постановка задачи
Перед началом выполнения данной курсовой работы я поставил для себя целью изучить принципы работы с математической библиотекой, функции и системные вызовы языка С++, позволяющие выполнять геометрические, тригонометрические и другие нестандартные математические расчёты. В курсовой работе я буду создавать и описывать программу, которая позволит выполнять расчёты по заданным параметрам, введённых с клавиатуры.
Данная программа в дальнейшем может быть использована студентами для изучения математической библиотеки на лабораторных занятиях по изучению теоретического материала и приобретения практических навыков по дисциплине «Системное Программное Обеспечение», а также программа может быть использована в работе с операционной системой MS DOS.
4.2 Описание разработанной программы
Моя программа предназначена для демонстрации работы созданной мной библиотеки.
В программе организовано псевдографическое меню, в котором можно выбрать один из нескольких пунктов:
-
Площадь круга.
-
Объём цилиндра.
-
Площадь цилиндра.
-
Площадь трапеции.
-
Объём пирамиды.
-
Объём шара.
-
Площадь сферы.
-
Факториал.
-
Выход.
При выборе соответствующего пункта, необходимо нажать клавишу Enter, для того чтобы приступить к расчётам или, если выбран пункт «Выход», выйти из программы. Для немедленного выхода из программы необходимо нажать клавишу ESC.
В программе я использую встроенные библиотеки С++.
Таблица. 3
Название библиотеки | Описание функции |
Iostream.h | Потоки ввода \ вывода |
Conio.h | Прототип функции задержки |
Math.h | Использование математических функций |
А также помимо стандартных библиотек, подгружается matfac.cpp - разработанная мной библиотека.
Почти в любой программе не обойдешься без собственных функций, они упрощают программирование, программа становится более понятна и удобна в изучении.
В моей программе я использую несколько своих функций вызываемых из основной программы.
-
f1-f8 - функции соответствующие описанным выше пунктам меню (Площадь круга, Объём цилиндра, …,Выход.).
-
sw – функция для вызова других функций (f1-f8).
-
mn – функция для организации меню.
В функции sw и mn в качестве аргументов передаются переменная соответствующая выбранному пункту меню, а также массив строк.
Непосредственно из функций f1-f8 передаются аргументы и вызываются описанные мною функции из matfac.cpp.
С помощью директив #include в головную программу выключаются другие файлы: matfac.cpp. Предположим что все они находятся в корневой директории диска С:. Если это не так, то необходимо изменить соответствующие директивы #include.
Листинги исполняемой программы kurs.cpp и подгружаемого модуля matfac.cpp представлены в приложениях 1 и 2.
5. Заключение
В данной курсовой работе мной был рассмотрен стандартный модуль для работы с математическими функциями на языке C++ “math.h”. А также разработан собственный модуль для вычисления площади, объёмов геометрических фигур и других параметров. Данная работа позволила мне более углубленно изучить работу с математическими функциями, различные тонкости языка. В курсовой работе была создана и описана программа, позволяющая вычислять некоторые геометрические величины.
Данная работа может использоваться в учебных целях, а на основе кода модуля могут осуществляться различные разработки дополнительных функций для работы с математическими функциями, на лабораторных занятиях по изучению теоретического материала и приобретения практических навыков по дисциплине «Системное Программное Обеспечение».
6. Список используемой литературы
-
М.И. Болски. Язык программирования Си. 1988г.
-
Б.И. Березин. Начальный курс С и С++. М.,2001г.
-
Интернет ресурсы (www.citforum.ru)
Приложение 1
Листинг основной программы (kurs).
#include
#include
#include
#include
//#include
void f1(char menu [9][30])// Площадь круга
{
float r;
gotoxy(15,10);
cout<
10>1>