Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Понятие разветвляющихся алгоритмов.Содержание книги
Поиск на нашем сайте
Вычислительные процессы, в которых в зависимости от тех или иных условий должны выполняться различные ветви алгоритма вычислений, называются разветвляющиеся. Для построения алгоритмов подобных процессов используются команды, позволяющие управлять ходом выполнения алгоритма. Пример 1: Вычислить значение функции, график которой имеет вид:
Условный оператор. Форматы оператора. Условный оператор позволяет выбрать и выполнить один из двух входящих в него операторов в зависимости от значения некоторого выражения. Форматы оператора: I f(выражение) оператор_1; [ else оператор_2;]
Пример 2. Оператор, вычисляющий у=|х|. if (X>=0) y=x; else y=-x; Сокращённый условный оператор. Условный оператор может не иметь часть else, тогда он называется сокращённым условным оператором.
i f (выражение) оператор_1;
Вложенная конструкция if. В качестве внутренних операторов оператор i f может использовать любой оператор, в том числе и условный. То есть оператор i f может иметь вложенную конструкцию, в этом случае часть else связывается с ближайшим предыдущим i f в том же блоке, не имеющим части else. Примеры 3. 1)if(n>0) // 1 оператор if if(a>b) z=a; // 2 оператор if else z=b; // часть else относится к 2-ому оператору if 2)if (n>0) // 1 оператор if { if (a>b) z=a; // 2 оператор if } else z=b; // часть else относится к 1-ому оператору if
Если необходимо выполнить одновременно несколько операторов, то используется составной оператор или блок, представляющий собой группу операторов, заключённую в фигурные скобки { }. Многоуровневые вложения. Пример 4. Если х является символом a, то y=1. Если х является символом b, то y=2, z=3. Если х является символом с, то y=4, в остальных случаях вывести на печать error.
i f(выражение_1) if (x==’ a’) оператор_1; y=1; else i f(выражение _2) else if (x==’b’) оператор _2; { y=2; z=3; } else i f(выражение _3) else if (x==’c’) оператор _3; y=4; else оператор _4; else printf(“error”); Примеры записи логических выражений, истинных при выполнении указанных условий.
Условия в графике Для определения, входит ли точка с заданными координатами в определенное множество на плоскости, как правило, нужно проверить одновременное выполнение нескольких неравенств. Вот пример: Попадает ли точка (x, y) в квадрат со стороной 10 и центром в начале координат? Квадрат – это пересечение двух множеств, заданных двойными неравенствами:
Операция & в математике называется конъюнкцией. Если мы запишем два условия, соединяя их операцией &, это означает, что полученное «большое» условие будет истинным только если оба «маленьких» условия будут истинны. Конъюнкция требует одновременного выполнения условий. В алгебре конъюнкции соответствует система утверждений (уравнений или неравенств). С помощью операции & описываются пересечения множеств, поскольку точка входит в пересечение множеств, если она входит в оба множества ОДНОВРЕМЕННО.
Попадает ли точка (x, y) в множество с двойной штриховкой? Это множество является пересечением круга с центром в точке (5, 0) и радиусом 5*Sqrt(2) и квадрата с центром в начале координат и стороной 5. Как проверить, попадает ли точка в круг? Круг задается неравенством (x – 5)2 + y2 <= 50
if ((x – 5)* (x – 5) + y*y) <= 50) printf (“Yes”) else printf (“No”);
Для описания пересечение двух этих множеств, используем конъюнкцию.
if ((-5 <= x) && (x <= 5) && (-5 <= y) && (y <= 5)) && ((x – 5)* (x – 5) + y*y) <= 50)) then printf (“Yes”) else printf (“No”);
Каждое условие заключается в скобки: (условие для квадрата) && (условие для круга). Как записать условие для этой фигуры? 3.2.7 Использование операции | (ИЛИ).
Наравне с логическим «и» или конъюнкцией существует логическое «или», дизъюнкция, операция |. В отличие от операции &, эта операция обозначает выполнение хотя бы одного из условий. Выражение «(x < 3) || (y > 5)» читается как «x больше трех или y больше пяти» и является истинным в случае выполнения хотя бы одного из условий. В алгебре дизъюнкции соответствует совокупность утверждений (уравнений или неравенств). Какой смысл имеет операция || применительно к множествам? Если мы запишем условие для пересечения круга и квадрата, заменив & между ними на |, мы получим следующее условие: точка принадлежит квадрату или кругу.
if( ((-5 <= x) && (x <= 5) && (-5 <= y) && (y <= 5)) || (Sqr(x – 5) + Sqr(y) <= 50)) printf (“Yes”); else printf (“No”);
Такое условие будет истинным, если точка принадлежит хотя бы одному из двух множеств, то есть мы описали объединение множеств, что логично, принимая во внимание то, как объединение описывается в алгебре (с помощью совокупности).
Оператор-переключатель. Если необходимо выбрать один из нескольких многочисленных вариантов, то вместо вложенной конструкции if более целесообразно применять оператор-переключатель switch. switch ( выражение ) { case< константа_1 >:< операторы_1 >; case< константа_2 >:< операторы_2 >; ... case< константа_n >:< операторы_n >; [ default: < операторы >;] } switch сравнивает значение выражения с константами во всех вариантах case и передаёт управление оператору, который соответствует значению выражения. Как выражение, так и метки (константы) должны иметь значения целого или символьного типа. Операторы, связанные с меткой default выполняются, если ни одна из констант в операторах case не равна значению выражения. Вариант default необязательно должен быть последним. Если ни одна из констант не соответствует значению выражения и вариант default отсутствует, то не выполняется никаких действий. Ключевое слово case вместе с константой служат просто метками и, если будут выполняться операторы для некоторого варианта case, то далее будут выполняться операторы всех последующих вариантов до тех пор, пока не встретится оператор break. Это позволяет связывать одну последовательность операторов с несколькими операторами case. break – оператор завершения, прекращает выполнение ближайшего внешнего оператора switch, while, do или for. Пример 5. Если х является символом a, тораспечатать case А. Если х является символом b или символом с, тораспечатать case B or C, в остальных распечатать Not case А, B or C. switch (x) { case’A’:printf(“case A\n”); case’B’: case’C’:printf(“case B or C\n”); default: printf(“Not case А, B or C \n”); } Пример 6. Составить программу, выполняющую функции простейшего арифмометра #include <stdio.h> #include <conio.h> void main() { int a,b,y,s; char Znak; clrscr(); printf(“\nВведите а, знак операции, b \n”); scanf (“%d %c %d”,&a,&Znak,&b); s=1; switch(Znak) { case’+’: y=a+b; break; case’-’: y=a-b; break; case’*’: y=a*b; break; case’/’: y=a/b; break; default: printf(“ Недопустимый знак операции \n”); s=0;break; } if (s==1) printf(“\n%d %c %d \n”, a,Znak, b); getch(); }
|
||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-09; просмотров: 119; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.13.192 (0.006 с.) |