Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Операторы управления вычислительным процессом




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

Операторы ветвления выбирают в программе из группы альтернатив возможное продолжение вычислительного процесса. Выбор выполняется исходя из заданного выражения. В Си наиболее часто используется оператор ветвления if … else.

Оператор if имеет следующую общую форму записи:

if (выражение)

оператор _1;

else

оператор_2;

где часть else может и отсутствовать. Сначала вычисляется «выражение» в скобках, и если оно истинно (отлично от нуля), то выполняется оператор_1. Если «выражение» ложно (равно нулю) и else-ветвь присутствует, то выполняется оператор_2, а оперетор_1 пропускается. Если на месте условно выполняемых операторов должна располагаться группа из нескольких операторов, то он заключаются в фигурные скобки. Часто «выражение» представляет собой условие, заданное с помощью операций отношения или логических.

Операторы цикла while и do…while. Эти операторы предназначены для организации циклических процессов при выполнении некоторых условий. Наиболее универсальным является оператор while (пока), который организует цикл с предусловием. Он имеет следующий формат:

while(условие)

оператор;

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

while(условие)

{

оператор_1;

оператор_2;

…………

оператор_n;

}

Для описания условия в операторе while обычно используются операции отношения и логические.

В языке Си имеется возможность организовывать цикл с постусловием посредством оператора do … while. В общем виде этот оператор можно записать следующим образом:

do

оператор;

while(условие);

Выполняется «оператор», а затем проверяется «условие». Если оно истинно, то снова выполняется «оператор» и т.д. Если «условие» становится ложным, циклический процесс заканчивается. Для описания «условия» обычно используются операции отношения и логические.

Анализ рассмотренных примеров показывает, что разница между циклами while и do … while в том, что входящий в их состав оператор выполняется обязательно хотя бы один раз в случае использования цикла do … while.

Оператор цикла for. Этот оператор используется, когда известно точное число повторов, которое нужно выполнить. В общем виде этот оператор можно записать следующим образом:

for(выражение_1; выражение_2; выражение_3) оператор;

В операторе for определяются сразу три составляющие:

· начальное значение параметра цикла («выражение_1»);

· условие окончания цикла («выражение_2»);

закон изменения параметра цикла («выражение_3»)


13. Функции в языке С18: определение функции, прототип, библиотечные функции.

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

возвращаемый_тип имя_функции(тип параметр_1, …,тип параметр_n)

{

описание данных;

оператор_1;

……

оператор_m;

return (выражение);

}

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

Поле «возвращаемый_тип» задает тип возвращаемого функцией значения (char, int, float и т.д.). Если функция не возвращает никакого значения, то в поле «возвращаемый_тип» записывается ключевое слово void (пустой). После имени функции в скобках помещаются аргументы (или по-другому параметры), передаваемые в функцию, они содержат любую комбинацию типов и имен. Это поле в определении функции называется списком формальных аргументов (или параметров). Поле «список аргументов» - не обязательная часть в определении функции. Если в функцию не передаются никакие аргументы. То это поле – пустое или содержит ключевое слово void.

Пример определения функции:

int mul(int a, int b)

{

int y;

y = a * b;

return y;

}

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

Прототип функции. Стандарт языка Си требует, чтобы функции были объявлены до первой ссылки на них. Это «предварительное» объявление называется прототипом функции. Оно извещает компилятор о типе возвращаемого значения, количестве и типе аргументов. Используя прототип, компилятор может выполнить тщательный контроль числа аргументов и соответствие их типов в вызовах функции и ее определении.

Сравнивая формат прототипа с определением функции, можно сделать вывод о том, что прототип точно повторяет первую строку определения функции. Пример прототипа для рассмотренной ранее функции: int mul(int a, int b); Следует отметить, что определение функции будет одновременно являться ее прототипом при условии, что функция определяется до того, как будет вызвана. В таком случае прототип можно не записывать в текст программы. Однако лучше всего соблюдать следующее правило: всегда записывать прототипы функций, используемых в программе, вне зависимости от того, где (по тексту) находятся определения функций.

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

Библиотечные функции. MPLAB C18 имеет обширные библиотеки, содержащие функции для решения часто встречающихся задач.Стандартные функции языка Си оформлены в соответствующие программные модули, включены в библиотеки и поставляются с системой программирования. Их прототипы даны в файлах типа *.h. Поэтому в начале программы с библиотечными функциями должны быть строки вида #include<включаемый файл вида *.h>.

 






Поделиться с друзьями:


Дата добавления: 2016-10-27; Мы поможем в написании ваших работ!; просмотров: 1074 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Наглость – это ругаться с преподавателем по поводу четверки, хотя перед экзаменом уверен, что не знаешь даже на два. © Неизвестно
==> читать все изречения...

2613 - | 2186 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.