В Паскале определены следующие логические операции

- not - логическое НЕ;

- and - логическое И;

- or - логическое ИЛИ;

-хоr - исключающее ИЛИ.

Задание 8 - ознакомиться с типами данных языка Паскаль.

Любые данные, т.е. константы, переменные, значения функций или выражения, в Паскале характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того тип определяет формат внутреннего представления данных в памяти компьютера. Мощностью типа называется суммарное количество всех возможных его значений.

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

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

Все возможные типы данных языка Паскаль и их связь представлена на рис. 3.

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

Таблица?????????????,

 

 

Значениями логического типа может быть одна из предварительно объявленных констант False (ложь) или True (истина). Описывается как Boolean,

Значением символьного типа является множество всех символов компьютера. Каждому символу приписывается целое число в диапазоне от 0 до 254. Для кодировки используется код ASCII, каждому символу соответствует один байт. Описывается как Char.

Перечисление или перечисленный тип, задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, пример: type

type of ' colors=(red, white, blue);

var

color: type_of_colors;

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

var

date: 1..31;

month: 1..12;

Значения вещественных типов определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего

формата вещественного числа.

Массив это упорядоченная последовательность компонентов одного типа, объединенных под одним именем. Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера. Описание производится так <имя>: array [<сп.инд.типов>] of <тип>. Здесь <имя> - правильный идентификатор; array, of - зарезервированные слова; <сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; <тип> - любой тип Паскаля. Пример:

var

a, b: array [1.. 10] of Real;

Задание 9 - ознакомиться с оператором присваивания и составным оператором языка Паскаль.

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

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

Составной оператор - это группа операторов ограниченная зарезервированными словами begin (в начале группы) и end (в конце). В данном случае эти зарезервированные слова называются операторными скобками. Например:

begin

a:=b+l;

c;=a*b;

end;

В составных операторах можно размещать вложенные составные операторы:

begin {Начало основного оператора}

begin {Начало вложенного оператора}

end; {Конец вложенного оператора}

end; {Конец основного оператора}

Задание 10 - ознакомиться с операторами ввода-вывода языка Паскаль, а также форматом числа.

Для вывода информации на экран служит процедура Write и ее модификация WriteLn. Формат записи

Write ('Coo6u{ 1', 'Соо6щ2',ИмяПерем!,Выражение 1,...); WriteLn ('Сообщ 1' 'Сообщ2' ИмяПерем 1,Выражение 1,...);

WriteLn отличается от Write тем, что после вывода на экран всех своих аргументов переводит курсор на следующую строку, и следующий вывод на экран будет осуществлён с начала следующей строки.

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

WriteLn ('Дискриминант квадратного уравнения равен',b*b-4*a*c); WriteLn ('xl = ',xl,' х2=',х2);

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

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

WriteLn ('Дискриминант квадратного уравнения равен',b:7:3);

где, 7 - это количество позиций отводимое под число, 3 - количество позиций для дробной части. Одну позицию всегда занимает запятая.

Для ввода значений переменных с клавиатуры служит процедура Read и её модификация ReadLn.Формат записи

Read(ИмяПepeмl, ИмяПерем2,...);

ReadLn(ИмяПерем 1, ИмяПерем2,...);

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

ReadLn(a, b, с, d);

Допускается использование ReadLn(); без аргументов для остановки работы программы до нажатия пользователем клавиши Enter.

Лабораторные задания

Задание 1 - Укажите, какие из перечисленных идентификаторов содержат ошибки и поясните их

a

IProgram

ALPHA

block#l

MyProgramlsBestProgram

Date_27_sep_39

My Prog

_beta

Mod

Задание 2 – Укажите какие из перечисленных операторов ввода-вывода содержат ошибки, и поясните их

READ WRITE

READ WRITE

READ WRITE

READ WRITE

Задание 3 –При помощи программы на языке Паскаль, организуйте вывод значений функции Y=X2 в следующем виде

Program ru;

var

x,y:integer;

begin

write ('X=');

for x:= -3 to 3 do

begin

write (X:2);

end;

begin

Y:= sqr(X);

write ('Y=',Y);

end;

readln;

end.

Задание 4 –Напишите диалоговую программу на языке Паскаль, которая рассчитает значение функции

Program funkciya;

var

x, y, a, b: Integer;

begin

writeln ( 'Nachalo rascheta phunkcii Y=a*X^2+b');

Writeln ('Vvedite znachenie a- i nazhmite Enter');

read (a);

Writeln ('Vvedite znachenie b- i nazhmite Enter-');

read (b);

Writeln ('Vvrdite znachenie x- i nazhmite Enter');

readln (x);

Y:=a*sqr(x)+b;

writeln (' Dlya znachenii', ' a=',a,',b=',b,',x=',x,' znachenie y=',Y);

write ('Nazhmite Enter dlya vihoda');

readln;

end.