Практикум по основам программирования. Язык Паскаль
.pdfPROGRAM ERROR1 (OUTPUT);
VAR A:REAL;
FUNCTION F<XsREAL)sREAL;
BEGIN F :-X;
IF X<0 THEN F :=F+X
END;
PROCEDURE WI(VAR X:REAL; Y :REAL);
BEGIN X:=SINY END;
BEGIN WI(A,F(5)); WRITELN(As 6) END.
14*. Определить, что будет выдано на печать в резуль тате выполнения приведенной ниже программы:
PROGRAM ERR(OUTPUT);
VAR С sCHAR;
PROCEDURE P (X ,Ys CHAR);
BEGIN Y :=SUCC(X) END;
PROCEDURE Q (XsCHAR; VAR Y :CHAR);
BEGIN Y:=SUCC(X) END;
BEGIN C: - 'A '; P C B ’.C); WRITELN('C=',C);
C: = 'A '; Q (*В *,C); WRITELN(* C = C )
END.
15*. Написать функцию, обеспечивающую вычисление выражения
п\ |
|
----------- |
1 |
т\(п-т)\
где О ^ т ^ п .
9.4.ПРАКТИЧЕСКИЕ ЗАДАНИЯ
З А Д А Н И Е 1. ОРГАНИЗАЦИЯ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ
Це л ь з а д а н и я
1.Получение навыков в написании программ с ис пользованием функций.
2.Изучение механизма передачи параметров по значе нию.
П о с т а н о в к а з а д а ч и Написать программу, которая вычисляет сумму
значений заданной в варианте функции F(X,Y) в пяти различных точках. Вычисление F(X,Y) оформить в ви де функции.
С о д е р ж а н и е о т ч е т а
1.Постановка задачи.
2.Текст программы и результаты ее выполнения.
3.Выводы.
М е т о д и ч е с к и е у к а з а н и я |
ознакомиться с |
Для выполнения задания следует |
|
приведенной ниже программой РР92, |
которая вводит |
вещественные значения аргументов X и Y, вычисляет F(X,Y) по формуле
F(X,Y)=(X+Y) “ 5 - (X - 2‘Y)3
и выводит на печать полученный результат. При этом для возведения вещественного числа А в целую сте пень В используется функция СТЕП.
PROGRAM Р Р 92( IN P U T , O U TPU T) ;
VAR X , Y ,F X Y t R E A L ;
FU N CTIO N С Т Е П (A tR E A L ; В iIN T E G E R )x R E A L ;
VAR R A B tR E A L ; A B S B sIN T E G E R ;
B E G IN R A B :« 1; A B S B s * A B S (B ) ;
W H ILE ABSB >0 DO
B E G IN R A B t« R A B *A ;
ABSBa *A B S B -1
EN D ;
I F B<0 THEN R A B := i/ R A B ;
С Т Е П :»RAB
EN D ;
B E G IN W RITELN< ВВОДИ ДАННЫЕ’ ) J
READLN <X t Y ) ;
FXY:=СТЕП(X+Y,-5)-СТЕП(X-2*Y,3); WRITELN<'ДЛЯ X«',X:6:3,* И Y«',Y:6:3t
ЗНАЧЕНИЕ F<XtY>«*,FXY:6«3>
END.
П р о т о к о л р а б о т ы п р о г р а м м ы :
ВВОДИ ДАННЫЕ
2.0 -1.0
ДЛЯ Х= 2.000 И Y * -1.000 ЗНАЧЕНИЕ F(X,Y)=-63.000
Следует обратить внимание, что в операторе при сваивания RAB:=RAB*A используется локальная пере менная RAB. Использовать вместо этой промежуточной переменной непосредственно имя функции нельзя, так
как имя функции в правой части оператора присваива ния интерпретируется как обращение к этой функции.
122
В а р и а н т ы з а д а н и я |
|
|||||
1. Вычислить z-сумму значений функций |
||||||
z = /(а,6) + f{a2,b2) + f(a2- 1,b) + |
||||||
где |
+ /(a - b,b) + /(a2 + b2,b2—1), |
|||||
и2 +12, |
если |
и>0, |
Ы); |
|||
|
||||||
/(и,О - I u + f2 |
если |
ы^О, |
*<0; |
|||
|
а - * если аЯ), f^O; |
|||||
|
{u + t, если а^О , |
*Я). |
||||
а) |
е = 2,5; Ъ= - 7,3; |
|
|
|||
б) |
а = - 0,5; |
А = 4,2; |
|
|
||
в) |
а = - 0,2; |
б = |
- 0,42; |
|
|
|
г) |
a = 23,7; А = 41,2 |
|
|
2. |
Вычислить z-сумму значений функций |
|||||
|
z = /(sin а,а) + /(cos а,а) +/(sin2а,а -1) + |
|||||
|
+ /(sin a - cos о,а2 -1) + /(sin 2a - l,cos a + a), |
|||||
ще |
|
|
a + sin О), |
если u>0; |
||
|
|
m |
||||
|
|
u + t, |
если |
и^О . |
||
|
|
|
||||
|
а) |
a = n/18; |
a - -2,1; |
|||
|
б) |
a =2,3; а = 21,3; |
|
|||
|
в) |
a = |
— л / 14; |
а = -0,2; |
||
|
г) |
a = —i t / 10; |
а = 31,2. |
|||
3. |
Вычислить z-сумму значений функций |
|||||
|
2 “ / ( V F M + f {a,b) +/ ( V ^ + *’ " *) + |
|||||
где |
|
+ / ( И ~ Н*) + /С* + У>а+ *)> |
||||
|
|
и + 21, если а^ 0 ; |
||||
|
|
|
||||
|
/(и,0 = |
u + t, если |
и ^ - 1; |
|||
|
|
|
и2 ~2t+ 1, |
если - 1<ы<0. |
а) |
х = 2,31; |
У = 4,2; |
а = 3,1; |
Ъ= 0,02; |
|
б) |
х = -4,21; |
У = -31,2; |
о.я 1,2; |
6 |
= -3,2; |
в) |
х =0,34; |
У =17,2; |
а = - 4,6; |
6 |
= -0,44; |
г) |
х - -14,2; |
У = 0,32; |
* “ 7,2; |
Ь |
= 4,7. |
4. Вычислить z-сумму значений функций
z = /(sin (х) +cos (у),х + у) + /(sin Ос),cos (у)) + + /(* - у,х) +/(sin 2Ос) - 2,а) +Да + Ъ,Ь +1),
ще |
если |
и>1; |
' u + t, |
||
/(и,О ’ и - 1, |
если |
0<м<1; |
k t - u, |
если |
и<0. |
а) |
*= тг/4; |
у=0,41; |
б) |
л=0,32; |
у= я/10; |
в) |
л=19,2; |
у=0,48; |
г) |
х=0,2тг; |
у=2/3; |
а=0,1; л= - 0,21; а= -4,3; а =17,1;
I 1 6=4,2;
6=-6,1; 05* I ОЪо
ЗАДАНИЕ 2. ОРГАНИЗАЦИЯ ПРОГРАММ
СИСПОЛЬЗОВАНИЕМ ПРОЦЕДУР
Це л ь з а д а н и я
1.Получение навыков в написании программ с использованием процедур.
2.Изучение механизма передачи параметров по
ссылке.
П о с т а н о в к а з а д а ч и Дано несколько массивов чисел. Длины массивов
заданы в варианте. Требуется в каждом массиве найти наибольший и наименьший элементы и напечатать их, затем все компоненты каждого массива возвести в квадрат и снова найти наибольший и наименьший элементы. Вычисление максимальной и минимальной величин оформить в виде процедуры, глобальные па раметры в процедуре не использовать.
С о д е р ж а н и е о т ч е т а
1.Постановка задачи.
2.Текст программы и результаты ее выполнения.
3.Выводы.
М е т о д и ч е с к и е у к а з а н и я
1.Если в качестве исходной информации в процедуру передается массив, то его следует передавать по ссылке для экономии памяти, так как в этом случае при вы зове процедуры не образуется локальный массив.
2.Несмотря на то что обрабатываемые массивы имеют разную длину, они описываются в программе как мас сивы одного и того же типа, так как при обращении к процедуре типы соответствующих формальных и фак
тических параметров должны совпадать.
3. Приведенная ниже программа упорядочивает по не убыванию три массива разной длины (10,5,8) и выво дит их на печать. Упорядоченные массивы использу ются для построения массива с минимальной длиной(5). Новый массив образуется путем перемножения
соответствующих |
компонентов |
упорядоченных масси |
||
вов. |
|
|
|
|
PROGRAM MAS1(INPUT,OUTPUT); |
|
|||
TYPE A=ARRAYCl..203 OF REAL; |
|
|||
VAR X ,Y ,Z fRES:A; |
I,N:INTEGER; |
|||
PROCEDURE WWOD(K:INTEGER; |
VAR M:A); |
|||
VAR J:INTEGER; |
|
|
|
|
BEGIN |
|
ЭЛЕМЕНТЫ |
МАССИВА'); |
|
WRITELN(‘ВВОДИ |
||||
FOR J:=l |
TO К |
DO READ(MCJ D); |
||
READLN |
|
|
|
|
END; |
|
|
|
Ms A); |
PROCEDURE UP(KsINTEGER; VAR |
||||
VAR IfJsINTEGER; |
C:REAL; |
|
|
|
BEGIN |
|
|
|
|
FOR J:=K DOWNTO 2 DO |
|
|
||
FOR I:=1 TO J-l DO |
|
|
||
IF |
MCID >MCI + lЭ THEN |
MCI +13:=MCI 3; MCI3s=*C END |
||
END; |
BEGIN |
CssMCI + 13; |
||
|
|
|
VAR Ms A); |
|
PROCEDURE WUWOD(KsINTEGER; |
||||
VAR JsINTEGER; |
|
|
|
|
BEGIN |
|
|
|
|
FOR Js=l TO К DO WRITE<MCJ3:6:2);
WRITELN
END;
BEGIN
WWOD(10,X); WWOD <5,Y ); WW0D(8,Z>;
U P (10,X); UP <5,Y ); UP(8,Z);
WRITELN('МАССИВЫ ПОСЛЕ УПОРЯДОЧЕНИЯ');
WUWOD(10,X); WUWOD <5,Y ); WUWOD<3,Z);
WRITELN('РЕЗУЛЬТАТ');
FOR I:= 1 TO 5 DO RESCI 3:*XСI3*YCI3*ZСI3;
WUWOD(5,RES)
END.
П р о т о к о л р а б о т ы п р о г р а м м ы MASI
ВВОДИ ЭЛЕМЕНТЫ МАССИВА 1 .2 - 9.0 5.6 73 45 4.4 35 -5 .6 3.2 4.0 ВВОДИ ЭЛЕМЕНТЫ МАССИВА
1.24.3 1.0 33 35
ВВОДИ ЭЛЕМЕНТЫ МАССИВА -5 .6 45 - 7 3 2.3 45 1.2 8.9 23
МАССИВЫ ПОСЛЕ УПОРЯДОЧЕНИЯ
-9.00 -5.60 130 330 350 4.00 4.40 450 5.60 7.80 1.00 1.20 3.30 350 430
-7.80 -5.60 130 230 230 450 450 8.90 РЕЗУЛЬТАТ.
70.20 37.63 4.75 25.76 34.62
В а р и а н т ы з а д а н и я
1.Ввести и обработать два массива, содержащие соот ветственно 5 и 8 вещественных компонентов.
2.Ввести и обработать три массива, содержащие соот ветственно 3,6 и 8 целых компонентов.
3.Ввести и обработать четыре массива, содержащие соответственно 4ДЗ, и 10 целых компонентов.
4.Ввести и обработать два массива, содержащие соот ветственно 4 и 6 вещественных компонентов.
5.Ввести и обработать три массива, содержащие соот
ветственно 5,10 и 4 целых компонента.
6.Ввести и обработать четыре массива, содержащие соответственно 3,5,8, и 6 вещественных компонентов.
7.Ввести и обработать два массива, содержащие соот ветственно 7 и 10 вещественных компонентов.
8.Ввести и обработать три массива, содержащие соот ветственно 5,4 и 7 целых компонентов.
9.Ввести и обработать четыре массива, содержащие соответственно 7,3,5 и 4 целых компонента.
10.Ввести и обработать два массива, содержащие соот ветственно 6 и 8 вещественных компонентов.
ЗА Д А Н И Е 3. ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА МЕТОДОМ ПРЯМОУГОЛЬНИКОВ
Це л ь з а д а н и я
1.Получение навыков в написании процедур, имею
щих в заголовке параметры-функции.
2. Получение практических навыков программирования численных методов интегрирования.
П о с т а н о в к а з а д а ч и
Заданы три функции: F1(X), F2(X), F3(X). Требует ся найти определенный интеграл от каждой функции с точностью 10‘4 в заданных пределах. Для решения задачи использовать численный метод вычйсления оп ределенного интеграла - метод прямоугольников.
С о д е р ж а н и е о т ч е т а
1.Постановка задачи.
2.Описание численного метода интегрирования.
3.Тест и результаты отладки.
4.Текст программы и результаты ее выполнения.
5.Выводы.
М е т о д и ч е с к и е у к а з а н и я
1. Описание метода прямоугольников. Пусть требуется
ь
вычислить значение Jf(x)dx с заданной точностью
а
График функции f(x) представлен на рис. 9.1.
Найти значение определенного интеграла - это зна чит найти площадь заштрихованной области. Для вы числения первого приближения интеграла разделим отрезок [а,Ь] на п равных частей (л=4), определим зна чения /(*,), ще х, - a + hf- А/2; h - (Ь- а ) / п (рис. 9. 2).
Вычислим площадь sj каждого из полученных прямоугольников: s,-hf(x,). Сумма si площадей этих прямоугольников является приближенным значением интеграла:
*1“ £ $ -л £ /(д * ). <-i /-1
Однако одно приближение не позволяет оценить точность, с которой вычислено значение интеграла, не
обходимо найти второе приближение. Для этого увели чим п в два раза, т. е. п:=2п. Аналогично s i найдем
* 2 -* £ /(* ). «•-1
Требуется вычислить значение интеграла с точно стью £, поэтому проверим условие Isl - s2I < & Если условие выполняется, то s2 принимается за искомое значение интеграла; если не выполняется, то послед
нее |
полученное значение s2 считается |
предыдущим, |
т. е. |
sl:=s2. После этого удвоим число |
точек деления |
отрезка и вычислим новое значение s2. Процесс удвое ния п и вычисления s2 будем продолжать до тех пор, пока модуль разности si и s2 не станет меньше &.
2. Вычисление интеграламетодом прямоугольни ков можно оформить либо в виде процедуры, либо в виде функции. Для функции в качестве формальных параметров следует принять границы интегрирования, имя подынтегральной функции, точность вычисления интеграла, а для процедуры еще и выходное значение интеграла. Например, заголовок функции вычисления интеграла может иметь вид
FUNCTION INT(A,B,E:REAL; FUNCTION F:REAL):REAL;
Заголовок процедуры вычисления интеграла может быть таким:
PROCEDURE W(A,B,E:REAL; FUNCTION F:REAL; VAR INTrREAL);
или параметр-функция содержал описание своих параметров, т. е.
PROCEDURE W(A,B,E:REAL; FUNCTION F(X:REAL):REAL; VAR INT:REAL);43
3. Так как в задании требуется найти значение интег рала для трех различных функций, то в программе следует описать три функции, имена которых должны подставляться в качестве фактических параметров при обращении к процедуре (функции) вычисления интег рала.
4. Структура программы должна иметь такой вид:
Заголовок программы. Описание переменных. Описание первой функции. Описание второй функции. Описание третьей функции.
Описание процедуры (функции) вычисления интеграла.
Раздел операторов.
В а р н а н т ы з а д а н и я
1* Л “ V е* " 1; |
= 0,2; |
йх = 2Д; |
|
Л - e*sinл; а2 = 0,0; |
й2 — ; |
||
|
|
|
2 |
/з - (дс2 - lJlO'2*; |
а3 - |
0,0; |
Ь3= 0,5. |
2. Д - дсУГТл; |
= 1,0; |
^ - 8,0; |
Л ----г г ; |
я ,- 2,0; |
»1-2,7. |
|
||||
|
JCllTJC |
|
|
|
|
|
|
3. |
arcsin V ? |
I |
. . |
. |
_ |
||
/ i e |
|
|
я 0,2; |
и 0,3; |
|||
|
-Jx( 1 —JC) |
|
|
|
|
||
/ 2 ■»яУ*; |
л2 в 0,0; |
i 2 ** 0,8; |
|
|
|||
/3_tg3( i +i ) ; |
азв0>0; Аз" т |
|
|||||
*т. Д = х arctgx; |
ах - 0,0; |
** 1,7; |
|||||
fi2 |
1 |
; |
а2 = 0,0; 62 = 2,0; |
|
|||
1+у? |
|
|
|
|
|
|
|
/з |
1 |
|
; а3- 0,0; ft3 — • |
|
|||
|
|
|
|||||
|
5 - 3 cos л |
|
|
2л |
|
||
5. |
Д в—— ; ах- |
—2,0; i x = -1,2; |
|||||
|
1-4JC |
|
|
|
|
|
|
|
(х+ 1)-^х2 +1 ’ |
<*2 = 0,0; |
Ь2- |
0,6; |
|||
|
|
|
|
||||
/,У 2 * -1; |
а3 = 0,2; 63- 1 Д |
|
|||||
6. |
f i m - y / e x |
- 1; |
ах = 0,1; |
= 1,0; |
Д - х \ / 1 + *; <*2 = 2,0; 62-7,0;
|
arcsin-y/x |
|
/ з |
I O3 —0,2; 63—0,3 |
|
7. |
Д - х arctgх; ад«0,0; йд-1,6’ |
|
/2 =-----а2 ш ~ 2,0; Ь2ш - 1,3; |
||
|
1-4 |
|
/з |
а3 ■ 0,0; ij ■ 1,0. |
|
|
1 +-\^Х ’ |
|
8. |
Д = exsinx; |
ах =*0,0; Ад - л/4; |
/г т— г ----; |
“ 0,0; А2- л/6; |
|
|
3 + 2cosx |
|
/ 3 = х3е2х; а3 - |
0,0; А3 - 0,8. |
|
9. Л - - — т=; |
ад. - 0,0; Ад - 1,8; |
|
|
1 +-^х |
|
/а- |
1 |
•; а2-0,3; Ьг - 0,3; |
|
||
(x+ D-^J^ + l |
/ э - У 2* -Т ; a j - 0,3; А3- 1,0.
Ю. |
Д - (х2 - 1J10'2*; ах - 0,0; Ад - 0,4; |
f i m |
т\ 02*2,0; Ь2ея2,5\ |
|
х\п*х |
а “ *g3^f +-4); аз - 0 ’0;