Обычно, при выводе на экран действительный результат выглядит в виде числа с мантиссой (т. е. с «е» в своей записи). Это не всегда удобно. Во-первых, плохо читается. Во-вторых, выводится излишнее или наоборот недостаточное количество знаков. В таких случаях используют форматированный вывод (его еще называют форматным).
__
Синтаксис:
Write(<имя переменной>:a:b);
или
Writeln(<имя переменной>:a:b);
__
где a – количество позиций, отводимых под число на экране, b – количество знаков после запятой. Обычно мы не знаем результат, который нужно вывести, следовательно, а - заранее неизвестно, поэтому пишут:
__
write(<имя переменной>:0:b);
или
writeln(<имя переменной>:0:b);
__
Здесь 0 разрешает машине самой определить, сколько позиций необходимо отвести под вывод числа.
Данную операцию логично применять для вещественных чисел. В результате на экране число будет выведено в формате с фиксированной точкой (т. е. обычная запись математики).
Например: если после выполнения строки x:=sqrt(24); записать write(x), то на экране будет «4.8989794856е+00» (это формат с плавающей точкой), а если записать write(x:0:2), то «4.90» (это формат с фиксированной точкой).
Практика
Задачи на операторы ввода \ вывода
Вывести на экран свои фамилию, имя, отчество.
__
Решение:
Program z1;
Begin
Write(‘Иванов Иван Иванович’);
End.
__
После ввода программы с клавиатуры для запуска нажать [ctrl]+[F9], для просмотра результата [alt]+[F5]. Если перед «end.» написать readln; или readkey; (плюс подключить модуль CRT) нажатие [alt]+[F5] не понадобится.
Написать программу, которая вводит 3 числа, складывает их и выводит результат.
__
Решение:
Program z2;
Var a, b, c, sum: integer;
Begin
Read(a, b, c);
Sum: =a+b+c;
Write(‘sum=’, sum);
End.
__
Описание раздела var и типов представлено в следующем параграфе.
Написать программу, которая выводит на экран каре из звездочек.
********
*** ***
*** ***
********
__
Решение:
Program z3;
Begin
Writeln(‘********’);
Writeln(‘*** ***’);
Writeln (‘*** ***’);
Write (‘********’);
End.
__
Задачи на оператор присваивания
4.Поменять между собой значения двух переменных, воспользовавшись третьей.
__
Решение:
Program z4;
Var a, b, c: integer;
Begin
Read (a, b);
c: =a; a: =b; b: =c;
write (a,’ ‘, b);
end.
__
Данная процедура обмена двух переменных с использованием третьей стандартна. Вопрос: а как быть, если нужно поменять значения переменных, не используя третьей? Тогда фрагмент обмена может быть, например, таким:
Read(a, b); { в результате, например, a=10, b=15}
a:=a+b; {в результате a=10+15=25, b=15}
b:=a-b; {в результате a=25, b=25-15=10}
a:=a-b; {в результате a=25-10=15, b=10}
После выполнения данных операторов, значения переменных поменялись. Подумайте, а как еще можно поменять значения двух переменных, не используя третьей?
Обратите внимание, что обмен значений переменных без использования третьей возможно лишь в случае целых чисел. Подумайте почему, так нельзя делать, если числа вещественные?
Присвоить переменной n ее собственное значение, увеличенное в n раз.
__
Решение:
Program z5;
Var n: integer;
Begin
Read(n);
n: =n*n;
write (n);
end.
__
Как вы думаете, какое максимальное значение в данной программе можно присвоить n?