Форматированный вывод в процедуре write (writeln)

Обычно, при выводе на экран действительный результат выглядит в виде числа с мантиссой (т. е. с «е» в своей записи). Это не всегда удобно. Во-первых, плохо читается. Во-вторых, выводится излишнее или наоборот недостаточное количество знаков. В таких случаях используют форматированный вывод (его еще называют форматным).

__

Синтаксис:

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?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: