Главное меню  

   

Авторизация  

   
   
Хостинг в Украине
   


61.2%Russian Federation Russian Federation
18.8%Ukraine Ukraine
3.1%Kazakhstan Kazakhstan
2.8%Romania Romania
2.7%United States United States
1.7%Belarus Belarus
1%Czech Republic Czech Republic
0.9%Republic Of Moldova Republic Of Moldova
0.9%United Kingdom United Kingdom
0.7%France France

Сегодня: 146
Вчера: 121
На этой неделе: 267
На прошлой неделе: 960
В этом месяце: 2499
В прошлом месяце: 2197
Всего: 7259


   

блог админа

Записи

  • Главная
    Главная Страница отображения всех блогов сайта
  • Категории
    Категории Страница отображения списка категорий системы блогов сайта.

Урок №5. Логические величины, операции, выражения. Программирование ветвлений

Добавлено : Дата: в разделе: 11 класс

Прямое отношение к программированию имеет дисциплина, которая называется математической логикой. Основу математической логики составляет алгебра логики, или исчисление высказываний. Под высказыванием понимается любое утверждение, в отношении которого можно однозначно сказать, истинно оно или ложно. Например, «Луна — спутник Земли» — истинно; «5 > 3» — истинно; «Москва — столица Китая» — ложно; «1 = 0» — ложно. Истина или ложь являются логическими величинами. Логические значения приведенных выше высказываний однозначно определены; другими словами, их значения являются логическими константами.

Логическое значение неравенства х < 0, где х — переменная, является переменной величиной. В зависимости от значения х оно может быть либо истиной, либо ложью. В связи с этим возникает понятие логической переменной.

Основы формального аппарата математической логики создал в середине XIX в. английский математик Джордж Буль. В его честь исчисление высказываний называют булевой алгеброй, а логические величины — булевскими.

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

Имеются три основные логические операции: отрицание, конъюнкция (логическое умножение) и дизъюнкция (логическое сложение).

Операция отрицания обозначается в математической логике значком ¬ и читается как частица не. Это одноместная операция.

Например, ¬ (x = у) читается «не (х равно y)». В результате получится истина, если х не равно у, и ложь, если х равно у. Отрицание изменяет значение логической величины на противоположное.

Операция конъюнкции обозначается значком & и читается как частица и. Это двухместная операция. Например, (х > 0) & (х < 1) читается «х больше 0 и х меньше 1». Данная логическая формула примет значение истина, если х 

 (0,1), и ложь — в противном случае. Следовательно, результат конъюнкции — истина, если истинны оба операнда. Знак операции дизъюнкции v читается как частица или. Например, (х = 0) v (х = 1) читается «х равно 0 или х равно 1». Формула дает истину, если х — двоичная цифра (0 или 1). Следовательно, дизъюнкция дает в результате истину, если хотя бы один операнд — истина.

В Паскале логические значения обозначаются служебными словами false (ложь) и true (истина), а идентификатор логического типа — boolean.

Кроме величин (констант и переменных) типа boolean логические значения false, true принимают результаты операций отношения.

Операции отношения (рис. 18) осуществляют сравнение двух операндов и определяют, истинно или ложно соответствующее отношение между ними.

image091

Примеры записи отношений: х<у; a+b>=c/d; abs(m-n)<=l. Примеры вычисления значений отношений:

image092

Логические операции выполняются над операндами булева типа. Имеются четыре логические операции: Not — отрицание; And — логическое умножение (конъюнкция); Or — логическое сложение (дизъюнкция). Кроме этих трех обязательных операций в Турбо Паскале имеется еще операция — исключающее ИЛИ. Ее знак — служебное слово Хоr. Это двухместная операция, которая в результате дает значение истина, если оба операнда имеют разные логические значения.

Операции перечислены в порядке убывания приоритетов. Результаты логических операций для различных значений операндов приведены в табл. 3.5.

Таблица 3.5

image093

Операции отношения имеют самый низкий приоритет. Поэтому если операндами логической операции являются отношения, то их следует заключать в круглые скобки. Например, математическому неравенству 1 ≤ х ≤ 50 соответствует следующее логическое выражение:

(1<=X) And (X<=50)

Логическое выражение есть логическая формула, записанная на языке программирования. Логическое выражение состоит из логических операндов, связанных логическими операциями и круглыми скобками. Результатом вычисления логического выражения является булева величина (false или true). Логическими операндами могут быть логические константы, переменные, функции, операции отношения. Один отдельный логический операнд является простейшей формой логического выражения.

Примеры логических выражений (здесь d, b, с — логические переменные; х, у — вещественные переменные; k — целая переменная):

image094

Если d=true; b=false; c=true; x=3.0; y=0.5; k=5, то результаты вычисления будут следующими:

В примере использована логическая функция odd(k). Это функция от целого аргумента k, которая принимает значение true, если значение k нечетное, и false, если k четное.

Логический оператор присваивания имеет структуру, представленную на рис. 19.

image096

Примеры логических операторов присваивания:

1) d:=true;

2) b:=(x>y) and (k<>0);

3) c:=d or b and not (odd(k) and d).

Программирование ветвлений на Паскале

Основные темы параграфа:

♦ оператор ветвления на Паскале;
♦ программирование полного и неполного ветвления;
♦ программирование вложенных ветвлений;
♦ логические операции;
♦ сложные логические выражения.

Оператор ветвления на Паскале

В языке Паскаль имеется оператор ветвления. Другое его название — условный оператор, Формат полного оператора ветвления следующий:

if <логическое выражение> then <оператор1>

                                             else <оператор2>

Здесь if — «если», then — «то», else — «иначе».

Программирование полного и неполного ветвления

Сравните запись алгоритма БИД1 из предыдущего параграфа с соответствующей программой. 

Informatika 9 214k

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

Простой формой логического выражения является операция отношения. Как и в АЯ, в Паскале допускаются все виды отношений (ниже указаны их знаки):

< (меньше);                                      >= (больше или равно);   
> (больше);                                       = (равно);
<= (меньше или равно);                  <> (не равно).

А теперь запрограммируем на Паскале алгоритм БИД2, в котором использовано неполное ветвление.

Informatika 9 215e

Опять все очень похоже. Ветвь else в операторе ветвления может отсутствовать.

Программирование вложенных ветвлений

Запишем на Паскале программу определения большего из трех чисел, Блок-схема которая показана на рис. 6.6. Структура этого алгоритма — вложенные ветвления. Алгоритм на АЯ (БИТ2) приведен в предыдущем параграфе.

Informatika 9 215.2f

Informatika 9 216f

Обратите внимание на то, что перед else точка с запятой не ставится. Вся ветвящаяся часть структуры алгоритма заканчивается на точке с запятой после оператора D:=C.

Составим программу упорядочения значений двух переменных. 

Informatika 9 216.2e

Этот пример иллюстрирует следующее правило Паскаля: если на какой-то из ветвей оператора ветвления находится несколько последовательных операторов, то их нужно записывать между служебными словами begin и end. Конструкция такого вида:

begin <последовательность операторов> end

называется составным оператором. Следовательно, в описанной выше общей форме ветвления <оператор1> и <оператор2> могут быть простыми (один) и составными операторами.

Логические операции

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

Informatika 9 216.3e

Informatika 9 217u

Нетрудно понять смысл этой программы. Здесь использованы три последовательных неполных ветвления. А условия ветвлений представляют собой сложные логические выражения, включающие логическую операцию and (И). С логическими операциями вы встречались, работая с базами данных и с электронными таблицами.

Напомним, что операция and называется логическим умножением или конъюнкцией. Ее результат — «истина», если значения обоих операндов — «истина». Очевидно, что если А> В и А > С, то А имеет наибольшее значение и т. д. В Паскале присутствуют все три основные логические операции:

and — И (конъюнкция),
or — ИЛИ (дизъюнкция),
not  — НЕ (отрицание).

Сложные логические выражения

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

if (A<0) or (B<0) or (C<0)
 then write ('YES') else write ('NO');

Выражение, истинное для отрицательного числа, может быть записано еще и так:

not (A>=0)

Коротко о главном

Оператор ветвления (условный оператор) Паскаля имеет вид:

if <логическое выражение>
  then <оператор1> else <оператор2>

На ветвях условного оператора могут находиться простые или составные операторы. Составной оператор — это последовательность операторов, заключенная между служебными словами begin и end.

В сложных логических выражениях используются логические операции: and, or, not.

Вопросы и задания

1. Как программируется на Паскале полное и неполное ветвление?
2. Что такое составной оператор? В каких случаях составной оператор используется в операторе ветвления?
3. Выполните на компьютере все программы, приведенные в данном параграфе.
4. Составьте не менее трех вариантов программы определения наименьшего из трех данных чисел.
5. Составьте программу сортировки по возрастанию значений в трех переменных: А, В, С.
6. Составьте программу вычисления корней квадратного уравнения по данным значениям его коэффициентов.

Редактировалось Дата:

You have no rights to post comments

   
© 2012 fordus.