Описать рекурсивную функцию SqrtK(x,k,n) вещественного типа, находящую приближенное значение корня k-й степени из числа x по формуле: y(0) = 1, y(n+1) = y(n) – (y(n) – x / y(n)k–1) / k, где y(n) обозначает
SqrtK(x,k,n) (x – вещественный параметр, k и n – целые; x > 0, k > 1, n > 0).
С этой функции найти приближенные значения корня K-й
степени из X при 6 различных значениях N для данных X и K .
program ostan;
var N,I,J,res: integer;
prov:real;
begin
writeln('Введите количество остановок на маршруте автобуса: ');
read(N);
writeln('Введите пункт отправления ');
read(I);
writeln('Введите конечную остановку ');
read(J);
//N должно быть >1, т.к. для корректного выполнения задачи у нас должно быть хотябы 2 остановки
//I<N+1; +1 для того, что I или J могут быть крайними
//I<>J означает I не равно J, т.к. если мы отправляемся на ту-же остановку, где мы сейчас находимся, ездить незачем
if ((N>1)and(I<N+1)and(J<N+1)and(I<>J)) then
begin
//Тут вводится переменная prov - проверка, как нам короче ехать, от меньшего к большему или в обратную сторону
prov:=N/2;
if (I<J) then if (prov>J-I) then res:=J-I-1 else res:=N-J+I-1 //если I<J, и если разница J-I < prov, то нам выгоднее ехать по прямой, если >, то в обратную сторону
else if (prov>I-J) then res:=I-J-1 else res:=N-I+J-1; // то-же самое, только для I>J
writeln();
writeln('Количество остановок между пунктами = ',res);
end
else writeln(); writeln('ДАННЫЕ НЕ КОРРЕКТНЫ, ОШИБКА ВВОДА');
end.
Хоть какая-то интересная задача на этом сервисе)
Const
s=5;
Var
ar:array[1..s] of integer;
n,m,i:integer;
begin
writeln('N');
readln(n);
writeln('M');
readln(m);
writeln('Array:');
for i:=1 to s do
readln(ar[i]);
writeln('First array:');
for i:=1 to s do
begin
write(ar[i]:4);
if ar[i] div n<>0 then ar[i]:=ar[i]+m;
end;
writeln;
writeln('Final array:');
for i:=1 to s do
write(ar[i]:4);
end.
Пример ввода:
3
3
1
2
3
4
5
Пример вывода:
First array:
1 2 3 4 5
Final array:
1 2 6 7 8
//Блок-схема во вложении