![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 37
|
![]()
Спасибо всем кто помог
![]() |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 37
|
![]()
Задача на циклы! При некоторых заданных х, N и E, определяемых вводом, вычислите сумму N слагаемых заданного вида, а так же сумму тех слагаемых, которые по абсолютной величине больше E. Для второго случая выполните суммирование для двух значений E, отличающихся на порядок, и при этом определите количество слагаемых, включенных в сумму. Сравните результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем на интервале (-R, R).
1∕ √1-x^2=1+1/2*x^2+(1*3)/(2*4)*x^4+(1*3*5)/(2*4*6)*x^6+…. (R=1). Ребят подправьте строчку a:=(a*(2*i+1))/2*(i*sqr(x)),чтобы приближенное значение совпадало с приближенным....сижу сижу....и нихера не додумаюсь как сделать ее....никак не получается.... Код: Program ProjectGg1; {$APPTYPE CONSOLE} uses SysUtils, Windows, Math; Var E,a,x,S:real; k,N,i,j,choice:integer; exit_:char; Begin SetConsoleOutPutCP (1251); Repeat writeln('1.сумма N слагаемых'); writeln('2.С точностью E'); writeln('3.завершение работы.'); readln(choice); If choice=3 then exit; if (choice <>1) and (choice <>2) and (choice<>3) then begin writeln('неверный выбор'); writeln('введите 1, 2 или 3') end; if (choice =1) or (choice =2) then begin repeat write('введите X (-1<X<1): '); readln(x); if (x<=-1) and (x>=1) then begin writeln('неверное значение x'); //writeln('введите X (-1<X<1): ') end; until abs(x)<1; writeln('точное значение=', 1/sqrt(1-sqr(x)):9:7); end ; if choice=1 then begin writeln('введите количество слагаемых'); readln(N); S:=0; a:=1; for i:=0 to N-1 do begin S:=S+a; a:=(a*(2*i+1))/2*(i*sqr(x)); end; writeln('сумма ',N,' слагаемых равна ',S:9:7) end else begin writeln('введите E'); readln(E); S:=0; a:=1; i:=0; for k:=1 to 2 do begin while abs(a)>=E do begin S:=S+a; a:=(a*(2*i+1))/2*(i*sqr(x)); i:=i+1 end; writeln('приближенное значение (',E:8:4,')=' , S:9:7); writeln('число слагаемых=' , i); E:=E/10 ; end; writeln('завершение работы?(Y/N)'); readln(exit_) end; until (choice=3) or ((exit_='Y') or (exit_='y')); End. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поправьте пожалуйста код | batonza | Общие вопросы C/C++ | 3 | 03.10.2009 11:05 |
Поправьте код, пожалуйста! | Blondy | Общие вопросы C/C++ | 10 | 14.09.2009 01:47 |
Поправьте код!!! | Klim Bassenger | Microsoft Office Excel | 15 | 27.05.2009 15:24 |
Поправьте пожалуйста код... | Rymond | Помощь студентам | 4 | 26.04.2009 19:41 |
Поправьте код! | Klim Bassenger | Microsoft Office Excel | 1 | 10.04.2009 15:46 |