Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
445.doc
Скачиваний:
24
Добавлен:
30.04.2022
Размер:
5.75 Mб
Скачать

Структура программ

В каждой программе C# вначале должен быть определен класс со статическим методом Main(). Этот метод используется как точка входа для приложения. Внутри метода Main() обычно производится создание объектов и различные операции с ними – то, что составляет жизнь любого приложения. Каждому встроенному типу данных соответствует свой тип в пространстве имен System. Каждый встроенный тип данных наследует большое количество методов, которые во многом упрощают работу с данными этого типа.

double min(double A[], int nn)

//описание функции { double А_m in; int i; ... return (А_min); } double B[10]=... double C[20]; void main()

//определение статического метода Main() { int i,n1; double dd ... ,min(B,10)... }

Основная структурная единица программы - функция. Она выполняет некоторое законченное действие и имеет "стандартный интерфейс" с набором параметров, через который она вызывается из других функций. Программа представляет собой набор функций.

"Интерфейс" функции описан в ее заголовке функции. В нем имеется имя функции, по которому она известна далее в программе, формальные (входные) параметры и результат. Имя функции - идентификатор. Результат функции - это выходная переменная, которую формирует функция и значение которой используется затем в том месте программы, где она вызывается. Результат, как любая другая переменная, должен быть определенного типа. В данном случае -вещественное число -минимальный элемент массива. Сразу огорчим: массив не может быть результатом функции, только простые переменные. После имени функции в круглых скобках идет список формальных параметров, разделенных запятыми. Формальные параметры -это тоже переменные особого рода, что видно из заголовка -их синтаксис в перечислении напоминает определение обычных переменных. Как и все другие переменные они имеют тип и могут быть обычными переменными и массивами. Формальные параметры содержат входные данные функции, передаваемые при ее вызове и могут использоваться только самой функцией в процессе ее работы. Вслед за заголовком идет тело функции -нечто, заключенное в фигурные скобки. Тело функции -это и есть выполняемое функцией законченное действие (алгоритм), представленное в виде операторов и операций над переменными. После открывающейся скобки в теле функции присутствуют определения локальных переменных. Это переменные, которые "известны" только данной функции и являются ее собственностью. Более того, они создаются в памяти при входе в тело функции и исчезают при выходе. Локальными переменными пользуется функция при необходимости иметь собственные данные.

Вне тела функции можно определить глобальные переменные. Этими переменными могут пользоваться все функции, следующие за ними по тексту. Глобальные переменные представляют собой общие данные программы. Сразу после определения функции и далее по тексту до конца программы ее можно вызывать из любой другой функции. Вызов функции -это выполнение ее тела с заданными значениями формальных параметров. Значения формальных параметров, с которыми будет выполняться тело функции при вызове, определяются списком фактических параметров, которые следуют в вызове функции вслед за ее именем, разделенные запятыми и заключенные в скобки. Перед вызовом функции фактические параметры, согласно списка, копируются в соответствующие формальные параметры. В данной точке программы это соответствует действию nn=10, где nn -формальный параметр, 10 -фактический параметр - целая константа. Таким образом, функция получает на вход данные через фактические параметры, которые она "видит" как соответствующие им формальные. Если формальный параметр является массивом, то действует исключение из общего правила. Функция не создает собственный массив (в данном случае А[]), а "отображает" пока неизвестным нам образом свой массив на тот, который является фактическим параметром (в данном случае B[]). То есть вместо массива A[] транслятор создает указатель на произвольный массив, который будет "подсунут" функции при ее вызове. Поскольку массив A[] "ненастоящий", размерность его может быть переменной и ее можно не указывать. На месте фактического параметра -массива в вызове функции указывается только его имя (без скобок). После того, как функция вызвана, она возвращает значение переменной-результата, которое можно использовать в дальнейших вычислениях в той части программы, где находится вызов. Его можно сохранить в другой переменной, использовать в арифметических, логических и других выражениях. При этом не следует забывать, что результат имеет свой тип, который оказывает влияние на характер последующих над ним операций. Функции, которые не возвращают никакого результата, тем не менее должны подчиняться общим правилам их определения. Для них введен пустой тип void, который обозначает, что переменная-результат является чисто фиктивной. Поэтому результат такой функции нельзя использовать в выражении, ее можно только вызывать. В программе должна быть всегда функция main, которая вызывается первой после загрузки программы в память в начале ее работы. Для исключения ошибок, причины которых мы пока не знаем, эту функцию следует пока размещать последней.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]