Язык программирования C. Структура простейшей программы на языке C, страница 4

-  анализируемое выражение должно быть приведено к целому виду;

-  нельзя использовать вещественные типы данных, указатели, строки и структуры данных;

-  метки case должны содержать константы; более того, в качестве ключевого значения case может быть только одно значение.

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

switch (c = getch())

{

case ‘Y’:

case ‘A’:

fnExtractValue();

break;

case ‘N’:

default:

break;

}

К управляющим операторам также относятся оператор прерывания выполнения блока break, оператор перехода к концу блока continue и конечно, оператор безусловного перехода goto.

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

1.4.  Циклы

Язык  C поддерживает три типа циклов:

for (exp1; exp2; exp3)

{

compound_operator;

}

exp1 – выражение инициализации цикла

exp2 – выражение условия завершения цикла

exp3 – выражение изменения переменной условия цикла

Цикл с предусловием

while (exp)

{

compound_operator;

}

Цикл с постусловием

do

{

compound_operator

} while (exp);

Цикл for присутствует в большинстве языков программирования, циклы while были предложены в ALGOL-60. Этот язык был рожден на конференции наиболее уважаемых авторитетов в области компьютеров в Федеральном техническом университете в Цюрихе 27 мая 1958 года. Там присутствовало 8 челове – четверо представляли Европу и четверо – США. Среди них был создатель Фортрана Джон Бекус. Так вот в одной из версий ALGOL’а было аж 4 типа циклов.

Цикл типа whikle  является наиболее общим и может использоваться вместо двух других  практически во всех случаях. Можно сказать, что по настоящему для программирования достаточно только цикла типа while, а другие типы служат только для удобства написания программ. Например, следующий пример эквивалентен циклу

for (exp1; exp2;exp3)

exp1;

while (exp2)

{

compound_operator;

exp3;

}

1.5.  Подпрограммы

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

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

Функции – это подпрограммы, которые инкапсулируют (то есть скрывают внутри себя) все данные для работы. и только результат работы функции возвращается в точку вызова.

Язык С является функционально ориентированным языком. Как я уже говорил, в программе на С нет ничего, кроме функций и только функций.

Конструкция функции:

тип_возвращаемого_значения имя_функции (список_аргументов)

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

Хороший стиль программирования рекомендует, что бы функция возвращала значение, которое информирует о результате работы функции. Например, это может быть некоторый статус:

SUCCESS

ERROR

В этом случае результат работы функции должен быть возвращен через один или несколько аргументов функции.