function Pow(p: real; n: integer): real; // возвращает значение p^n begin Pow := exp(n * ln(p)) end;
function Fact(n: integer): real; // возвращает значение n! var p: real; i: integer; begin p := 1; for i := 1 to n do p := p * i; Fact := p end;
var i: integer; a, ai: real;
begin a := 0; ai := 2 * eps; i := 0; while ai > eps do begin i := i + 1; ai := Pow(2 / i, i) * Fact(i); a := a + ai end; writeln('Сумма первых ',i, ' членов ряда с точностью ', eps:0:4, ' равна ', a:0:4) end.
Тестовое решение:
Сумма первых 32 членов ряда с точностью 0.0010 равна 12.9467
program Ex1; const nn=100; { ограничение на длину массива } var i,n,s,k:integer; a:array[1..nn] of integer; begin Randomize; Write('n='); Read(n); k:=0; for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' '); if a[i]>0 then begin k:=k+1; s:=s+a[i] end end; Writeln; Writeln('Среднее положительных ',s/k) end.
program Ex2; const nn=100; { ограничение на длину массива } var i,n,min:integer; a:array[1..nn] of integer; begin Randomize; Write('n='); Read(n); min:=100; { больше максимально возможного } for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' '); if a[i]<min then min:=a[i] end; Writeln; Writeln('Минимум ',min) end.
Выводы о том, чему и как учат в школе, делайте самостоятельно...
Например, дом в Районах Крайнего Севера. Проблема: Экономия электроэнергии в период долго длящегося темного времени суток - Полярная ночь. Цель проекта: Обеспечить экономию энергоресурсов в домах в районах Крайнего Севера. Задача: Создать умный дом, снабженный устройством, экономящим электричество. Исследование: Снабжение подьездов и этажей домов датчиками, определяющими нахождение человека на данном дома участке. Произведем подьем по лестнице такого умного дома. При подьеме на этаж датчик включает свет, а после удаления - выключает. В том месте, где никого нет - свет выключен и энергия экономится. Выбор систем: выбираем самые миниатюрные и дешевые датчики контроля с целью их массовой покупки и использования. Самооценка и оценка: Эффект экономии большой. Рекомендуется использовать их и в других районах в зимнее время.
eps = 0.001;
function Pow(p: real; n: integer): real;
// возвращает значение p^n
begin
Pow := exp(n * ln(p))
end;
function Fact(n: integer): real;
// возвращает значение n!
var
p: real;
i: integer;
begin
p := 1;
for i := 1 to n do p := p * i;
Fact := p
end;
var
i: integer;
a, ai: real;
begin
a := 0;
ai := 2 * eps;
i := 0;
while ai > eps do
begin
i := i + 1;
ai := Pow(2 / i, i) * Fact(i);
a := a + ai
end;
writeln('Сумма первых ',i, ' членов ряда с точностью ', eps:0:4, ' равна ', a:0:4)
end.
Тестовое решение:
Сумма первых 32 членов ряда с точностью 0.0010 равна 12.9467