Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 346

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

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

Пусть требуется вычислить следующее выражение:

Видно, что как в числителе, так и в знаменателе дроби используется сумми­рование, отличающиеся только видом общего члена. Если описана функция

то аналогия между выражениями числителя и знаменателя подчеркивается еще нагляднее:

Уместно потребовать, чтобы язык позволял описать функцию суммирова­ния, которая умеет "работать" с различными общими членами. В С/С++ это достигается с помощью использования типа указатель на функцию с одним параметром в качестве типа формального параметра:

Нужно обратить внимание на то, как вызывается функцияпараметр: (*f)(i). При вызове sumвторым фактическим параметром должен быть ад­рес подходящей функции, и тогда этот адрес станет значением формального параметра f. В свою очередь, значение этого параметр используется как ад­рес некоторой функции (косвенно указывает на нее), которая вызывается со своим параметром. При этом проверятся и, если нужно, преобразуются типы вызываемой функциипараметра и ее параметра. В результате оператор

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама