Need advises doing exercise!

Exercise:make an algorithm counting average y values.Formula y=sqrt(2*t+x)when t=(1/(x-2)) x changes[-2;2] step h=0.5.Use loop while. So I made this algorithm but I don't know what to do next.


# include < iostream >
# include < conio.h >
# include < stdio.h >
# include < math.h >
using namespace std;
void main()
{
float y,t,sum,hx,vid;
int kiekis,xp,xg,x;
sum=0;
kiekis=0;
cout <<" Iveskite xp,xg,hx"<<"\n";
cin >>xp; cin>>xg; cin>>hx;
x=xp;
while(x<=xg)
{do if((x-2)!=0)
{t=(1/(x-2));
y=sqrt(2*t+x);
sum=sum+y;
kiekis=kiekis+1;
x=x+hx;}
else
cout<<"Sprendiniu nera"<<"\n";
}
vid=sum/kiekis;
cout<<"vid= "<<vid<<"\n";
getch();
}
}
Tavo kodas siaubingai suformatuotas..
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
# include < iostream > 
# include < conio.h > //conio.h nėra standarinė biblioteka. Nenaudok jos.
# include < stdio.h > //čia turetų būti <cstdio>, nors tau šito headerio visiškai nerieikia
# include < math.h > //tas pats: <cmath>
using namespace std;

void main() //Tai turetu buti int main.
{
   float y,t,sum,hx,vid;
   int kiekis,xp,xg,x;//Čia x yra int. Man regis tau reikia float. 
   sum=0;
   kiekis=0;//Priskirimą galima daryti ir deklaruojant. Sakyčiau, taip švariau.
   cout <<" Iveskite xp,xg,hx"<<"\n"; //Galėtum parašyti tiesiog " Iveskite xp,xg,hx\n"..
   cin >>xp; cin>>xg; cin>>hx; //Čia galėtų būti cin >> xp >> xg >> hx
   x=xp;
   
   while(x<=xg) {
      do//Čia ne paskalis. Šitos eilutė čia neturėtų būti. Ištrink ją.
         if((x-2)!=0){
            t=(1/(x-2));
            y=sqrt(2*t+x);
            sum=sum+y;//Čia galėtų būti sum += y;
            kiekis=kiekis+1;
            x=x+hx;//Jei hx = 0.5, o x yra int, ši eilutė neveiks. 
         }else 
            cout<<"Sprendiniu nera"<<"\n";
   }
   vid=sum/kiekis;
   cout<<"vid= "<<vid<<"\n";
   getch();//Funkcija iš conio.h . Galėtų būti cin.ignore().get();
//int main turetų turėti return 0;
}//Vienu } per daug.
}
As su visual studio 2010 darau. Zinau, kad kodas blogas bandau taisyt bet su bibliotekom viskas tvarkoj siaip man reikia rast y reiksmiu vidurki tai randu kieki pagal formule k=k+1, suma pagal formule sum=sum+t ir tada vidurki skaiciuosiu vid=sum/k jei gerai suprantu.
Jei naudoji nestandartines bibliotekas, tau veiks, o kitame kompiuteryje gali neveikti. Šiaip, viskas su kodu gerai, išskyrus tą 'do' ir '}' ir dar kad x yra integeris (integerius apvalina žemyn. pavyzdžiui: int x = 1; x = x + 0.5;. Tu norėtum gauti 1.5, bet dėl apvalinimo gausi 1. ). Visos kitos pastabos buvo dėl tvarkos, švaros ir portabilumo.
Sėkmės.
// Savarankiska uzduotis Programos struktura
# include < iostream > //Ivedimo/isvedimo srautai
# include < conio.h > //Tekstinio ekrano tvarkykle
# include < math.h > //Matematines bibliotekos
using namespace std;
void main() //Pagrindine funkcija
{
int k; //Kintamojo aprasas
double y,x,xp,xg,hx,t,vid,sum; //Kintamojo aprasas
cout <<" Iveskite xp,xg,hx"<<"\n"; //Isvedimas ekrane
cin >>xp; cin>>xg; cin>>hx; //Ivedimas klaviatura
x=xp;
k=0;
sum=0;
while(x<=xg) //Ciklas
{
if((x-2)!=0) //Salyga
{
t=(1/(x-2)); //Veiksmai kai salyga tenkinama
y=sqrt(2*t+x);
sum=sum+y;
x=x+hx;
k=k+1;
vid=sum/k;
cout<<"t= "<<t<<" y= "<<y<<"\n"; //Isvedimas ekrane
}
else if((x-2)==0) //Salyga
{cout<<"Sprendiniu nera"<<"\n";} //Veiksmai kai salyga netenkinama
}
cout<<"y reiksmiu kiekis="<<k<<"\n";//Isvedimas ekrane
cout<<"y reiksmiu suma="<<sum<<"\n";//Isvedimas ekrane
cout<<"y reiksmiu vidurkis="<<vid<<"\n";//Isvedimas ekrane
getch();
}



Galutine programa gavosi tokia :)
Mind keeping it english pls :D, would like to learn out of this aswell ^^
Topic archived. No new replies allowed.