- •1.Понятие алгоритма
- •3. Организация ввода-вывода в языках пр-ия.
- •4. Прогр-мы и процедуры в языках пр-ия.
- •13. Языки программ-я. Интерпретаторы и компиляторы.
- •15. Организация циклов в языках пр-ия.
- •18. Условный, безусловный переход, выбор в языках прогр-ия.
- •21. Типы данных в языках пр-ия. Числовые и строковые переменные и операции с ними.
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)-преобразует строчную букву в прописную.