Процедуры вывода
Процедура outimageДанная процедура выводит принудительно содержимое буфера во внешний файл. При этом буфер заполняется пробелами, указатель позиции устанавливается в единицу.
Процедура OUTCHAR. Параметром данной процедуры является символ. Данный символ выводится в буфер данных, при этом указатель позиции увеличивается на единицу.
Процедура OUTTEXT. Процедура служит для вывода текстового значения, на которое указывает фактический параметр. Если в качестве параметра указано текстовое значение, то выводится значение фактического параметра. Если длина выводимой строки больше, чем оставшаяся в подстроке буфера, то сначала выводится буфер, а затем значение фактического параметра процедуры.
Процедура OUTINT. Параметрами данной процедуры являются целое число, предназначенное для вывода, и число символов для представления данного числа.
Процедура OUTFIX. Процедура OUTFIX (A, N, L) предназначена для вывода вещественного числа А. В зависимости от значения N формируется различная запись числа. Если N=0, то число А выводится как целое, если N>0, то N указывает число знаков после десятичной точки. Полученная запись округляется до N-го десятичного знака.
Процедура OUTREAL. Процедура OUTREAL (A, N, L) предназначена для ввода чисел, представленных в виде числа с плавающей точкой. Число (N - 1) задает число символов в мантиссе, L – общее число знаков числа.
Рассмотрим программу вывода графика функций. Будем предполагать, что исходные данные для функции хранятся во внешнем файле в следующем виде:
1 строка - <заголовок графика>
2 строка - <шаг вывода по оси Х> <символ обозначения графика> <начальное значение Х> <число точек>
3 строка - <значение Y> < значение Y > …
……………………….
……………………….
N строка < значение Y >
Размер блока файла – 80 байтов. Максимальное число точек – 100.
‘begin’
‘integer’ n, i; ‘ref’ (infile) vvod; ‘integer’ ‘array’ iy [1; 100];
‘text’ zag; ‘real’ ‘array’ y [1; 100];
‘real’ d.x0; ‘character’ c; ‘real’ ymin.ymax;
vvod:- ‘new’ infile (‘’graf’’);
vvod.open (blanks (80));
zag:- blanks (80);
zag:= vvod.intext(80);
d:= vvod.inreal;
c:= vvod.inchar;
x0:= vvod.inreal;
n:= vvod.inint;
‘for’ i:=1 ‘step’ 1 ‘until’ n
‘do’ y [i]:=vvod.inreal;
ymin:= y [1]; ymax:= y [1];
‘for’ i:=2 ‘step’ 1 ‘until’ n
‘do’
‘begin’
‘if’ y [i] > ymax ‘then’ ymax:= y[i];
‘if’ y [i] > ymin ‘then’ ymin:= y[i];
‘end’;
‘for’ i:=1 ‘step’ 1 ‘until’ n
‘do’
iy [i]:= y[i]/(ymax - ymin)*40;
‘comment’ вывод графика;
‘for’ i:=1 ‘step’ 1 ‘until’ n
‘do’
‘begin’
outfix (x0+d*(i -1),5,9);
outchar (“i”);
image.setpos (10+iy [i]);
outchar (c); outimage;
‘end’
‘end’
Исходные данные и результат работы программы приводится ниже:
ЗАГОЛОВОК
0.1* 0 10
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
ЗАГОЛОВОК
0.00000I *
0.10000I *
0.20000I *
0.30000I *
0.40000I *
0.50000I *
0.60000I *
0.70000I *
0.80000I *
0.90000I *
Основная литература
1. Дал У.И., Мюрхауг Б., Нюгард К. Симула-67. Универсальный язык программирования. – М.: Мир, 1969 – 99 с.
2. Андрианов А.И., Бычков С.П., Хорошилов А.И. Программирование на языке Симула-67. – М.: Наука. Глав. ред. физ.-мат. лит., 1985 – 288 с.
3. Федоров Н.В. Языки моделирования. Симула-67. – М.: МГГУ, 1987 – 87 с.
Дополнительная литература
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.