Шпаргалка: Вопросы и ответы к экзаменам В-1
Целые числа: от –2147483648 до 2147483647
Вещественные числа: (экспоненциальная часть) 3.14E5
16-ричное число: $(код 36 в ASCII) $00000000- $F…$F(8)
Логическая константа: True, False.
Символьная константа: любой символ в ‘ ‘, либо указатель внутри кода #83=’S’
Конструктор множества - список элементов множества в [].
[1,2,3,4],[red, blue],[true, false]. В ТП разрешается объявление констант
const a=12/343;
15. Типизированные константы.
Типизированные константы фактически являются переменными со статическим классом памяти. В отличие от простых констант, в описании типизированных указывается как значение константы, так и её тип.
Существуют типы:
Константа, константа-адрес, константа-массив, константа-запись, константа-объект, константа-множество.
Указательный тип:
Type ptr = ^integer;
Conct intptr:ptr=nil;
Структурированный тип:
1 массив (array)
2 множество (set of 1..4)
3 запись (record)
4Объектного типа (object)
16. Оператор присваивания. Приоритет операций. Стандартные функции.
<имя переменной>:=<выражение>;
арифметические логические отношения прочие
1 NOT @-адресное преобразование
2 *,/,DIV,MOD AND,SHL,SHR
3 +,- OR, XOR
4 <;>;=; IN
Для повышения приоритета используются ( ).
Стандартные функции ТП.
ABS(X ) SQR(X) SQRT(X) TRUNG(X) ROUND(X)
COS(X) SIN(X) TG(X) ARCTANG(X) EXP(X)
LN(X) PRED(X) SUCE(X) ORD(X) CHR(X)
ODD(X) INT(X) FRAG(X) +,-,*,/ (X)DIV(Y)
MOD(X) NOT AND OR XOR
= < > I_SHL_J I_SHR_J
17. Операторы и функции безусловного перехода (goto, continue, exit, halt).
EXIT; - выход из программы или подпрограммы
HALT(COD);- (COD) – необязательный параметр, определяет код
HALT; - безусловная остановка программы
ERRORLEVEL; - вниз
BREAK; - досрочный выход из цикла
CONTINUE; - прерывает выполнение текущей операции в цикле, передаёт управление следующему оператору
18. Структуры простой и сложной программ в Турбо-Паскале.
PROGRAM<имя программы >;
USES<имя модуля>;
TYPE<раздел типов>;
LABEL<метки>;
CONST<константы>;
VAR<переменные и их типы>;
FUNCTION<имя функции>(имя переменной: тип)
BEGIN
операторы
END;
PROCEDURE<имя процедуры>( параметры)
BEGIN
операторы
END;
BEGIN
Текст основной программы
END.
19. Подпрограммы. Применение. Структура описания. Отличие процедуры от функции.
Самостоятельные, законченные фрагменты программы, оформленные особым образом, снабжённые именем – называются подпрограммами
Использование подпрограмм позволяет разбить программу на ряд независимых частей.
Подпрограммы используются:
1Для экономии памяти, когда некоторая последовательность действий встречается неоднократно на разных участках программы. Каждая подпрограмма существует в ед. экземпляре, но обращаться к ней можно неоднократно из разных точек программы.
2. В сложных программах при модульном проектировании.
Подпрограммы делятся на процедуры и функции
Результатом исполнения функции является единственное значение простого, строкового или указательного типа. Поэтому обращение к функции можно использовать выраженное наряду с константой и переменные.
Процедура обычно возвращает несколько значений, подпрограмма состоит из заголовка и тела подпрограммы.
Тело подпрограммы состоит из раздела описаний и раздела операторов.
Структура: PROCEDURE<имя процедуры >;
FUNCTION<имя функции>(параметр: тип);
USES<модули>;
LABEL<метки>;
CONST<константы>;
TYPE<типы>;
VAR<переменные>;
BEGIN
Тело подпрограммы
END;
20. Вложенные подпрограммы. Принципы локализации имен (локальные и глобальные переменные).
Вложенными являются подпрограммы, вызываемые из других подпрограмм.
Если какая либо программа использует некоторые переменные подпрограммы,
То данные переменные должны быть описаны не в подпрограмме, а в самой программе. Данные переменные называются глобальными, а переменные, объявленные в модуле или подпрограмме являются локальными, и значения этих временных нельзя использовать в главной программе.
21. Вызов подпрограмм (формальные и фактические параметры).
Подпрограммы могут быть вызваны как из тела основной программы, так и из тела другой подпрограммы. Для вызова необходимо написать имя процедуры или функции, а также, если надо, ряд переменных передаваемых в подпрограмму.
Пример:
PROCEDURE<имя>[(<формальные параметры>)];
FUNCTION<имя>[(<формальные параметры>)]:<тип>
Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.
PROCEDURE SB(a: real<формальный параметр>);
Фактические параметры – это глобальные переменные подставленные в формальные
ТИП ФАКТ=ТИП ФОРМ.
22. Процедуры без параметров и с параметрами.
PROCEDURE<имя>
Begin
<текст процедуры>
end;
23. Передача в подпрограмму параметров регулярного типа (массивов, строк).
Типом любого формального параметра может быть только стандартный или ранее объявленный тип.
Пример:
TYPE TYPE
ATYPE=ARRAY[1..10]OF REAL; INTYPE=STRING[15];
PROCEDURE S(A:ATYPE); OUTTYPE=STRING[30];
FUNCTION ST(S:INTYPE):OUTTYPE
Иной способ для передачи параметров переменных отключением контроля компиляции.
Открытый массив PROCEDURE I (A: ARRAY OF REAL);
24. Функции. Описание. Вызов функции.
FUNCTION<имя>[(<формальные параметры>)]:<тип>
Сразу за заголовками может следовать одна стандартных директив: ASSEMBLER <тело подпрограммы на ассемблере>, EXTERNAL<объявление внешней подпрограммы>, FAR, FORWARD, INLINE<встроенные машинные инструменты>, INTERRUPT,NEAR.
FUNCTION<имя функции>(параметр: тип);
Begin
<тело подпрограммы>
end;
25. Рекурсии. Прямая и косвенная рекурсия. Директива FORWARD.
Рекурсия – это такой способ организации вычислительного процесса при котором программа в ходе выполнения составляющих её операторов обращается сама к себе.
Для избежания переполнения стёка, следует размещать промежуточные результаты во вспомогательной переменной.
Begin
…………………………
F:=fac(n-1); - вспомогательная переменная
……………………….
End;
Рекурсивный вызов может быть косвенным, который разрешается опережающим описанием:
Procedure b(j: byte);
Forward;
Procedure a (i: byte);
Begin
B(i);
End;
26. Тип-диапазон. Структурированные типы. Массивы.
Любой из структурированных типов (а в ТП их 4 : массивы, записи, множества, файлы) характеризуется множественностью образующих этот тип элементов. В ТП
Допускается бесконечная глубина вложенности типов, однако Суммой=<65520 байт (т.к. каждый компонент может представлять структурированный тип).
PACKED- осуществляется везде где это возможно.
Тип диапазон:
TYPE
D = array [0..9] of char;
Var m: d;
Begin <операторы>end.
Обычно в качестве идентификатора типа используется тип–диапазон, в котором задаются границы изменения индексов.
Тип-диапазон подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона.
<мин. значение >..<макс. значение>
TYPE digit = ‘0’..’9’; можно Var date:1..31;
dig2=48..57; month:1..12;
1CHR:’a’..’z’;
High(x) – максимальное значение типа диапазон
Low(x) – минимальное значение типа диапазон.
Массивы - формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.д.), рассматриваемое как единое целое.
Var a: array [1..10] of real;
Компоненты массива состоят из данных одного типа (возможно структурированного).
В качестве идентификаторов порядковые типы кроме LongInt и типа диапазон с базисным типом LongInt/
27. Символьный тип.
Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапазоне 0..255.Это служит кодом внутреннего представления символа, его возвращает функция ORD. Для кодировки используется код ASCII – 7 битный код, т.е. с его помощью кодируется 128 символов (0..127). В то же время в 8-битном байте, отведённом для хранения символа в ТП, можно закодировать в 2 раза больше символов (0..255). (0-127ASCII, 128-255-может меняться на ПК разных типов).