Помогите написать программу в турбо делфи
Вот что у меня получилось но чет ответ какой то нетакой.
При некоторых заданных x, N и E, определяемых вводом, вычислить: a) сумму N слагаемых заданного вида; b) сумму тех слагаемых, которые по абсолютной величине больше Е. Для случая b выполнить суммирование для двух значений Е, отличающихся на порядок, и при этом определить количество слагаемых, включенных в сумму. Сравнить результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем в интервале (-R, R). 1/sqrt(1-sqrX)=1+1/2*sqrX+1*3/2*4*sqrX-1*3*5/2*4*6*x^6+...(R=1)} program project1; {$APPTYPE CONSOLE} //const n=3; var x,s,p,stx,e:real; i,j,k,zn,n,ch:integer; begin writeln('wwedite x'); readln(x); writeln('wwedite e'); readln(e); writeln('wwedite n'); readln(n); s:=1; p:=1; for i:=1 to n do begin p:=p*(2*i-1)*sqr(x)/(2*i); s:=s+p; end; writeln('summa= ',s:9:5); s:=1; stx:=sqr(x); k:=1; ch:=1; zn:=2; i:=2; while ch*stx/zn>e do begin s:=s+ch*stx/zn; k:=k+1; inc(i,2); zn:=zn*i; ch:=ch*(i-1); stx:=stx*sqr(x); end; writeln('summa= ',s:9:5); writeln('kol-vo slag= ',k); e:=e/10; s:=1; stx:=sqr(x); k:=1; ch:=1; zn:=2; i:=2; while ch*stx/zn>e do begin s:=s+ch*stx/zn; k:=k+1; inc(i,2); zn:=zn*i; ch:=ch*(i-1); stx:=stx*sqr(x); end; writeln('summa= ',s:9:5); writeln('kol-vo slag= ',k); readln; end. |
Цитата:
ch, zn:Extended; Дело в том, что с увеличением i значения этих переменных быстро нарастают и они "вылетают" за границу допустимого диапазона Integer. Кроме того, раз требуют, нужно в самом конце, перед readln, добавить writeln('tochnoe znach= ',1/sqrt(1-sqr(x)):9:5); Вот и всё. |
Большое спасибо
|
Только есть неьольшая проблемка, все добавил, ток вот при запуске появляется окно я ввожу переменные нажимаю интер и программа вылетает
|
Получившийся листинг - сюда, будем разбираться.
|
Цитата:
Readln; Halt; , локализовать место сбоя. Дело в том, что поскольку программа написана не столько на Дельфи, сколько на Паскале, то я вчера ее на Паскале и отлаживал. У меня всё идёт и не вылетает. И да, кстати насчет листинга - AlexZir прав: выложите, посмотрим. Может быть, просто описка где-то. |
я в этом новичок) листинг эт че скрин?
|
Нет, это текст программы.
|
Да, и еще вопрос - какие значения параметров вводите? Особенно х интересует.
|
program project1;
{$APPTYPE CONSOLE} //const n=3; var x,s,p,stx,e:real; i,k,n:integer; ch,zn:Extended; begin writeln('wwedite x'); readln(x); writeln('wwedite e'); readln(e); writeln('wwedite n'); readln(n); s:=1; p:=1; for i:=1 to n do begin p:=p*(2*i-1)*sqr(x)/(2*i); s:=s+p; end; writeln('summa= ',s:9:5); s:=1; stx:=sqr(x); k:=1; ch:=1; zn:=2; i:=2; while ch*stx/zn>e do begin s:=s+ch*stx/zn; k:=k+1; inc(i,2); zn:=zn*i; ch:=ch*(i-1); stx:=stx*sqr(x); end; writeln('summa= ',s:9:5); writeln('kol-vo slag= ',k); e:=e/10; s:=1; stx:=sqr(x); k:=1; ch:=1; zn:=2; i:=2; while ch*stx/zn>e do begin s:=s+ch*stx/zn; k:=k+1; inc(i,2); zn:=zn*i; ch:=ch*(i-1); stx:=stx*sqr(x); end; writeln('summa= ',s:9:5); writeln('kol-vo slag= ',k); writeln('tochnoe znach= ',1/sqrt(1-sqr(x)):9:5); readln; end. |
Часовой пояс GMT +4, время: 21:55. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.