Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Вывод данных на экран

В операторе вывода (выдачи) на экран Write указывается перечень констант, переменных и выражений (последние позволяют не использовать переменных для хранения значений и делают программу нагляднее).

Оператор WriteLn отличается от оператора Write тем, что после его исполнения курсор переводится на начало следующей строки экрана.

При выводе на экран оператором Write или WriteLn чисел и строк между ними вставляются разделители. Но программа может сама форматировать представление выводимых в файл данных, в частности, определять, в какой форме будет представлено вещественное число, сколько позиций отводится на представление чисел. Для каждого из выводимых данных можно указывать формат вывода - ширину поля (число позиций), отводимого для изображения значения. Формат вывода в общем случае задается выражением и отделяется от выводимого значения символом ":".

Укажем основные форматы вывода.

1) . Для значений X целочисленного типа Write(X: р) выводит X в крайние правые позиции поля шириной р.
2) . Для значений X вещественного типа Write^Y: р) выводит X в формате с плавающей точкой в крайние правые позиции поля шириной р.
3) . Для значений X вещественного типа Write(A': р: q) выводит^ в формате с фиксированной точкой в крайние правые позиции поля шириной р, причем для представления дробной части отводится q цифр.
4) . Для значений X символьного или логического типа Write(A": р) выводит X в крайние правые позиции поля шириной р.

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

При выводе на экран рекомендуется использовать форматированный вывод данных - с указанием комментариев к ним, удобным для просмотра их размещением на экране, с подходящим для выдаваемых значений форматом вывода.

Следующая программа демонстрирует выполнение арифметических операций с вещественным типом real. При ее тестировании следует обратить внимание на результаты выполнения операций с "приграничными" значениями операндов и эффект форматированного вывода вещественных чисел. Пользоваться форматом вывода нужно аккуратно, поскольку, при выводе вещественного числа происходит "усечение" дробной части до указанного числа позиций, так что можно увидеть "неправильные" результаты.

program d_3_3;
{ ЗАДАЧА: Выполнение арифметических операций с операндами вещественного типа real. Форматный и бесформатный вывод вещественных чисел
ПРИЕМЫ
- бесформатный вывод (в экспоненциальном виде) отражает внутренний формат значения вещественного типа, поэтому рекомендуется его использовать для получения объективной информации о значениях этого типа,
- форматный вывод рекомендуется использовать только в том случае, если место под изображение числа и его дробной части должно быть ограничено, например, в таблицах

РЕКОМЕНДАЦИИ
-реализовать выполнение этих же операций с вещественными типами double, extended, comp,
-провести эксперимент с заданием различных форматов, в том числе задаваемых выражениями} uses Crt;
var А, В: real; {описание вещественных переменных} begin ClrScr;
WriteLn('_ Демонстрируется выполнение арифметических',
' операций с операндами типа real'); WriteLn('3Ha4eHHH данных типа real задаются'); WriteLn(' - с фиксированной точкой (например, 456.123)');
WriteLn(' - с плавающей точкой (например, 4.56123Е-2)');
WriteLn('BHyTpeiiHHtt формат типа real - 11 значащих цифр');
WriteLn(' с диапазоном десятичного порядка [-39, +38]');
WriteLn(' (Посмотрите результаты операций', ' при различных значениях операндов)'); Write('3aflafiTe значение первого операнда = ');
ReadLn(A);
Write('Зaдaйтe значение второго операнда =');
ReadLn(B);
WriteLn ('вывод результатов выполнения операций ');
WriteLn(' Бесформатный вывод результатов;');
WriteLn(A, ' + ', В, ' = ', А + В);
WriteLn(A, '-', В, ' = ', Л-В);
WriteLn(A, ' * В, ' = А * В);
WriteLn(A, ' / ', В, ' = ', А / В);
WriteLn(' Вывод результатов в формате : 10:5');
WriteLn(A: 10: 5, ' + В: 10: 5, ' =');
WriteLn(' =', А + В: 10: 5);
WriteLn(A: 10:5, '-', В: 10: 5, ' =');
WriteLn(' ='¦ А-В: 10:5);
WriteLn(A:10:5, ' * ', В: 10: 5, ' = ');
WriteLn(' =', А* В: 10:5);
WriteLn(A: 10:5, '/', В: 10:5, ' =');
WriteLn(' =', А/В: 10:5);
ReadLn;
end. {Program d 3 3}

Ниже приводится результат выполнения этой программы для заданных значений:
Демонстрируется выполнение арифметических операций с операндами типа real

Значения данных типа real задаются
- с фиксированной точкой (например, 456.123)
- с плавающей точкой (например, 4.56123Е-2)

Внутренний формат типа real -11 значащих цифр с диапазоном десятичного порядка [-39, +38]
(Посмотрите результаты операций при различных значениях операндов)
Задайте значение первого операнда = 1е—10
Задайте значение второго операнда = 1е-7
Бесформатный вывод результатов:
1.0000000000Е-10 + 1.0000000000Е-07 = 1.0010000000Е-07
1 .ООООООООООЕ-Ю - 1.0000000000Е-07 = -9.9900000000Е-08
1.0000000000Е-10* 1.0000000000Е-07 = 1.0000000000Е-17
1.0000000000Е-10/ 1.0000000000Е-07 = 1.0000000000Е-03

Вывод результатов в формате :10:5
0.00000+ 0.00000 =
= 0.00000
0.00000- 0.00000 =
= -0.00000
0.00000* 0.00000 =
= 0.00000
0.00000/ 0.00000 =
= 0.00100

Контрольные задания

Упражнения

1. Модифицируя программу d_3_2, показать особенности выполнения арифметических операций с операндами целочисленных типов byte, shortint, word, longint и целочисленных интервалов.
2. Модифицируя программу d 3 3, показать особенности выполнения арифметических операций с операндами вещественных типов double, extended, сотр.
3. Используя программу d 3 3, провести эксперимент с заданием различных форматов при выдаче целых и вещественных чисел, в том числе форматов, задаваемых с использованием выражений.
4. Модифицируя программы d_3_2 и d_3_3, показать особенности выполнения всех операций арифметических типов.
5. Изучить результаты всех программ данной главы, сделать выводы.
6. Написать и включить в модуль Inputs процедуры контролируемого ввода для других типов.
7. Написать и включить в модуль Inputs процедуры контролируемого ввода из текстового файла.

Контрольные задачи

1. Вычислить синус и косинус угла, задаваемого в градусах.
2. Описать простейшие операции с буквами латинского и русского алфавитов - найти предыдущую, следующую, расстояние между буквами.
3. Возвести целое число в целую степень с использованием минимального числа операций умножения.
4. Показать особенности выполнения операции присваивания для значений вещественных типов.
5. Показать особенности вычислений констант всех типов.
6. Показать особенности выполнения операции Read при чтении значения, не соответствующего типу переменной.
7. Продемонстрировать машинное представление числовых данных различных типов (меню типов), операций с ними (меню операций).
8. Продемонстрировать (пошагово, автоматически и с задержкой) порядок вычисления выражений (арифметических и логических).
9. Продемонстрировать выполнение операций с числовыми данными. Выдавать результаты этих операций с информацией о причинах и видах прерываний при выходе за границы допустимого множества значений.

Вопросы по теме

1. Цели структурирования программ.
2. Компоненты структурирования программ на языке Турбо Паскаль.
3. Цели модуляризации пользовательских программ.
4. Описание модуля языка Турбо Паскаль, его части, объекты и их назначение.
5. Понятие подпрограммы, назначение и разновидности подпрограмм в Турбо Паскале.
6. Понятие блока в Турбо Паскале, глобальный и локальный блок.
7. Назначение и расположение комментариев в программе.
8. Структура блока - разделы, их назначение, порядок расположения.
9. Скалярные типы данных в Турбо Паскале, средства их задания, стандартные и конструируемые скалярные типы данных.
10. Целочисленные скалярные типы, внешнее и внутреннее представление их значений, операции.
11. Вещественные типы данных, представления их значений, операции.
12. Критерии выбора типа для описания арифметических данных в программе.
13. Преобразования целых типов в вещественные (явные и по умолчанию), их назначение и примеры.
14. Символьный тип данных - представление значений, операции, полезные использования.
15. Логический тип данных, применение и операции.
16. Порядковый тип данных, его назначение, операции, характерные примеры использования в операторах управления.
17. Интервальный тип данных, назначение, операции, характерные применения.
18. Перечислимый тип данных, назначение, возможные операции.
19. Нетипизированные константы, именованные и неименованные, их тип, операции, описание, использование.
20. Типизированные константы, назначение, описание, типы, характерные применения.
21. Описание раздела используемых в программе модулей, какие объекты модулей можно использовать.
22. Раздел описания типов данных, назначение именованных типов, конструкторы скалярных типов.
23. Понятие "тип данных" - область значений, представления значений, операции.
24. Понятие "переменная" - задание ее типа, использование в языковых конструкциях, локализация области использования.
25. Понятие "скалярное выражение", операнды, их совместимость, приоритет операций.
26. Указатель функции, его назначение и использование.
27. Стандартные функции со скалярными аргументами, примеры полезного использования.
28. Оператор присваивания для скалярных типов, условия совместимости типов его операндов, контроль выхода присваиваемого значения за границы диапазона, определяемого типом левой части.
29. Операции ввода данных с клавиатуры и вывода их на экран.
30. Приемы контролируемого ввода данных.
31. Распределение оперативной памяти при исполнении программы.




 

Комментарии:


Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru