Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inform.docx
Скачиваний:
40
Добавлен:
12.03.2015
Размер:
395.82 Кб
Скачать

1.1. Алфавит и словарь языка Паскаль

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

Алфавит Паскаля составляют:  

прописные и строчные буквы латинского алфавита: ABCYZab,c,…yz ;  

десятичные цифры: 0, 1, 2,…9;  

специальные символы: + - *  / > < =  ;  #  ‘ , . : {} [] ( )  

комбинации специальных символов , которые нельзя разделять пробелами, если они используются как знаки операций: «:=», «..», «<>», «<=», «>=», «{}».  

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

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

Идентификатор – имя (identification – установление соответствия объекта некоторому набору символов). Для обозначения определенных разработчиками языка функций, констант и т.д. служат стандартные идентификаторы, например SqrSqrt и т.д. В этом примере Sqr вызывает функцию, которая возводит в квадрат данное число, а Sqrt – корень квадратный из заданного числа. Пользователь может переопределить любой стандартный идентификатор, но чаще всего  это приводит к ошибкам, поэтому на практике их используют без изменения. Идентификаторы пользователя – это те имена, которые дает сам программист. При записи программ нужно соблюдать общие правила написания идентификаторов:  

Идентификатор начинается только с буквы (исключение составляют специальные идентификаторы меток).  

Идентификатор может состоять из букв, цифр и знака подчеркивания. 

Максимальная длина – 127 символов.  

При написании идентификаторов можно использовать прописные и строчные буквы.  

Между двумя идентификаторами должен стоять хотя бы один пробел.

Некоторые  зарезервированные слова  версии Турбо Паскаль

Absolute

Абсолютный

Library

Библиотека

And

Логическое И

Mod

Остаток от деления

Array

Массив

Not

Логическое НЕ

Begin

Начало блока

Or

Логическое ИЛИ

Case

Вариант

Of

Из

Const

Константа

Object

Объект

Div

Деление нацело

Procedure

Процедура

Go to

Переход на

Program

Программа

Do

Выполнять

Repeat

Повторять

Downto

Уменьшить до

String

Строка

Else

Иначе

Then

То

End

Конец блока

To

Увеличивая

File

Файл

Type

Тип

For

Для

Until

До

Function

Функция

Uses

Использовать

If

Если

Var

Переменная

Interrupt

Прерывание

While

Пока

Interface

Интерфейс

With

С

Label

Метка

Xor

Исключающее ИЛИ

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

Любая программа на Паскале имеет определенную структуру:

program имя_программы;

uses

Подключение модулей

const

Раздел описания констант

label

Раздел описания меток

type

Раздел описания типов

var

Раздел описания переменнных

begin

Тело программы

end.

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

type

IntList = array[1..100] of Integer;

var

mylist : IntList;

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

Процедуры ввода/вывода. Ввод и вывод данных различных типов.

Для ввода данных используются стандартные процедуры Read и ReadLn:

Read (список) - считывает одно или более значений в одну или несколько переменных

список - имена переменных, разделенные запятыми. Например:

Var a,b,c,d,e : Integer;  Begin  Read (a,b,c);  Read (d,e)  . . .

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

1 2  3 4 5

В этом случае процедура Read (a,b,c) прочтет значения переменных a и b из первой строки ввода, переменную c из второй стоки. Процедура Read (d,e) "дочитает" значения переменных d и e из второй строки.

Корректным было бы так же размещение данных для ввода следующим образом:  1 2 3 4 5

При этом чтение всех значений переменных происходило бы из одной строки.

ReadLn (список) - считывает значения переменных, а затем делает пропуск до начала следующей строки   

Пример:

Var p,r,s,t,u: Integer;  Begin  ReadLn (p,r);  ReadLn (s,t,u);  . . .

Пусть данные для ввода располагаются на несколькиз строчках следующим образом:  1 2 3 4 5  6 7 8 9

В этом случае процедура ReadLn (p,r) считает значения в переменные p и r (они примут значения 1 и 2 соответственно), затем пропустит все имеющиеся на этой строке данные (3, 4 и 5 будут пропущены) и перейдет на слудующую строку. После выполнения процедуры ReadLn (s,t,u) переменные s,t,u примут значения соответственно 6, 7 и 8.

Для вывода Turbo Pascal предоставляет процедуры Write и Writeln.

Write (список) - выводит значения списка в одну строку, после вывода курсор остается в той же строке  WriteLn (список) - выводит значения списка в одну строку, затем переводит курсор на новую строку

Если в операторах ввода Read и ReadLn в качестве списка допускалось указывать только имена переменных, то в операторах Write и WriteLn в список можно включать кроме переменных и константы, естественно, отделяя друг от друга запятыми.  Пример:

{программа, работающая как калькулятор: компьютер ожидает ввода} {двух чисел, затем выводит их сумму}

Var a,b: Integer;  Begin  Write ('Введите два числа через пробел '); {вывод строковой константы}  Read (a,b); {чтение значений переменных a и b}  Writeln (a,'+',b,'=',a+b) {вывод переменной a, вывод константы '+', вывод переменой b, вывод константы '=', вывод значения a+b}  End.

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

Read (a,b,c);  Write (a:3,b:2,c:5);

Если при выполнении этого фрагмента пользователь введет, предположим, числа  31 -450 8

, то они будут выведены как

31-450 8

Число a займет три позиции (31 будет напечатано с одним пробелом впереди), число c пять позиций (обратите на 4 пробела перед числом 8), а вот на b в программе мы отвели лишь две позиции, и пользователь ввел число, занимающее четыре позиции. Но Pascal отследил такую ситуацию и вывел все цифры числа b, включая минус. Т.е. при недостатке отведенных позиций для вывода на число отводится ровно столько позиций, сколько требуется. Обычно этим обстоятельством пользуются при необходимости напечатать вещественное значение с требуемой точностью.

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

Writeln (x:7:3); {на печать числа x отводится 7 позиций,  из них - 3 после запятой}  Write (d-fi/4:1:2); {значение выражения d-fi/4 будет напечатано с точностью до сотых}

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

56

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