Название: Алгоритмы и программы (Афанасьева Т. В.)

Жанр: Информационные системы и технологии

Просмотров: 1352


2.5. вывод на экран

 

Общий вид процедур выводa:

Write(V1[:W1[:D1]],...,Vn[:Wn[:Dn]]);

Writeln(V1[:W1[:D1]],...,Vn[:Wn[:Dn]]);

 

В квадратных скобках – необязательные части процедур. Процедура вывода writeln обеспечивает завершение печати текущей строки и переход к следующей строке;

V1,...,Vn –выражения, значения которых выводятся на печать;

Wi и Di – выражения целого типа, определяющие соответственно общее число позиций и число позиций после запятой (Di – только для значений выражений вещественного типа).

Примеры операторов вывода значений переменных a, s, d целого типа.

а) ...write(a,s); write(d);...

Все числа печатаются на одной строке. Предположим, a=12, s=-25, d=7. Тогда напечатанная строка будет иметь вид:

12-257

Аналогичный результат можно получить, написав одну процедуру

write(a, s, d).

б) ...writeln(a,s); write(d);...

Значения a и s печатаются на одной строке. Следующая процедура вывода осуществляет печать со следующей строки. Результат печати:

12-25

7

в) ...write(a:2, s:7, d:4);...

В этом случае под значение переменной a отводится 2 позиции, под

s – 7 позиций, под d – 4 позиции, т. е.

12        –25      7

Если количество указанных позиций недостаточно, то происходит автоматическое увеличение поля до необходимых размеров.

г) ...write('A=',a:2,' S=',s:7,' D=',d:4);...

Здесь используется возможность вывода строк символов. При этом будет напечатано:

A=12   S=-25  D=7

 

Рассмотрим вывод значений вещественных чисел.

В случае задания общего количества позиций под выводимую величину можно задать и количество позиций после запятой.

Пусть A, S, D – переменные вещественного типа, A=123,456; S=23456,7; D=-3,4567.

д) ...writeln(a:6:2, s:9:2, d:8:4);...

Печать:            123,45 23456,70 –3,4567

е)  Если  указывается общее  число  позиций (W)  и  не  указывается число позиций после запятой (D), то числа выводятся в экспоненциальной форме с шириной поля W.

ж) ...writeln(a, s, d);...

Ширина поля стандартная, числа выводятся в экспоненциальной форме:

1.2345000000E+03

2.3456700000E+04

-3,456700000Е+00

При выводе значений символьного типа под каждый символ отводится 1 позиция, например, оператор writeln('S1=',s1:5,' S2=',s2); напечатает   (Если символьной переменной s1 в программе присвоено значение '*', а s2 – 'W') следующую строку:

S1= *   S2=W.

При выводе значений булевского типа на печать выводится TRUE или FALSE. Например, процедура writeln(a<s); напечатает слово TRUE, если значение переменной a<s, и слово FALSE в противном случае.

 

 

 

const

Пример 2.5.

a1=12; a2=234; a3=–2; x1=1342.567; x2=0.00234; s1='*';

s2='–'; str1='информатика'; str2='наука'; log=false;

begin

writeln('Вывод значений данных...');

writeln('            ...целого типа:'); write(a1,' ',a2,' ',a3); writeln(a2,a3);

write(a1);

writeln(a1:5,a2:7,a3:3); {под значение переменной a1 отводится 5 позиций,

под a2 – 7 позиций, под a3 – 3 позиции}

writeln('            ...вещественного типа:');

write(x1);

writeln(' ',x2);

write(x1:6:2,x2:8:3);                  {задается количество позиций под выводимые величины и количество позиций после запятой}

writeln(x2:4,x1:5);

writeln('            ...символьного типа:');

writeln(s1,s2);

writeln(str1,' ',x1:4); write(log); write(a2:7,x2:3); writeln(str1,s2,str2); write(a1>x2);

end.

 

Контрольные вопросы

1. Напишите оператор ввода целой переменной К с клавиатуры.

2. Для каких целей используется оператор присваивания?

3. Чем отличается именованная константа от типизированной?

4. Какие существуют способы ввода случайных значений?

5. Какие типы данных в Turbo Pascal нельзя вводить с клавиатуры?

6. Напишите оператор вывода вещественного Х в формате три знака до и два после запятой.

7. Какие существуют способы ввода значений данных?

8. Чем должны заканчиваться объявления и операторы?

9. Опишите форматный вывод.

10. Чем отличаются операторы ввода READ и READLN?

11. Чем отличаются операторы вывода write и writeln?