Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest piątek, 19 kwietnia 2024, 04:33

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 1 ] 
Autor Wiadomość
 Tytuł: pomoc przy c++
Post: poniedziałek, 5 czerwca 2006, 14:29 
Offline

Rejestracja: niedziela, 20 marca 2005, 12:29
Posty: 45
Lokalizacja: czewa
mam pytanie czy ktos moze zerknac na to zadanie i popraawic je tak by dzialalo
tersc zad
Dla losowo wygenerowanych 20 punktow w przestrzeni trojwymiarowej obliczyc objetosc szeiscianow jakie tworza te punkty z poczatkiem ukladu wspolrzednych wartosc objetosci umiescic w oddzielnej struktore danych wyznaczyc srednia geometryczna objetosci szeiscianow usunac te punkty dla ktorych objetosc tworzonego szeiscanu jest mniejsza od sredniej geometrycznej uzyc algorytmow ogolnych i zasobnikow dostepnych w STL

program

#include<iostream>
#include<list>
#include<iterator>
#include<vector>
#include<functional>
#include<algorithm>
#include<numeric>
using namespace std;

struct punkt{
int x,z,y;
punkt(int x_,int y_, int z_): x(x_),y(y_),z(z_){}
friend ostream& operator << (ostream& out, const punkt& a){
return out<<a.x<<" "<<a.y<<" "<<a.z<<endl;
}
};
struct gen{
int min,max;
gen(int a, int b):min(a),max(b){}
int operator () (){
return rand ()% (max - min) + min; }
};

struct gen_punkt{
gen g;
gen_punkt(const gen g_):g(g_){}
punkt operator () (){
return punkt (g(),g(),g());
}
};
struct objetosc{
double operator () (const punkt& q){
return q.z*q.y*q.x;
}
};
struct sprawdzanie: public unary_function<punkt, double>{
double v;
sprawdzanie(double v_):v(v_){}
punkt operator () (punkt& r)const{
double t = r.x*r.z*r.y;
if(t>v){
return r;
} } };

int main(){
srand(time(0));
list<punkt> l;
generate_n(back_inserter(l),20,gen_punkt(gen(1,20)));
ostream_iterator<punkt> wyjscie (cout,"\n");
ostream_iterator<double> wyjscie2 (cout,"\n");
copy(l.begin(),l.end(),wyjscie);
cout<<"??????????????????"<<endl;
vector<double> v(l.size());
transform(l.begin(),l.end(),v.begin(),objetosc());
copy(v.begin(),v.end(),wyjscie2);
cout<<">>>>>>>>>>>>>"<<endl;
double temp;
temp = accumulate(v.begin(),v.end(),0.0,plus<double>());
double srednia = temp/v.size();
cout<<srednia<<endl;
cout<<">>>>>>>>>>>>>"<<endl;
list<punkt>p;
remove_copy_if(l.begin(),l.end(),back_inserter(p),sprawdzanie(srednia));
system("PAUSE");
return 0; }


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 1 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 16 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl