Небольшая программа по решению уравнений - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Недавно начал изучать с++ , опыт в программировании только на паскале. Вот написал прогу ,что смог исправил ,столкнулся с проблемой при возведении в степень - pow ,как исправить? по паскалевски там должно быть так q=q0*e^(-r^2/r0^2) h= (2*B*Tm*u/Ta)^(1/2)*e^(-Ta/2*Tm^2) Может есть другой более легкий способ возведения в степень \извлечение корня. Вот ошибки кот выдает Visual C++: warning C4627: #include <stdio.h>: пропущен при поиске использования предкомпилированного заголовка Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка warning C4627: #include <math.h>: пропущен при поиске использования предкомпилированного заголовка Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка error C2064: результатом вычисления фрагмента не является функция, принимающая 2 аргументов ( это про pow ) error C2064: результатом вычисления фрагмента не является функция, принимающая 2 аргументов... Заранее спасибо
#include <stdio.h>
#include <math.h>
#include "stdafx.h"
int main()
{
 double q=1,q0=2,e=3,r=4,r0=5;
 double A=0.5,t=2,p=1,c=2,h=3, Tn=4,Tm=5;
 double B=3,T=2,u=1,Ta=2;
 int i=0;
 while (i!=10)
  {
    q=q0*(pow (e,(-pow(r,2)/pow(r0,2))));
   Tm=(A*q*t)/(p*c*h)+Tn ;
   h=pow   (    (   2*B*Tm*u/Ta*pow(e,-Ta/2*pow(T,2))    )   ,  (1*1.0/2)     );
   A=A+B*h;
   ++i;
   printf("Posle %d umpulsa\n", i);
   printf("Tolshina plenku = %f\n",h);
   printf("nogloshatelnaya sposobnostb=%f\n",A);
   }
 return 0;
}

Решение задачи: «Небольшая программа по решению уравнений»

textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include "cmath"
int main()
{
 double q,q0=37000000000,e=2.718,r=0,r0=0.0000002;
 double A=0.5,t=0.00000001,p=7190,c=425,h0=0.00000006, Tn=293,Tm,b=80000000;
 double B=0.00003,u=0.00000001,Ta=32500;
 long double h;
 int i=0;
 while (r!=0.00004)
 {
 printf(" r=%d\n ", r);
   printf ("+---|----------------|----------+\n") ;
  printf (" | n |     h          |     A    |\n") ;
  printf (" |---|----------------|----------|\n") ;
  while (i!=10)
   {
    q=q0*(pow (e,(-pow(r,2)/pow(r0,2))));
   Tm=(A*q*t)/(p*c*h0)+Tn ;
 
   h=pow((2*B*Tm*u/Ta),(1*1.0/2))*pow(e,(-1*Ta/(2*Tm))) ;
   A=A+b*h;
   ++i;
   printf(" | %d ", i);
   printf("| %+E",h);
   printf(" | %f |\n",A);
    }
   printf (" +----|----------------|----------+\n") ;
    r=r+0.000005;
}
 
 scanf("%d",&q);
 return 0;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Объявляются переменные: q, q0, e, r, r0, A, t, p, c, h0, Tn, Tm, b, B, u, Ta
  3. Объявляется переменная h типа long double
  4. Объявляется переменная i типа int
  5. Задаются начальные значения переменных
  6. В цикле while выполняется условие, пока значение переменной r не станет равным 0.00004
  7. В цикле while выполняется условие, пока значение переменной i не станет равным 10
  8. Вычисляется значение переменной q
  9. Вычисляется значение переменной Tm
  10. Вычисляется значение переменной h
  11. Вычисляется значение переменной A
  12. Выводится значение переменной h, значение переменной A и номер i
  13. Увеличивается значение переменной i на 1
  14. Увеличивается значение переменной r на 0.000005
  15. Если значение переменной i равно 10, то выполнение программы завершается и выводится сообщение об ошибке
  16. Вводится значение переменной q с клавиатуры
  17. Программа возвращает 0, что означает успешное завершение работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5