курсовая работа delphi / 220c1d9e87ed431a50a13ca7836572fe_Lab_Pascal-Delphi(TMS_A5)__________лекции
.pdfОтметим, что указанные процедуры 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·x−b·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 = e−bt 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 |
|
|
|
|
|
|
|
|