Оператор множественного выбора switch 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оператор множественного выбора switch



 

Если вариантов для сравнения много, вместо многочисленных конструкций if else if рациональнее использовать оператор switch.

switch(переменная или выражение)

{ case значение1: оператор1;

break;

case значение2: оператор2;

break;

--------------------------

default: оператор для случая, когда не сработал ни один из наборов значений

}

Если значения переменной или выражения равны значению1 выполняется оператор1, значению2 – оператор2 и т.д. Если не входит не в один из наборов выполняется оператор после default. Операторов при значении может быть и несколько. При этом их не надо оформлять как составной. Концом этих выполняемых операторов является оператор break. В качестве значения переменной или выражения может выступать значение любого перечислимого типа. При задании наборов значений с одинаковой реакцией программы их можно указывать с помощью нескольких case без операторов:

case ‘A’: case ‘B’: case ‘C’: оператор обработки в случае ‘A’, или ‘B’, или ‘C’.

Начиная с ключевого слова default, часть оператора не обязательна и может отсутствовать.

Оператор цикла с предусловием while

while (условие повторения цикла) оператор;

Условие проверяется всякий раз перед выполнением оператора. Оператор выполняется если условие истинно после чего вновь возвращается на проверку условия. Если условие не выполняется переходим к оператору стоящему за оператором цикла. Оператор в цикле может быть составным и даже содержать другие вложенные циклы.

 

Оператор цикла с постусловием do while

do

оператор;

while(условие повторения цикла);

В отличие от оператора while сначала выполняется оператор потом делается проверка на повторения цикла. Если условие истинно то цикл повторяется. Иначе- выход из цикла.

Счетный цикл for

for(имя переменной цикла:=нач.знач., другие операции до вхождения в цикл;

условие повторения цикла;

действия в конце каждого повторения цикла)

оператор;

Например:

for(I=1;I<=10;I++) A=A+I;

Оператор представляющий тело цикла, может быть и составным.

 

Инструкции безусловного перехода goto

goto метка;

Метка – это идентификатор, помечающая оператор который должен быть выполнен после оператора, предшествующего goto.

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

метка: оператор;

Запрещены переходы по метке между подпрограммами.

Подпрограммы(функции)

Структурное программирование предполагает такой стиль создания программ, при котором её легче написать, тестировать, понять и изменить. Алгоритм программы рассматривается, как последовательность отдельных блоков или модулей, каждый из которых решает свою конкретную задачу. Для каждого модуля определяется набор действий и переменных, необходимых для решения задачи модуля. Модуль может представлять собой набор других подмодулей решающих более частные задачи. Следует избегать использования в модуле переменных и подмодулей не принимающих участие в решении задачи данного блока. Такой подход хорошо сочетается с методом декомпозиции, который широко используется для решения разнообразных задач проектирования.

Суть метода. Решение задачи представляется как выполнение ряда шагов. В начале не ясно какие шаги и в какой последовательности предпринимать. Тогда задачу разбивают на ряд более мелких подзадач, выполнение которых приводит к решению основной, более общей задачи. В свою очередь подзадачи,если решения их не очевидно, могут быть разбиты на подзадачи более низкого уровня. Это разбиение продолжается до тех пор, пока последовательность шагов, приводящих к решению очередной подзадачи не становится очевидными.

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

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

В языке С все подпрограммы - функции. По традиции определение функций(задание их алгоритмов с помощью операторов языка) помещается после функции main. Перед функцией main для проверки правильности использования помещают заголовки функций(опережающие описания). Структура заголовка:

Тип возвращаемого значения имя функции (тип параметра1 имя1, тип параметра2 имя2, и т. д.);

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

После объявления функции следует тело функции. Структура тела ничем не отличается от структуры функции main.

Константы, переменные объявленные внутри подпрограммы называются локальными и могут быть использованы только внутри этой подпрограммы. Описанные параметры в объявлении подпрограммы рассматриваются как локальные переменные которые при вызове подпрограммы должны быть проинициализированы подставляемыми значениями. Но для того, чтобы задать обработку, параметрам дают формальные имена при описании подпрограмм. Поэтому их иногда называют формальными параметрами. При вызове же, на их место подставляются конкретные значения или переменные (реальные параметры). Заданные в заголовке формальные параметры передаются по значению. Для изменения переменных основной программы, они передаются в подпрограмму по ссылке или через указатель. Наиболее рациональным способом является работа через указатели. Этот способ также используется для передаче в подпрограмму больших параметров – массивов и структур. Для вызова, использования, подпрограммы указывается ее имя и подставляются фактические, реальные параметры на место формальных с соблюдением последовательности и типов, как это указано при объявлении функции.

Пример:

char N;/*глобальная переменная*/

float count(int I, float *a);/*опережающее описание функции count: i – параметр для передачи в функцию значения, a – указатель на float(для возврата вычисленного значения), еще одно значение типа float возвращается как возвращаемое функцией.*/

………………………………………

void main()/* Основная программа*/

{ float S,f,hh;/* локальные переменные главного блока программы*/

S=0; f=10; N=5;/*присвоение начальных значений*/}

f=count(N,&S);/*первый вызов функции n –вместо i,адрес S(указатель на S) – вместо a, f –запоминает значение, возвращаемое функцией*/

/*Результат: N=5, S=28, f=5040. Видим, что N –не изменилось, S и f –изменились*/

………………………………………

f=count(7, &S);/*Повторные вызовы функции в ходе работы программы. На место параметра, передаваемого по значению можно подставить и константу*/

………………………………………

hh=count(N, &S);

}

float count(int I, float *a);/* определение функции*/

{

char K; /*локальная переменная*/

float b;

i+=2;{изменяем i}

b=1;

for(K=1; K<= i;K++)

{

* a+=K;/*изменяем значение, хранящееся по указателю a*/

b*=K;/* изменяем b*/

}

return b;/* возвращаем значение функции*/

}/*конец функции*/

Оператор return позволяют завершить подпрограмму в любом месте не доходя до конца.


4 Лабораторная работа №1
Последовательностные алгоритмические структуры

Задание. Вычислить S по заданному выражению. Найденные значения вывести на экран.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 188; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.183.150 (0.029 с.)