Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовая работа delphi / 220c1d9e87ed431a50a13ca7836572fe_Lab_Pascal-Delphi(TMS_A5)__________лекции

.pdf
Скачиваний:
42
Добавлен:
04.06.2015
Размер:
2.02 Mб
Скачать

Отметим, что указанные процедуры 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, причем после десятичной точки будет

Родионов К.А. Лабораторный практикум

21

выведено на экран 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 открывшегося диалогового

Родионов К.А. Лабораторный практикум

22

окна «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. Запустите программу на решение, используя кнопку

на панели

инструментов «Debug» или команду системного меню Run Run (клавиша

F9).

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

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

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

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

Родионов К.А. Лабораторный практикум

23

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

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

Родионов К.А. Лабораторный практикум

24

Листинг 2.

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

{$APPTYPE CONSOLE} uses

SysUtils;

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

Y:Real; { Аргумент }

Z:Integer; { Аргумент }

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))

END.

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

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

Родионов К.А. Лабораторный практикум

25

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}

Родионов К.А. Лабораторный практикум

26

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;

 

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

mejdu

temperaturnimi

Writeln('Sootvetstvie

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 самостоятельной работы .

Родионов К.А. Лабораторный практикум

27

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 минут. Составьте

 

программу, позволяющую определить, сколько времени

 

студент решал эти задачи. (Будем считать, что задачи

 

решались не дольше суток.)

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

Родионов К.А. Лабораторный практикум

28

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

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

Варианты заданий представлены в таблице.

Рекомендации: для вычисления тригонометрических функций используйте обращение к функциям COS(x) и SIN(x);

для вычисления модуля воспользуйтесь функцией ABS(x); для вычисления экспоненты используйте функцию EXP(x).

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

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

Вариант

Вид функции

задания

y=f(a,b,x)

1

x3-a·x+b

2

a·x-2+sin(b/x)

3

x2+a·x-b

4

a·x3- b·sinx

5

a· sinx2 + cos bx

6

a·(x+b)2 +0.5

7

sin(ax)/1.1 + b·x

8

a·x + eb·x e-b·x

9

(a·x2+b)1/2/2

10

a·x – cos bx2

11

sin(ax) e-b·x

12

(a·x2+b)/2+ cos bx

13

a· sinx2+ sin(b/x)

14

x3-a·xb·x

15

e-b·x+ a·(x+b)2

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

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

Родионов К.А. Лабораторный практикум

29

Расчетные формулы

Значения

варианта

 

исходных данных

1

a

=

 

2 cos(x π / 6)

 

 

 

x = 1,426

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = 1,220

 

 

1/ 2 +sin2

 

y

 

 

 

 

 

 

 

 

b

=1

+

 

 

 

z 2

 

 

 

 

 

 

 

 

 

z = 3,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 + z 2 / 5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

γ = x y / x

3

 

y / x

 

 

 

 

 

 

x = 1,825

 

 

 

 

 

 

 

 

 

 

y z /(y x)

y = 18,225

 

ψ =(y x)

z = 3,298

 

 

1+(y x)2

 

 

3

s =

1+ x +

x

2

+

x

3

+

x

4

 

 

x = 0,335

 

 

 

 

 

 

y = 0,025

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2!

 

3!

 

 

 

4!

 

 

 

 

ψ = x(sin x3 +cos2

 

y)

 

4

y = ebt sin(at +b)

 

 

bt +a

a = 0,5

 

s =b sin(at 2 cos2t) 1

b = 1,7

 

t = 0,44

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

ω = x

2

+b b

2

sin

3

(x +a) / x

a = 1,5

 

 

 

 

b = 15,5

 

y = cos2 x3 x /

 

a2 +b2

 

 

x = 2,9

6

s = x3tg 2 (x +b)2 +a /

 

x +b

a = 16,5

 

 

 

 

 

 

 

 

b x 2

a

 

 

 

 

 

 

b = 3,4

 

 

 

Q =

 

 

 

 

 

 

 

x = 0,61

 

 

 

 

 

 

eax 1

 

 

 

 

 

 

 

 

 

7

R = x2 (x +1) / b sin2 (x +a)

a = 0,7

 

s =

 

xb / a +cos2 (x +b)3

b = 0,05

 

 

x = 0,5

8

y =sin3 (x2 +a)2

 

 

x / b

a = 1,1

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b = 0,004

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

x = 0,2

 

z =

 

 

+cos(x +b)

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

9

f

= 3 m tgt + c sin t

 

 

 

m = 2

 

 

 

 

c = 1

 

z = m cos(bt sint) +c

 

t = 1,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b = 0,7

Родионов К.А. Лабораторный практикум

 

 

 

 

 

 

 

 

 

 

 

30