Сравнить скорость сходимости (число слагаемых для достижения заданной точности) следующих приближений числа: пи = 4 * (1 - 1/3 + 1/5 - 1/7 + 1/9 - ; пи = 3 + 4 * (1/(2*3*4) - 1/(4*5*6) + 1/(6*7*8) - ; пи = sqrt(6 * (1 + 1/(2*2) + 1/(3*3) + 1/(4*4) + на паскале .
const n=10;
var a:array[1..n] of integer;
s,i:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=random(51)-25;
write(a[i]:4);
end;
writeln;
s:=0;
for i:=1 to n do
if a[i]<0 then a[i]:=-a[i];
writeln('Полученный массив:');
s:=0;
for i:=1 to n do begin
write(a[i]:4);
s:=s+a[i];
end;
writeln;
writeln('s = ',s);
end.
Пример:
Исходный массив:
3 2 16 18 -16 -20 -15 -8 -23 17
Полученный массив:
3 2 16 18 16 20 15 8 23 17
s = 138
2.
begin
var a:=ArrRandom(ReadInteger('n='),-25,25);
a.Println;
a:=a.Select(x->x<0?-x:x).ToArray;
a.Println;
Writeln('Сумма равна ',a.Sum);
end.
"i := 0 to 10" - это начальное и конечное значения (ноль и десять)
т.е. начинаем с нуля, что-то делаем, и берем следующее число - "1"
потом снова что-то делаем, берем следующее - "2"
в "i" - записывается то число, с которым работаем в данный момент
и так, пока не дойдем до "10"
а вот что именно делать - написано между словами "begin" и "end"или сразу после "do" (если строка одна)
1) Можно представить несколько клеток с номерами (A0...A10) и числами в них
а в квадратных скобках "[i]" - номер клетки
Берем ноль, A[0] - "ячейку с номером 0" и записываем туда число 10
A[i] := 10 - i;
A[0] = 10 - 0 (в А0 записать 10)
далее в A[1] записываем "9" (10 - 1)
в A[2] записываем "8" (10 - 2)
и так до десяти включительно
2)далее цикл от 0 до 5
A[10-0] = A[5-0] (из десятой клетки записываем число в пятую)
A[5+0] = A[0]
A[10-1] = A[5-1] (из 9ой в 4)
A[5+1] = A[1] (из 6ой в 1)
A[10-2] = A[5-2] (8 -> 3)
A[5+2] = A[2] (7 -> 2)
и т.д. и т.п.
3)как-то так должно работать (следующий столбец - следующее число)