Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник 139.docx
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
206.28 Кб
Скачать

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

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;

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

Правила оформления процедур и функций аналогичны правилам оформления программ.

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

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

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

Program proba1;

(* разделы описаний меток, констант, типов, переменных *)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(* раздел описаний процедур и функций *)

Procedure line (x,y,z);

type

t:integer;

l:char;

var

x,y,i,j : t;

z : l;

begin

for i:=x to j:=y do write(z);

end;

(* главная программа *)

begin

. . . . . . . . . . . . .

. . . . . . . . . . . . .

end;

(* описание функции *)

function max (x,y : real): real;

begin

if x > y then max:= x;

end;

Операторы языка, составляющие тело программы. Тело программы составляют блоки. Каждый блок начинается с ключевого слова BEGIN и заканчивается словом END. Они могут следовать друг за другом или входить один в другой. Последние называют вложенными. Например,

PROGRAM IT – IS – MY ;

(* разделы * )

begin (* операторы языка * )

begin (* операторы языка *)

end;

begin (* операторы языка*)

begin (* операторы языка *)

end

end

end.

Глубина вложенности блоков практически не ограничивается. Однако информационно и алгоритмически они должны быть правильно оформлены.

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