Brusss
1

Вычислить значение выражения

17.04.2008, 13:58. Показов 942. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста доделать программу.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include<iostream>
#include<math.h>
#include<fstream>
#include <conio.h>
double a=16,b=0.54,c=5,u1=5,u2=65; 
float uin[500],uout[500],t,dt,uid=0,uod=0;
int i=0;
using namespace std;
void peremennie()
 {
 cout<<"\n\n\nОбратите внимания на формулы!\n";
 cout<<"Пока 0<=tu<1 расчёт происходит по формуле u=a*(1-exp(-b*ttemp)), когда 1<=t<2 по u=a*(1-exp(-b))*exp(-c*(ttemp-1))\n";
 cout<<"* U - напряжение; t - время; a,b,c=константы\n\n\n";
  cout<<"Введите a\n";
  cin>>a;
  cout<<"Введите b\n";
  cin>>b;
  cout<<"Введите c\n";
  cin>>c;
  cout<<"Введите u1\n";
  cin>>u1;
  cout<<"Введите u2\n";
  cin>>u2;
}
void standart()
 { cout<<"\n\n\nОбратите внимание на формулы!\n";
  cout<<"Пока 0<=tu<1 расчёт происходит по формуле u=a*(1-exp(-b*ttemp)), когда 1<=t<2 по u=a*(1-exp(-b))*exp(-c*(ttemp-1))\n";
  cout<<"* U - напряжение; t - время; a,b,c=константы\n\n\n";
  cout<<"a = "<<a<<"\nb = "<<b<<"\nc = "<<c<<"\nu1 = "<<u1<<"\nu2= "<<u2<<"\n\n\n";
 }
float nachf(float ttemp)
  {
  float u;
  if(ttemp<=1) u=a*(1-exp(-b*ttemp));
  else u=a*(1-exp(-b))*exp(-c*(ttemp-1));
  return u;
 } 
void rash(int n)
  {float ud;
   i=0;uid=0;uod=0;ud=0;
   dt=2./(n-1);
   for(t=0;t<=2;t+=dt)
    {
       uin[i]=nachf(t);
       uid+=uin[i]*uin[i]; 
  if (uin[i]<=u1)
        uout[i]=(u2/u1*uin[i]);
  else 
   uout[i]=u2;
       uod+=uout[i]*uout[i];
       i++;
    }
   uid=sqrt(uid/(n-1));
   uod=sqrt(uod/(n-1));
  }
void stemp(int n)
  {
   t=0;dt=2./(n-1);
   for(i=0;i<n;i++)
     {
      cout<<"Время:"<<t<<"c  "<<"Напряжение на входе= "<<uin[i]<<"В  "<<"Напряжение на выходе= "<<uout[i]<<"В  \n";t+=dt;
     }
    cout<<"Действующее входящее напряжение:"<<uid<<"B\n"<<"Действующее выходящее напряжение:"<<uod<<"B\n";
  }
void save(int n)
  {
   ofstream fd("Report");
   t=0;dt=2./(n-1);
   fd<<"Действующее входящее напряжение:"<<uid<<"B\n"<<"Действующее выходящее напряжение:"<<uod<<"B\n";
   for(i=0;i<n;i++)
     {
      fd<<"Время:"<<t<<"c  "<<"Uвх= "<<uin[i]<<"В  "<<"Uвых= "<<uout[i]<<"В  \n";
      t+=dt;
     }
  }
void start()
  {
     cout<<"\n\n\nДобро пожаловать!\n1. Просмотреть текущие значения для расчётов\n2. Изменить значения\n3. Произвести расчёты\n4. Просмотреть текущие результаты расчётов\n5. Записать расчёты в файл\n6. Выход из программы\n";
  }
int main()
{
 int n,temp;
 char quit;
 start();
 while((quit=getch())!='6')
  {
   switch(quit)
 { 
 case '1':
  {
  standart();
  break;} 
 case '2':
  {
                peremennie();
                break;
                }
       case '3':{
  cout<<"Сейчас расчёт производится со следущими значениями:";
  rash();
                cout<<"Введите количество точек (от 3 до 500):";cin>>n;
                if(n<=500&&n>=3)
                 {
                  temp=n;
                  Calc(n);
                 }
                else{cout<<"Вы ввели неверное значение\n";n=temp;}
                break;
               }
      case '4':{
                stemp(n);
                break;
               }
      case '5':{
                save(i);
  cout<<"Сохранение прошло успешно! \n\n\n";
                break;
               }
      default:start();
    }
  }
}
Проблема в calc. Как я понял его нужно згде-то задать, но не понимаю где)
Или можно обойтись rash, но как не пробовал, ничего не вышло
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2008, 13:58
Ответы с готовыми решениями:

Вычислить значение выражения
Помогите решить задачу С++ Visual studio

Вычислить значение выражения

Вычислить значение выражения
Даны целые числа. Нужно вычислить при помощи массивов ...

Вычислить значение выражения
y=sin x + sin(x^2)+sin(x^3)+ ... + sin(x^k)

3
10 / 3 / 7
Регистрация: 25.03.2008
Сообщений: 50
17.04.2008, 18:11 2
Объяви эту ф-ю Calc перед ее первым использованием, то есть перед ф-ей main, в реализации не помогу, т к лень разбираться в коде.
0
Brusss
17.04.2008, 20:42 3
В этом то и проблемма, что я не знаю где и как её объявить(
0 / 0 / 0
Регистрация: 04.04.2008
Сообщений: 6
19.04.2008, 21:59 4
А что Calc делает? Она у тебя не только не объявлена, но и не определена? Если она у тебя написана, лучше сунь её к остальным перед main() и не парься.
0
19.04.2008, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2008, 21:59
Помогаю со студенческими работами здесь

Вычислить значение выражения
Написать программу вычисление уравнения: Y=Ln|arctg-sin(a*x)|+(a*x)^(1/3) Как в c++ описать...

Вычислить значение выражения
Здравствуйте,вот решил покавырятся в заданиях из лабараторных работ (просто для себя)...

Вычислить значение выражения
Задачка вроде простая y(x)=(ln|x-a|+d)/(cx+bx), x=1(0.3)2.5 Вот что получилось: #include &lt;cmath&gt;...

Вычислить значение выражения
Дано натуральное число n. вычислить


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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