Форум программистов, компьютерный форум CyberForum.ru

Не могу найти ошибку в коде - C++

Восстановить пароль Регистрация
 
WhitePilot
Сообщений: n/a
14.12.2012, 23:08     Не могу найти ошибку в коде #1
Добрый вечер.
Собственно, в универе дали задачу

Программу я сделал, работает она верно при небольшой разнице начальной и конечной температур.
При большой, по методу эйлера выводит значение не большее определенного числа
Честно говоря, не знаю, ошибка в математике или коде, но раз работает при небольших числах, наверно, в коде)
C++
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <math.h>
#define N 100000
#define r 0.026
 
int main()
{
 
    double dn,dt,Tei=0,TAn,Tsr,T2,T1;
    long int i;
    double Tn[N];
 
    printf("Write T environment :");
    scanf("%lf",&Tsr);
    printf("Write T start :");
    scanf("%lf",&T1);
    printf("Write T finish :");
    scanf("%lf",&T2);
 
    TAn =  -log((T2-Tsr)/(T1-Tsr))/r;
 
    dn = (T2-T1)/N;
    Tn[1]=T1;
 
    for(i=1;i<=N-1;i++)
    {
       Tn[i+1]=Tn[i]+dn;
       dt = -dn/(r*(Tn[i]-Tsr));
       Tei += dt;
    }
 
    dt = -dn/(r*(Tn[N]-Tsr));
    Tei += dt;
 
    printf("t analit. %lf \n",TAn);
    printf("t eiler   %lf \n",Tei);
 
    return 0;
}
Добавлено через 1 час 32 минуты
Само задание
Есть кувшин кофе
С экрана вводим начальную и конечную температуры кувшина и темп среды.
Расчет времени идет от формулы dT/dt = -r(T1-Tsr)
Отсюда T2 = Ts + (T1-Ts)*exp(-r*TAn).
второй способ решение - разбиваем интервал на N равных отрезков, бла-бла
получаем T[n+1] = T[n] - r*(Tn - Ts)*dt
Сумма dt = Tei
r константа 0.026
Вот.
P.S. Чем вызван запрет выкладывать задания в изображении? мягко говоря влом перепечатывать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 23:08     Не могу найти ошибку в коде
Посмотрите здесь:

Не могу найти ошибку в коде C++
Не могу найти ошибку в коде C++
C++ Не могу найти ошибку в коде :(
C++ Не могу найти ошибку в коде
Не могу найти ошибку в коде C++
C++ Не могу найти ошибку в коде
Не могу найти ошибку в коде C++
Не могу найти ошибку в коде C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
15.12.2012, 00:48     Не могу найти ошибку в коде
  #2

Не по теме:

Цитата Сообщение от WhitePilot Посмотреть сообщение
Чем вызван запрет выкладывать задания в изображении? мягко говоря влом перепечатывать.
Другим пользователям, мягко говоря, тоже влом искать его в pdf-ках, вглядываться в мелкий шрифт или того хуже, когда кто-то от руки своим "каллиграфическим" почерком напишет. А Вы должны свою тему оформить как можно лучше - это в Ваших же интересах.

Yandex
Объявления
15.12.2012, 00:48     Не могу найти ошибку в коде
Ответ Создать тему
Опции темы

Текущее время: 09:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru