русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2015-01-16; просмотров: 511; Нарушение авторских прав


В языке "C" функции эквивалентны подпрограммам или функ-циям в фортране или процедурам в PL/1, паскале и т.д. Функ-ции дают удобный способ заключения некоторой части вычисле-ний в черный ящик, который в дальнейшем можно использовать,не интересуясь его внутренним содержанием. Использованиефункций является фактически единственным способом справитьсяс потенциальной сложностью больших программ. Если функцииорганизованы должным образом, то можно игнорировать то, какделается работа; достаточно знание того, что делается. Язык"C" разработан таким образом, чтобы сделать использованиефункций легким, удобным и эффективным. Вам будут часто вст-речаться функции длиной всего в несколько строчек, вызывае-мые только один раз, и они используются только потому, чтоэто проясняет некоторую часть программы. До сих пор мы использовали только предоставленные намфункции типа PRINTF, GETCHAR и PUTCHAR; теперь пора написатьнесколько наших собственных. так как в "C" нет операции воз-ведения в степень, подобной операции ** в фортране или PL/1,давайте проиллюстрируем механику определения функции на при-мере функции POWER(M,N), возводящей целое м в целую положи-тельную степень N. Так значение POWER(2,5) равно 32. Конеч-но, эта функция не выполняет всей работы операции **, пос-кольку она действует только с положительными степенями не-больших чисел, но лучше не создавать дополнительных затруд-нений, смешивая несколько различных вопросов. Ниже приводится функция POWER и использующая ее основнаяпрограмма, так что вы можете видеть целиком всю структуру. MAIN() /* TEST POWER FUNCTION */ { INT I; FOR(I = 0; I < 10; ++I) PRINTF("%D %D %D\N",I,POWER(2,I),POWER(-3,I)); } POWER(X,N) /* RAISE X N-TH POWER; N > 0 */ INT X,N; { INT I, P; P = 1; FOR (I =1; I <= N; ++I) P = P * X; RETURN (P); } Все функции имеют одинаковый вид: имя (список аргументов, если они имеются) описание аргументов, если они имеются { описания операторы } Эти функции могут быть записаны в любом порядке и нахо-диться в одном или двух исходных файлах. Конечно, если ис-ходная программа размещается в двух файлах, вам придетсядать больше указаний при компиляции и загрузке, чем если быона находилась в одном, но это дело операционной системы, ане атрибут языка. В данный момент, для того чтобы все полу-ченные сведения о прогоне "C"- программ, не изменились вдальнейшем, мы будем предполагать, что обе функции находятсяв одном и том же файле. Функция POWER вызывается дважды в строке PRINTF("%D %D %D\N",I,POWER(2,I),POWER(-3,I)); при каждом обращении функция POWER, получив два аргумента,вазвращает целое значение, которое печатается в заданномформате. В выражениях POWER(2,I) является точно таким же це-лым, как 2 и I. /Не все функции выдают целое значение; мызаймемся этим вопросом в главе 4/. Аргументы функции POWER должны быть описаны соответству-ющим образом, так как их типы известны. Это сделано в строке INT X,N; которая следует за именем функции. Описания аргументов помещаются между списком аргументови открывающейся левой фигурной скобкой; каждое описание за-канчивается точкой с запятой. Имена, использованные для ар-гументов функции POWER, являются чисто локальными и недос-тупны никаким другим функциям: другие процедуры могут ис-пользовать те же самые имена без возникновения конфликта.Это верно и для переменных I и P; I в функции POWER никак несвязано с I в функции MAIN. Значение, вычисленное функцией POWER, передаются в MAINс помощью оператора RETURN, точно такого же, как в PL/1.внутри круглых скобок можно написать любое выражение. Функ-ция не обязана возвращать какое-либо значение; операторRETURN, не содержащий никакого выражения, приводит к такойже передаче управления, как "сваливание на конец" функциипри достижении конечной правой фигурной скобки, но при этомв вызывающую функцию не возвращается никакого полезного зна-чения. Упражнение 1-13 ---------------- Апишите программу преобразования прописных букв из айлаввода в строчные, используя при этом функцию OWER(C), кото-рая возвращает значение 'C', если C'- не буква, и значениесоответствующей строчной уквы, если 'C'-буква.


<== предыдущая лекция | следующая лекция ==>
Массивы | Аргументы - вызов по значению


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.306 сек.