Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / МУ1 ЛР ЯП.DOC
Скачиваний:
40
Добавлен:
15.04.2015
Размер:
600.06 Кб
Скачать

3. Выполнение работы

  1. Найти в текущем каталоге файл OPER.PAS, загрузить его и переименовать в LAB4x.PAS, где x - номер бригады.

  2. С помощью команд замены в загруженном файле заменить имена констант

    I0, i1, i2, x1, x2, x11, x12, u11, u21, u12, u13, u22, u23, n1, n2, n3, p

    на соответствующие значения из таблицы с вариантами заданий.

    Замечание 1: при замене использовать опции Case Sensitive, Prompt on Replace и Change All.

    Замечание 2: перед каждой заменой возвращаться в начало текста.

    Замечание 3: имя константы Х1 входит в имя Х11 и Х12, поэтому для того, чтобы избежать ошибок, лучше вначале выполнить замены для Х11 и Х12, а потом для Х1.

    Замечание 4: при замене имен констант U12, U13, U22 и U23 на соответствующие значения перед значением надо поставить знак доллара $ (это 16-ричные константы)

  3. Выполнить полученную после замен программу в отладочном режиме. Перед началом выполнения каждого пункта сделать следующие действия:

  4. Очистить окно Watch.

  5. В окно Watch занести то, что перечислено после фразы "Выражения для исследования".

  6. В отчет переписать название пункта и исполняемые операторы.

  7. Справа от операторов (выполняемых строк) пункта в отчете заготовить таблицу, число строк которой равно числу выполняемых строк в пункте, а число колонок - числу наблюдаемых в окне Watch выражений.

После каждой выполняемой строки пункта занести в заготовленную таблицу данные из окна Watch.

Замечание 5: при компиляции для некоторых строк программы в операторах присваивания вида

u12 := $FADB;

могут появиться сообщения о выходе значения за границы диапазона. В этом случае надо в правой части оператора присваивания выполнить приведение типа вида

u12 := INTEGER($FADB);

Замечание 6: могут встретиться пункты, не содержащие выполняемых строк. В этом случае надо лишь заполнить таблицу значениями из окна Watch.

4. Текст программы oper.Pas

Program Test;

Var

i0, { Целые операнды }

i1, { Целые операнды }

i2, { Целые операнды }

i3, { Целые операнды }

j: integer; { Целые операнды }

b1,b2 : boolean; { Операнды отношений }

x1, { Операнды отношений }

x2 : real; { Операнды отношений }

x, { Для операций округления}

y : real; { Для операций округления}

u1, { Операнды поразрядных }

u2, { операций }

n, { Для сдвигов }

m : word; { Маска }

BEGIN

{---------------------------------------------}

{ 1. Арифметические операции }

{---------------------------------------------}

{Выражения для исследования

Watch: i1

i2

i0

i1 / i2

i1 mod i2

i1 div i2 }

i1 := I1;

i2 := I2;

i0 := I0;

{------------------------------------------------------------}

{ 2. Операции увеличения и уменьшения }

{------------------------------------------------------------}

{Выражение для исследования

Watch: i1 }

inc(i1,i0);

dec(i1,i0);

i1 := i1 + i0;

i1 := i1 - i0;

{-----------------------------------------------------------}

{ 3. Операции над байтами целых чисел }

{ и функции с целыми числами }

{-----------------------------------------------------------}

{Выражения для исследования:

Watch: i1,x

Hi(i1),x

Lo(i1),x

Swap(i1),x

Ord(i1)

Odd(i1)

j }

Randomize;

j := random(i1);

{-------------------------------------------------}

{ 4. Логические операции }

{-------------------------------------------------}

{ Выражения для исследования

Watch: b1

b2

not b1

b1 and b2

b1 xor b2

b1 or b2 }

b1 := false; b2 := false;

b1 := false; b2 := true;

b1 := true; b2 := false;

b1 := true; b2 := true;

{---------------------------------------------}

{ 5. Операции отношений }

{---------------------------------------------}

{Выражения для исследования

Watch: x1

x2

x1 < x2

x1 <= x2

x1 > x2

x1 >= x2

x1 = x2

x1 <> x2 }

x1 := X1;

x2 := X2;

x1 := X2;

x2 := X1;

{-------------------------------------------------------}

{ 6. Логические операции с отношениями }

{--------------------------------------------------------}

{Выражения для исследования

Watch: x1

x1 >= X11

x1 < X12

(x1 >= X11) and (x1 < X12)

x1 < X11

x1 >= X12

(x1 < X11) or (x1 >= X12) }

x1 := X11 - 1;

x1 := (X11 + X12) div 2;

x1 := X12 + 1;

{-----------------------------------------------------}

{ 7. Поразрядные логические операции }

{------------------------------------------------------}

{Выражения для исследования

Watch: u1

u2

u1 and u2

u1 or u2

not u2

u1 xor u2 }

u1 := U11;

u2 := U21;

{---------------------------------------------}

{ 8. Операции сдвигов }

{---------------------------------------------}

{Выражения для исследования

Watch: n

u1,x

u1 shr n ,x

u1

u1 shr n }

u1 := U12;

n := N1;

u1 := U13;

{Выражения для исследования

Watch: n

u1 ,x

u1 shl n ,x

u1

u1 shl n }

u1 := U22;

n := N2;

u1 := U23;

{Выражения для исследования

Watch: n

i1 ,x

i1 shr n ,x

i1

i1 shr n }

i1 := U12;

n := N1;

i1 := U13;

{Выражения для исследования

Watch: n

i1,x

i1 shl n,x

i1

i1 shl n }

i1 := U22;

n := N2;

i1 := U23;

{-------------------------------------------------------}

{ 9. Изменение отдельного разряда слова }

{-------------------------------------------------------}

{

Выражения для исследования

Watch: m,x

not m,x

u1,x

}

m := 1 shl P;

u1 := u1 and (not m);

u1 := u1 or m;

{----------------------------------------------------}

{ 10. Работа с группой разрядов слова }

{----------------------------------------------------}

{Выражения для исследования

Watch: not 0 ,x

(not 0) shl N3, x

not ((not 0) shl N3), x

m, x

not m, x

u1, x }

m := not (((not 0) shl N3) shl (P-N3+1));

u1 := U12;

u1 := u1 and (not m);

u1 := U12;

u1 := u1 and m;

{-----------------------------------------------------}

{ 11. Округления вещественных чисел }

{-----------------------------------------------------}

{Выражения для исследования

Watch: x

y

j }

x := 1.0; j:=round(x); y:=int(x); y:=frac(x);

x := 1.45; j:=round(x); y:=int(x); y:=frac(x);

x := 1.5; j:=round(x); y:=int(x); y:=frac(x);

x := 1.55; j:=round(x); y:=int(x); y:=frac(x);

x := 1.95; j:=round(x); y:=int(x); y:=frac(x);

x := 2.05; j:=round(x); y:=int(x); y:=frac(x);

END.

Соседние файлы в папке WORD