Смекни!
smekni.com

Вопросы и ответы к экзаменам В-1 (стр. 2 из 6)

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.

PROCEDURESB(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];

FUNCTIONST(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.

Обычно в качестве идентификатора типа используется тип–диапазон, в котором задаются границы изменения индексов.

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

<мин. значение >..<макс. значение>

TYPEdigit = ‘0’..’9’; можно Vardate: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-может меняться на ПК разных типов).

0-31 – служебные коды (пробелы)

28. Строковый тип. Операции, процедуры и функции

Значением строкового типа является любая последовательность символов, т.е. строка. Окончанию строки соответствует символ с кодом 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. Перечисляемые типы. Функции и операции, применимые к ним.

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

именуются идентификаторами и располагаются в списке с ( ).

Typecol = (red, white, blue);

Max=65536 значений;

Ord (red) =0;

Var c: col;

C:= col(0);

С:=red;

В идентификаторах нельзя использовать кириллицу. Переменные так же можно объявлять без предварительного описания типа

Var col: (black, white, green);

33. Множества и операции над ними.

МНОЖЕСТВА - наборы однотипных логически связанных друг с другом объектов. Характер связей между объектами подразумевается лишь программистом и не контролируется Турбо Паскалем. Количество элементов в множестве может меняться от 0 до 255. Множество, которое не содержит элементов, называется пустым. От массивов множества отличаются тем, что количество элементов в нем не постоянно. Его можно расширять и сокращать по ходу выполнения программы.