2 Лабы (легкие Для Вас Точно)

  • Автор темы DjSwat
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

DjSwat

#1
1 Лаба 2 задание
http://i48.fastpic.ru/big/2012/1110/f7/958...4deba090ff7.jpg

1 лаба 2 задание
Код:
var s,e,c,x:real;
m:integer;
begin
e:=0.0001;
m:=1;
s:=1;
c:=1;
writeln ('vedite x');
readln (x);
if abs(x)<1 then begin
while abs(c)>e do begin
c:=x*c;
if old(m) then s:=s-c else s:=s+c;
m:=m+1;
end;
writeln(s:4:4);
writeln (1/(1+x):4:4);
end
else writeln ('Ne verno, |x|>1');
readln;
end.
но училка сказала, да и я сам понял, что нету, чтобы он считал 1/2 * 3/4 и т.д.
Гр*цензура*ый этот бесконечный ряд. помогите.

2 лаба 2 задание
http://i48.fastpic.ru/big/2012/1110/04/30f...38c50d19104.jpg

2 лаба 1 задание - чисто проверьте.
Код:
var d,i,l:integer;
s,n:real;
begin
writeln ('Vedite taimer kruga');
readln (d);
n:=d/2;
if (d>=1) and (d<=5) then begin
writeln ('	  0 |  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 |');
for i:=1 to 10 do begin
write (d:2,'|');
for l:=0 to 9 do begin
s:=pi*sqr(n);
write (s:6:0,'|');
n:=n+1;
end;
d:=d+10;
writeln;
end;
end
else writeln ('Diemetr weden ne verno');
readln;
end.
а вторую помогите
 

Senset

Well-known member
11.09.2006
136
0
#2
1 Лаба 2 задание
Всё достаточно просто:
1) Внимание на картинку

1.1) Накопление числителя выделим в переменную A;
1.2) Накопление знаменателя выделим в переменную B;
2) Обозначим начальные условия (sum=0, slag=1);
3) Будем менять знак слагаемого (slag) каждый раз при проходе через цикл, таким образом избавляемся от переменных связанных со знаком
4) Суммирование ряда происходит до тех пор, пока слагаемое проходит по точности (т.е. больше неё)... В моем исполнении слагаемое вычисляется до того как сдвигается числитель, т.е. алгоритм цикла спешит завершиться на одно слагаемое раньше, потому добавим после цикла строчку с дополненным слагаемым и при проверке будет очевидно, что точность достугнута
5) Исходный код (представлен в виде функции для простоты импорта в Ваш проект), где e-точность, x-конкретное значение переменной:
Код:
function ryad(e,x:real):real;
var sum,slag:real;
a,b:integer;
begin
if abs(x)>=1 then writeln('bad X')
else
begin
sum:=0;
a:=1;
b:=2;
slag:=1;
while abs(slag)>e do
begin
sum:=sum+slag;
slag:=-slag*a/b*x;
a:=a+2;
b:=b+2;
end;
sum:=sum+slag;
ryad:=sum;
end;
end;
 
D

DjSwat

#3
Блин. Как все легко, когда сомтришь на ответ. А вот так мне сложно. Спасибо за объяснение.. А что на счет второго задания?
 

Senset

Well-known member
11.09.2006
136
0
#4
Блин. Как все легко, когда сомтришь на ответ. А вот так мне сложно. Спасибо за объяснение.. А что на счет второго задания?
Я его не проверял, но формально вроде всё соблюдено:
два цикла, расчет площади для каждой ячейки, и типа красивый вывод...
в общем я думаю у Вас все хорошо, но лучше вручную перепроверьте пару значений в таблице (например 1,3; 5,6; строка,столбец) сами
 
Статус
Закрыто для дальнейших ответов.