Паскаль как язык структурно-ориентированного программирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Паскаль как язык структурно-ориентированного программирования



Паскаль чаще всего является основным языком, изучаемым в школе.

Краткие сведения

Паскаль-программа (консольное приложение в DELPHI) является текстовым файлом с собственным именем и расширением.pas. Схематически программа представляется в виде последовательности восьми разделов:

1. Заголовок программы.

2. Описание внешних модулей, процедур и функций.

3. Описание меток.

4. Описание констант.

5. Описание типов переменных.

6. Описание переменных.

7. Описание функций и процедур.

8. Раздел операторов.

Основные операторы языка

Реализация последовательности действий (структуры следования) выполняется с помощью составного оператора: begin <последовательность операторов> end;

Для реализации развилки в Паскале предусмотрены два оператора: условный оператор и оператор варианта (выбора). Первый выглядит так:

if <логическое выражение> then <оператор1> else <оператор2>; или

if <логическое выражение> then <оператор>;.

Оператор варианта имеет следующую форму:

case <выражение> of

<список констант 1>: <оператор 1>;

<список констант 2>: <оператор 2>;

<список констант N>: <оператор N> end;.

Для реализации циклов в Паскале имеются три оператора.

Цикл с предусловием:

while <логическое выражение> do <оператор>;.

Действие: вычисляется значение логического выражения. Если оно равно true, то выполняется оператор, после чего снова вычисляется значение логического выражения, в противном случае действие заканчивается.

Цикл с постусловием:

Repeat

Последовательность операторов> until <логическое выражение>;

Действие: выполняется последовательность операторов. Далее вычисляется значение логического выражения. Если оно равно true, то действие заканчивается, иначе снова выполняется последовательность операторов и т.д.

Цикл с параметром:

for <параметр>:= <выражение 1> to <выражение 2> do <оператор>

Параметр, выражение 1, выражение 2 должны быть одного ординального типа. Параметр в этом цикле возрастает.

for <параметр>:=<выражение 1> downto <выражение 2> do <оператор>. Параметр в этом цикле убывает.

Структуры данных

Простые типы

К ним относятся: real - вещественный; integer - целый; boolean - логический; byte - байтовый; char - символьный.

Перечисляемые и интервальные типы данных задаются с помощью простых типов Описание перечисляемого типа выполняется в разделе типов по схеме:

type <имя типа> = <список имен>

Примеры:

type operator= (plus,minus,multi,divide);

color= (white,red,blue,yellow,purple,green);

Интервальный тип - это подмножество другого уже определенного простого типа, называемого базовым. Пример:

type days = (mon,tue,wed,thu,fri,sat,sun);

workdays = mon..fri; index=1..30;

letter ='a'..'z';

Можно задать интервал и в разделе переменных:

var а:1..100;b:-25..25;

Составные типы

Массив - это последовательность, состоящая из фиксированного числа однотипных элементов:

type <имя типа> = array <список типов индексов> of <тип элементов>.

Число типов индексов называется размерностью массива. После описания типа массива конкретные массивы можно задать в разделе описания переменных, например:

type vector = array[l..10] of real;

table = array [‘A’..’Z’,1..5] of integer;

var a,b:vector; c: table;

Описание массива-типа можно совместить с описанием соответствующих переменных:

var a,b:array [1..10] of real; d: array [byte] of char;

Строковый тип определяется в разделе описания типов, переменные этого типа - в разделе описания переменных:

type word: string [20]; var a,b,с: word;

или var a,b,c: string [20]; d: string [30];

Для строковых величин определены четыре стандартные функции:

1. Функция соединения - concat (si, s2,..., sk).

2. Функция выделения - copy (s, i, k). Из строки s выделяется к символов, начиная с i-го символа.

3. Функция определения длины строки - length (s).

4. Функция определения позиции - pos (s, t). Вычисляется номер позиции, начиная с которой строка s входит первый раз в строку /; результат равен 0, если строка s не входит в t

Также определены четыре стандартные процедуры для обработки строковых величин:

1. Процедура удаления - delete (s, i, k). Из строки s удаляется к символов, начиная с i-го символа.

2. Процедура вставки - insert (s, t, i). Строка s вставляется в строку t, начиная с позиции i.

3. Процедура преобразования числа в строку символов - str (k, s).

4. Процедура преобразования строки из цифр в число - val (s, k, i).

Множественный тип можно определить в разделе описания типов по схеме:

type <имя> = set of <тип элементов>. Например: type t=set of byte; var a:t;

или

var code: set of 0..7; digits: set of '0'..'9';

Для данных множественного типа определены операции объединения, пересечения и дополнения множеств, обозначаемые соответственно знаками +, * и -, а также отношения равенства множеств (А = В), неравенства (А<>В), включения (А <= В, А >= В). Логическая операция принадлежности: х in А принимает значение true, если элемент х принадлежит множеству А и false в противном случае.

Запись - это последовательность, состоящая из фиксированного числа величин разных типов, называемых полями или компонентами записи:

type имя типа записи = record

имя поля 1: тип;

имя поля 2: тип;

имя поля N: тип end;

Например, адресные данные (индекс, город, улица, номер дома, квартиры) можно представить как запись:

type address = record

index: string[6];

city: string[20];

street: string[20];

haus,flat: integer end;

Подпрограммы

В Паскале подпрограммы называются процедурами и функциями.

Процедура имеет такую же структуру, как и программа, но с двумя отличиями:

1) заголовок процедуры имеет другой синтаксис:

procedure <имя> (<список описаний формальных параметров>)

2) описание процедуры заканчивается точкой с запятой (а не точкой).
Оператор вызова процедуры имеет вид

<имя процедуры> (<список выражений>);

Функция — это подпрограмма, определяющая единственное скалярное, вещественное или строковое значение. Отличия подпрограммы-функции от процедуры:

1) заголовок функции начинается со служебного слова function и заканчивается указанием типа значения функции:

function <имя> (<список описаний формальных параметров>): <тип>;

2) раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции или переменной result (в Object Pascal);

3) обращение к функции - не оператор, а выражение. Функции и процедуры могут быть рекурсивными.

В Паскале имеются две встроенные процедуры ввода:

1) read <список переменных>;

2) readln <список переменных>.

Имеются две процедуры вывода на экран дисплея:

1) write <список выражений>;

2) writeln <список выражений>.

Файлы

Для связи Паскаль-программы с внешними устройствами используют файловые переменные. Связь осуществляется оператором языка Паскаль:

assign(<имя файловой переменной>,'<имя устройства>') или assignfile(<имя файловой переменной>,'<имя устройства>')(Object Pascal).

Например:

assign (f, 'primer.dat')

Здесь f — имя файловой переменной, primer.dat — имя файла данных на внешнем носителе.

После осуществления связи файловая переменная отождествляется с соответствующим файлом.

Для работы с файлом его необходимо открыть, по окончании работы - закрыть. Файл открывается для чтения оператором reset (f), для записи - оператором rewrite (f). Чтение и запись данных осуществляется известными процедурами read/ write, только в начале списка помещается имя файловой переменной:

read (f, <список ввода>); readln (f, <список ввода>); write (f, <список вывода>); writeln(f, <список вывода>).

Закрытие файла осуществляется командой close (f) (closefile (f) (Object Pascal)). Команда reset (f) устанавливает указатель маркера файла на нулевое состояние.

В системе Паскаль предусмотрены встроенные функции по работе с файлами:

filesize (f) - возвращает текущее число компонент открытого файла;

filepos (f) - возвращает номер текущей позиции маркера;

rename (f,имя) - переименование файла, связанного с/;

erase (f) - уничтожение файла;

execute (f) - выполнение СОМ-файла;

chain (f) - выполнение CHN-файла;

seek (f, N) - устанавливает маркер на позицию N;

eof (f) - возвращает TRUE, если найден конец файла;

ealn(f) - возвращает TRUE, если найден конец строки.

Файловый тип данных в программе задается по следующему правилу: type <имя файлового типа> = file of <тип компонентов>.

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

type intfile = file of integer;



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 191; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.149.242 (0.018 с.)