Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на экзаменационные билеты по информатике.doc
Скачиваний:
47
Добавлен:
10.05.2014
Размер:
277.5 Кб
Скачать

2) Условные переходы

Команда cmpимеет 2 операнда и предназначена для их сравнения. Результат сравнения помещается в регистр флагов и может быть использован командамиj*. Командыj* имеют 1 операнд – имя метки, к которой следует перейти, если выполняется заданное именем команды условие.

ja– перейти если больше (безннаковое сравнение)

jb– перейти если меньше (беззнаковое сравнение)

jg– перейти если больше (знаковое сравнение)

jl- перейти если меньше (знаковое сравнение)

je– перейти если равно

Если после jпоставить “n”, то получится отрицание, например:jne– если не равно,jna– если не больше. Если в конец команды дописать “e’”, то это будет иметь смысл «или равно»:jae– больше или равно,jle– меньше или равно.

3) Массивы и строки в паскале

Массив– это тип данных, описывающий упорядоченный набор однотипных элементов.

Var имя_массива:Array [первый_индекс..последний_индекс] of тип;

Строки Строка (строковая переменная) представляет собой набор упорядоченных символов. Для задания строковой переменной используется тип string:

program StringDemo;

var s: string;

var s64: string[64];

var c: char;

Над строками работают следующие операции: выбор сивола [] (по аналогии с массивом, символы имеют тип char и всегда нумеруются с 1) и конкатенация (сложение). Также при работе со строками полезно знать следующие встроенные функции и процедуры:

  • Функция Length(s) – получает текущую длину строки

  • Функция Copy(s, pos, len) – получает фрагмент данной строки. Фрагмент состоит из символов, начиная с pos, в количестве len. Copy(‘12345’, 2, 3) = ‘234’.

  • Функция Pos(s1, s2) – ищет строку s1 в строке s2, возвращает номер первого вхождения, либо 0. Pos(‘def’, ‘abcdefdef’) = 4. Pos(‘foo’, ‘bar’) = 0.

  • Функция PosEx(s1,s2,offs) – ищет строкуs1 в строкеs2 начиная с символа с номеромoffs.Pos(‘def’,’abcdefdef’, 5) = 7.

  • Процедура Insert(s1, s2, pos) – вставляет строку 2 в строку 1 начиная с позиции pos. a: = ‘13’; Insert(a, ‘2’, 2); даёт a = ‘123’.

  • Процедура Delete(s, pos, len) – удаляет из строки s len символов, начиная с pos-того. a := ‘123’; Delete(a, 2, 1); даёт a = ‘13’.

  • Функция Ord(c) – возвращает кодASCIIуказанного символа.Ord(‘0’) = 48.

  • Функция Chr(n) – возвращает символ, соответствующий указанномуASCIIкоду.Chr(87) = ‘W’.

Функции OrdиChrполезны при переводе символов ‘0’ – ‘9’ в значения 0 – 9, и наоборот.

Билет 14

1) Арифметические операции в С:сложение +, вычитание -, умножение *, деление /, остаток %. Оператор присваивания «=».

Операторы сравнения: ==, !=, <, <=, >, >= и логические операции && (AND), || (OR), ! (NOT).

2) Флаги

Команда cmp(отличающаяся отsubтолько тем, что не сохраняет результат) и математические операции влияют на флаги процессора.

ZF: результат = 0

CF: при сложении или вычитании произошел перенос из старшего двоичного разряда, например

Для проверки флага используются команды условного перехода jcc:

jz label ; перейти если ZF = 0

jc label ; перейти если CF = 0

Для других флагов команды аналогичны (OFjo,PFjp,AFja). Для управляющих флагов (IF,DF) таких команд нет. CF – флаг переноса; AF – флаг четности; ZF – флаг вспомогательного переноса; SF – флаг знака; TF – флаг трассировки; IF – флаг разрешения прерывания; DF – флаг направления; OF – флаг переполнения.

Соседние файлы в предмете Информатика