Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмы и алгоритмические языки. Учебное пособие
.pdf
51
переменной будет присвоено значение .
2. В математике выражение бессмысленно,
поскольку тождество ложно. В программировании это означает, что к
значению, хранимому в ячейке А, прибавляется 1, и вновь полученное
значение заменяет старое в ячейке А. Например, после выполнения
действий
А:=1;
А:=А+110;
переменная А примет значение 111.
3. Математически выражение вполне
обосновано и может означать, что при подстановке некоторых
числовых значений вместо и в левую часть выражения получим
значение .
В программировании это выражение, не имеет смысла, т.к. левая
часть выражения должна содержать имя области памяти, которой
присваивается значение, вычисляемое в правой части. Данное
выражение должно быть записано так, чтобы в левой части была
записана вычисляемая переменная: .
Процедуры ввода-вывода
В языке Паскаль стандартным средством общения человека и
ЭВМ являются предопределенные файлы INPUT и OUTPUT, которые
по умолчанию являются параметрами программы. Программа получает
входные данные из файла INPUT и помещает результат обработки в
файл OUTPUT. Стандартно файлу INPUT назначена клавиатура, а
файлу OUTPUT – экран терминала.
Для выполнения операций ввода-вывода служат четыре
процедуры: READ, READLN, WRITE и WRITELN.
Процедура чтения READ обеспечивает ввод числовых данных,
символов, строк и т.д. для последующей их обработки программой.
Формат:
READ (XI, Х2, … , ХN);
или
READLN (XI, X2,..., XN);
где Х1, Х2, ..., ХN – переменные допустимых типов данных.

52
Значения XI, Х2,..., ХN набираются минимум через один пробел
на клавиатуре и высвечиваются на экране. После набора данных для
одной процедуры READ нажимается клавиша ввода ENTER [3].
Значения переменных должны вводиться в строгом соответствии
с синтаксисом языка Паскаль. Если соответствие нарушено (например,
XI имеет тип INTEGER, а при вводе набирается значение типа CHAR),
то возникают ошибки ввода/вывода.
Пример.
VAR
I : REAL;
J : INTEGER;
К : CHAR;
BEGIN
READ (I, J, K);
. . .
Например:
Первый набор вводимых данных: 12.01 –10 ‘@’
Второй набор вводимых данных: ‘@’ 12.01 –10
При вводе данных в первом случае программа выполнится, а при
втором – компьютер выдаст сообщение о несоответствии типов данных
переменным.
Если в программе имеется несколько процедур READ, данные для
них вводятся потоком, т.е. после считывания значений переменных для
одной процедуры READ данные для следующей процедуры READ
набираются в той же строке, что и для предыдущей, до окончания
строки, затем происходит переход на следующую строку.
Пример.
VAR
А, В, SUM_1 : INTEGER;
С, D, SUM_2 : REAL;
. . .
BEGIN
READ (A, B);
SUM_1:= A + B;
READ (C, D);
SUM_2:= С + D;
…
END.

53
Процедура чтения READLN аналогична процедуре READ,
единственное отличие заключается в том, что после считывания
последнего в списке значения для одной процедуры READLN данные
для следующей процедуры READLN будут считываться с начала новой
строки.
Замена оператора READ на READLN позволит перевести курсор
на новую строку для ввода значений переменных C и D после ввода
значений A и B.
READLN (А, В);
SUM_1:= А + В;
READLN (С, D);
SUM_2:= С + D;
Оператор WRITE выводит числовые данные, символы, строки и
булевы значения.
Формат:
WRITE (Yl, Y2, ...,YN) ;
или
WRITELN (Yl, Y2,...,YN);
где Yl, Y2,...,YN – выражения типа INTEGER, BYTE, REAL, CHAR,
BOOLEAN и т.д.
Пример.
USES CRT;
VAR
S, A, B, D: INTEGER;
BEGIN
CLRSCR;
WRITELN ('Исходные данные: a, b, d'); READ (A, B, D);
WRITE (597); {Выражение представлено значением}
WRITELN;
WRITELN (A–B*2); {Выводится результат выражения}
S:= A+B+D;
WRITE ('S=', S);
READKEY
End.
Результат:
'Исходные данные: a, b, d
2 4 6
597
–6

54
S=12
Результат выполнения программы должен быть понятным
пользователю. Например, действительные числа необходимо
выводить в алгебраической форме, как число с десятичной точкой. В
записях нужно использовать пробелы, отделяющие числа от текста и
др. Для этого в языках программирования используются форматы
вывода данных.
При использовании форматов для вывода вещественных (REAL)
данных на экран около имени, выводимого данного явно указывается
размер поля для размещения его значения (после знака «:»), в
виде , где – выводимое значение переменной, – количество
позиций, отводимое числу, включая десятичную точку, знак числа;
– количество позиций, выделяемое для дробной части выводимого
числа. Для вывода целых чисел используется формат , где –
выводимое значение, – количество позиций , отводимое для числа
Например:
WRITELN (P:14); – для вывода целого значения переменной P
отводится 14 позиций;
WRITELN (P:8:3); – для вывода вещественного значения
переменной P отводится всего 8 позиций, включая знак числа и
десятичную точку, три из которых отводится для вывода дробной
части числа.
Если переменная , то в первом случае на экране
появится 1.23468E+0003, а во втором – .
Если вывод числа определен форматом WRITELN (P:0:7), то на
экране выводится число 1234.6789.
Для вывода целого числа , воспользуемся
форматированным выводом числа в 8 позициях. Число займет три
крайние позиции справа, остальные позиции останутся свободными.
Пустые позиции указаны знаками нижнего подчеркивания:
_ _ _ _ _ –57
Для вывода n пробелов между данными используется оператор
вывода, в котором указываются пустые апострофы:
WRITE (' ':n);
Например, оператор WRITE ('S', ' ':6, 'T'); выводит на экран
символы S и T через 6 позиций:

55
S _ _ _ _ _ _ T
После оператора READ в программе для контроля введенных
значений исходных данных можно использовать эхо-печать.
Например:
READ (A, B, D); CLRSCR;
WRITE ('А=', А, 'В=', В, 'D=', D,);
Оператор-комментарий
Комментарии используются для пояснения текстов программы.
Комментарии должны быть краткими и простыми. При выполнении
программы ТР игнорирует все комментарии.
Комментарий – это любая последовательность символов,
заключенных в фигурные скобки {…}. Можно также использовать в
качестве ограничителей комментариев круглые скобки со звездочками
(*…*). Комментарий не определяет никаких действий программы,
записывается в любом месте и является лишь пояснительным текстом,
т.е. оператор-комментарий является невыполнимым оператором.
Длина комментария может быть любой.
Комментарии могут располагаться в любом месте программы и
использоваться для объяснения назначения программы, пояснять
смысл имен переменных и констант, описывать и объяснять
обособленные модули и непонятные этапы программ.
Удачное использование комментариев – признак хорошего стиля
программирования.
Оператор очищения экрана
Для того чтобы при каждом запуске программы компилятор не
выводил на экран предыдущие результаты выполнения программы,
необходимо в программе использовать оператор очистки экрана
CLRSCR (сокращенно от англ. CLEAR SCREEN – очистить экран).
Результатом выполнения данного оператора является: удаление всей
информации с экрана, окрашивание экрана в цвет фона, возвращение
курсора в левый верхний угол. Оператор CLRSCR стирает данные
только с экрана, не действует на данные, хранимые в памяти
компьютера.

56
Обычно CLRSCR помещается в начале программы, но в случае
необходимости его используют в любом месте программы.
Для того чтобы этот оператор работал, необходимо подключить
модуль CRT с помощью команды USES.
Процедура READLN и функция READKEY
В программе на Паскале часто используют процедуру READLN
или функцию READKEY без параметров в конце программы для
задержки экрана, чтобы увидеть результаты выполнения программы
на экране. До нажатия на любую клавишу результат остается на
экране. Использовать данные команды очень полезно для анализа
полученных результатов.
Если их не использовать, то после того как программа будет
выполнена экран сразу свернется, и мы не увидим сообщение,
выводимое на экран. Если эти операторы не использованы, то этом
случае, для того чтобы увидеть результаты выполнения программы
необходимо нажать на клавиши Alt+F5.
Пример 3.1. Найти площадь прямоугольника, если известны его
длина и ширина.
PROGRAM PR3.1;
USES CRT;
VAR
A, B, S: REAL;
BEGIN
CLRSCR;
WRITE ('A=');
READLN (A);
WRITE ('B=');
READLN (B);
CLRSCR;
WRITELN ('A=', A:5:2);
Вв. A, B
S=A*B
В. S

57
WRITE ('B=', B:5:2);
S:=A*B;
WRITELN ('S=', S:12:2);
READKEY
END.
Пример 3.2. Вычислить , где .
PROGRAM PR3.2;
USES CRT;
VAR A, B, X, Y, С, D: REAL;
BEGIN
CLRSCR;
WRITE ('A='); READLN (A);
WRITE ('B='); READLN (B);
WRITE ('C='); READLN (C);
WRITE ('D='); READLN (D);
CLRSCR;
WRITE ('A=', A:6:1, ' ': 4, 'B=', B:6:1,); (*Эхо печать*)
WRITE ('C=', C:6:2, ' ': 4, 'D=', D:6:2);
X:=C*D;
Y:=A*SQR(X)+B;
WRITELN('Y= ',Y:10:2);
READKEY
END.
Пример 3.3. В группе было n студентов, из них m человек
отчислили, k восстановили. Сколько студентов стало в группе?
Вв. a,b,c,d
x=cd
y=ax2+b
В. y
Вв. n,m,k
x=n–m
y=x+k

58
PROGRAM PR3.3;
USES CRT;
VAR M, N, K, X, Y: INTEGER;
BEGIN
CLRSCR;
WRITE ('КОЛИЧЕСТВО СТУДЕНТОВ В ГРУППЕ: ');
READLN (N);
WRITE ('ОТЧИСЛЕНО СТУДЕНТОВ: ');
READLN (M);
WRITE ('ВОССТАНОВЛЕНО СТУДЕНТОВ: ');
READLN (K);
X:=N – M;
Y:= X + K;
WRITELN ('Y= ', Y:2);
READKEY
END.
Пример 3.4. Написать программу для вычисления значения
функции
при .
PROGRAM PR3.4;
USES CRT;
VAR X, Z, F: INTEGER;
В. y
Вв.
B.

59
BEGIN
CLRSCR;
WRITE ('X=');
READLN (X);
Z:=X+1;
F:=SQR(Z)+3*Z;
WRITE ('F= ',F:10);
READKEY
END.
Результат:
X= 3
F= 28
Press any key to continue
Пример 3.5. Рассчитать значение S по формуле , где
.
PROGRAM PR3.5;
USES CRT;
VAR
X, Y: INTEGER;
T, S; REAL;
BEGIN
CLRSCR;
WRITE ('X=');
READLN(X);
WRITE ('Y=');
READLN(Y);
CLRSCR;
Вв.
B.

60
WRITE ('X=', X:6); {Эхо печать}
WRITE ('Y=', Y:6);
T:=LN(SQR(X)+SQR(Y))+SQR(COS(SQR(Y)*Y));
S:=SQRT(T*T+1);
WRITE ('T=',T:12:2, ' ':3, 'S=',S:12:2);
READKEY
END.
Пример 3.6. Рассчитать U по формуле , где
g,
при .
PROGRAM PR3.6;
USES CRT;
VAR
X, Y: INTEGER;
W, V, U: REAL;
BEGIN
CLRSCR;
WRITE ('X=');
READLN (X);
WRITE;
WRITE ('Y=');
READLN (Y);
W:=SQRT(EXP(X))+2*Y+3*SIN(X)/COS(X);
V:=(3*X+SQR(LN(2*Y))+3)/(EXP(X/2)+COS(Y*Y));
U:=V*V+W;
WRITE ('U =' U:10:2);
READKEY
END.
Вв.
g
B.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
