Организация и описание данных




Основные сведения

Язык Паскаль является одним из самых распространенных в настоящее время алгоритмических языков, использующихся при программировании на мини и микро ЭВМ. Когда в начале 70-х годов признанный классик программирования профессор Цюрихской высшей технической школы Никлаус Вирт разрабатывал Паскаль, он стремился создать язык, на основе которого можно эффективно обучать программированию. Свое название язык программирования получил в честь французского математика Блеза Паскаля. Созданный специально для обучения программированию, язык оказался на практике чрезвычайно удачным и приобрел большую популярность у программистов, как у профессиональных, так и у непрофессиональных, в частности, у владельцев персональных компьютеров.

Основные достоинства языка:

1). гибкость и универсальность;

2). простота и ясность конструкций;

3). легкость реализации на большинстве современных ЭВМ;

4). возможность достаточно полного контроля правильности программы как на этапе трансляции, так и во время выполнения программы;

5). возможность удовлетворения требованиям структурного программирования;

6). наличие набора структурных типов данных: массивов, записей, записей с вариантами, множеств, файлов и т.д.

Некоторые недостатки языка:

1). отсутствие операции возведения в степень;

2). отсутствие средств работы с файлами прямого доступа.

Основные элементы Паскаля

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

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

1) буквы латинского алфавита (прописные и заглавные): A,B,...,Z и a,b,...,z

2) арабские цифры (от 0 до 9);

3) знаки арифметических операций:

+ - сложение, - - вычитание,

* - умножение / - деление,

div - деление нацело с отбрасыванием остатка,

mod - нахождение остатка от деления нацело;

4). знаки операций отношения:

= - равно, <> - не равно,

> - больше, < - меньше,

>= - больше или равно, <= - меньше или равно;

5). знаки логических операций:

NOT - отрицание, OR - логическое сложение,

AND - логическое умножение;

6). знаки операции присваивания:=;

7). специальные символы:

- пробел (разделитель) _ - подчеркивания

(- открывающая круглая скобка

) - закрывающая круглая скобка

[ - открывающая квадратная скобка

] - закрывающая квадратная скобка

- открывающая фигурная скобка

- закрывающая фигурная скобка

, - запятая

. - точка

; - точка с запятой

' - апостроф

: - двоеточие

8). ключевые слова:

AND - и, ARRAY - массив,

BEGIN - начало, CASE - вариант,

CONST - константа, DIV - деление нацело,

DO - выполнять, DOWNTO - уменьшать до,

ELSE - иначе, END - конец,

FILE - файл, FOR - для,

FORWARD вперед, FUNCTION - функция,

GOTO - переход на, IF - если,

IN - в, LABEL - метка,

MOD - модуль, NOT - не,

OF - из, OR - или,

PROCEDURE процедура, PROGRAM - программа,

RECORD запись, REPEAT - повторить,

SET - множество, STRING - строка,

THEN - то, TO - к,

TYPE - тип, UNIT - модуль,

UNTIL - до, USES - используемые,

VAR - переменная, WHILE - пока,

WITH - с, XOR - арифмет. или.

9). стандартные идентификаторы (имена):

константы FALSE, TRUE и MAXINT;

типы BOOLEAN, INTEGER, REAL и CHAR;

файлы INPUT и OUTPUT;

процедуры READ, READLN, WRITE, WRITELN, GET, PUT, REWRITE, NEW и RESET;

Стандартные математические функции

Функция Обращение Аргумент Функция
!х! x2 abs(x) sqr(x) R и I R и I R и I R и I
Sin x Cos x ex Ln x x Arctg x sin(x) cos(x) exp(x) ln(x) sqrt(x) arctan(x) R и I R

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

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

Программа на языке Паскаль состоит из двух основных частей

- описания данных, над которыми совершаются действия, и описание действий, которые должны осуществляться над данными. Действия задаются операторами, а данные - определениями и описаниями.

В структуре программы можно выделить заголовок и собственно программу, которая может содержать максимально шесть разделов:

- описание меток;

- описание констант;

- определение типов;

- описание переменных;

- описание функций и процедур;

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

Раздел операторов заключается в операторные скобки, т.е. BEGIN...END. Любой раздел, кроме последнего, может отсутствовать. Разделителями между разделами и операторами служит точка с запятой. В конце программы должна стоять точка. Заголовок программы записывается в первой строке программы и начинается с ключевого слова program после которого указывается имя программы и связь программы с исходными данными и результатами обработки (т.е. файлы, доступные программе). В качестве имен файлов используются стандартные имена INPUT и OUTPUT.

program drev(input,output);

Кроме этого в любое место программы могут быть включены комментарии, при этом смысл программы не меняется. Комментарии заключатся в фигурные скобки. Если в системе нет фигурных скобок, то вместо них используются пары символов (* и *).

(* ПРИМЕР1 КОММЕНТАРИЯ НА ПАСКАЛЕ *)

{ ПРИМЕР2 КОММЕНТАРИЯ НА ПАСКАЛЕ }

Организация и описание данных

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

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

Константы описываются следующим образом:

CONST имя1 = значение1; имя2 = значение2;

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

const log = true;

rmax= 24; zk = c;

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

Операторы описания данных

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

Стандартные типы данных

Целый тип (INTEGER).

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

-MAXINT <= N <= MAXINT

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

Тип Диапазон Размер, байт
shortint byte integer word longint -128...+127 0...255 -32768...+327678 0...65535 -2147483648... +2147483647...  

Над целыми числами кроме обычных арифметических и стандартных операций могут выполняться:

- операции целочисленного деления и поиска остатка от целочисленного деления:

15 div 4 = 3 13 mod 4 = 1

- операции поиска предыдущего и последующих значений аргумента:

pred(9) = 8 succ(-9) = -8

pred(-9) = -10 succ(9) = 10

- функция позволяющая определить четность или нечетность аргумента:

odd(7) - true

odd(6) - false.

Переменные целого типа описываются следующим образом:

var a, g, jh, gg: integer;

Вещественный тип (REAL)

Значением переменной этого типа является вещественное число, заданное либо в естественной форме -6.7694

или в экспоненциальной 5.6Е-2.

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

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

Тип Диапазон Значащие цифры Размер, байт
real single double extended comp -1.7e38...1.7e38 -3.4e38...3.4e38 -1.7e308...1.7e308 -1.1e4932...1.1e4932 -2*2^63...1...2*2^63 11...12 7...8 15...16 19...20 19...20  

Тип comp содержит только целочисленные значения.

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

- функция trunc вырабатывает целый результат путем отбрасывания дробной части аргумента:

trunc(23.54) = 23

trunc(-3.54) = -3

- функция round вырабатывает целый результат путем округления до ближайшего целого:

round(23.53) = 24

round(-3.53) = -4

  • функция int выделяет целую часть числа:

int(23.54) = 23.0

int(-3.54) = -3.0

  • функция frac выделяет мантиссу аргумента:

frac(23.54) = 0.54

frac(-1.67) = -0.67

Переменные вещественного типа описываются следующим образом:

var ad, gs, fh, nn: real;

Булевский тип (BOOLEAN)

Этот тип данных на языке Паскаль называется логическим. Над логическими данными вычисляются следующие операции:

OR, NOT и AND.

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

Так как значения true и false можно рассматривать как упорядоченное множество, состоящее из двух элементов, то для этого типа данных помимо succ и pred, определена функция ord, определяющая порядковый номер для значений перечисляемого типа:

pred(false) = true succ(true) = false

ord(false) = 0 ord(true) = 1

Переменные логического типа описываются следующим образом: var w, y, z, vv: boolean;

Символьный тип (CHAR)

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

- содержать буквы, упорядоченные в алфавитном порядке;

- содержать цифры, расположенные в порядке возрастания;

- содержать символ пробел.

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

'2','g','k','s','0'.

С данными символьного типа связаны функции:

- ord(символ) - дает порядковый номер символа в упорядоченном массиве:

ord('?') = 63

ord('5') = 53

ord('I') = 73

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

chr(53) = '5'

chr(53) = '5'

ord(73) = 'I'

К аргументам символьного типа применимы функции pred и succ, которые выдают предыдущий и последующий символы, а также операции отношения (символ 1 считается больше символа 2, если его порядковый номер в множестве символов больше сравниваемого):

pred('M') = 'L'

succ('M') = 'N'

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

var w, y, z, vv: сhar;

Строковый тип (STRING).

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

'2gk', 's''0', 'Program''System'''.

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

var wf, yyy, zs, vev: string [10];

Описание массивов

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

имя: array [ Nmin..Nmax ] of тип;

При описании массивов большей размерности пределы измерения должны отделяться друг от друга запятой:

имя: array [ Nmin..Nmax, Kmin..Kmax, Rmin..Rmax] of тип;

Массивы описываются следующим образом:

var fff: array [1..4, 1..4] of integer;

sss: array [1..6] of real;

ddd: array [1..11, 1..4, 1..55] of char;

aaa: array [1..22, 1..11] of string;

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-30 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: