Вопросы и ответы к экзаменам В-1 - (шпаргалка)
p>Значением строкового типа является любая последовательность символов, т. е. строка. Окончанию строки соответствует символ с кодом 0, и которые называются строками с завершающим нулём или ASCIIZ-строками.Строковый тип соответствует идентификаторам string и PChar. A: array[0...n] of char = a: string
Ord(0)=length(a)- длинна строки(не больше 255 символов)
Concat (S1 [s2 ..., SN])- сцепление строк
Copy (St, index, count) – копирует из строки ST символ, начиная с index Delete(ST, a, b) – удаление b символов начиная с a
Insert (sut, st, b)–вставляет SUT в ST начиная с b
Pos (Sut, St) - в строке ST отыскивает Sut если нет 0
Str (X [WIDTH [: DECIMALS]], ST)- из вещественного или целого в строку Val (st , x, code) – обратно str (пробелы не допускаются)
Var s: string;
Begin
…….
S: = ’dsfsdhfjhsdfjshdfjsd’;
……….
End.
29. Типы в Турбо-Паскале. Объявление новых типов. Порядковые типы. Изменение типа выражения
Стандартные типы в ТП:
1 группа целых типов(ShortInt, integer, LongInt, Byte, Word); 2 группа вещественных типов(Single, real, Double, Extended, Comp); 3 группа Булевские типы (Boolean, ByteBool, WordBool, LongBool); 4 Символьный тип(Char);
5 Строковые типы(String, PChar);
6 Указательный тип (Pointer);
7 Текстовый тип (Text);
Type =
Символьный тип, а также целые и булевские типы относятся к порядковым типам. Свойства:
1 Каждый элемент имеет свой порядковый номер
2 Поэтому возможен использование функцииOrd, возвращающей этот номер 3 Возможно применить функцию Pred и Succ которые верну соответственно предыдущее и последующее значения
30. Целые типы. Правила объявления. Применяемые функции.
Целые типы:
Byte 0...255 ShortInt –128...127 Word 0...65535 Integer –32768...32767 LongInt –2147483648... 2147483647
Вложение типов:
Type result = более мощный тип
A: integer;
LongInt(a);
Процедуры и функции:
ABS(X) CHR(X) DEC INC SQR HI(I)-старший байт
LOW(X) – младший байт ODD(I) – возвращает правда если нечет RANDOM(x) SWAP(I)- меняет местами байты
31. Логический тип. Логические операции и функции
Логический тип ещё называют булевским. Их 4:
Boolean(false=0, 1 байт); ByteBool (false=0, 1 байт); WordBool (false=0 в обоих байтах, 2 байта); LongBool (false=0 во всех байтах, 4 байта). Логические функции:
Ord; Pred; Succ; or ; and ; xor ;
32. Перечисляемые типы. Функции и операции, применимые к ним. Перечисляемый тип задаётся тем значениям, которые он может получить. Значения именуются идентификаторами и располагаются в списке с ( ).
Type col = (red, white, blue);
Max=65536 значений;
Ord (red) =0;
Var c: col;
C: = col(0);
С: =red;
В идентификаторах нельзя использовать кириллицу. Переменные так же можно объявлять без предварительного описания типа
Var col: (black, white, green);
33. Множества и операции над ними.
МНОЖЕСТВА - наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами подразумевается лишь программистом и не контролируется Турбо Паскалем. Количество элементов в множестве может меняться от 0 до 255. Множество, которое не содержит элементов, называется пустым. От массивов множества отличаются тем, что количество элементов в нем не постоянно. Его можно расширять и сокращать по ходу выполнения программы. Описание типа производится в разделе TYPE.
Структура:
=SET of ;
где - правильный идентификатор Турбо Паскаля; - тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, Integer, LogInt, ShortInt.
пример: TYPE dchar=SET of '1'...'9'; {базовый символьный тип-диапазон} digit=SET of 0...9;
Переменные этого типа описываются в разделе
VAR S1, S2, S3: dchar; S4, S5, S6, S7: digit;
Для задания множества может использоваться конструктор множества: список (спецификаций) элементов множества, отделенных друг от друга запятыми; список заключается в квадратные скобки. Спецификациями элементов м. б. константы или выражения базового типа, а также пример:
S1: =['1', '2', '3']; S4: =[0...3, 7];
S2: =['2', '1', '3']; S5: =[4, 6];
S3: =['1', '2']; S6: =[3...8]; S7: =[]; (пустое) Два множества считаются эквивалентными тогда и только тогда, когда все их элементы одинаковы причем порядок следования в множестве их безразличен. (S1 и S2 эквивалентны). Если все элементы одного множества входят в другое множество то говорят, что первое включено во второе. (S3 включено в S1). Пустое множество включено в любое другое.
Над множествами определены следующие операции:
1. * пересечение множеств; результат содержит элементы, общие для обоих множеств. (S4*S6 содержит [3, 7]; S4*S5 образует пустое мн. ). 2. + объединение множеств, результат содержит элементы первого множества, дополненные недостающими элементами второго.
S4+S5 содержит [0, 1, 2, 3, 4, 6, 7] S5+S6 содержит [3, 4, 5, 6, 7, 8] 3. - разность множеств, результат содержит элементы из первого множества, которые не принадлежат второму.
S6-S5 содержит [3, 5, 7, 8])
S4-S5 содержит [0, 1, 2, 3, 7]) []-S4 даст [].
4. Операции отношений:
= операция эквивалентности; возвращает значение TRUE, если оба множества эквивалентны; (S1: =S2; ['1', '2', '3']) =['2', '3', '1'] проверка неэквивалентности; (TRUE, если множества неэквивалентны); [1, 2]<>[1] S3<>S2
>= проверка вхождения (TRUE, если второе множество входит в первое; in - проверка принадлежности. Структура этой бинарной операции: in ; возвращает TRUE, если выражение имеет значение, принадлежащее множеству. пример:
3 in S6 TRUE; [] in [0...5] [] in S5
2*2 in S4 FALSE;
Множества имеют компактное машинное представление. Недостаток: невозможность вывода множества на экран, т. к. отсутствует механизм изъятия элемента из множества. Ввод множества возможен только поэлементно.
пример: Можно тип объявлять при описании переменных
VAR S: SET of char; {переменная-множество}
C: char; {элемент множества}
Begin
S: =[]; S: =#0; {обнуление значений}
while C '. ' do {цикл до ввода ". "}
begin
readln(C); {чтение символа в с}
S: =S+[C]; {добавление его к S}
end; ....
S: =S-['. ']; {исключение точки}
End. {Смотри задание на л. р. N 12 }
34. Оператор выбора CASE (варианта). Комментарии.
CASE OF
Const1: оператор;
Const2: оператор;
ELSE: оператор;
END;
35. Записи. Вложенные записи. Записи с вариантами.
Запись –это структура данных, состоящая из фиксированного числа компонент, называемых полями записи. В отличие от массива компоненты могут быть различного типа. Поля именуются:
=RECORDEND.
Type
Bd = record
D, m: byte;
Y: word
Var a, b: bd;
a: :=8;
a. day: =27; -доступ к компоненту
Для упрощения доступа к полям записи используют оператор записи With Withdo;
With c. bp do month: =9;
With c do with bp do month: =9;
c. bp. month: =9;
Вариантные поля
Type f= record
N: string;
Case byte of
0: (bp: string[30]);
1: (c: string[10], e: string[20], ed: 1...31)
end;
Имена должны быть уникальны, хотя возможно повторение на различных уровнях Вложенные поля:
Type bd =record
D, m: byte;
X: word;
End;
Var c: record;
Name: string;
Db: bd;
Begin if c. db. year=1939 then………...
End.
В качестве ключа переменная:
Type rec2=record
C: LongInt;
Case x: byte of
1: (d: word);
2: (e: record
case boolean of
3: (f: real);
3: (g: single);
‘3’: (c: word);
end;
end;