Материал: Информатика. учебное пособие для иностранных слушателей подготовительного отделения (включая подготовку на уровень магистратуры). Кононов А.Д., Кононов а.А

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3.3. Выражения и операции

Выражение – это последовательность операндов, связанных знаками операций.

Операция присваивания. Операция служит для замены значения переменной, стоящей слева от знака присваивания ( значением выражения, стоящего справа от него. Например, A:=B;

Обе части (левая и правая) должны быть одного типа. Исключения составляют следующие случаи:

1. Тип переменной – real, тип выражения – integer. Здесь целое значение выражения преобразуется к вещественному типу.

2. Одна из частей представляет подмножество другой.

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

Например, A not B.

Мультипликативные операции:

1. Умножение, пересечение множеств (*). Например,

a:=b*c;

Mas1:=Mas2 * Mas3;

где Mas1, Mas2, Mas3 – множества переменных.

2. Деление нацело (DIV):

a := b div c;

3. Деление ( / ) :

a := b/ c;

4. Вычисление модуля (остатка от деления) целых чисел (MOD);

a := 10 mod 3;

Остатком от деления числа 10 на 3 будет 1.

5. Конъюнкция (логическое И (AND))

a := b and c;

Все переменные булевского типа.

Для мультипликативных операций характерно следующее: если хотя бы один из операндов имеет тип real, то результат операции будет тоже типа real.

Аддитивные операции:

1. Сложение, объединение множеств (+):

a := b+c;

Mas1:=Mas2+Mas3;

2. Вычитание, разность множеств (-);

a := b - c;

Mas1 := Mas2 - Mas3;

3. Дизъюнкция (логическое ИЛИ (OR));

a := b or c;

Если хотя бы один из операндов аддитивной операции имеет тип real, то и результат операции будет типа real.

Операции отношения:

1. Равенство (=):

b = c;

2. Неравенство (<>):

b <> c;

3. Упорядоченность включения множеств (<= или >=);

set1 <= set2;

4. Упорядоченность (< или >);

b < c;

5. Принадлежность (IN);

b in set1; c in set2;

Результат операции всегда имеет тип boolean.

Выражения могут быть простыми и составными. Составное выражение включает в себя несколько простых.

Константное выражение – это выражение, состоящее из одних констант. Например,

(1000 + 3.28 * 2 – PI),

где PI – тоже константа.

Контрольные вопросы и упражнения

1. Почему при записи формул на Паскале их «вытягивают» в линию? Почему знак умножения всегда выписывают явно? Почему аргумент функции всегда записывают в скобках?

2. Как на Паскале записать синус от х градусов?

3. Как записать на Паскале величину основания натуральных логарифмов (число е), если Вы забыли цифры этого числа? А как записать число π в подобной ситуации?

4. Чему равны значения переменных x и y после выполнения операторов

x:=2; y:=5; x:=y; y:=x?

5. а) Поменять местами значения переменных x и y.

б) Поменять местами значения переменных x, y и z так, чтобы в x оказалось значение y, в y – значение переменной z, а в z – значение переменной x.

в) Поменять местами значения целых переменных x и y, не используя дополнительные переменные.

6. Записать на Паскале следующие формулы:

а) 2 б) | a + bx | в) sin 8

г) cos2 x3 д) tg x е) log2

ж) ch x з) arctg 103 и) arcsin x

к) x-1 л) x8 м) x-5

3.4. Алгебра логики

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

Под высказыванием понимается всякое предложение, в котором содержится смысл утверждения (истинности) или отрицания (ложности). Одно и то же высказывание не может быть одновременно истинным и ложным или не истинным и не ложным. Отдельные высказывания можно обозначить заглавными буквами латинского алфавита A, B, C, … Если высказывание (суждение) истинно, то, например, А = 1. Если С = 0, то высказывание С ложно.

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

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

Логическое отрицание (операция НЕ, инверсия)

Пусть имеется некоторое высказывание А. Отрицание этого высказывания обозначается , которое принято читать: не А.

Если высказывание А истинно (А=1), то высказывание ложно ( = 0). Если высказывание А ложно (А=0), то высказывание истинно ( =1 ). Таким образом, для логического отрицания справедливо следующее правило: = 1; = 0.

Логическое умножение (операция И, конъюнкция)

Операцию логического умножения двух переменных А и В обозначают А/\В (принято читать: А и В). Высказывание А/\В истинно только в том случае, если А истинно (А=1) и В истинно (В=1), то есть А/\В =1. Во всех остальных случаях это высказывание ложно, т.е. А/\В = 0. Следовательно, при логическом умножении справедливо следующее правило: 0/\0 =0; 0/\1=0; 1/\0=0; 1/\ 1 =1.

Правила логического умножения справедливы не только для двух сомножителей, но и для любого их количества, т.е. А/\В/\С/\D/\ ….

Логическое сложение (операция ИЛИ, дизъюнкция)

Операцию логического сложения двух переменных А и В обозначают А\/В (принято читать: А или В). Высказывание А\/В истинно (А\/В =1) в том случае, если хотя бы одно из значений А или В истинно (А =1 или В =1). Если же это условие не выполняется, то высказывание ложно (А\/В =0) Таким образом, при логическом сложении справедливо следующее правило: 0\/0 =0;

0\/1 =1; 1\/0 =1; 1\/1 =1.

Правило логического сложения справедливо не только для двух слагаемых, но и для любого их числа, т.е. А\/В\/С\/D\/….

Сложение по модулю 2 (ИЛИ исключающее)

Операцию сложения двух переменных А и В по модулю 2 обозначают А В. Высказывание А В истинно ( А В =1) в том случае, если только одно из переменных А или В истинно ( А =1, В =0 или А =0, В =1). Если же это условие не выполняется, то высказывание ложно (А В=0). Таким образом, сложение по модулю 2 выполняется по такому правилу:

0 0 =0; 0 1 =1; 1 0 =1; 1 1 =0.

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

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

Основные правила преобразования следующие:

н) x100 о) 21+x п)x

р) с) a + bx+ т) [( ax – b) x+c] x-d

у) + ф) · х)104·α - 3· ·β

ц) (1+ + )/(1 + ) ч) (x2 -3x-y) ш)

7. Записать в обычной математической форме:

а) (p + q) / (r +s ) – p*q /(r * s)

б) 1Е3 + beta / (x2 – gamma * delta)

в) (-b + sqrt (sqr (b) – 4*a*c) )/ (2*a)

г) a/b + (c + d) – (a – b)/b/c + 1E -8

д) x1 = arctan( y2 – alpha )/2 * abs(x4 – ln(5) + y5 )/exp(-1)

8. Определить тип результата следующих выражений:

а) I*I + J*J + K*K б) X<Y

в) SIN(X) + 2*COS(Y) + Z г) I + SQRT(J),

если известно, что I, J, K : integer; X,Y,Z : real.

А /\ = А /\ 0 =0;

А \/ = А \/ 1 =1;

А /\ А = А \/ А = А /\ 1 = А \/ 0 = А;

А /\ В = В /\ А; А \/ В = В \/ А;

(А /\ В) /\ С = А /\ (В /\ С) = А /\ В /\ С;

(А \/ В) \/ С = А \/ (В \/ С) = А \/ В \/ С;

(А /\ В) \/ С = (А \/ С) /\ (В \/ С);

(А \/ В) /\ С = (А /\ С) \/ (В /\ С);

= \/ ; = /\ ;

А В= (А /\ ) \/ ( /\ В) = (А \/ В) /\ ( \/ );

Если подставить в эти выражения значения 0 и 1 для всех переменных, то можно убедиться в справедливости рассмотренных формул алгебры логики.

При разработке узлов ЭВМ смысл ложных или истинных высказываний А, В, С во внимание не принимается; аппарат логики используется для выполнения заданных логических преобразований. Например, арифметические преобразования (сложение, вычитание) задаются в виде совокупности логических преобразований над аргументами.

Контрольные вопросы и упражнения

1. Какие операции определены над переменными булевского типа?

2. Объясните ошибки в следующих записях:

а) 1 and 0 б) true + false в) true < 0 г) not 2 = 5

д) true or (1/0 > 1) е) x > 0 or y =4 ж) not not b or or d

3. Какие из приведенных ниже записей являются правильными с точки зрения языка Паскаль?

а) ‘A’ < ‘C’ б) ‘1’ < ‘9’ в) FALSE < TRUE

г) ‘A’< ‘B’ and 1 < 2 д) ‘0’ or ‘9’ е) (‘D’ > ‘C’) and (1 < 2)

4. Указать порядок выполнения операций при вычислении выражения:

а) a and b or not c and d

б) (x >= 0) or t and odd(x) or (y*y<> 4)

5. Вычислить следующие выражения при a = true и b = false:

а) a or b and not a б) (a or b) and not a

в) not a and b г) not (a and b)

6. Доказать тождества:

а) a and ( not a) = false б) a or ( not a) = true

в) not (not a) = a г) true or a = true

д) false and a = false е) a or a = a.

7. Записать на Паскале отношение, истинное при выполнении указанного условия и ложное в противном случае:

а) целое к делится на 7;

б) уравнение ax2 + bx + c =0 ( a≠0 ) не имеет вещественных корней;

в) точка ( x,y ) лежит вне круга радиуса r с центром в точке ( 1, 0);

г) 0 < x < 1;

д) x = max (x,y,z);

e) x лежит вне отрезка [ 0,1];

ж) x принадлежит отрезку [ 2,5] или [ -1,1];

з) значение x принадлежит одному из отрезков [ -5, -4], [ 0,3], [ 4.2, 7].

3.5. Построение программы

Любая программа на языке Паскаль состоит из заголовка и тела (блока) программы. Заголовок программы включает ключевое слово PROGRAM и имя программы (по усмотрению программиста). Например,

PROGRAM IT_IS_MY_FIRST_PROGRAM;

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

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

label 1, 2, 50, 100, 9999, m1;

Метка – целое число, включающее от 1 до 4 цифр или идентификатор.

Описание констант. В этом разделе определяются все синонимы локальных констант программы. Раздел помечается ключевым словом CONST. Например,

const

pi = -3,14;

g = +9.8;

title =’ ОБЪЯВЛЕНИЕ’;

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

type (* описание типов данных *)

(* строка *)

line: packed array [ 1.. 80] of char;

(* перечисление *)

day: (monday, tuesday, wednesday, thursday, friday, saturday, sumday);

person: (‘Иванов’,’Петров’,’Сидоров’,’Ковалев’);

Описание переменных. Этот раздел связывает их с определенным типом данных. Он начинается с ключевого слова VAR, а далее следует перечисление всех идентификаторов переменных с привязкой их к типам данных, описание которых было дано выше в разделе «Описание типов данных».

Например,

var (* описание переменных *)

a,b,c: line; d: day;

k,l,m,n: person;

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

Например,

var a: packed array [ k..n ] of char;

Иногда запись файла удобнее представить в виде структуры:

type

record

name: char;

family: char;

year: integer;

day: 1 .. 31;

month:1..12;

end;

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

Источник: https://studfile.net/preview/16567430/