Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по информатике.doc
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
108.54 Кб
Скачать

21. Типы данных в языках пр-ия. Числовые и строковые переменные и операции с ними.

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

В языке Pascal для описания типа в общем случае исп-ся след-й формат:

type

<имя типа>=<зн-е типа>;

Все типы д. м/разделить на 2 гр.: скалярные, структурированные(составные)

Скалярные делятся на стандартные, пользовательские. Стандартные предлаг-ся польз-лям разраб-ные сис-мы.К ним относятся: целочисленные, вещественные, литерные, булевские(логич) и указатели.

Польз-ие разраб-ся самим польз-ем.

Перечень типов данных Turbo Pascal:*простые типы:порядковые, целые(byte,shoring, integer,word,longint), логический тип(boolean), символьный(char), перечисляемые, интервальный, вещественные(real, singl, dable,extended,comp), ссылочный тип.*структурированные типы: строковые(string), регулярный(array), комбинированный(record), множественный(set), файловый(faile).

К скалярным т.д. относят т.д. таких величин, зн-е к-х не содержат составных частей.

Целочисленные т.д. предст-ют собой зн-е, к-е м/использовать в арифметических выражениях и занимать в памяти от 1 до 4 байт. byte(0 до 256),string(-128 до 127),integer(-32768 до 32767),word(0 до 65535(216)),longint(-2147483648 до 2147483647(224)).

Для описания переменных конкретного типа испол-ся след-й формат:

Var

x,y:byte;

z:integer;

Над целоч. данными определены арифметич. операции:+,-,*,/,div-целочисл. деление, mod-остаток от деления. z mod2=1, 7div2=3.

Определены опер. отношения:=,<,>,<>.Определены стандартные ф-ии: odd(x)-для четного false(ложь), нечетн., suce(x)-возвр. след число, pred(x)-возвр. предыд.число, ord(x)-возвр аргумент, abs(x)-модуль, sqr(x)-x2? dec(x,i)-уменьш.x на i, inc(x,i)-увел. x на i.

Вещественные т.д. предст-т собой вещ-е зн-е, к-е используется в арифмет. выражениях и занимают от 4 до 6 байт. real(2,9*10-39 до 1,7*1038), singl(1,5*10-45 до 3,4*1038)? dable(5*10-324 до 1,7*10308).Вещ-е числа м/отображ. с плавающей и фиксированной точкой. фикс. 7,32.плавающ 7.3Е-01 <мантиса>Е<порядок>.

Над данными вещ. типа определены арифм. опер. +,-,/, опер. отн., стандартные матем-е .Ф-я tranc(x)- преобразует вещ. аргум. x в целочисл. путем отбрасывания дробной части, round(x)-округляет до ближайшего целого.

Литерный символьный тип char опред-ся множ-ом зн-й кодовой табл. комп-ра.Каждому символу присваивается целое число от 0 до 256. Для кодировки исп-ся табл. ASCII(Америк-й стандартный код обмена инф-ции).0 до 128-межд., 128 до 256-национ. коды.

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

В опер. присваивания 2 типа явл.совмест.:*если оба тождественны;*оба типа явл. совместимыми скалярными типами и зн-е второго типа попадает в диапозон возможных зн-й первого;*первый вещественный, второй-целочисленный;*первый тип строковый, второй-литерный.

К структурным типам относятся строки, массивы, множества, записи и файлы.

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

type

<имя типа>=array[тип индекса]of<тип компонента>;

Var

<идентификатор>:имя типа

Массив б/разной размерности:*одномерные-предст-ют прямоугольную табл.

a:array[1…10] of integer;

a[1],a[2],…,a[10] – мы имеем

*двумерный – матрица

x:array[1…2,1…3] of real

x[1,1] x[1,2] x[1,3]

x[2,1] x[2,2] x[2,3] мы определяем

Множество-струк-й т.д., предст-ет собой набор взаимосвязанных по какому-либо признаку объектов, к-е можно рассм-ть как единое целое. Каждый объект наз Эл-м множества, к-й принадлежит к базовому типу, заваемым перечислением. Область зн-й типа мн-ва – набор всевозможных подмн-в, составленных из эл-ов базового типа. В выражениях мн-ва указыв-ся в [ ]. Пр.[1 2 3], [‘a’…’z’]

Кол-во эл-ов во мнве наз. мощностью.

type

<имя типа>=set of <эл-т1>,…,<эл-тN>;

Var

<идентификатор>:имя типа

Пр. type

Namber=set of 1…31;

Над мн-ми допустимы операции отношения, объединения, пересечения, разности мн-в и операции in.

Запись-стр-й т.д., состоящий из фиксирован-го числа компонентов одного или неск-х типов.Запись начинается идентификатором record и заканчивается end, м/д ними заключен список компонентов, наз-х полями.

type

<имя типа>=record

<идентиф-р поля>:<тип поля>;

<идентиф-р поля>:<тип поля>;

end;

Пр.определить запись, хар-ая владельца машины.

type

Car=record

Marca:string;

Nomer:integer;

FIO:string;

Adres:string;

end;

Обращение к компоненту поля происходит ч/з <имя идентиф-ра>. имя поля.

Пр. Var

a:Car;

a/FIO:=’Петров И.В.’;

a/Marca:=’Ваз’ ;

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

Var

<идентиф-р переменной>:file of <тип компонента>

Для работы с файлом вводится спец. файловая переменная, к-я считается представителем файла.F:file of integer; -описан файл. содержащий целые числа.

Списки-послед-ть символов кодовой табл. п.к., заключается в апострофы. Кол-во символов в строке м/динамически изменятся от 0 до 255 символов. Формат описания:

type

<имя типа>=string[максим. длина строки<255]

Пр.Car=string[25];

Var

a:Car;

x:string; по умолч-ю макс. длина

Строка трактуется как цепочка символов.К любому символу м/обратиться, указав его номер. В самом начале под 0 номером нах-ся байт, содержащий зн-е текущей данной строки. x[3]-третий символ строки. Строковые выражения состоят из строковых констант, переменных, указателей ф-й и операции. Операция сцепления + применяется для сцепления строк в одну результирующую. ‘a’+’t388’ – ‘at388’.

Операция отношения проводит сравнение двух стр-х оперантов и имеет приоритет более низкий.

Сравнение строк произ-ся слева направо до первого не совпадающего символа, и та строка больше, в к-й первый несовпадающий символ имеет больший номер стандартной табл. обмена инф-ции. Оператор присваивания служит для присваивания строк. переменной строкового выр-ия.x:=a[3]+’мир’

Строковые процедуры и функции:*Del(st,poz,n)-удаление n символов строки st начиная с позиции poz. *Integer(st1,st2,n)-вставка строки st1 в строку st2 начиная с позиции n. *Str(I,st)-преобразует числового зн-я I в строку st. *Val(sr,I,code)-преобразует строку st число I коды-переменная, равная 0 если преобразование произошло б/ошибки, в противном случае б/нах-ся номер первого ошибочного символа. *Copy(st,poz,n)-выделяет из st подстроку длиной n-символов начиная с позиции poz. *Concate(st1,st2,…stn)-сцепление строки. *Length(st)-вычисляеттекущую длину строки st. *Pos(st1,st2)-обнаруживает первое появление в строку st2 подстроки st1, рез-т равен номеру той позиции, где нах-ся первый символ подстановки st1. *UpCase(ch)-преобразует строчную букву в прописную.