Примеры заданий и решений контрольной работы для зачета 2 семестр

advertisement
Примеры заданий и решений
контрольной работы для зачета 2 семестр
Подпрограммы
1. Написать программу, в которой вводятся числа a,b,c и вычислить их
сумму (a+b+c) в подпрограмме.
Решение:
Program pp1;
Тело
подпрограммы
function summa(a,b,c:real):real;
begin
summa:=a+b+c;
end;
var x,y,z,s:real;
begin
Вывод «подсказки» на экран
write('vvod x,y,z: ');
read(x,y,z);
Ввод данных с клавиатуры
s:=summa(x,y,z);
Вызов подпрограммы
writeln(' summirovanie: ',s:6:3);
Вывод результата
end.
Еще примеры:
2. Написать программу, в
которой вводятся числа a
и b
и вычислить
произведение
a*b,
2.427*b
с
помощью
подпрограммы.
Решение:
Program pp2;
function proizv(x,y:real):real;
begin
proizv:=x*y;
end;
3. Написать программу, в которой
вводятся числа a и b и вычислить их
сумму и разность с помощью
подпрограммы.
Решение:
Program pp3;
function sum(x,y:real):real;
begin
sum:=x+y;
end;
var a,b,z,s:real;
begin
1
var a,b,z,s:real;
begin
write('vvod a,b: ');
read(a,b);
s:=proizv(a,b);
writeln(' a*b= ',s:6:3);
z:=proizv(2.427,b);
writeln(' 2.427*b= ',z:6:3);
end.
write('vvod a,b: ');
read(a,b);
s:=sum(a,b);
writeln(' a+b= ',s:6:3);
z:=sum(a,-b);
writeln(' a-b= ',z:6:3);
end.
4. Написать программу для
расчета f(π/2), f(π) .
Функцию
f(x)=x*(sinx+x)1/2
рассчитывать
в подпрограмме.
Решение:
5. Даны три точки А(x,y), В(x1,y1),
С(x2,y2).
Найти
периметр
треугольника. Расчёт длин сторон
производить в подпрограмме.
Решение:
Program pp2;
function fun(x:real):real;
begin
fun:=x*sqrt(sin(x)+x);
end;
var f1,f2:real;
begin
f1:=fun(3.1416/2);
writeln(' f(pi/2)= ',f1:6:3);
f2:=fun(3.1416);
writeln('f(pi) = ',f2:6:3);
end.
Program pp5;
function dlina(xa,ya,xb,yb:real):real;
begin
dlina:=sqrt(sqr(xb-xa)+sqr(yb-ya));
end;
var x,y,x1,y1,x2,y2,p:real;
begin
write('vvod koordinat vershiny A: ');
read(x,y);
write('vvod koordinat vershiny B: ');
read(x1,y1);
write('vvod koordinat vershiny C: ');
read(x2,y2);
p:=dlina(x,y,x1,y1)+dlina(x1,y1,x2,y2)+
dlina(x2,y2,x,y);
writeln(' perimetr p=',p:6:3);
end.
6. Задать координаты вершин четырехугольника АВСД. Найти длины его
диагоналей. Длины отрезков рассчитывать в подпрограмме.
Решение:
Program pp6;
function dlina(x1,y1,x2,y2:real):real;
begin
dlina:=sqrt(sqr(x2-x1)+sqr(y2-y1));
end;
var xa,ya,xb,yb,xc,yc,xd,yd,d1,d2:real;
begin
2
write('vvod koordinat vershiny A: ');
read(xa,ya);
write('vvod koordinat vershiny B: ');
read(xb,yb);
write('vvod koordinat vershiny C: ');
read(xc,yc);
write('vvod koordinat vershiny D: ');
read(xd,yd);
d1:=dlina(xa,ya,xс,yс);
d2:=dlina(xb,yb,xd,yd);
writeln(' dlinadiagonaley d1=',d1:6:3,' d2=',d2:6:3);
end.
Графика
1. Написать программу, которая рисует лицо человека. Овал лица
(окружность), нос и рот рисуются красным, глаза –синими точками.
Решение:
Program gr1;
uses graph;
var
grDriver, grMode: integer;
Подключение графической
библиотеки
BEGIN
Установка графического
режима «по умолчанию»
grDriver:=detect;
InitGraph(grDriver,grMode,'');
Setcolor(4);
Устанавливаем цвет пера
circle(200,300,100);
Рисуем окружность
line(200,280,200,330);
line(180,370,220,370);
putpixel(150,250,1);
Рисуем линию
Рисуем точку
putpixel(250,250,1);
readln;
end.
Еще примеры:
2. Написать программу, которая
рисует в левом верхнем углу
экрана окружность, в которой
находится цифра 1.
3. Написать программу, которая
рисует в левом нижнем углу
экрана окружность, и две
прямые, пересекающиеся под
3
Решение:
прямым углом в ее центре
Решение
Program gr2;
uses graph;
var
grDriver, grMode: integer;
BEGIN
grDriver:=detect;
InitGraph(grDriver,grMode,' ');
circle(200,150,100);
line(200,100,200,200);
line(200,100,180,170);
readln;
end.
Program gr3;
uses graph;
var
grDriver, grMode: integer;
BEGIN
grDriver:=detect;
InitGraph(grDriver,grMode,' ');
circle(200,650,100);
line(200,500,200,800);
line(50,650,350,650);
readln;
end.
4. Написать программу, которая
5. Написать программу, которая
рисует в правом нижнем углу
рисует на экране движущуюся
экрана треугольник зеленого
по диагонали точку;
цвета
Решение:
Решение:
Program gr5;
Program gr4;
uses crt,graph;
uses graph;
var
var
grDriver, grMode, i: integer;
grDriver, grMode: integer;
BEGIN
BEGIN
grDriver:=detect;
grDriver:=detect;
InitGraph(grDriver,grMode,' ');
InitGraph(grDriver,grMode,' ');
for i:=1 to 600 do
SetColor(2);
begin
line(800,600,1000,600);
putpixel(i,i,10);
line(1000,600,900,650);
delay(50);
line(900,650,800,600);
putpixel(i,i,0);
readln;
end;
end.
readln;
end.
6. Написать программу, которая
рисует на экране движущуюся
слева направо окружность;
Решение:
Program gr6;
uses crt,graph;
var
grDriver, grMode,i: integer;
BEGIN
4
grDriver:=detect;
InitGraph(grDriver,grMode,' ');
for i:=1 to 200 do
begin
setcolor(3);
circle(3*i,200,50);
delay(50);
setcolor(0);
circle(3*i,200,50);
end;
readln;
end.
Численное интегрирование
1. Записать формулу метода прямоугольников
справа для интеграла
2
 x a
a
3

 x 3 dx
1
Решение:
В данном интеграле пределы интегрирования а=-1, b=2. Возьмем число
разбиений n=100. Тогда номера точек i=0..100. Шаг численного
интегрирования h 
b  a 2 1

 0.03 и xi  a  i  h  1 0.03i
n
100
Подынтегральная функция
yi  f ( xi )  xia (a 3  x 3i )  (1  0.03i) a (a 3  (1  0.03i) 3 )
2
n
100
1
i 1
i 1
a
3
3
a
3
3
 x (a  x )dx   h  yi  0.03 (1  0.03i) (a  (1  0.03i) )
2. Записать формулу метода трапеций
для интеграла
0.7
 ( x  a)a  xdx
0.5
Решение:
5
В данном интеграле пределы интегрирования а=0.5, b=0.7. Возьмем число
разбиений n=100. Тогда номера точек i=0..100. Шаг численного
интегрирования h 
b  a 0.7  0.5

 0.002 и xi  a  i  h  0.5  0.002i
n
100
Подынтегральная функция
y i  f ( xi )  ( xi  a)( xi  a)  (0.5  0.002i  a )(0.5  0.002i  a )
n 1
h
(
x

a
)(
x

a
)
dx

 ( y i  y i 1 ) 

0.5
i 0 2
0.7
99
 0.001 (0.5  0.002i  a)(0.5  0.002i  a )  (0.5  0.002(i  1)  a )(0.5  0.002(i  1)  a)
i 0
3. Записать численную схему нахождения значения определенного
интеграла методом прямоугольников слева
10
 x coscx dx
1
1
Решение:
В данном интеграле пределы интегрирования а=1, b=10. Возьмем число
разбиений n=100. Шаг интегрирования
h=(10-1)/n=0,09. Переменная
интегрирования xi  a  i  h . В данном случае xi  1 0,09i .
Значение хi используется для вычисления значения функции:
y i  y ( xi ) 
1
1
cosc  xi  
cosc  1  0,09i 
xi
1  0,09i
В методе прямоугольников слева искомый интеграл рассчитывается по
формуле
n 1
I  h y i
i 0
Окончательно записываем численную схему для вычисления данного
интеграла методом прямоугольников слева:
10

1
coscx dx 
x
1

99
i 0
1
cosc  (1  0,09i) 
1  0,09i
4. Записать численную схему нахождения значения определенного интеграла
методом прямоугольников справа
10
 x coscx dx
1
1
Решение:
В данном интеграле пределы интегрирования а=1, b=10. Возьмем число
разбиений n=100. Шаг интегрирования
h=(10-1)/n=0,09. Переменная
интегрирования xi  a  i  h = 1 0,09i .
6
Значение хi используется для вычисления значения функции:
y i  y ( xi ) 
1
1
cosc  xi  
cosc  1  0,09i 
xi
1  0,09i
В методе прямоугольников справа искомый интеграл рассчитывается по
формуле
n
I  h y i
i 1
Окончательно записываем численную схему для вычисления данного
интеграла методом прямоугольников справа:
10

1
coscx dx 
x
1
1  01,09i cosc  (1  0,09i)
100
i 1
5. Записать численную схему нахождения значения определенного интеграла
методом трапеций
10
 x coscx dx
1
1
Решение:
В данном интеграле пределы интегрирования а=1, b=10. Возьмем число
разбиений n=100. Шаг интегрирования
h=(10-1)/n=0,09. Переменная
интегрирования xi  a  i  h = 1 0,09i .
Значение хi используется для вычисления значения функции:
y i  y ( xi ) 
1
1
cosc  xi  
cosc  1  0,09i 
xi
1  0,09i
В методе трапеций необходимо еще найти
y i 1  y ( xi 1 ) 
1
1
cosc  xi 1  
cosc  1  0,09(i  1) 
xi 1
1  0,09(i  1)
и подставить его в формулу для метода трапеций
n 1
I

i 0

0,09
2
 yi 1  yi 

h
2 

 1  01,09i cosc  (1  0.09i)  1  0.091 (i  1) cosc  (1  0.09(i  1))
99
i 0
6. Записать численную схему нахождения значения определенного интеграла
методом трапеций
2b
2 x 1
e
 dx
b
Решение:
7
Переменная интегрирования х изменяется от а=-b до 2b. Число
разбиений возьмем, например, n=100. Шаг h=(2b-(-b))/n=0,03b.
Переменная интегрирования xi  a  ih  b  0.03bi
Значение хi используется для вычисления значений функции:
yi  y ( xi )  e 2 xi 1  e 2( b  0.03bi ) 1
yi 1  y ( xi 1 )  e 2 xi1 1  e 2( b  0.03b (i 1)) 1
Окончательно записываем численную схему для вычисления данного
интеграла методом трапеций:
n 1
I

i 0
h
yi 1  yi 0.03b

2
2
e
99
i 0
8
2 (  b  0.03b ( i 1)) 1
 e 2( b  0.03bi) 1

Download