Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Турбо Паскаль.doc
Скачиваний:
61
Добавлен:
23.09.2019
Размер:
939.52 Кб
Скачать

Лабораторная работа №2 Ввод данных и вывод результатов

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

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

Таблица 2.1

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

Тип

Тип

Диапазон

Объём

Примеры записи

данных

Паскаля

значений

памяти, Байт

На Паскале

Обычная

Целый

Byte

0…255

1

125

125

Integer

–32768…32767

2

–1025

–1025

LongInt

–2147483648… …2147483647

4

500000

500000

Вещест-

Real

2,910-39…1,71038

6

2.0

2,0

венный

Single

1,510-45…3,41038

4

–358.742

–358,742

Extended

3,410-3942…1,1104932

10

–3.58742E+02

–3.58742102

Логичес-кий

Boolean

False True

1

True False

Истина Ложь

Символьный

Char

Набор символов кодовой таблицы

1

‘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 на клавиатуре.

Операторы записи (вывода); Write, 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 для выражения числа =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.