|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2010, 13:35 | #1 |
Пользователь
Регистрация: 20.06.2010
Сообщений: 17
|
Найдите ошибку
Значения функции f(x)=(2x+lgx)/(1+lgx) записать в массив. Вычислить значение интеграла использую формулу I1=h*[f(a)/2+f(a+h)+f(a+2h)+...+f(a+(n-1)h)+f(b)/2]
h=(b-a)/n, n=100. a=1, b=10. Я сначала заполнил массив используя x от 0 до 99 и h. Потом нашёл сумму повторяющейся части формулы интеграла. Потом добавил к ней начало и конец. Код:
Последний раз редактировалось Stilet; 23.11.2010 в 14:00. |
23.11.2010, 13:54 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Код:
Последний раз редактировалось Sibedir; 23.11.2010 в 13:59. |
23.11.2010, 14:30 | #3 | |
Пользователь
Регистрация: 20.06.2010
Сообщений: 17
|
За sum спасибо.
Про Цитата:
В общем поменял тип переменной sum, в результате всё равно 0. |
|
23.11.2010, 15:41 | #4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
mass[100] = f(b)
|
23.11.2010, 16:17 | #5 |
Пользователь
Регистрация: 20.06.2010
Сообщений: 17
|
Точно, спасибо, не обратил внимание. Только почему всё равно не выводит результат?
|
23.11.2010, 16:24 | #6 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
Я прогнал твою программу на Java , так проблема была в h=(b-a)/n; .
Вот код , который я перевел в Java . Код:
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
Последний раз редактировалось Stilet; 23.11.2010 в 17:15. |
23.11.2010, 16:34 | #7 |
Пользователь
Регистрация: 20.06.2010
Сообщений: 17
|
Поставил (float) в сторку h=(b-a)/n; Сейчас результат выводится. Спасибо. Только зачем это (float) нужно?
|
23.11.2010, 16:48 | #8 |
Форумчанин
Регистрация: 23.11.2010
Сообщений: 458
|
Так как у тебя все числа , вот в этой формуле int : (b-a)/n . Компайлер отбрасывает все что у тебя есть после точки . И если число меньше 1 получилось , то тебе в h записывается 0.0 . Но если ты сделал "Cast to float" , то ничего не отбрасывается . Он считает число как float , а не как int .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найдите ошибку | *natali* | Помощь студентам | 3 | 08.11.2009 17:30 |
Найдите ошибку | MaJlbBuHa | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 20.10.2009 23:26 |
Найдите ошибку | St1fler92 | Помощь студентам | 4 | 26.05.2009 15:23 |
найдите ошибку | Сова | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 11.02.2009 18:46 |