§5. Условия. Логические выражения. Оператор выбора Case.
Очень часто в программах необходимо принимать решения в зависимости от условий, заранее неизвестных. В Pascal для принятия решений в зависимости от условий существует конструкция, которая в общем виде выглядит следующим образом:
If условие then …………… else …………;
Если перевести на русский будет так:
Если условие тогда …………… в противном случае …………;
После слова then находится то, что необходимо выполнить в случае, если условие верное. После слова else находится то, что необходимо выполнить, если условие не выполняется.
if x> 0 then x:=x+ 1 else x:=x- 1 ;
В данном примере если х больше нуля, то переменная х будет увеличена на единицу, если меньше нуля или равна нулю, то будет уменьшена на единицу.
Может получиться так, что в одну строчку данная конструкция не войдёт. Тогда можно её расписать в несколько строчек:
writeln( ‘x — число положительное.’ )
writeln( ‘x — число отрицательное или равно нулю.’ );
Урок. «Условный оператор на языке Паскаль Пример программы»
Небольшое отступление: обратите внимание на то, какие отступы сделаны слева в каждой строке. Эти отступы не принципиальны и для компилятора не имеют никакого значения. Однако в таком виде код становиться более читаемым. Установка различных отступов, которые делают код более читаемым называется хорошим тоном программирования. Сейчас заострять внимание на этой теме не буду, тем не менее сами обращайте внимание на отступы в примерах и старайтесь в своих программах оформлять текст кода подобным образом.
Двигаемся дальше. Если после слов then или else необходимо выполнить несколько операторов, то их нужно заключить словами begin и end:
writeln( ‘x — число положительное.’ )
writeln( ‘x — число отрицательное или равно нулю.’ );
Обратите внимание, что в первом случае перед соловом end точка с запятой не стоит, а стоит только после слова end. Во втором случае точка с запятой стоит и перед словом end и после. В обоих случаях всё верно. Дело в том, что точка с запятой отделяет одну операцию от другой. Слово end не является операцией, поэтому не имеет значения, где вы поставите точку до или после, или в обоих местах.
На практике рекомендую не жалеть точек с запятой лучше лишний раз поставить, чем потом искать ошибку, когда программа в несколько сотен строк не будет компилироваться.
Данную конструкцию можно использовать и без слова else:
if x> 0 then x:=x+ 1 ;
В данном случае если условие верно, то выражение будет выполнено, если нет, то не будет.
Далее более подробно поговорим об условии. Слово «условие» было использовано для более простого понимания. На самом деле условие – это логическое выражение. Ещё такие выражения называются булевыми.
Название “булевые” произошло от имени математика Джорджа Буля, разработавшего в XIX веке булевую логику и алгебру логики.
Результатом логического выражения может быть только два значения – верно (true, правда) или неверно (false, ложь). Результат логического выражения можно присвоить логической переменной. В Pascal логическая переменная имеет тип Boolean. Пример:
Паскаль с Нуля. Циклы с условиями. Урок 6
Логическое выражение сравнивает какие-либо значения между собой. Для сравнения существуют следующие знаки:
>= – больше или равно;
Далее приведена таблица использования каждого символа и результаты выражений:
Слева или справа от знака может находиться переменная, константа, арифметическое выражение или строка. Например:
Обратите внимание, что арифметические выражения слева и справа обрамлены круглыми скобками. Это потому, что данные символы имеют приоритет при вычислении. Т.е. если бы они не использовались:
То во время работы программы вначале начнут сравниваться 3 и х. А затем программа попытается результат этого сравнения помножить на 4. Так как нельзя логическое значение помножать или складывать, то возникнет ошибка. Можете попробовать и убедиться сами.
Двигаемся дальше. В логических выражениях кроме символов используются логические операции not (не), or (или), and (и).
Что бы было понятнее, как работают логические операции, можно подставлять вместо английского слова русское, которое приведено в скобках.
Слева и справа от логических операций And и Or должны находиться переменные типа Boolean или логические выражения. Логические выражения необходимо заключать в круглые скобки, т.к. логическая операция обладает большим приоритетом перед знаками. Если мы напишем выражение без скобок, то вначале будет выполняться логическая операция и компилятор может выдать ошибку т.к. слева и справа от неё могут оказаться переменные не логического типа. Например:
Здесь вначале будет вычисляться операция And, а слева и справа от неё находятся константа 0 и переменная у, они не логического типа. Соответственно при компиляции появится ошибка, и программа не будет скомпилирована. Необходимо написать следующим образом:
То же самое относится и к операции Not. Единственная разница – то, что логическое выражение или переменная находятся с права от этой операции.
Логическая операция And выдаёт результат True если слева и справа от него значения равны True в остальных случаях False:
True And True = True (правда и правда = правда);
False And False = False (ложь и ложь = ложь);
True And False = False (правда и ложь = ложь).
Например: нам необходимо переменную x увеличить на единицу, но только в случае, если x больше нуля и y не равно нулю. Не используя логические операции, это можно реализовать следующим образом:
If y<> 0 then x:=x+ 1 ;
В данном коде вначале проверяем x больше нуля или нет. Если x больше нуля, тогда проверяем неравно у нулю или нет. Если у неравно нулю, тогда х увеличиваем на единицу. В остальных случаях увеличение х на единицу не произойдёт.
Используя логическую операцию And (и), это же самое реализуется следующим образом:
If (x> 0) And (y<> 0) then x:=x+ 1 ;
Как видно мы уложились в одну строчку. То есть логические операции уменьшают количество кода и тем самым улучшают читаемость программы.
Логическая операция Or (или) выдаёт True если хотя бы одно значение (с лева или с права) равно True.
True Or True = True (правда или правда = правда);
False Or False = False (ложь или ложь = ложь);
True Or False = True (правда или ложь = правда).
Например: нам необходимо переменную x увеличить на единицу в случаях, если x больше нуля или y не равно нулю. Т.е. нам без разницы, соблюдаются эти два условия одновременно или нет. Мы увеличим х на единицу в любом из двух случаев, если х будет больше нуля или если у будет не равно нулю. В коде это будет выглядеть следующим образом:
If ( x> 0) Or ( y<> 0) then x:=x+ 1 ;
Логическая операция отрицания Not (не) ставиться перед логическим значением или выражением и меняет его значение на противоположное (инвертирует):
Not True = False (не правда = ложь);
Not False = True (не ложь = правда).
На первый взгляд кажется, что такую операцию нигде не применишь. На самом деле, на практике она часто используется. Например, некая функция возвращает логическое значение, и нам необходимо выполнить какое-либо действие, если это логическое значение будет равно False. Например, при отпускании кнопки нам необходимо выключить лампочку. Тогда без помощи операции Not код будет выглядеть следующим образом:
Здесь функция Knopka проверяет нажата ли кнопка и возвращает True если кнопка нажата и False если кнопка не нажата. Вместо точек мы должны вставить какой-то пустой оператор, который ничего не будет выполнять. Процедура Vikl производит выключение лампочки. При использовании операции Not, код будет выглядеть несколько проще:
If Not Knopka then Vikl;
Как видно код уместился в одну строчку. Если кнопка не нажата, то функция Knopka выдаст значение False. С помощью операции Not мы меняем это значение на противоположное (инвертируем), и получаем значение True. И тогда запустится процедура Vikl.
При составлении логических выражений будьте внимательны. Всегда проверяйте результат выражения, с помощью подстановки в него различных значений. Желательно проверить все возможные варианты.
Так же стоит отметить, в логических выражениях можно использовать круглые скобки, для выделения очерёдности вычислений.
Далее приведу пример использования программы с условием. Задача: необходимо определить принадлежит ли точка А с координатами (5;15) области, которая описывается следующими условиями:

,

.
Что бы было понятно, откуда взялись эти условия, приведу рисунок, на котором заштрихованная область как раз и описывается данными условиями:

Так же обратите внимание, что отрезки, начерченные толстой линией, принадлежат области, тонкой – не пренадлежат.
Источник: www.dvkuklin.ru
Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример. — презентация
Презентация на тему: » Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример.» — Транскрипт:
2 Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример циклической программы Алгоритм Евклида на Паскале
4 Пример линейной программы Даны a,b,c-стороны треугольника. Вычислить площадь треугольника по формуле Герона: S= p- полупериметр треугольника P=(a+b+c)/2 начало p:=(a+b+c)/2 S:= конец Алгоритмический язык алг площадь треугольника вещ a,b,c,p,S нач ввод a,b,c P:=(a+b+c) S:= вывод S кон Программа на Паскале Program Geron; var a, b, c, p, S : real; begin readln (a, b, c) ; p:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(h-c)); Writeln (S=,S) end вывод S ввод a,b,c В языке Паскаль нет различия между строчными и прописными буквами. Точка с запятой (;) –разделитель операторов, запятая (,) – разделитель элементов в списках.
5 Ветвление на Паскаль Простое условие Составное условие Операции отношения > Больше = Больше или равно Меньше
6 Пример программы с ветвлением алг БИТ 1 вещ A,B,C,D нач ввод A,B,C если A>B то D:=A иначе D:=B кв если C>D то D:=С кв вывод D кон Program BIT1; var A,B,C,D:real; begin readln (A,B,C); if A>B then D:=A else D:=B; if C>D then D:=C; writeln (D) end. Последовательные ветвления Вложенные ветвления алг БИТ 2 вещ A,B,C,D нач ввод A,B,C если A>B то если A>B то D:=A иначе D:=C кв иначе если B>C то D:=B иначе D:=C кв кв вывод кон Program BIT 2; var A,B,C,D:real; begin reabln (A,B,C); if A>B then if A>C then D:=A else D:=C else if B>C then D:=B; else D:=C; writeln (D) end. Пример: Найти наибольшее значение среди трёх величин:A,B,C
7 Циклические программы Оператор цикла с предусловием While do Пока условие истинно, выполняется оператор (тело цикла) Оператор цикла с постусловием Repeat until Повторяется выполнение тела цикла до того, как условие станет истинным Оператор цикла с параметром По возрастанию параметра цикла for := to do По убыванию параметра цикла for := downto do — имя параметра цикла (счетчик цикла) — определяет начальное значение параметра цикла — определяет конечное значение параметра цикла
8 Пример циклической программы Пример: «N факториал» F=n!= 1*2*. *n While. do. Program n!1; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; i:=1; i:=1; while in; writeln (F) writeln (F) end. Использование вещественного типа для F увеличивает диапазон допустимых значений для n For. to. do. Program n!3; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; for i:=1 to n do for i:=1 to n do F:=F*i; F:=F*i; writeln (F) writeln (F) end. For. downto. do.
Program n!4; var i,n: integer; F:real; F:real;begin readln (n); readln (n); F:=1; F:=1; for i:=n downto1do for i:=n downto1do F:=F*i; F:=F*i; writeln (F) writeln (F) end.
9 Алгоритм Евклида Определение наибольшего общего делителя (НОД) двух натуральных чисел начало Ввод M,N M=NM=N M>N M:=M-NN:=N-M вывод M конец алг Евклида цел M,N нач вывод введите M и N ввод M,N пока M=N, повторять нц если M>N то M:=M-N иначе N:=N-M кв кц вывод НОД=, M кон Program Evklid; var M, N: integer; begin writeln (введите M и N); readln (M, N); while MN do begin if M>N then M:=M-N else N:=N-M end; write (НОД=,M) end.
Источник: www.myshared.ru
Оператор выбора, условный оператор в Паскаль
Июль 24th, 2013
admin
Условный оператор
Если необходимо некоторые команды выполнять при определенных условиях, то условный оператор используется
If then
Пример: Записать программу алгоритма двух чисел.
WriteLn (‘введите два числа:’);
If b=0 Then WriteLn(‘делить на ноль нельзя’);
WriteLn(‘частное равно: ’,x:0:3);
Если в одной из ветвей алгоритма число блоков несколько, тогда в программе соответствующие команды заключаются между Begin и End; .
Оператор выбора
Если необходимо при различных значениях одной и той же переменной выполнять различные действия, в этом случае применяют оператор выбора
Case of
Пример: написать программу, которая запрашивает количество стульев в виде числа и выводит количество в словесной форме.
WriteLn(‘введите количество стульев’);
Else WriteLn(‘таких стульев не бывает’);
. условный оператор блок схема пример Оператор выбора в Паскале условный оператор и оператор выбора в паскале case of pascal блок-схема оператор выбор паскаль
. оператор выбора условный оператор выбора Программа Условный оператор Банкомат примеры на условный оператор оператор case в паскале несколько действий

Опубликовано в рубрике Pascal
Источник: delphi-box.ru