Function pr(a, b:integer):integer; var tmp:integer;begin if b = 1 then pr := a else begin tmp := pr(a, b shr 1); inc(tmp, tmp); if b and 1 = 1 then inc(tmp, a); pr := tmp; end;<span>end; рекурсивная ф-ия, алгоритм работает гораздо быстрее лобового складывания (хоть с большими числами). Процедура пишется аналогично. (если не допрешь - скажи, сделаю)</span>
Вместо "a := a * a" можно использовать "a := sqr(a)"
--------------------------------------------------------------------
var
a : integer;
begin
write('Введите число: '); //Вывод сообщения
readln(a); //Ввод числа
a := a * a; //Возведение в квадрат
writeln('Введенное число в квадрате = ', a); //Вывод результата
readln;
end.
Ответ:
#include <math.h>
int main()
{
double a, b, s;
s = 0.5 * a * b * sin(M_PI / 6); // так выглядит формула расчета площади M_PI это число Пи, определена в <math.h>
s = 0.25 * a * b; // sin (П / 6) равно 1/2, если угол не будет изменяться, то можно написать так
}
Var n,k:integer;
begin
write('N = ');
readln(n);
k:=(n+1) div 2;
writeln('Количество парт может быть от ',k,' (min) до ', n,' (max)');
end.
Пример:
N = 9
Количество парт может быть от 5 (min) до 9 (max)