Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Начальный курс информатики. Часть 2. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
850 Кб
Скачать

Логические выражения строятся из логических данных, связанных знаками логических операций. А это значит, что

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

операции

отношения встречаются в

одном выражении. Причем отношения стоящие слева и справа от

знака логической операции

должны

быть заключены в скобки,

поскольку логические операции имеют более высокий приоритет и выполняются в следующем порядке: в первую очередь выполняется not, затем and, а операции or в последнюю очередь.

С помощью скобок порядок вычислений может быть изменен.

 

 

 

 

 

 

Таблица 20

Значение операнда

 

Результат выполнения операции

 

 

 

 

 

 

 

 

 

xl

x2

not xl

 

not x2

x l a n d x 2

x l or x 2

 

 

 

 

 

 

 

 

false

false

true

 

true

false

false

 

 

 

 

 

 

 

 

 

false

true

true

 

false

false

true

 

 

 

 

 

 

 

 

 

true

false

false

 

true

false

true

 

 

 

 

 

 

 

 

 

true

true

false

 

false

true

true

 

 

 

 

 

 

 

 

 

Пример 12. Вычислить значение выражения

(-3 >= 5) or not (7 < 9) and (0 <= 3).

Решение:

1)-3 >= 5 = false

2)7< 9 = true

3)0<= 3 = true

4)not (7<9) = not true = false

5)not (7<9) and (0<= 3) = false and true = false

6)(-3 >= 5) or not (7< 9) and (0<= 3) = false or false = false Ответ: false.

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

1. Записать на Pascal следующие числа:

a)XIX,

b)6,38,

c)11/4,

d) 2 ,

41

e)p,

f)5 ×106 ,

g)24,78×10-5 ,

h)106,

i)1/100000.

2.Записать следующие числа без десятичного порядка:

а) -0,00027Е+4, b) 777Е-3,

c) 1Е1.

3.Записать арифметические выражения, соблюдая правила языка Pascal:

a)a + bx + cyz ,

b)[(ax - b)x + c]x - d ,

c)

ab

+

c

,

 

 

ab

 

 

x

a2

 

d)

x + y

×

 

,

a1

x - y

 

 

 

e) 104 a - 3 1 b ,

 

 

 

 

 

 

 

 

5

 

f)

a

×

b

-

ab - c

,

 

 

 

 

 

b d

 

 

cd

 

d)

 

x + y

×

a2

.

 

 

 

 

 

 

a1 x - y

4. Вычислить:

24/(3 · 4) – 24/3/4 + 24/3 · 4.

5. Записать выражения с использованием вызовов стандартных функций:

a)(1 + x)2 ,

b) 1+ x ,

42

c)a + bx ,

d)x4 ,

e)3 1+ x .

6.Вычислить значения выражений: a) trunk (6.9),

b) trunc (6.2), c) trunc (-1.8), d) round (0.5), e) round (6.9), f) round (6.2), g) round (-1.8), h) round (-0.5).

7.Вычислить значения выражений a) 20 div 6,

b) 20 div 4, c) 2 div 5, d) 123 div 0, e) 20 mod 6, f) 20 mod 4, g) 2 mod 5.

8.Вычислить значения выражений: a) 3·7 div 2 mod 7/3 - tranc(sin(l)), b) succ(round(5/2) - pred(3)).

9.Вычислить значения выражений:

a)sqrt(x) + sqr(y)<= 4 при х = 0.3, у = -1.6,

b)k mod 7 = к div 5 - 1 при к = 15,

c)odd(trunc(10·p)) при р = 0.182.

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

a)целое делится на 7,

b)уравнение ах2 + bх + с = 0 (a ≠ 0) не имеет вещественных корней,

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

43

11.Вычислите значения выражений: a) not odd(n) при n = 0,

b) t and (р Mod 3 = 0) при t = true, р = 101010, c) (х · у <> 0) and (у > х) при х = 2, у = 1,

d) (х · у <>0) or (у > х) при х = 2, у = 1, e) a or (not b) при a = false, b = true.

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

a) 0 < х <1,

b) х = mах(х, у, z),

c) x ≠ max(x, y, z) (операцию not не использовать),

d) хотя бы одна из переменных а и b имеет значение true, e) обе логические переменные а и b имеют значение true.

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

(x>=0) or t and odd(x) or (y · y <>4).

14.Вычислить следующие выражения при a = true и b = false: a) a or band not а,

b) (a or b) and not a, c) not a and b,

not (a and b).

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

a) х принадлежит отрезку [0, 1], b) х лежит вне отрезка [0, 1],

c) х принадлежит отрезку [2, 5] или [-1, 1], d) х лежит вне отрезков [2, 5] и [-1, 1],

e) каждое из чисел х, у, z положительно,

f) хотя бы одно из чисел х, у, z положительно,

g) ни одно из чисел х, у, z не является положительным,

h) логическая переменная а имеет значениеtrue, логическая переменная b имеет значение false.

16.Нарисовать на плоскости(х, у) область, в которой и только в которой истинно указанное выражение:

44

a)(у >= х) and (у + х >=0) and (у <= 1),

b)(sqr(x) + sqr(y) < 1) or (у > 0) and (abs(x) <= 1).

4. ОПЕРАТОР. ОПЕРАТОР ПРИСВАИВАНИЯ

Основное назначение программы состоит в задании тех действий по обработке данных, которые должны быть выполнены для решения поставленной задачи. Программа – это запись алгоритма на некотором языке программирования, исполнителем которой предполагается компьютер.

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

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

4.1. Оператор присваивания

Оператор

присваивания предназначен для

запоминания вы-

 

численного значения с возможностью его дальнейшего использо-

 

вания. Синтаксически определяется следующим образом:

 

 

<имя переменной>:=<выражение>

 

Оператор

присваивания

определяет

некоторый -

само

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

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

45

4.2. Арифметический оператор присваивания

Арифметический оператор присваивания служит для присваивания значения переменной числового типа. Это значит, что

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

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

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

Пример 13. Записать операторы присваивания, которые переменной r присваивают:

a) среднее арифметическое чисел х, у, z

b) площадь треугольника со сторонами а, b, с.

Решение:

а) из математики известно, что среднее арифметическое чисел определяется как отношение их суммы к их количеству. Поэто-

му, r:= (x + y + z)/3;

b) для определения площади треугольника по3 сторонам воспользуемся формулой Герона. Введем промежуточную величину p – полупериметр:

p := (a + b + c)/3;

r:= sqrt(p· (p a) · (p b) · (p c))

4.3. Логический оператор присваивания

Если в левой части оператора присваивания указана переменная типа boolean, то в правой части оператора должно быть задано логическое выражение, задающее правило вычисления логического значения (true или false). Например,

d := true;

f := (x >= y) and d; d := a < b;

c := d or not f

46

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

1.Записать оператор присваивания, который меняет знак у значения переменной L

2.Поменять местами значения переменных х, у, z так, чтобы в х оказалось значение переменной у, в у - значение переменной z, а в z - прежнее значение переменной х.

3. Присвоить целой переменной h третью от конца цифру в записи положительного целого числа к(например, если к = 12345,

то h = 3).

4. Написать оператор присваивания, в результате выполнения которого логическая переменная t получает значение true, если выполняется указанное условие и значение false иначе:

a)числа х, у, z равны между собой

b)из чисел х, у, z только два равны меду собой;

c)х - положительное число;

d)р делится нацело на q (р и q - натуральные числа);

e)цифра 5 входит в десятичную запись трехзначного целого числа к.

4.4. Структура программы

Программа, написанная на языке программирования Pascal, состоит из заголовка программы и тела программы, за которым следует точка, являющаяся признаком конца текста программы. Заголовок программы отделяется от ее тела точкой с запятой. Заголовок программы начинается служебным словом program, вслед за которым указывается ее некоторое имя. На-

пример, program Tabl.

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

×раздел меток;

×раздел констант;

×раздел типов;

×раздел переменных;

47

×раздел процедур и функций;

×раздел операторов.

Главное назначение программы – это задать те действия, которые должен выполнить компьютер по обработке данных. Такие действия задаются с помощью операторов, так что раздел операторов является основным разделом и обязательно должен присутствовать в любой программе. Предшествующие ему разделы, каждый из которых может отсутствовать, носят характер «объявлений» (описаний) – с их помощью определяются те программные объекты и их свойства, которые будут использоваться

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

Раздел констант. Под термином константа понимается конкретное значение того или иного типа, которое зафиксировано

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

Пример непустого раздела констант: const Vrn = 25; Nizh = - Vrn;

Рi =3.1415926535.

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

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

48

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

употребление переменной дается свое имя и указывается тип значений, которые может принимать эта переменная: попытка в процессе выполнения программы присвоить переменной значение иного типа расценивается как ошибка в программе. Описание отдельной пере-

менной имеет вид: <имя переменной>: <имя типа>.

Например, var

I, J, K:integer;

X, H, Sum:real; Ch:char.

Раздел операторов задает те действия, которые должны быть выполнены по данной программе. Этот раздел начинается служебным словом begin и заканчивается служебным словом end - эти слова играют роль операторных скобок. Внутри этих скобок задается последовательность операторов, отделенных друг от друга разделителем «;». Выполнение раздела операторов начинается с выполнения первого по порядку оператора.

4.5. Организация ввода-вывода. Программы линейной структуры

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

Вывод – обратный процесс, когда данные передаются после обработки из оперативной памяти на внешнее устройство. В языке программирования Pascal стандартным средством передачи данных являются предопределенные файлы Input и Output.

Программа получает входные данные из файла Input и помещает результат обработки в файлOutput. Стандартно файлу Input назначена клавиатура, а файлу Output экран терминала.

Для выполнения операций ввода-вывода служат четыре процедуры: read, readln, write, writeln.

49

Процедура чтения read обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой.

Формат: read (x1, x2, x3, . . . , xn), где x1, x2, x3, . . . , xn - пе-

ременные допустимых типов данных. При выполнении оператора вызова процедуры программа приостанавливает свою работу до тех пор, пока не будут введены значения для указанных в списке переменных. Значения вводятся с клавиатуры через пробел. После набора данных нажимается клавиша ввода<Enter>. Значения переменных должны вводиться в строгом соответствии с синтаксисом языка. Если соответствие нарушено, то возникают ошибки ввода-вывода.

Например, var

I: real; J:integer; К: char; begin

read (K,I,J);

. . . .

Строка ввода может быть такой: Q 23.5 678.

Указанные значения соответствуют типам переменных в процедуре read.

Процедура readln аналогична процедуре read. Отличие в том, что после считывания последней в списке значения для одной процедуры readln данные для следующей процедуры readln будут считываться с начала новой строки (рис. 12).

Var

 

Ввод:

I: real;

 

Z 4.5

J:integer;

 

3

К: char;

 

 

begin

 

 

readln(K,I);

 

 

readln(j);

 

 

 

Рис. 12. Форма описания

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]