Другие языки программирования и технологии

Помогите решить задачку на python или pascal

1. s = -1/3 + 1/10 - 1/21 + 1/216 - 1/1320 + ...
Для достижения точности a=0,001 достаточно взять четыре члена ряда (но можно взять и целых пять - результат только точнее будет) и такую сумму можно очень быстро вычислить, например, на калькуляторе. На Паскале же будет как-нибудь так:
 var n: integer; a, p, s: real; 
begin
s := 0; p := 1; n := 0; a := 100;
while abs(a) > 0.001 do
begin
n := n + 1; p := - p / n;
a := p / (2 * n + 1);
s := s + a;
writeln(n:2,' ',a:12:8,' ',s:12:8)
end
end.
2. Какие такие циклы с постусловием есть на Пайтоне типа паскальевского repeat until или сишного do while? На Паскале с постусловием в отдельной функции:
 var a, x, y: real; 

function f(x, a: real): real;
var p, q, r: real;
begin
r := -9 * x * x;
f := x; p := x; q := 0;
repeat
q := q + 2;
p := p * r / (q * (q - 1));
f := f + p;
until abs(p) < a;
end;

begin
while true do
begin
write('x a: ');
readln(x, a);
y := f(x, a);
writeln(y, ' (err=', y - x * cos(3 * x), ')')
end
end.

С предусловием там цикл в основной программе, в которой вводятся аргумент и требуемая точность вычислений, а выводятся значение функции и фактическая ошибка вычислений этой функции через сумму ряда:
Светлана Котий
Светлана Котий
66 572
Лучший ответ
Нуржан Кыстаубаев в первой куда факториал делся?
Нуржан Кыстаубаев a := 1e100; что это
Светлана Котий *инициация, а не иниация ))
Вторая
     n := 0; 
a := x;
S := a;
repeat
Inc(n);
a := -a*Sqr(x)*9/(2*n-1)/(2*n);
S := S + a;
until Abs(a)
***** *****
***** *****
59 627
Нуржан Кыстаубаев Это с постусловием? С пред не делал?
Нуржан Кыстаубаев ничего не понятно в коде, и нет cos3x