|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.03.2010, 20:44 | #1 |
Регистрация: 14.02.2010
Сообщений: 9
|
Делфи. Программа немного не то считает
нужно вычислить сумму ряда сточностью е=10^-3
если общий член an=(10^n)/n! что неправильно! всяко исправлял! и пост какие то ошибки! либо считает не сумму а прост общий член! когда задаю цилом, выдает мол деление на ноль не догоняю чет короче! если кто может подскажите ЗАРАНЕЕ СПАСИБО! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function factorial(n:Word):Longint; var f:longint; i:integer; begin f:=1; for i:=2 to n do f:=f*i; result:=f; end; procedure TForm1.Button1Click(Sender: TObject); const e=0.1E-2; var {объявление локальных переменных} Code1,Code2:integer; v2,v3:real; s1,s3: string; v1,n:integer; begin s1:= Edit1.Text ; {чтение строки из Edit1 в s1} Val(s1,v1, Code1); {преобразование строки s1 в число v1 и выдача кода ошибки} {если нет ошибки, то Code1=0} if Code1 <> 0 then Label4.Caption:='Неверный ввод '; if (Code1=0) then {если нет ошибок ввода} begin while v2>e do begin v3:=0; v2:=(exp(ln(10)*(v1)))/factorial(v1); {расчет суммы} v3:=v3+v2; Str(v3:5:2, s3); {преобразование суммы в строку} Label4.Caption:='OK, сумма равна:'+ s3; {вывод сроки в элемент Label4} end; end; end; end. |
22.03.2010, 21:26 | #2 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
неправильно шпаришь )
и я не пойму, зачем здесь exp и ln легче написать функцию возведения в степень числа 10 (это очень просто), функцию факториал ты написал (за правильность не ручаюсь) и все считаешь допустим, функция возводит в степень любое число Stepen(i: integer; st: integer), а fact(i: integer) считает факториал Код:
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
22.03.2010, 21:33 | #3 |
Регистрация: 14.02.2010
Сообщений: 9
|
Спасибо что откликнулся!)
так exp и ln это возведение в степень! while a > 0.001 do begin inc(i); a := stepen(10, i) / fact(i); s := s + a; end; я прост не шарю в Дельфи) всегда в степень через экспоненту возводил) а что такое inc?? извиняй я нуб в этом деле!!( короче не считает! в с таким циклом он в label4 вобще ничего не выводит! факториал прально считаеТ!! проверено!!! что же дальше!!! ес не делать никакого цикла он считает просто общий член! если делать то ничего не выводит( Последний раз редактировалось santi90; 22.03.2010 в 21:40. |
22.03.2010, 21:41 | #4 |
Участник клуба
Регистрация: 29.12.2009
Сообщений: 1,166
|
ты наверн меня узнал? тебе скидочку сделаю
i - кол-во итераций inc(i) - инкремент переменной кол-ва итераций, т.е. i := i +1; блин, я б те за 15 мин написал всё это (3руб\мин), но неохота заморачиваться, а ты уже близок к тому, чтоб разродиться )
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть] |
22.03.2010, 21:45 | #5 |
Регистрация: 14.02.2010
Сообщений: 9
|
конечно узнал!) блин ну те 15 минут!) а я разрождаться буду весь вечер)
я прост подумал может надо как то начальное значение дать! типа общий член при n=1, как бы только как реализовать это ХЗ!!) |
22.03.2010, 22:04 | #6 |
Регистрация: 14.02.2010
Сообщений: 9
|
мне же смотри там надо делать с кнопами и тд!
я хотел чтобы в Edit вводишь число членов!! типа найти сумму 9 членов рядА! и чтобы считало! а если по тому циклу как ты показал он чет вообще не считает( как бы получается что то что я ввожу он инкриминирует! хотя этого же не надо вроде как делать!( короче я окончательно запутался! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написал прогу! немного не то считает! | santi90 | Компоненты Delphi | 2 | 23.03.2010 18:42 |
программа Добавляет левые элементы в массив, и не считает числа входящие в условие! | lutfi | Общие вопросы C/C++ | 1 | 12.12.2009 00:48 |
Как проверить, верно ли считает программа? | Mixim | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 05.12.2009 07:14 |
Программа считает пробел за конец строки | AxenicX | Общие вопросы C/C++ | 3 | 12.11.2009 10:16 |
Программка в Борланд Си... Программа есть... Ошибку не высвечивает но и не считает... Спасайте... | Катюшенька | Помощь студентам | 1 | 18.05.2009 22:21 |