Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Brusss
#1

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

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

Помогите пожалуйста доделать программу.

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, но как не пробовал, ничего не вышло
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2008, 13:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить значение выражения (C++):

Вычислить значение выражения - C++
Вычислить yi=7*arctg(xi)+F; здесь i=1,15 (1 до 15). Массив x вводится из файла f1. F меняется от -4 шагом 0,5. Массив y записать в файл f2....

Вычислить значение выражения - C++
Учусь работать в среде cpp, подскажите пожалуйста, как правильно занести в 21 строке COS B в модуль и в 22 строке z=y+p+a/y(чтобы был в...

Вычислить значение выражения - C++
написать программу чтобы она решала эти примеры! 1-й пример Картинка1 2-й пример картинка2 Добавлено через 7 минут http:...

Вычислить значение выражения - C++
Вычислить значение выражения: у = 5!/(4^5+35-4!/(4^4+34-3!/(4^3+33-2!/(4^2+32-1)/(4 + 31-х))))) Перепишите формулу используя редактор...

Вычислить значение выражения - C++
Не могу понять как написать код к этой задаче,и как собственно он должен работать; помогите пожалуйста.

Вычислить значение выражения - C++
Найти значение выражения 2-5! + 3-8! / 6! + 4! где га! означает факториал числа n (n! = n • 2 •... • n). (Определить функцию для...

3
SVEN
10 / 10 / 1
Регистрация: 25.03.2008
Сообщений: 50
17.04.2008, 18:11 #2
Объяви эту ф-ю Calc перед ее первым использованием, то есть перед ф-ей main, в реализации не помогу, т к лень разбираться в коде.
0
Brusss
17.04.2008, 20:42 #3
В этом то и проблемма, что я не знаю где и как её объявить(
glenstorm
0 / 0 / 0
Регистрация: 04.04.2008
Сообщений: 6
19.04.2008, 21:59 #4
А что Calc делает? Она у тебя не только не объявлена, но и не определена? Если она у тебя написана, лучше сунь её к остальным перед main() и не парься.
0
19.04.2008, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2008, 21:59
Привет! Вот еще темы с ответами:

Вычислить значение выражения - C++
b=(1+(2*(sin(y)*sin(y)))) Будет ли правильной такая запись для примера? (в прикрепе) Вроде бы всё верно записал, но с калькулятором не...

Вычислить значение выражения - C++
Правильный ли данный код для данного примера (изображение в закрепе)? { double w,a,b,c,d,e,f,g,x,y,z; puts(&quot;\nVvedite : x,y,z &quot;); ...

Вычислить значение выражения - C++
вот задание Дано целое число n и действительное число x. Вычислить значение выражения: Помимо вычисления общей суммы сохранить значения...

Вычислить значение выражения n!+n^20 - C++
Вычислить n!+n^20 где n &gt; 20 . Помогите пожалуйста


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru