ТОП 10:

Ввод исходных данных и вывод результатов вычислений



 

Решение любой задачи на ЭВМ не обходится без операций ввода-вывода информации. Ввод данных – это передача информации с периферийного устройства в оперативную память для обработки. Вывод – обратный процесс, когда данные передаются после обработки из оперативной памяти на периферийное устройство, которым может служить монитор, принтер, магнитный диск и другие устройства.

Данные и результаты вычислений относятся к определённому типу. Тип данных определяет множество значений, которые могут принимать переменные, константы, функции, выражения; объём требуемой памяти и совокупность операций, допустимых над этими значениями. Все типы данных языка Паскаль можно разделить на простые и сложные (структурированные). К простым типам относятся целые, вещественные, логический, символьный. Сложные типы данных представляют собой различные комбинации простых типов (строки, массивы, множества, записи, файлы и др.). Основные простые типы данных представлены в табл. 4.1.

 

Таблица 4.1.

Характеристика простых типов данных языка Паскаль

Тип Тип Диапазон Объём Примеры записи
данных Паскаля значений памяти, Бт На Паскале Обычная
Целый Byte 0…255
  Integer -32768…32767 -1025 -1025
  LongInt -2147483648… 2147483647
Вещест- Real ±2,9×10-39…1,7×1038 2.0 2,0
венный Single ±1,5×10-45…3,4×1038 -358.742 -358,742
  Extended ±3,4×10-3942…1,1×104932 -3.58742E+02 -3.58742×102
Логичес-кий Boolean False True True False Истина Ложь
Символьный Char Набор символов кодовой таблицы ‘S’ ‘f’ ‘5’ ‘в’ ‘Я’ ‘%’ S f 5 в Я %
Строковый String Произвольная комбинация символов 1…255 ‘Паскаль’ Паскаль

Для выполнения операций ввода-вывода в алгоритмическом языке Pascal используются 4 оператора: Read; ReadLn; Write; WriteLn.

Операторы чтения (ввода) – Read, ReadLn – обеспечивают ввод данных (чисел, символов, строк и т.д.) для последующей обработки их программой. Ввод данных производится с клавиатуры или из файла.

Для ввода данных с клавиатуры используется оператор ReadLn(X);, где X – переменная допустимого типа. При исполнении этого оператора, выполнение программы будет приостановлено, от пользователя требуется набрать с клавиатуры данные, которые будут отображаться в позиции курсора, и нажать ENTER. Значение, набранное с клавиатуры, будет присвоено переменной X, выполнение программы будет продолжено, а курсор перейдет в начало следующей строчки на экране.

Тип вводимых данных должен строго соответствовать типу переменных. Если соответствие нарушено (например, Х1 имеет тип Integer, а при вводе набирается значение типа Char, String или Real, то возникают ошибки ввода-вывода. Сообщение об ошибке имеет вид: I/O error XX, где ХХ – код ошибки.

Для ввода данных из файла применяется оператор
Read(f, X1 [,X2,…,XN]);, где f – указатель на файл (переменная файлового типа). При этом выполнение программы не останавливается, а значение переменных X1, X2,…, XN считывается из файла на магнитном диске.

Оператор ReadLnможно использовать для организации пауз произвольной длины при выполнении программы. Для этого достаточно включить в программу оператор ReadLn;. Программа продолжит работу только после нажатия клавиши ENTER на клавиатуре.

Операторы записи (вывода); WriteLn производят вывод числовых данных, символов, строк и булевских значений на экран, в файл или на принтер. При использовании оператора Write курсор помещается за последним знаком выводимой переменной. Оператор WriteLn аналогичен оператору Write, но после завершения вывода для текущего оператора WriteLn происходит переход на новую строку на экране или принтере.

Формат команд для вывода:

· Вывод на экран: Write(X1 [,X2,…,XN]);WriteLn(X1 [, X2,…,XN]);

· Вывод в файл: Write(f, X1 [, X2,…,XN]);

· Вывод на принтер: Write(Lst, X1[,X2,…XN]);WriteLn(Lst, X1, [X2,…,XN]);

где X1, X2,…,XN – выражения простого типа (Char, Boolean, Integer, Real, String), или текстовая строка, заключённая в апострофы; f –файловая переменная. Здесь и далее необязательные параметры приводятся в квадратных скобках.

При выводе на принтер в секции Uses нужно указать модуль Printer:

Uses Crt, Printer;

Оператор WriteLn, записанный без параметров, вызывает переход на новую строку на экране или на принтере.

Задание форматов вывода данных

Вывод данных целого типа.

Write(X); Выводится значение Х, начиная с позиции курсора.
Write(X:n); Значение Х выводится в крайние правые позиции поля, шириной n символов.

Вывод данных действительного типа.

Write(X); В поле, шириной 18 символов выводится значение Х, в формате с плавающей точкой, начиная с позиции курсора. Используется формат #.#########E±##
Write(X:n); В поле, шириной n символов (n³7) выводится значение Х, в формате с плавающей точкой, начиная с позиции курсора. Используется формат #.#####E±##
Write(X:n:d); В крайние правые позиции поля, шириной n символов выводится значение Х, в формате с фиксированной точкой, причем после десятичной точки выводится d знаков (0£d£24).

 

Вывод данных символьного и строкового типа.

Write(X); Выводится значение Х, начиная с позиции курсора.
Write(X:n); Значение Х выводится в крайние правые позиции поля, шириной n символов.

Вывод данных логического типа.

Write(X); Выводится значение Х, в виде True или False, начиная с позиции курсора.
Write(X:n); Значение Х выводится в крайние правые позиции поля, шириной n символов в виде True или False.

В программах, основной целью которых является отладка алгоритма расчётов, исходные значения переменных можно задавать непосредственно в тексте программы, например:

Var

x:real;

n:integer;

s:string[15];

Begin

x:=10.5;

n:=100;

s:=’Turbo Pascal’;

End;

Упражнение 1.

Ввести текст программы, выполняющей расчёт площади круга по известному значению радиуса. В программе используется стандартная константа pi, для выражения числа p=3,1415….

Program Krug; Uses Crt; Var r,s:real;   Begin Readln(r); s:=pi*r*r; WriteLn(S); End.
При отсутствии ошибок в тексте программы она будет скомпилирована и выполнена. Результаты работы программы будут отображены в окне пользователя (для просмотра использовать Alt+F5).

Данная программа, с точки зрения языка PASCAL является синтаксически и логически правильной, обеспечивая правильный результат расчёта. Однако интерфейс программы нельзя считать удовлетворительным.

Для обеспечения удобства выполнения расчётов программа должна выводить сообщения о своём назначении, давать инструкции по вводу данных, и пояснения к результатам расчетов.

Следующий вариант той же программы демонстрирует простые способы улучшения интерфейса.

 

Program Krug;

Uses Crt;

Var

r,s:real;

 

Begin

ClrScr; { очищаем экран }

WriteLn(’Программа для вычисления площади круга’);

{ выводим информационные сообщения }

WriteLn(’Введите исходные данные’);

Write(’Введите величину радиуса, см R = ’);

Readln(r); { вводим значение r }

s:=pi*r*r; { выполняем расчет значения s }

WriteLn(’Результаты расчетов’);

{ выводим результаты с точностью 2 десятичных знака }

WriteLn(’Площадь круга с радиусом ’,r:8:2, ’ см равна ’,
S:8:2, ’ кв.см’);

{ организуем задержку выполнения программы до нажатия ENTER }

Readln;

End.

 

Результаты работы программы будут отображены в окне пользователя и останутся на экране, пока пользователь не нажмет клавишу ENTER.

 

 

 

Задания

 

1. Организовать ввод значений переменных: t – действительного типа; m и n - целого типа; ch – символьного типа; st – строки, длиной 15 символов. Сделать пояснения на экране для пользователя. Вывести значения этих переменных в одну строку, через два пробела, в следующем порядке: st, m, t, ch, n. Для t вывести 3 десятичных знака.

2. Вывести значения этих переменных в один столбец, выровненный по левому краю, в следующем порядке: n, ch, m, st, t.

3. Вывести значения этих переменных в один столбец, выровненный по правому краю. Правый край должен быть расположен в 15-й позиции строки. Переменные вывести в следующем порядке: n, ch, m, st, t.

4. Вывести 5 раз значение переменной t в столбец, выровненный по правому краю, количество десятичных знаков должно быть равно номеру строки.

5. Вывести в одну строку значения переменной t в трёх разных вариантах формата вывода действительных переменны, через 5 пробелов друг от друга.

6. Вывести 5 раз значение переменной ch в одну строку, с постепенным увеличением количества пробелов между значениями.

7. Вывести значения переменной n в центр 5-й строки и m в центр 8-й строки;

8. Вывести на экран горизонтальную линию на всю ширину экрана из знаков ‘-‘ (минус).

9. Вывести на экран пустую таблицу, состоящую из 4-х столбцов, шириной 10 знаков и 5 строк. Для изображения линий таблицы использовать знаки ‘-‘ (минус), ‘|‘ (вертикальная черта), ‘+‘ (плюс).

10. Вывести результат сравнения величин m и n.

11. Пронумеровать строки на экране.

12. Написать программу, которая для заданного целого числа a (2 £ a £ 10) выводит следующую таблицу

a

a a2

a a2 a3

a a2 a3 a4

Тема 5







Последнее изменение этой страницы: 2016-04-18; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.206.187.81 (0.01 с.)