Вычисление по формулам. Знакомство со средой Turbo Pascal 7.0
Лабораторная работа № 1
Цель лабораторной работы: освоить работу в интегрированной среде Turbo Pascal; освоить создание программы с линейным алгоритмом; научиться использовать процедуры вывода на экран.
Задание
Написать программу, вычисляющую заданное вариантом арифметическое выражение. Вывести на экран исходную формулу в виде традиционной математической записи с дробной чертой (см. пример выполнения). Вывод на экран реализовать в двух версиях: без использования форматирования и с форматированием. Выполнить программу по шагам (F7). Обратите внимание на то, что значения переменных автоматически не обнуляются. Подготовить письменный отчет по лабораторной работе.
Пояснения
Вывод на экран
Для вывода на экран используются стандартные библиотечные процедуры write и writeln. С их помощью можно выводить стандартные типы и строки. Работа этих двух процедур отличается только тем, что после выполнения процедуры writeln курсор переводится на новую строку. Описание процедур:
write (v1 [, v2, v3, …, vn]);
writeln (v1 [, v2, v3, …, vn]);
Эти процедуры могут иметь разное количество параметров v, перечисляемых через запятую. Параметром может быть либо строка символов, заключенная в апострофы, либо идентификатор переменной. Для управления размером поля, в которое выводятся данные, используют конструкцию
v:k
Целое число k здесь определяет ширину поля, причем выводимые значения прижимаются к правой границе. Если указанной ширины поля недостаточно, то она автоматически увеличивается до нужного значения. Если k не указано, то ширина поля совпадает с количеством выводимых символов.
Пример вызова процедуры (a и b – переменные, объявленные ранее и имеющие значения):
writeln(‘How do you do?’);
writeln(‘How do you do?’:40);
writeln(a);
writeln(a,b);
writeln(a:5);
writeln(‘How do you do?’:40, a, b:10);
Для вещественных чисел можно определить количество цифр в дробной части, используя конструкцию вида v:k:l. Параметр l должен быть целым числом. Если он равен 0, то дробная часть и десятичная точка не выводятся. Если для вещественного числа при выводе не указаны параметры k и l, то оно выводится в виде мантиссы и порядка.
Возможно даже отсутствие параметров. В этом случае вызов процедур выглядит так:
write;
writeln;
Результатом writeln будет перевод строки, а работа процедуры write вообще не приведет к изменениям на экране.
Логические значения выводятся как TRUE и FALSE.
Порядок выполнения
1) Получить вариант задания у преподавателя
2) Выполнить ручной расчет по формуле с точностью до трех разрядов после запятой.
3) Написать и отладить первую версию программы (с выводом на экран без форматирования)
4) Написать и отладить вторую версию программу (с форматированием при выводе на экран, результат должен содержать 4 разряда после запятой, значения переменных a и b – один разряд после запятой)
5) Подготовить отчет
6) Представить распечатку отчета преподавателю, защитить отчет (ответить на вопросы преподавателя по проделанной работе), показать выполнение программы по шагам и изменения значений переменных в окне просмотра.
Пример выполнения
Задание: , a =2.4, b = 2,5
Схема программы состоит из следующих частей:
Заголовок программы
Объявление переменных
begin
Присваивание переменным начальных значений
Расчет по формуле
Вывод результата на экран
end.
Объявим три вещественные переменные.
var a,b,y: real;
Начальные значения зададим с помощью оператора присваивания:
a:=2.4;
b:=2.5;
После выполнения расчета значение переменной b изменится, поэтому сохраним его в другой переменной:
y:=b;
Оператор, который выполнит расчет, выглядит следующим образом (обратите внимание на скобки): b:=a/(a+b);
При записи формулы, в которой есть умножение, в программе необходимо ставить знак умножения. То есть формула, математическая запись которой выглядит таким образом: b=a(a+b), в программе должна быть записана так: b:=a*(a+b);. Возведение в степень в данной лабораторной работе реализуйте через умножение (a*a).
При выводе на экран исходной формулы и результата нам понадобятся три вызова процедуры writeln, каждая из которых будет печатать на новой строке. Первая процедура печатает числитель дроби, вторая – середину формулы и числовой результат, а третья – знаменатель дроби:
writeln(a);
writeln('b = --------- = ',b);
writeln(a,' + ',y);
После этого блока операторов напишем вызов процедуры readln, которая будет ждать нажатия любой клавиши. Это необходимо, чтобы можно было посмотреть результат вывода на экран.
Мы выполнили минимально необходимые действия, с помощью которых можно получить требуемый результат. В итоге получился следующий текст программы:
program numberOne_v1;
var a,b,y: real;
begin
a:=2.4;
b:=2.5;
y:=b;
b:=a/(a+b);
writeln(a);
writeln('b = --------- = ',b);
writeln(a,' + ',y);
readln;
end.
После ее выполнения на экране будет напечатано:
Очевидным недостатком является трудно читаемое представление вещественных чисел. Здесь мы видим мантиссу и порядок вещественного числа. Обратите внимание на отрицательный порядок у результата.
Добавим форматирование при выводе и получим вторую версию программы:
program numberOne_v2;
var a,b,y: real;
begin
a:=2.4;
b:=2.5;
y:=b;
b:=a/(a+b);
writeln(a:10:1);
writeln('b = ----------- = ',b:3:4);
writeln(a:8:1,' + ',y:1:1);
readln;
end.
После ее выполнения на экране будет напечатано:
Чтобы проверить значения переменных во время выполнения программы, используют окно watch (пункт меню window). Переменные добавляют в это окно по одной, используя клавишу ins.
Для выполнения программы по шагам, надо нажать клавишу F7. Каждое нажатие клавиши приведет к выполнению одного оператора программы. При этом значения переменных в окне будут меняться после работы соответствующих операторов.
Требования к отчету
Отчет должен содержать:
1) Титульный лист
2) Номер варианта и текст задания
3) Ручной расчет по формуле с точностью до трех разрядов после запятой
4) Листинг первой версии программы (без форматирования)
5) Копию экрана с результатом работы первой версии программы
6) Листинг второй версии программы (с форматированием)
7) Копию экрана с результатом работы второй версии программы
Варианты заданий
Для всех вариантов a =2.4, b=2.5.
Вариант | Формула | Вариант | Формула |