Лабораторная работа № КР 12.2
СТРУКТУРА ПРОГРАММЫ В ПАСКАЛЕ. ВВОД И ВЫВОД ДАННЫХ. ЛИНЕЙНЫЕ ПРОГРАММЫ
Цель работы: усвоить назначения и использование операторов ввода данных и вывода результата, оформления программы на Паскале, освоение программы с линейной структурой, используемых, как правило, для реализации обычных вычислений по формулам.
Краткие теоретические сведения
Программа на Паскале состоит из двух частей: описания используемых данных и операторов по их преобразованию. Вторая часть также называется программным блоком. Общий вид программы:
program (имя программы);
label (список меток);
const (список постоянных значений);
type (описания сложных типов данных);
var (описания данных программы);
begin (начало программного блока)
(алгоритм)
end. (конец программы)
Имя программы состоит не более чем из 8 знаков, начинается с буквы и содержит буквы, цифры и знаки подчеркивания. Программа начинается со слова program и заканчивается, словом end с точкой. Операторы, разделы и описания разделов заканчиваются точкой с запятой.
|
|
Описательная часть программы состоит из четырех разделов. Раздел меток label, раздел констант const и раздел типов type. Их использование будет рассмотрено в дальнейшем, по мере необходимости. Основным является раздел переменных var. В нем указываются имена переменных, используемых в программе, и их тип. Для числовых данных применяются основные описатели типов integer (целый) и real (вещественный). Например, в программе используются две целочисленные переменные и одна вещественная. Раздел переменных может иметь вид: var i,j: integer; x: real;
Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их тип. Описание каждого типа заканчивается точкой с запятой. Когда при переводе на язык машинных кодов транслятор встречает описание переменной, он отводит для этой переменной ячейку памяти и ставит в соответствие имени переменной номер первого байта ячейки. Программный блок содержит операторы, описывающие алгоритм решения задачи.
Для сообщения данных компьютеру служат операторы ввода и вывода. Оператор ввода помещает вводимое значение переменной в отведенную для нее ячейку. Оператор ввода: read (список имен) ;. Оператор read (читать) останавливает работу программы и ждет; пока пользователь наберет на клавиатуре число и нажмет <Enter>. Введенное число помещается в оперативную память, в отведенную ячейку. Если список ввода содержит несколько имен, то для каждого надо ввести свое значение. Числа вводятся или через пробел, или через запятую, или нажатием клавиши <Enter>. Например: read (i, j);требует ввода двух целых чисел. После работы этого оператора курсор располагается за последним числом, но не переводится на новую строку. Для перевода курсора на новую строку экрана дисплея после ввода данных надо использовать оператор readln (список имен);
|
|
Для вывода результатов работы программы на экран дисплея служит оператор write (список вывода) ;. Оператор write (писать) выводит данные на экран дисплея. Список вывода — перечисленные через запятую имена результатов или арифметические выражения, являющиеся результатом работы программы. Также в список вывода, для пояснения, входят заключенные в апострофы тексты. Например: write (‘x=‘, x) ;. Этот оператор напечатает на экране, начиная с той позиции, где находится курсор, текст, заключенный между апострофами, и значение переменной х из оперативной памяти. Значение будет выведено в форме вещественного числа с плавающей точкой. Чтобы число было выведено в форме с фиксированной точкой, надо после имени соответствующей переменной указать два целых числа, отделив каждое двоеточием. Первое из этих чисел показывает, сколько позиций занимает число (включая десятичную точку и знак числа). Второе равно количеству цифр дробной части числа. Например, для печати числа —23.57 как значения переменной x, оператор печати примет вид: write ( ‘x= ‘, x:6:2) ;. На экран будет выдано x=-23.57. Перевод курсора на новую строку осуществляется оператором пустого вывода writeln;. Если надо перевести курсор после печати, то применяется writeln (список вывода);
После вывода результатов работы программы на экран в Турбо Паскаль система так быстро возвращается в редактор текстов программы, что пользователь не успевает увидеть эти результате. Чтобы задержать изображение, в конце программы следует ставить оператор пустого ввода readln;
Например: Пусть требуется найти сумму, произведение и разность двух данных чисел. Для каждого из чисел надо придумать имя переменной и указать ее тип. Затем ввести эти числа в отведенные ячейки и, используя возможность оператора вывода содержать арифметическое выражение, напечатать результаты. program P1;
var a,b: real;
Begin
write (‘введите два числа через пробел, затем нажмите <Enter>‘);
readln (a, b);
write (‘ a + b = ‘, a + b, ‘a*b = ‘, a*b, ‘a - b = ‘, a- b);
Readln
End.
Служебные слова Паскаля, выделенные жирным шрифтом, при наборе текста программы на клавиатуре никак не выделяются, их различает транслятор (синоним — компилятор). Поэтому служебные слова нельзя использовать в качестве имен. Первый оператор программного блока выводит на экран подсказку для пользователя — что он должен сделать. Для ввода данных рекомендуется создавать подобные подсказки.
При решении задач имена присваиваются не только исходным данным, но и результатам, а также получаемым промежуточным значениям. Поскольку в рассматриваемом примере надо получить три результата, введем для них переменные x, у, z.. В программе этим переменным будут присвоены значения суммы, произведения и разности двух вводимых чисел.
program P2;
var a, b, x, y, z: real;
Begin
write (‘введите два числа через пробел, затем нажмите <Enter>‘);
readln (а, b);
x = а + b;
y = а - b;
z = а - b;
write (‘a + b = ‘, x, ‘ а * b = ‘, у, ‘ а - b = ‘, z);
Readln
End.