Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
1

Не могу найти ошибку в программе

23.06.2012, 18:37. Показов 578. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача во вложении

Вот листинг программы:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button1Click(Sender: TObject); 
var x,s,n,sum,chislit,znamen:real; 
k,i,f:integer; 
begin 
x:=strtofloat(Edit1.Text); 
k:=1; 
sum:=0; 
repeat 
 
s:=1; 
for i:=1 to k do 
s:=s*x; 
chislit:=s; 
 
f:=1; 
for i:=1 to k do 
f:=f*i; 
znamen:=2*f; 
 
n:=chislit/znamen; 
k:=k+1; 
sum:=sum+n; 
until n<0.000001; 
edit2.text:=floattostr(sum); 
end;
При определенных значениях (больше 8) выдает отрицательные значения, при введенных положительных, хотя появиться отрицательному значению, вроде-бы, неоткуда.

Даже при объявлении s и chislit как double при значениях выше восьми результат начинает принимать отрицательные значения
Миниатюры
Не могу найти ошибку в программе  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2012, 18:37
Ответы с готовыми решениями:

Не могу найти ошибку в программе
Помогите, пожалуйста, только начинаю познавать среду делфи. Задание такое: Треугольник задан тремя...

Не могу найти ошибку в программе
procedure TForm1.Button1Click(Sender: TObject); var n,i: integer; a,b:array of real;...

Не могу найти ошибку в программе...
Приветствую! Нашел на сайте чудо-исходник :) избитой темы программы-теста Автор сего, видать...

Не могу найти ошибку в программе
Помогите найти ошибку в программе! Вочислить а: если х*y&gt;0 то a=(f(x)+y)^2-(f(x)*y)^0.5 ...

6
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
23.06.2012, 18:53 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var x,s,sum:real;
    k:integer;
begin
x:=strtofloat(Edit1.Text);
k:=1;
sum:=x/2;
s:=x/2;
repeat
k:=k+1;
s:=s*x/k;
sum:=sum+s/2;
until s/2<0.000001;
edit2.text:=floattostr(sum);
end;
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
23.06.2012, 18:59  [ТС] 3
А можно с комментариями? Я пока, конечно пытаюсь сообразить что происходит, но как-то туго...
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
23.06.2012, 19:07 4
Используем частичное рекуррентное отношение
s[n]=s[n-1]*x/n;
A[n]=s[n]/2;

Delphi
1
2
3
4
5
6
7
8
k:=1;
sum:=x/2;//сумма при к=1
s:=x;//первый член ряда, не деленный на 2
repeat
k:=k+1;
s:=s*x/k;//следующий домножаем на х и делим на к=x^k/k!
sum:=sum+s/2;//делим на 2 и прибавляем
until s/2<0.000001;//s/2 меньше точности=конец
Добавлено через 1 минуту
Последовательно умножая на х, получаем x^k, а последовательно делить на номер получаем 1/k!
1
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
23.06.2012, 19:17  [ТС] 5
Вот при s:=x, а не s:=x/2 стало понятно. Огромное спасибо!!!
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
23.06.2012, 19:19 6
Ошибся в первый раз.
0
0 / 0 / 0
Регистрация: 23.06.2012
Сообщений: 39
23.06.2012, 19:29  [ТС] 7
С такой скоростью ответа это нормально!
0
23.06.2012, 19:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2012, 19:29
Помогаю со студенческими работами здесь

Не могу найти ошибку в программе
Помогите, пожалуйста, с задачей - все никак не могу найти ошибку, из-за чего ответ выводится...

Не могу найти ошибку в программе
Программа создает файл с сведениями автомобиле, далее происходит сортировка списка: вывод на экран,...

Не могу найти и исправить ошибку в программе
Считываю из тхт файла строки, в каждой строки 7 значений разделенных &quot;;&quot; считываю в stringlist...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru