Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_учебник_3.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
937.47 Кб
Скачать

Задания

№1. Определить значение величины Z:

Var

A,B,Z:real;

Function F(x,y:real):real;

begin

f:=(x+y)/2

end;

Begin

A:=0;

B:=4;

Z:=F(a,b)+a/b;

Writeln(z)

End.

Давайте напишем структурную схему к заданию №1, для того, чтобы показать, как в схемах оформляются подпрограммы-функции и обращение к ним:

СТРУКТУРНАЯ СХЕМА ГЛАВНОЙ ПРОГРАММЫ

FUNCTION F(X,Y)

№2. Определить значение величины R:

Var

R,x,y:real;

Function UR(u,v:real):real;

begin

UR:=sqr(u)-sqr(v)

end;

Begin

x:=2;

y:=3;

R:=UR(UR(x+1,y-1),UR(5,3))+200;

Writeln(R)

End.

№3. Есть подпрограмма-функция FORM1:

Function FORM1(a,b,c:real):real;

begin

form1:=a+b/c-5

end;

Вторую подпрограмму-функцию RZ(p,Q) составьте сами. Она должна быть предназначена для вычисления следующей функции:

RZ(p,Q)=-Q/2+sqrt(p).

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

D15=3+F*(u+v+3/g-5);

x2=u/((-z)/2+sqrt(sqr(a)+sqr(b)));

ABC=(-25/2+sqrt(z))*(7,8+x/25-5);

Recur=u+v/W-5+R/S-5.

На О.О.Ф. не исследовать. Считать, что все исходные данные удовлетворяют О.О.Ф.

№4. Составьте программу с использованием подпрограммы-функ­ции для вычисления значения следующих величин:

y=COS 2+ln(5+x);

z=COSz1+ln(8x-8)+24.

На О.О.Ф. не исследовать. Считать, что все исходные данные удовлетворяют О.О.Ф.

№5. Диагональ делит выпуклый четырехугольник на два треугольника. Найти площадь четырехугольника ABCD, если известны длины всех его сторон иAC.

B

1

А C

2

D

№6. Определить значение переменной N1, которое будет вычислено в результате выполнения следующей программы:

Type

MAS=array[1..5] of integer;

Var

M:MAS;

K,N1:integer;

function F(K:MAS;N:integer):integer;

var

j,u:integer;

begin

u:=0;

for j:=1 to n do

u:=u+k[j];

F:=u end;

Begin

for k:=1 to 5 do

M[k]:=k;

N1:=F(m,5);

Writeln(N1)

End.

№7. Задана подпрограмма-функция, предназначенная для вычисления значения следующего выражения:

тип задан в главной программе

Function PROIZV(a:mas;N:integer):real;

var

P:real;

i:integer;

begin

P:=1;

for i:=1 to n do

p:=p*a[i];

proizv:=p

end;

Составить главную программу, которая с использованием подпрограммы-функции PROIZV будет вычислять значения величин:

№8. C использованием functionвычислить

№9. В программе описаны три процедуры:

PROCEDURE P(x,y:integer);

begin

y:=x+1

end;

PROCEDURE Q(x:integer;var y:integer);

begin

y:=x+1

end;

PROCEDURE R(var x,y:integer);

begin

y:=x+1

end;

Правильны ли следующие обращения к процедурам? Если да, определить, что будет выдано на экран.

а) c:=2;

d:=0;

P(sqr(c)+c,d);

writeln(d);

б) c:=2;

d:=0;

Q(sqr(c)+с,d);

writeln(d);

в) c:=2; d:=0;

R(sqr(c)+c,d);

writeln(d);

№10. Определить, что будет выдано на экран в результате выполнения следующей программы:

Type

vect=array [1..2] of real;

Var

a:vect;

i:integer;

procedure R(var k:integer; var x:real);

begin

k:=2;

x:=0;

end;

Begin

a[1]:=1;

a[2]:=2;

i:=1;

R(i,a[i]);

Writeln(a[1],a[2])

End.

Напишем структурную схему к программе задания №140 для того, чтобы показать, как в схемах оформляются процедуры и обращения к ним:

СТРУКТУРНАЯ СХЕМА

ГЛАВНОЙ ПРОГРАММЫ

№11. Что будет выдано на экран следующей программой:

Var

a,b,c,d:integer;

procedure P(var b:integer; c:integer);

Var

d:integer;

begin

a:=5;

b:=6;

c:=7;

d:=8;

writeln(a,b,c,d)

end;

Begin

a:=1;

b:=2;

c:=3;

d:=4;

P(a,b);

Writeln(a,b,c,d)

End.

№12. Выполнить задание №4 с использованием процедур.

№13. Есть процедура, вычисляющая сумму элементов вектора Х:

тип описывается в главной программе

Procedure KR(X:MAS;N:integer;var S:real);

var

i:integer;

begin

S:=0;

For i:=1 to N do

s:=s+x[i]

end; {KR}

Составить программу с использованием описанной выше процедуры для нахождения суммы элементов одномерного вектора Y, в котором 10 элементов, а также определить значение величины

№14. Пусть элементами круга являются: радиус (первый элемент) и диаметр (второй элемент). Составить подпрограмму, которая по номеру N одного из элементов и его значению вычисляла бы площадь круга (процедуру и функцию).

№15. Вычислить с использованием процедур и функций (два варианта) значение выражения:

№16. Cоставить программу для вычисления величины

В программе использовать процедуру.

№17. Составить подпрограмму, которая вычисляла бы сумму элементов некоторого столбца матрицы Аразмером[NxM].C ее помощью вычислить сумму элементов пятого столбца матрицыРразмером[12x15]и 10 столбца этой же матрицы (задачу решить двумя способами: с помощью процедур и функций).

№18. Дана матрица 8х8, отображающая содержимое шахматной доски: 0 - нет фигуры, 1 - черные фигуры (их более 1), 2 - белая ладья (одна). Королей нет. Составить программу с использованием процедуры для определения количества черных фигур, стоящих под боем у белой ладьи.

№19. Для трех двухмерных массивов V(5,6), Y(7,3), F(4,10)найти средние арифметические значения элементов во всех строках всех массивов.

№20. Для трех двухмерных массивов A(6,5), B(4,7), C(7,4)найти средние арифметические значения элементов во всех столбцах всех массивов.

№21. Для трех двухмерных массивов D(3,9), E(5,5), F(6,10) найти средние арифметические значения элементов каждого массива.

№22. Для трех двухмерных массивов G(4,4), H(7,7), J(6,6)найти среднее арифметическое значение элементов всех массивов.

№23. Что будет на экране в результате выполнения следующих программ:

a) Uses crt;

Var

i,j:integer;

Function a(f:integer):integer;

function b(d:integer):integer;

begin

if d>5 then b:=10*d;

end;

begin

inc(f);

a:=b(i);

end;

Begin

clrscr;

Read(i);

Write(a(i),' ',i);

Readkey

End.

при 1) i=5;

2) i=10;

3) i=0 ?

б) Uses crt;

Var

i,j:integer;

Function a(f:integer):integer;

function b(d:integer):integer;

begin

if d>5 then b:=10 mod d

else b:=d div 3

end;

begin

inc(i);

f:=b(i);

a:=f-i

end;

Begin

clrscr;

Read(i);

Writeln(a(i),' ',i);

i:=a(i);

Writeln(a(i),' ',i);

Readkey

End.

при 1) i=5;

2) i=10;

3) i=0 ?

№24. Покажите, что выведет на экран следующая программа:

Program sample;

Var

x,a,variant:integer;

function recurs(z:integer):integer;

begin

if z<=5 then

recurs:=3

else

if z>=10 then

recurs:=10

else

recurs:=2*recurs(z-1)

end; {recurs}

Begin

Readln(variant);

x:=recurs(variant);

Writeln('x=',x);

x:=x-3;

x:=recurs(x);

Writeln('x=',x);

x:=x+variant;

a:=recurs(x);

Writeln('a=',a)

End.

при 1) variant=10;

2) variant=5;

3) variant=7.

№25. Перепишите заново функцию recurs из №24, не пользуясь рекурсией.

№26. Вместо функции recursиз №24 напишите эквивалентную рекурсивную процедуру. В обращении к этой процедуре должно быть два параметра, один из которых будет представлять результирующее значение (аналог результата функцииrecurs).

№27. Имеется следующая рекурсивная функция:

function testrec(number:integer):integer;

begin

if number=0 then

testrec:=0

else

testrec:=testrec(number-1)

end; {testrec}

а) Определите результаты трех вызовов testrec:

1) z:=testrec(3);

2) z:=testrec(4);

3) z:=testrec(6)

б) Какую математическую функцию реализует подпрограмма testrec?

в) Перепишите программу testrec, чтобы она делала то же самое, но без использования рекурсии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]