Студопедия  
Главная страница | Контакты | Случайная страница

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

Операторы вызова функций

Читайте также:
  1. I Справка по содержанию аргументов финансовых функций
  2. II Сложные (составные) операторы
  3. Microsoft Excel. Назначение и синтаксис функций ВПР, ИНДЕКС.
  4. Microsoft Excel. Назначение и синтаксис функций ДАТА, ВРЕМЯ, ТДАТА, СЕГОДНЯ.
  5. VII. Разделите следующие явления на общие и частичные нарушения функций мозга
  6. А вознаграждения, площадного, недельщику (приставу), отправляемому пешком в Москве (для вызова в суд тяжущихся)
  7. Анализ инвестиций с помощью функций MS Excel
  8. Анализ инвестиций с помощью функций MS Excel.
  9. Билет 47. Бесконечно-малые и бесконечно-большие функции. Сравнение функций. Эквивалентные функции
  10. Бюджетные ассигнования на обеспечение выполнения функций бюджетных организаций

 

Основные возможности языка С реализованы посредством функций из различных библиотек. Понятие функции будет подробно рассмотрено в шестой главе, здесь же мы ограничимся представлением функции как именованного независимого фрагмента программы, который может быть вызван (запущен) из другой функции. Функция может иметь параметры - значения, которые необходимы для выполнения функции (передаются при вызове функции).

В языке С оператор вызова функций, в принципе, выделен условно (во многих книгах по языку C он вообще не рассматривается как оператор). Оператор вызова функций просто определяет синтаксис описания вызова любой функции в тексте программы:

имя_функции(параметры);

Сначала указывается имя функции, затем, в круглых скобках, указываются параметры функции. Завершается оператор вызова функций точкой с запятой.

ПРИМЕЧАНИЕ: В языке С, если функция не имеет параметров, то пустые круглые скобки все равно должны присутствовать.

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

sqrt(pow(x,3.0));

 

В этом примере осуществляется вызов функции sqrt, вычисляющий квадратный корень, в качестве параметра которой осуществляется вызов функции pow, выполняющей возведение переменной x в куб. Параметрами функции pow являются число, которое необходимо возвести в степень (переменная x), и значение степени (вещественная константа 3.0). Константа 3.0 является вещественной, так как функция pow работает с вещественными параметрами. Функции sqrt и pow описаны в библиотеке математических функций языка С math.h. Следует обратить внимание на то, что точка с запятой ставится только в конце выражения.

Рассмотрим функции форматированного ввода и вывода языка С из библиотеки stdio.h: scanf и printf.

Функция scanf предназначена для форматного ввода данных и имеет следующий заголовок:

int scanf(const char * restrict format [,addresses,…]);

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

int a,b;

double x;

scanf(“%d %d %lf”,&a,&b,&x);

 

В данном примере сначала вводятся два значения целого типа в переменные a и b, а затем вещественного типа в переменную x. %d указывает на то, что вводимые данные являются целыми числами, %lf - вещественным типа double. Перед именами переменных в параметрах функции scanf необходимо указывать символ ‘&’, который в языке С, в данном случае, обозначает операцию взятия адреса переменной.

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

% [*] [WIDTH] [hh|h|l|ll|L] символ_типа

* - указывает запрещенные (символы разделители) для ввода символы. Указанные здесь символы разделяют разные поля ввода, а сами игнорируются.

WIDTH - задает максимальную длину поля ввода.

L, ll, l, hh, h - преобразователи типа. Символы hh служат для преобразования целочисленных типов к типам char или unsigned char. Символ h служит для преобразования целочисленных типов к типам short int или unsigned short int. Символ l служит для преобразования к типу long int всех целочисленных типов и к типу double всех вещественных типов. Символы ll служат для преобразования целочисленных типов к типам long long int или unsigned long long int. Символ L служит для приведения к типу long double всех вещественных типов.

В таблице 2.2 приведен перечень типов и соответствующие им спецификаторы.

Таблица 2.2 - Спецификаторы типов функций форматированного ввода и вывода

Символ Тип
d Знаковое целое число в десятичной системе исчисления
o Знаковое целое число в восьмеричной системе исчисления
x Знаковое целое число в шестнадцатеричной системе исчисления
i Знаковое целое число в любой из ранее перечисленных систем исчисления
u Незнаковое целое число в десятичной системе исчисления
f, e или g Вещественное число, бесконечность или не число (NAN)
a Вещественное число в шестнадцатеричной системе исчисления
c Символ
s Строка
p Указатель
n Блокирование (пропуск) ввода
% Ввод символа процента.

Функция printf предназначена для форматного вывода данных и имеет следующий заголовок:

int printf(const char *restrictformat [,variables,…]);

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

int a,b;

double x;

printf(“%d %d %5.2lf”,a,b,x);

 

В данном примере сначала выводятся два значения целого типа (переменные a и b), а затем вещественного типа (переменная x).

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

% [flag] [WIDTH][.PREC] [h|hh|l|ll|L] символ_типа

flag - для чисел указывает на необходимость вывода знака ‘+’ для положительных чисел, для строк управляет форматированием - по левому или по правому краю.

WIDTH - задает длину поля.

.PREC - задает количество символов после запятой для вещественных чисел и минимальное количество знаков для целых чисел.

h, hh, l, ll, L - аналогично функции scanf.

Пример: даны два целых числа, организовать их ввод в формате a*b= и вывести значение их произведения.

#include<stdio.h>

int main(int argc, char *argv[])

{

int a,b;

scanf(“%d*%d=”,&a,&b);

printf(“%d\n”,a*b);

return 0;

}

В таблице 2.3 приведены основные функции для математических вычислений из библиотеки math.h.

 


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

1 | 2 | <== 3 ==> |


lektsii.net - Лекции.Нет - 2014-2021 год. (0.029 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав