Мегаобучалка Главная | О нас | Обратная связь


Объявление функции (прототип)



2019-12-29 189 Обсуждений (0)
Объявление функции (прототип) 0.00 из 5.00 0 оценок




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

[спецификатор - класса-памяти][спецификатор- типа]

описатель ( [список- формальных -параметров])

[, список - описателей]',

В отличие от формата определения функции в формате прототипа за заголовком функции следует точка с запятой (т.е. прототип функции не имеет тела), и заголовок функции может заканчиваться списком - описателей.

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

Прототип - это явное объявление функции, которое предшествует определению функцию. Тип возврата, заданный в прототипе, должен согласовываться с типом возврата, заданным в определении.

Вызов функций.

Вызов функции имеет следующий формат:

выражение ( [список - выражении]);

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

Фактический аргумент может быть любой величиной основного типа, структурой, перечислением, смесью или указателем.

Выполнение вызова функции происходит следующим образом:

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

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

-2. Происходит замена формальных параметров на фактические. Первое выражение в списке всегда соответствует первому формальному параметру, второе - второму и т.д. .

-3. Управление передается на первый оператор функции.

-4. Выполнение оператора  return в ' теле функции возвращает управление и, возможно, значение в вызывающую функцию. Если оператор return не задан, то управление возвращается после выполнения последнего оператора тела функции. При этом возвращаемое значение не определено.

Рассмотрим программу, которая,печатает квадрат числа от 2 до 25 используя функцию.

#include<stdio.h>

#include<inath.h>

square ( int i ); // Идет объявление функции

Main()

{ clrscrf);

 inti=2;

while(i++<25) // Вызывается функция

printf(« Квадрат(%d) числа =%d\n», i, square(i));

 getch ();

} .

// Идет определение функции

Square ( int x )

// Пишется тело функции

{ return ( x * x ); }

Варианты задач

1: Составить программу для определения среднего балла группы по результатам сессии. Оценки групп сведены в матрицы А(25,5), В(23,5), С(22,5), D(24,5). Средний балл вычислять в функции.

 

2: Составить программу для нахождения наименьших элементов матриц А(10,12), В(15,10) и номеров строк и столбцов, в которых они находятся, используя функцию.

 

3: Составить программу для записи в массив Z положительных элементов массивов А(40), В(50),С(30) подряд, используя функцию.

 

4: Составить программу для вычисления значения функции

Z=(xi + yi)/(x: + у2), где Xi.xi - корни уравнения ax2+bx+c=0; yi и у-> -корни уравнения dy2+ey+f=0. Если корни хотя бы одного уравнения комплексные, то вычисляется функция. Zk - (xi + V2j/(yi + уз), Для вычисления корней использовать функцию.

 

5: Составить программу для нахождения средних значений результатов экспериментов Х(5,6), Y(7,4), Z(5,7). Результаты записать в массив Р(3). Для нахождения максимального элемента матрицы использовать функцию.

 

6: Составить программу для нахождения элементов целочисленных массивов А(40), В(30), С(60), кратных 3, используя функцию.

 

7: Составить программу для нахождения сумм элементов каждой строки матриц А(15,20) и В(17,10), используя функцию.

8: Составить программу для вычисления и запоминания в массиве D(3) наибольших элементов массивов A(n), B(m), C(k), используя функцию. Значения n, m, k не превосходят 30.

 

9: Составить программу с использованием функции для вычисления суммы и количества положительных элементов массивов А(7())„ В(80), С(65).

 

10: Чего больше: всех возможных трехзначных чисел, записываемых цифрами 1, 2, 3, 4, 5; всех двухзначных чисел, записываемых цифрами 2, 4, 6, 8; всех четырехзначных чисел, записываемых цифрами i. 3, 7, 8. 9 '?. Подсчет количества соответствующих чисел оформить в виде функции.

 

11: В порт в среднем приходит 3 корабля в день. Какова вероятность того, что в порт в день придет 2 корабля; 4 корабля?. Вычисление вероятности оформить в виде функции.

 

12: Два спортсмена одновременно начинают движение из одной точки. Первый спортсмен начинает движение со скоростью 10 км/час и равномерно (линейно) за каждый следующий час увеличивает скорость на 1 км. Второй начинает движение со скоростью 9 км/час и равномерно за каждый следующий час увеличивает скорость на 1,6 км/час. Выяснить, какой спортсмен преодолеет больший путь через I час; через 4 час. Вычисление путей оформить с помощью функций.

 

13: В задаче 12 определить, когда второй спортсмен догонит первого. Решение квадратного уравнения оформить в виде функции.

 

14: Футболист ударом ноги посылает мяч вертикально вверх с высоты 1 м с начальной скоростью 20 м/с. На какой высоте мяч будет через 1с; Зс; 4с? Вычисление высоты оформить с помощью функции.

 

15: В задаче 14 определить, когда мяч будет на высоте 5м; 10м. Решение квадратного уравнения оформить в виде функции.

 



2019-12-29 189 Обсуждений (0)
Объявление функции (прототип) 0.00 из 5.00 0 оценок









Обсуждение в статье: Объявление функции (прототип)

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (189)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)