Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Процедуры ввода-вывода данных



Для организации ввода и вывода информации в языке программирования Pascal служат четыре процедуры: Read и ReadLn, Write и WriteLn. Эти процедуры являются " встроенными" в язык Pascal, поэтому для того, чтобы ввести информацию в оперативную память компьютера для дальнейшей обработки, программисту не надо писать специальную программу, а всего лишь нужно обратиться к процедуре Read или ReadLn. Соответственно, чтобы вывести информацию на дисплей из оперативной памяти компьютера, необходимо вызвать процедуру Write или WriteLn.

 

Процедуры ввода-вывода данных

Процедуры ввода (или чтения информации) Read или ReadLn обеспечивают ввод числовых данных, символов, строк и т.д. для последующей их обработки программой. Синтаксис процедуры Read и ReadLn:

Read (X, Y); ReadLn (X, Y);

где X, Y - переменные, описанные в разделе описания переменных.

Отметим, что указанные процедуры Read и ReadLn аналогичны, единственное отличие заключается в том, что после ввода значений переменных, указанных в списке процедуры ReadLn, ввод значений переменных, указанных в списке следующей процедуры ReadLn, будет производиться с новой строки. Этого не происходит в ходе выполнения процедуры Read, т.е. ввод осуществляется на той же строке. Таким образом, процедура ReadLn не только вводит значения указанных переменных, но еще и переводит курсор на новую строку. Это позволяет делать суфикс Ln.

 

Процедура вывода данных

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

Синтаксис процедуры Write и WriteLn:

" Слепой" вывод значений переменных.
Write (X, Y); WriteLn (X, Y);
Вывод результата выражения.
Write (X+Y); WriteLn (X+Y);
Форматированный вывод значения переменной
Write (X: 6: 2); WriteLn (X: 6: 2);
Вывод некоторой фразы на дисплей
Write ('Фраза'); WriteLn ('Фраза');
Вывод фразы и значения переменной на экран
Write ('Фраза', Y); WriteLn ('Фраза', Y);

где: 1) X, Y - переменные, значения которых нужно вывести на экран; 2) 'Фраза' - некоторый пояснительный текст, который обычно сопровождает значение переменной; 3) X: 6: 2 - указывается формат значения переменной. Это значит, что всего 6 символов, отводится под значение переменной X, причем после десятичной точки будет выведено на экран 2 символа. Это так называемый форматированный вывод числа с фиксированной точкой.

 

Оператор присваивания

Оператор присваивания (: =) предписывает вычисление значения выражения, заданного в его правой части, и присвоение результата переменной, имя которой указано в левой его части. Переменная и выражение должны быть совместимы по типу.

Приведём примеры синтаксиса оператора присваивания:

Y: =2; X: ='Строка'; P: =V1; Summa: =V2;

где:

(1) X, Y, P, Summa - имена переменных, описанных в разделе описания переменных;

(2) 2, 'Строка' - некоторые значения;

(3) V1, V2 - выражения, значения которых нужно вычислить.

 

 

2. ПРАКТИЧЕСКАЯ РАБОТА

 

2.1 Программирование алгоритма линейной структуры

Простейшей алгоритмической структурой является линейная последовательность операций, которые выполняются по очереди и именно в том порядке, в котором записаны. Программную реализацию такой алгоритмической структуры будем называть линейной программой. Линейные алгоритмы и линейные программы обычно предназначены для решения относительно простых задач, в которых не предусмотрен выбор из нескольких возможных альтернатив или циклическое по­вторение каких-либо операций.

Примером линейной программы является программа, выполняющая арифметические операции над двумя числовыми значениями.

Задание: Решить задачу определения значений арифметических выражений: a+b, a–b, a´ b, a/b. В качестве исходных данных используйте значения a = 5, b = 7. Результаты вычисления программы выведите в окно консольного приложения.

1. Запустите интегрированную среду Delphi: Пуск - Программы - Borland Delphi 7 -. Delphi 7.

2. Создайте новое консольное приложение: File - New - Other…
(Файл - Новый - Другие…). На вкладке New открывшегося диалогового окна «New Items» выберите значок Console Application (консольное приложение) и нажмите ОК.

3. В рабочей области редактора наберите код программы, представленный на листинге 1.

 

Листинг 1.

program Z1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var a, b: real;

R1, R2, R3, R4: real;

begin

{Исходные данные}

a: = 5;

b: = 7;

{Вычисление результата}

R1: = a + b;

R2: = a - b;

R3: = a * b;

R4: = a / b;

{Вывод на печать}

Writeln('R1=', R1);

Writeln('R2=', R2);

Writeln('R3=', R3);

Writeln('R4=', R4);

Writeln('End program.'); Readln;

end.

 

4. В программе результаты вычисления присваиваются переменным R1, R2, R2 и R4, а затем с помощью оператора Writeln выводятся на печать в консольное окно приложения.

5. Запустите программу на решение, используя кнопку 4 на панели инструментов «Debug» или команду системного меню Run - Run (клавиша F9).

6. Просмотрите и проверьте полученные результаты.

7. Сохраните проект.

8. Результаты расчета, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

9. Для закрепления практических приемов работы выполните упражнение 1 из раздела 3 самостоятельной работы.

 

 

2.2 Демонстрация вычисления значений элементарных функций

Задание: Наберите код программы, демонстрирующей вычисления значений элементарных функций, представленной на листинге 2. Результаты вычисления программы выведите в окно консольного приложения.

Листинг 2.

program Z2; (*Демонстрация вычисления значений элементарных функций*)

{$APPTYPE CONSOLE}

uses

SysUtils;

var X, Y, Z: Real; { Аргумент }

F: Real; { Результат }

begin

WriteLn('Значение MaxInt: ', MaxInt);

WriteLn('Значение Пи: ', PI);

Write('Введите значение аргумента: ');

ReadLn(X);

WriteLn('Trunc (X) -> ', Trunc (X));

WriteLn('Int (X) -> ', Int (X));

WriteLn('Frac (X) -> ', Frac (X));

F: =Abs(X);

WriteLn('Значение функции Abs: ', F);

F: =Sqrt(X);

WriteLn('Значение функции корень: ', F);

F: =Exp(X);

WriteLn('Значение функции Exp: ', F);

F: =Ln(X);

WriteLn('Значение функции Ln: ', F); { Аргумент тригонометрических функций выражен в радианах }

F: =Sin(X);

WriteLn('Значение функции Sin: ', F);

F: =Cos(X);

WriteLn('Значение функции Cos: ', F);

F: =ArcTan(X);

WriteLn('Значение функции ArcTg: ', F);

{ ------------------------------------------- }

Write('Введите значение аргумента: ');

ReadLn(Y);

F: =Exp(Y*Ln(X));

WriteLn('Значение функции X^Y: ', F);

{ ------------------------------------------- }

Write('Введите значение аргумента типа Integer: ');

ReadLn(Z);

WriteLn('Odd (Z) -> ', Odd (Z));

Readln

End.

1. Запустите программу на решение, просмотрите и проверьте полученные результаты.

2. Сохраните проект.

3. Результаты расчета, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

 

2.3 Программа пересчета температуры

1. Разберем следующую задачу. В настоящее время используются несколько темпе­ратурных шкал. Среди них шкалы Цельсия, Фаренгейта, Кельвина и Ренкина. Наиболее популярная из них — это шкала Цельсия, официально утвержденная в качестве международной шкалы. Шкала Фаренгейта популярна в англо­язычных странах. В качестве опорных точек для этих шкал выбраны температура замерзания воды (0° С и 32° F) и температура кипения воды при нормальном ат­мосферном давлении (100° С и 212° F). В шкале Кельвина за точку отсчета принят абсолютный нуль, это - 273, 15° С, или - 459, 67° F, а цена деления совпадает с ценой деления шкалы Цельсия. В шкале Ренкина отсчет температуры также идет от абсо­лютного нуля, а один градус равен градусу по Фаренгейту. Точка замерзания воды по шкале Ренкина — +492° R, а точка ее кипения — +672° R. Требуется написать программу для перевода значения температуры, заданной по шкале Цельсия, в зна­чения, соответствующие шкалам Фаренгейта, Кельвина и Ренкина.

2. Задача поставлена, теперь необходимо составить алгоритм ее решения. Для этого достаточно записать формулы перевода температуры по Цельсию в каждую из вышеупомянутых шкал. Учитывая равномерность шкал, то есть тот факт, что цена деления не зависит от значения температуры, для вывода формул соответ­ствия будем использовать линейную зависимость:

Тi = ai × Тс + bi,

где Тi — значение температуры по шкале Фаренгейта, Кельвина или Ренкина, Тс — значение температуры по шкале Цельсия, аi и bi — коэффициенты. Используя зна­чения опорных точек, можно найти коэффициенты для формул соответствия:

ТF = 1, 8 × Тс + 32,

ТK = Тс + 273, 15

ТR = 1, 8 × Тс + 492.

3. Алгоритм решения задачи, таким образом, состоит из блока ввода данных (в на­шем случае это единственное значение температуры), блока вычислений и блока вывода результатов работы программы.

4. Исходный текст программы приведен в листинге 2.

Листинг 2.

program Z2;

{$APPTYPE CONSOLE}

uses

SysUtils;

var Celsius, Fahrenheit, Kelvin, Renkin: real;

begin

{Ввод данных}

Write('Vvedite znachenie temperaturi po Celsius =');

Readln(Celsius);

{Вычисление результата}

Fahrenheit: = 1.8 * Celsius + 32;

Kelvin: = Celsius + 273.15;

Renkin: = 1.8 * Celsius + 492;

{Вывод на печать}

Writeln('Sootvetstvie mejdu temperaturnimi shkalami');

Writeln('Celsius Fahrenheit Kelvin Renkin');

Writeln(Celsius: 7: 2, ' ', Fahrenheit: 7: 2, ' ',

Kelvin: 7: 2, Renkin: 7: 2);

Writeln('End program.'); Readln;

end.

 

5. В программе для обеспечения ввода данных используется оператор Readln(Celsius), где в скобках указана переменная, в которую будет введено числовое значения с экрана консольного приложения. Оператору ввода предшествует вывод на экран приглашения для ввода исходных данных ( в нашей задаче это «Введите значение температуры по шкале Цельсия»).

6. Запустите программу на решение, просмотрите и проверьте полученные результаты.

7. Сохраните проект.

8. Результаты расчета, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

9. Для закрепления практических приемов работы выполните упражнения 2, 3 и 4 из раздела 3 самостоятельной работы.


3. САМОСТОЯТЕЛЬНАЯ РАБОТА

 

Задание 1. Составить программу решения задачи в соответствии с вариантом задания:

Вариант задания Формулировка задания
1, 11, 21 Определите расстояние на плоскости между двумя точками с заданными координатами M1(x1, y1) и M2(x2, y2).
2, 12, 22 Вычислите высоту треугольника, опущенную на сторону а, по известным значениям длин его сторон a, b и c.
3, 13, 23 Вычислите объём цилиндра с радиусом основания R и высотой h.
4, 14, 24 Известны длины сторон прямоугольника. Вычислите его периметр, площадь и длину диагонали.
5, 15, 25 Вычислите площадь прямоугольного треугольника, а также: (а)длину гипотенузы по двум его катетам; (б) длину одного из его катетов по гипотенузе и второму катету.
6, 16, 26 Определите координаты вершины параболы y = ax2 + b x+ c (a≠ 0). Коэффициенты a, b и c считайте известными.
7, 17, 27 Проверьте, можно ли из четырех данных отрезков составить параллелограмм.
8, 18, 28 Определите расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость v0.
9, 19, 29 Определите время свободного падения физического тела с высоты h.
10, 20, 30 Студент начал решать задачи данного занятия, когда электронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и min2 минут. Составьте программу, позволяющую определить, сколько времени студент решал эти задачи. (Будем считать, что задачи решались не дольше суток.)

Результаты расчета, исходные данные, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

 


Задание 2. Вычисление значения функции.

Задание: Вычислить значения функции y = f(a, b, x) при заданных значениях аргумента x и коэффициентов a и b.

Варианты заданий представлены в таблице. Рекомендации: для вычисления тригонометрических функций используйте обращение к функциям COS(x) и SIN(x); для вычисления модуля воспользуйтесь функцией ABS(x); для вычисления экспоненты используйте функцию EXP(x). Исходный код программы и листинг распечатки представить в отчете лабораторной работы. Провести исследование, при каких значениях аргумента программа выдает ошибку вычисления значений функции. Вариант задания Вид функции y=f(a, b, x)
x3-a·x+b
a·x-2+sin(b/x)
x2+a·x-b
a·x3- b·sinx
a· sinx2 + cos bx
a·(x+b)2 +0.5
sin(ax)/1.1 + b·x
a·x + eb·x – e-b·x
(a·x2+b)1/2/2
a·x – cos bx2
sin(ax) – e-b·x
(a·x2+b)/2+ cos bx
a· sinx2+ sin(b/x)
x3-a·x- b·x
– e-b·x+ a·(x+b)2

 

 

Задание 3. Вычислить значения переменных.

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


 

№ варианта Расчетные формулы Значения исходных данных
x = 1, 426 y = -1, 220 z = 3, 5
x = 1, 825 y = 18, 225 z = -3, 298
x = 0, 335 y = 0, 025
a = -0, 5 b = 1, 7 t = 0, 44
a = 1, 5 b = 15, 5 x = -2, 9
a = 16, 5 b = 3, 4 x = 0, 61
a = 0, 7 b = 0, 05 x = 0, 5
a = 1, 1 b = 0, 004 x = 0, 2
m = 2 c = -1 t = 1, 2 b = 0, 7
a = 3, 2 b = 17, 5 x = -4, 8
a = 10, 2 b = 9, 2 x = 2, 2 c = 0, 5
a = 0, 3 b = 0, 9 x = 0, 61
a = 0, 5 b = 3, 1 x = 1, 4
a = 0, 5 b = 2, 9 x = 0, 3
m = 0, 7 c = 2, 1 x = 1, 7 a = 0, 5 b = 1, 08

2. Результаты расчета, исходные данные, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

 

Задание 4. Вычисление площади треугольника.

1. Разработать программу вычисления площади треугольника по формуле Герона: , где p = (a+b+c)/2 (a, b, c - стороны треугольника).

2. Результаты расчета, исходные данные, блок-схему алгоритма и код программы поместите в отчет по лабораторной работе.

 


Контрольные вопросы

1. Какие типы величин используются в языке программирования?

2. Указать диапазон значений величин целого и вещественного типов.

3. Какие имена переменных допустимы в программе?

4. Как задать тип переменной в программе?

5. Указать имена стандартных функций для вычисления .

6. Можно ли в качестве операнда в арифметическом выражении использовать: а) имя массива; 6) имя стандартной функции, например SIN(Y); в) имя символьной переменной или переменной логического типа?

7. Назвать последовательность действий при выполнении арифметического оператора присваивания.

8. Допустимо ли использование величин разных типов в арифметическом выражении?

9. Указать старшинство выполнения операций при вычислении арифметического выражения.


Поделиться:



Популярное:

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


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.048 с.)
Главная | Случайная страница | Обратная связь