Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Помогите плз


Автор: Brusss 14.4.2008, 14:43
Вот программа:

Код

#include<iostream>
#include<math.h>
#include<fstream>
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(i);
 while((quit=getchar())!='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();
    }
  }
}


Помогите запустить

Выдаёт вот такие ошибки:

Error:  321.cpp(7,21):Namespace name expected
Warn :  321.cpp(57,4):'ud' is assigned a value that is never used
Error:  321.cpp(89,10):Extra parameter in call to start()
Error:  321.cpp(90,22):Call to undefined function 'getchar'
Warn :  321.cpp(90,14):Conversion may lose significant digits
Error:  321.cpp(105,9):Too few parameters in call to 'rash(int)'
Error:  321.cpp(110,24):Call to undefined function 'Calc'

Автор: Andrey44 14.4.2008, 15:38
Для начала используй тэг КОД

Автор: Lazin 14.4.2008, 16:24
какой компилятор?

Автор: anatox91 14.4.2008, 17:22
Цитата

Error:  321.cpp(89,10):Extra parameter in call to start()


Цитата

void start()


Цитата

start(i);


ты делаешь функцию без параметров и потом зачем-то передаешь туда что-то

Цитата

Error:  321.cpp(90,22):Call to undefined function 'getchar'

вызываешь неопределенную функцию getchar()

эта функция 
Цитата

void rash(int n)

у тебя объявлена с параметром, а вызываешь ты ее
Цитата

rash();

без передачи параметра

Цитата

Error:  321.cpp(110,24):Call to undefined function 'Calc'

тоже не объявлено перед использованием

Автор: Brusss 14.4.2008, 17:22
Borland C++ 5.0

Автор: vrachishka 14.4.2008, 17:35
РЕБЯТА ПОМОГИТЕ!!!!
Нужно решить задачку С++, она очень трудная...никто не может решить!на вас надежда!
Я сейчас напишу условие,если кто сможет пришлите полное решение на axmetov_ilyas@mail.ru

"Возьмем случайным образом p двузначных чисел.Возьмем случайным образом так же двузначное число s. Соединим эти p чисел между собой сложениями или вычитаниями.Все числа должны быть использованы. Можно ли таким образом получить число s  "

Выручайте ребята!!!
Заранее спасибо!!!

Автор: Brusss 14.4.2008, 17:52
А что нужно сделать с getchar? И где объявить calc?

Автор: LexRema 14.4.2008, 19:03
Дело в том, что в коде у тебя вообще ничего не говориться про ф-ию Calc. 
Ты определись, что она должна делать.

А вот с getchar - проще. добавь вначале библиотеку :

Код

#include <conio.h>


и вместо getchar используй getch().

Добавлено через 1 минуту и 21 секунду
Цитата(vrachishka @ 14.4.2008,  17:35)
РЕБЯТА ПОМОГИТЕ!!!!
Нужно решить задачку С++, она очень трудная...никто не может решить!на вас надежда!
Я сейчас напишу условие,если кто сможет пришлите полное решение на axmetov_ilyas@mail.ru

"Возьмем случайным образом p двузначных чисел.Возьмем случайным образом так же двузначное число s. Соединим эти p чисел между собой сложениями или вычитаниями.Все числа должны быть использованы. Можно ли таким образом получить число s  "

Выручайте ребята!!!
Заранее спасибо!!!

Создавай отдельную тему!

Добавлено через 4 минуты и 59 секунд
____________________________________________________________

П.С. 
Возможно, тебе вместо Calc нужно использовать rash (типа, расчет, что ли...). Так что все таки желательно сообщит сообществу, что ты пишешь...

Автор: sergejzr 14.4.2008, 21:42

M
sergejzr
 Название темы должно отражать ее суть!

Автор: Brusss 17.4.2008, 12:12
Цитата

Возможно, тебе вместо Calc нужно использовать rash (типа, расчет, что ли...). Так что все таки желательно сообщит сообществу, что ты пишешь...


я пробовал rach, всёравно не получается.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)