
- •Основы алгоритмизации и программирования.
- •2. Файл и связанные с ним понятия
- •3. Краткие сведения об интегрированной среде
- •4. Ввод и редактирование текста программы
- •4.1. Ис Турбо Паскаля и окна.
- •4.2. Работа с исходными файлами в окне редактирования
- •4.2.1. Возможные режимы редактирования
- •4.2.2. Приемы работы с клавиатурой
- •4.3. Работа с блоками
- •4.4. Поиск и замена фрагментов текста
- •5. Работа с файлами
- •5.1. Создание нового исходного файла
- •5.2. Загрузка существующего файла
- •5.3. Сохранение файла
- •5.4. Перезапись файла
- •6. Интерактивная помощь.
- •7. Выполнение работы
- •8. Содержание отчета
- •Лабораторная работа № 2 подготовка программ к выполнению в среде турбо паскаля
- •1. Средства ис для компиляции программ
- •1.1. Команда Compile
- •1.2. Команда избирательной компиляции Make
- •1.3. Команда общей компиляции Build
- •1.4. Команда назначения первого файла Primary file
- •1.5. Команда Clear primary file
- •1.6. Команда получения общего состояния Information
- •2. Исправление синтаксических ошибок в программе по сообщениям компилятора
- •2.1. Классификация сообщений компилятора
- •2.2. Определение места ошибки в программе
- •2.3. Определение причины ошибки
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •Лабораторная работа № 3 выполнение программ в среде турбо-паскаль
- •1. Структура простейших линейных программ
- •2. Экраны и окна, поддерживаемые ис
- •3. Режимы выполнения программ в ис и курсор выполнения
- •4. Команды ис для выполнения программ
- •5. Дополнительные возможности по прерыванию выполнения программы
- •5.1. Использование точек останова
- •5.2. Использование клавишCtrl-Break
- •6. Правила ввода исходных данных
- •7. Порядок выполнения работы
- •Исходный текст программы lab3.Pas
- •8. Контрольные вопросы.
- •Лабораторная работа № 4 операции в языке турбо паскаль
- •1. Порядковые типы и операции над ними
- •1.1. Целые типы
- •Поразрядное “не”
- •Поразрядное “и”
- •Поразрядное “или”
- •Поразрядное “исключающее или”
- •1.2. Булевский тип
- •2. Выражения в языке Паскаль
- •Приоритет операций
- •3. Выполнение работы
- •I0, i1, i2, x1, x2, x11, x12, u11, u21, u12, u13, u22, u23, n1, n2, n3, p
- •4. Текст программы oper.Pas
- •5. Контрольные задания
- •6. Варианты заданий для лабораторной работы
- •Содержание
3. Выполнение работы
Найти в текущем каталоге файл OPER.PAS, загрузить его и переименовать в LAB4x.PAS, где x - номер бригады.
С помощью команд замены в загруженном файле заменить имена констант
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-ричные константы)
Выполнить полученную после замен программу в отладочном режиме. Перед началом выполнения каждого пункта сделать следующие действия:
Очистить окно Watch.
В окно Watch занести то, что перечислено после фразы "Выражения для исследования".
В отчет переписать название пункта и исполняемые операторы.
Справа от операторов (выполняемых строк) пункта в отчете заготовить таблицу, число строк которой равно числу выполняемых строк в пункте, а число колонок - числу наблюдаемых в окне 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.