Название: Алгоритмы и программы (Афанасьева Т. В.)

Жанр: Информационные системы и технологии

Просмотров: 1327


1. основные понятия

 

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

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

- о том, как обозначить каждое данное (какое дать ему имя);

- о характере и диапазонах изменений их значений;

- о требуемой памяти для их размещения;

- о наборе допустимых к ним операций.

Для определения данных Turbo Pascal предлагает использовать способы   объявления   данных   в   программе   посредством   задания   их значений или путем задания их типов – для данных, изменяющих свои значения при выполнении программы.

 

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

 

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

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

 

Рассмотрим    обобщенную  структуру        программы     на        языке

Turbo Pascal:

 

program <имя программы>; {заголовок программы}

uses <имена модулей>;         {раздел использования модулей}

{---------- РАЗДЕЛ объявлений ----------}

const    {раздел объявлений значений-констант}

<имя константы>= <значение>;

<имя константы>:<тип>=<значение>;

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

type      {раздел объявлений дополнительных типов}

<имя типа>=<тип>;

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

var       {раздел объявлений данных}

<имя переменной>:<тип>;

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

label     {раздел объявлений меток}

<имя метки>;

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

procedure <имя >(параметры); {раздел объявлений подпрограмм}

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

end;      {конец подпрограммы}

function <имя >(параметры); {раздел объявлений подпрограмм}

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

end;      {конец подпрограммы}

{-------- РАЗДЕЛ ОПЕРАТОРОВ ----------}

begin

........

end.

 

Все имена, используемые в программе, могут  иметь  любую  длину,

должны начинаться с буквы и не должны содержать разделителей.

Текст,  заключенный  в  фигурные  скобки  {},  называется  коммен-

тарием и может располагаться в любом месте программы.

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

 

Целые типы

 

В  Turbo  Pascal  используются пять  целочисленных типов  данных,

наиболее распространенным среди которых является тип INTEGER.

 

 

 

Целые типы данных

Таблица 1

 

 

Тип данных    Диапазон значений   Размер в байтах

 

BYTE

(целое длиной в байт)          0..255  1

Окончание табл. 1

 

SHORTINT

(короткое целое)        -128..127         1

 

INTEGER

(целое)            -32768..32767 2

 

WORD

(длиной в слово)       0..65535          2

 

LONGINT

(длинное целое)        -2147483648..2147483647     4

 

 

 

var

Примеры объявления целочисленных данных:

a:integer; c,d:byte; f:shortint; const step=1;

mm:word=65500;

 

Над      целыми           значениями    допустимы     следующие     операции        и функции:

sqr(x) – возведение в квадрат Х, abs(x) – модуль Х,

+ сложение,

- вычитание,

* умножение,

/ деление,

div – деление нацело,

mod – получение целочисленного остатка и др.

Рассмотрим действия двух последних операций:

12 mod 2 = 0, так как 12 делится на 2 без остатка.

13 mod 2 = 1, 12 div 2 = 6, 10 div 3 = 3.

Вещественный тип

 

Эта группа типов обозначает множество вещественных значений в различных диапазонах. Turbo Pascal поддерживает четыре различных вещественных типа, которые приведены в таблице 2.

 

 

 

Вещественный тип данных

Таблица 2

 

 

Вещественный                       Диапазон        Число цифр    Размер тип    десятичного порядка   мантиссы     в байтах

 

REAL

(вещественный)         -39...+39         11...12 6

 

SINGL

(с одинарн. точн.)     -45...+38         7...8     4

 

DOUBLE

(с двойн. точн.)         -324...+308     15...16 8

 

EXTENDED

(повыш. точности)    -4951...+4932 19...20 10

 

COMP

(сложный)      -263 +1...+263 -1        19...20 8

 

В  памяти ПЭВМ вещественное число занимает участок памяти в несколько байт (от 4 до 10), который имеет следующую структуру:

 

ЗНАК  ПОРЯДОК     МАНТИССА

 

Вещественные числа типа SINGLE, DOUBLE, EXTENDED могут быть использованы в программах, если в конфигурации ПЭВМ имеется математический сопроцессор. Однако, если в программе установить директивы   компилятора {$ N+}, {$ E+}, то программа с этими типами будет работать и без сопроцессора правильно.

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

-5.09

0.445

3.12Е-01 {эта запись обозначает число 3.12*10^-1 или 0.312}

4.5Е+10.

Рассмотрим примеры объявления данных вещественного типа.

const beg1=0.1234; en1:real=333E-11;

var

 

 

x,y,z : real;

 

 

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

sin(x), cos(x), arctan(x),

exp(x) {экспонента}, frac(x) {дробная часть}, int(x) {целая часть}, ln(x),

round(x) {округление Х до ближайшего целого}, sqrt(x) {корень квадратный}.

 

Логический тип

 

Данные логического типа могут принимать только два значения, которые обозначаются в программах как true и false, при этом считается, что true > false. Размер памяти для размещения значения логического типа определяется в один байт. Рассмотрим примеры объявления логических данных в разделе объявлений программы:

 

const a=true; var

b:boolean;

Для данных логического типа определены следующие логические операции

NOT – отрицание      NOT(True)=false;

OR – логическое сложение (ИЛИ)   True OR False = True; AND – логическое умножение (И)   False AND True = False; XOR – исключающее ИЛИ     True XOR True = False;

True XOR False = True;

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

 

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

'f'          'Б'        '='.

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

#10      #65 #13.

Для получения кода символа S можно применить функцию

ord(S).

С другой стороны любую величину символьного типа можно получить с помощью стандартной функции

chr(<Код символа>).

Над значениями символьного типа допустимы операции сравнения,

которые выполняются над кодами этих символов.

Рассмотрим пример объявления переменной символьного типа:

var cimv:char; const vsym='A';

 

Строковый тип

 

Данные строкового типа представляют собой последовательности символов  переменной     длины  (от  1  до  255).  Такие  данные  можно описывать в программах следующим образом:

var

vystr:string[18];{vysrt - 18 символов} str1:string[88];{str1- 88 символов} str2:string;{str2- 255 символов по умолчанию} const

one_str='PASKAL';

two_str='#13#70';

Фактическую длину  строки SS        можно определить     с          помощью стандартной функции length(SS).

К         любому           символу          строки можно обратиться     по        его       номеру,

например: str1[2],str2[200].

К строкам можно применять операцию сцепления или конкатенации

«+»:

vystr + one_str, 'Моя '+'программа',

а          также  операции        отношения,    которые          выполняются над      строками посимвольно слева направо с учетом кодов сравниваемых символов.

Рассмотрим некоторые функции,  определенные над  символьными данными:

copy(st,index,count) – функция копирует из строки st;

count символов, начиная с символа с номером index;

pos(subst,st) –  функция отыскивает в  строке  st  первое вхождение подстроки subst.

 

Контрольные вопросы

1. Что такое строки, какие стандартные функции применимы к ним?

2. Как изображаются и объявляются числа?

3. Что включают в себя имена данных?

4. Какие существуют способы определения данных?

5. Что такое тип данных и какие типы данных существуют в Turbo Pascal?

6. Диапазон значений типа BYTE, допустимые операции и функции для целых значений?

7. Из каких разделов состоит программа Turbo Pascal?

8. Какие допустимы операции над логическими данными, какие значения они могут иметь?

9. Для каких целей используют функции ORD и CHR?