Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Использование стандартных функций языка Си

Читайте также:
  1. IV. ТЕХНОЛОГИИ И КОНЕЧНОЕ ИСПОЛЬЗОВАНИЕ ПОСТОЯННЫ И ЗАДАНЫ
  2. Азбука языка тела.
  3. Аустенита доэвтектоидной стали (при непрерывном охлаждении более строгим является использование термокинетической диаграммы)
  4. В то же время, старение тела - это прогрессирую­щий ожог химическими веществами, который приводит к повреждению желез и нарушению их функций, вплоть до их полой дисфункции.
  5. Внимание! Всё шире становится использование генетически модифицированной сои.
  6. Временное нарушение функций органов и (или) систем (временная нетрудоспособность) продолжительностью свыше трех недель (более 21 дня) (далее — длительное расстройство здоровья).
  7. Выражение как характер языка

 

 

Томск 2011 г


СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ 3

1 Общие понятия 4

2 Правила вызова библиотечных функций 4


ВВЕДЕНИЕ

 

Данные учебно-методические указания содержат теоретический материал необходимый для выполнения лабораторной работы №1 «Использование стандартных функций языка Си» по курсу Информатика для бакалавров направления 140800 «Ядерные физика и технологии». В частности, рассматриваются понятие функции СИ, некоторые библиотечные функции и правила их вызова.

 


1 Общие понятия

 

Как уже известно, любая программа, написанная на языке Си, состоит из одной или более функций, являющихся основными модулями, из которых она собирается. Визуально вызов функции можно определить по наличию круглых скобок сразу после имени:

имя (список аргументов);

где список аргументов – необязательный элемент, но имя и скобки должны быть обязательно.

Стандартные функции printf(), scanf(), fopen() и др. уже применялись ранее. А функция main() (для DOS-приложений) в принципе выполняется первой, поэтому присутствует во всех программах.

Функция – самостоятельная единица программы, спроектированная для реализации конкретной задачи. Функцию можно вызывать из других функций. Функции в языке Си играют ту же роль, какую играют функции, подпрограммы и процедуры в других языках. Вызов функции приводит к выполнению некоторых действий. Например, при обращении к функции printf() осуществляется вывод данных на экран. Другие же функции позволяют получать некоторую величину, используемую затем при выполнении программы. В общем, функции могут выполнять действия и получать значения величин, используемых в программе, а также возвращать вычисленные значения.

Функции можно разделить на стандартные (встроенные) и пользовательские (разработанные собственно в ходе создания программы).

 

2 Правила вызова библиотечных функций

 

До сих пор Вы пользовались только стандартными функциями, осуществляющими ввод с клавиатуры или из файла, вывод на монитор или в файл, открытие и закрытие файлов. Для того, чтобы организовать доступ к указанным функциям, в начале программного файла с помощью директивы препроцессора include включается файл stdio.h. На самом деле в указанном файле содержится описание следующих функций:

clearerr fclose fcloseall fdopen feof ferror

fflush fgetc fgetchar fgetpos fgets fileno

flushall fopen fprintf fputc fputchar fputs

fread freopen fscanf fseek fsetpos ftell

fwrite getc getchar gets getw perror

printf putc putchar puts putw remove

rename rewind rmtmp scanf setbuf setvbuf

sprintf sscanf strerror _strerror tempnam tmpfile

tmpnam ungetc unlink vfprintf vfscanf vprintf

vscanf vsprintf vsscanf

Аналогично, в файле math.h описаны функции, предназначенные для математических вычислений:

abs... acos acosl asin asinl

atan atanl atan2 atan2l atof _atold

cabs cabsl ceil ceill cos cosl

cosh coshl exp expl fabs fabsl

floor floorl fmod fmodl frexp frexpl

hypot hypotl labs... ldexp ldexpl

log logl log10 log101 matherr _matherrl

modf modfl poly polyl pow powl

pow10 pow10l sin sinl sinh sinhl

sqrt sqrtl tan tanl tanh tanhl

Как правило, стандартные функции возвращают какую-либо величину, которую соответствующим образом можно использовать для дальнейшей обработки.

Например, функция fopen() на самом деле при успешном завершении возвращает указатель на вновь открытый поток (например, файл, имя которого указано в качестве первого аргумента), а в случае ошибки возвращает значение NULL – константу, описанную в stdio.h. Поэтому легко можно проверить, например, открылся ли удачно файл, из которого должны считываться данные:

FILE *in;

in = fopen("AUTO.DAT", "r");

if (in == NULL)

{

printf("Невозможно открыть входной файл.\n");

}

При обращении к функциям надо не забывать о том, что типы, порядок и количество фактических параметров (перечисляемых при конкретном обращении) должны совпадать с описанием формальных параметров (данных в описании функции). Например, функция вычисления синуса описана в math.h следующим образом:

double sin(double x);

Это означает, что при обращении к этой функции ей необходимо передать 1 аргумент вещественного типа двойной точности, результат будет иметь также вещественный тип двойной точности. При этом надо не забыть, что для стандартных тригонометрических функций единица измерения угла – радианы.

Например, надо вычислить значение синуса 30о:

int xgr;

double ss;

xgr = 30; // градусы

ss = sin (xgr*M _ PI/180);

Здесь перед вызовом функции sin() градусы переводим в радианы, используя константу M _ PI (вещественного типа), описанную также в math.h, а затем уже результат (вещественного типа!) будет передан для вычисления функции sin().

Функции, предназначенные для математических вычислений, можно разбить на группы:

тригонометрические функции sin(double x), cos(double x), tan(double x)
обратные тригонометрические функции asin(double x), acos(double x), atan(double x)
арктангенс от (y/x) atan2(double x)
гиперболические тригонометрич. функции sinh(double x), cosh(double x), tanh(double x)
экспоненты и логарифмы exp(double x), log(double x), log10(double x)
экспоненты и логарифмы (по основанию 2) ldexp(double x, int n), ldexpl(double x, int n)
деление и остаток от деления modf(double x, double *ip), fmod(double x, double y)
возведение в степень pow(double x, double y) [xy], sqrt(double x) [ ]
округление ceil(double x) [округление вверх], floor(double x) [округление вниз]
вычисление модуля abs(int n) [для целых], fabs(double x) [для вещественных]

Как правило, они имеют аргумент вещественного типа и возвращают результат также вещественного типа. Не забудьте, что для тригонометрических функций аргумент передается в радианах. Единицы измерения результатов обратных тригонометрических функций – также радианы.

В math.h описаны следующие полезные константы:

Название константы Значение константы Название константы Значение константы Название константы Значение константы
M_PI p M_1_SQRTPI 1/ M_LN2 ln(2)
M_PI_2 p/2 M_2_SQRTPI 2/ M_LN10 ln(10)
M_PI_4 p/4 M_E e M_SQRT2
M_1_PI 1/p M_LOG2E log(e) M_SQRT_2
M_2_PI 2/p M_LOG10E log10(e)    

Таким образом, после включения файла math.h можно использовать эти константы в выражениях – их значения не надо определять дополнительно.


Дата добавления: 2015-09-05; просмотров: 174 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Літаратура па курсу| Зонирование библиотечных помещений

mybiblioteka.su - 2015-2024 год. (0.013 сек.)