- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Введение
- •Лабораторная работа №1 Создание простейшей программы
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске:
- •Задание 2
- •Задание 3
- •Задание 4
- •Лабораторная работа №2 Ввод данных и вывод результатов
- •Задания
- •Лабораторная работа №3 Программирование линейных алгоритмов
- •Задание
- •Лабораторная работа №4 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Лабораторная работа № 5 Программирование циклических алгоритмов с известным числом повторений
- •Задание
- •Лабораторная работа №6 Программирование циклических алгоритмов с неизвестным числом повторений
- •Задания
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Лабораторная работа №7 Программирование алгоритмов итерационной циклической структуры
- •Задание
- •Лабораторная работа №8 Массивы
- •Лабораторная работа №9 Процедуры и функции пользователя в языке Паскаль
- •Задание
- •Лабораторная работа №10 Записи
- •Задания
- •Лабораторная работа №11 Работа с файлами
- •Лабораторная работа №12 Графический режим в языке Паскаль
- •Лабораторная работа №13 Построение графика функции
- •Задания
- •Лабораторная работа №14 Создание движущихся изображений
- •Задание 1
- •Задание 2
- •Лабораторная работа №15 Вычисление определённого интеграла численными методами
- •Метод прямоугольников
- •Метод трапеций
- •Метод Симпсона
- •Задания
- •Лабораторная работа №16 Решение нелинейных уравнений численными методами
- •Метод половинного деления
- •Метод Ньютона
- •Метод хорд
- •Задания
- •Лабораторная работа №17 Решение обыкновенных дифференциальных уравнений численными методами
- •Метод Эйлера
- •Модифицированный метод Эйлера
- •Метод Рунге-Кутта
- •Задание
- •Приложение
- •Список литературы
- •Оглавление
- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Архангельск
Лабораторная работа №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,910-39…1,71038 |
6 |
2.0 |
2,0 |
венный |
Single |
1,510-45…3,41038 |
4 |
–358.742 |
–358,742 |
|
Extended |
3,410-3942…1,1104932 |
10 |
–3.58742E+02 |
–3.58742102 |
Логичес-кий |
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 символов (n7) выводится значение Х в формате с плавающей точкой, начиная с позиции курсора. Используется формат #.#####E## |
Write(X:n:d); |
В крайние правые позиции поля шириной n символов выводится значение Х в формате с фиксированной точкой, причем после десятичной точки выводится d знаков (0d24) |
вывод данных символьного и строкового типа:
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.