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

Практикум по основам программирования. Язык Паскаль

.pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
6.27 Mб
Скачать

PROGRAM 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 л

 

 

 

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; 630,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;