Самостоятельная работа № 12
Примеры решения задач
Пример 1. Вычислить хn , используя рекурсивную функцию.
Решение:
uses crt;
var x1,x2:word;
i,m:byte; s:longint;
function xn(x,n:byte):longint;
begin
if n=0 then xn:=1
else xn:=xn(x,n-1)*x;
end;
begin
clrscr;
write('x,n='); readln(x1,m);
writeln('xn-',xn(x1,m));
readkey;
end.
Пример 2. Написать рекурсивную функцию вычисления
суммы
1 + 2 + 3 + 4 + 5 + … + N.
Решение:
uses crt;
var m:word;
funnction sum(n:word):longint;
begin
if n=1 then sum:=1 else sum:=sum(n-1)+n;
end;
begin
write('n=');
readln(m);
writeln('сумма -',sum(m));
readkey;
end.
Пример 3. Написать функцию, подсчитывающую количество цифр числа. Используя ее, определить, в каком из двух данных чисел больше цифр.
Решение:
uses crt;
var nl,n2:longint;
kl,k2:byte;
function Quantity(x:longint):byte;
var k:byte;
begin
while x<>0 do
begin
inc(k); x:=x div 10; end;
Quantity:=k;
end;
begin
writeln ('Введите два числа’);
readln(nl,n2);
kl:=Quantity(nl); {количество цифр первого числа}
k2:=Quantity(n2);{количество цифр второго числа}
if kl=k2 then writeln('Одинаковое количество цифр') else if kl>k2 then writeln('В первом числе цифр больше') else writeln('Во втором числе цифр больше');
readkey;
end.
Пример 4. Дана точка. Определить, лежит ли она в кольце.
Решение:
uses crt;
var x,y,r1,r2,a,b:real;
procedure haltpr;
begin
writeln('Неверные данные');
write('r1<r2');
readln; halt;
end;
begin
clrscr;
write('координаты центра окр. a=');readln(a);
write('координаты центра окр. b=');readln(b);
write('x='); readln(x);
write('y='); readln(y);
write('r1=');readln(r1);
write('r2=');readln(r2);
if r1>r2 then haltpr;
if
(sqr(x-a)+sqr(y-b)<sqr(r2))and(sqr(x-)+
sqr(y-b)>sqr(r1))
then write('лежит')
else write('не лежит');
readln;
end.
Пример 5. Определить, сократимая ли дробь a/b (дробь a/b несократимая, если НОД=1).
Решение:
uses crt;
var m,n,ot:longint;
procedure nod(a,b:longint; var n:longint);
begin
while a<>b do
if a>b then a:=a-b
else b:=b-a;
n:=a;
end;
begin
clrscr;
write('числитель');
readln(m);
write('знаменатель');
readln(n);
nod(m,n,ot);
if ot=1
then write('несократимая')
else write('сократимая');
readln;
end.
Задание: Выполните задания в соответствии с номером учащегося в списке по журналу (см. в табл. ).
Таблица – Номера вариантов учащихся по списку
|
Номер задания |
1,20 |
2,19 |
3,18 |
4,17 |
5,16 |
6,15 |
7,14 |
8,13 |
|
Номер учащегося в списке по журналу |
1,9,
|
2,10,
|
3,11,
|
4,12,
|
5,13,
|
6,14,
|
7,15,
|
8,16,
|
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.