novix8 Opublikowano 12 Czerwca 2010 Udostępnij Opublikowano 12 Czerwca 2010 Witam wszystkich, mam nadzieje, że znajdzie się tutaj ktoś kto będzie w stanie mi pomóc. Mam zadanie z Programowania... mianowicie chodzi oto, że mam napisać program wykorzystujący 2 pętle(while,for albo do-while) obliczający średnią wieku, wzrostu i wagi 10 przypadkowych ludzi. Jeśli by mi ktoś pomógł był bym bardzo wdzięczny ;) Pozdrawiam i z góry dziękuje ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 12 Czerwca 2010 Udostępnij Opublikowano 12 Czerwca 2010 pomoc mozemy jak dowiemy sie w czym problem Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 12 Czerwca 2010 Udostępnij Opublikowano 12 Czerwca 2010 #include <stdio> #include <vector> class CPerson { public: CPerson( float old, float height, float weight ) : mOld( old ), mHeight( height ), mWeight( weight ) {} float getOld( void ) { return mOld; } float getHeight( void ) { return mHeight; } float getWeight( void ) { return mWeight; } private: float mOld, mHeight, mWeight; }; #define PERSON_OLD 0 #define PERSON_HEIGHT 1 #define PERSON_WEIGHT 2 typedef unsigned int uint; float* average_persons( std::vector<CPerson> &vec ) { float result[3] = { 0 }; for( uint n = 0; n < vec.size(); n++ ) { result[PERSON_OLD] += vec[n].getOld(); result[PERSON_HEIGHT] += vec[n].getHeight(); result[PERSON_WEIGHT] += vec[n].getWeight(); } for( uint n = 0; n < 3; n++ ) result[n] /= (float)vec.size(); return result; } int main() { std::vector<CPerson> persons; persons.push_back( CPerson( 1, 2, 3 ) ); persons.push_back( CPerson( 2, 3, 4 ) ); float *res = average_persons( persons ); printf( "Averages:\nOlds: %f\nHeights: %f\nWeights: %f\n", res[PERSON_OLD], res[PERSON_HEIGHT], res[PERSON_WEIGHT] ); getchar(); return 0; } Proste zadanie, wystarczy wiedzieć JAK się oblicza średnią :) Btw. Osoby dodaje się po przez: 'persons.push_back( CPerson( x, y, z ) );' Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
novix8 Opublikowano 13 Czerwca 2010 Autor Udostępnij Opublikowano 13 Czerwca 2010 dzięki tylko że potrzebował bym taki mniej skomplikowany kod z wykorzystaniem tych 2 pętli i w programie Dev-c++ ;/ :( Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 13 Czerwca 2010 Udostępnij Opublikowano 13 Czerwca 2010 z wykorzystaniem tych 2 pętli jak zrobisz mniej pętli to chyba więcej punktów dostaniesz za wydajność... i w programie Dev-c++ każdy kompilator przetworzy ten kod. ed: zaraz napisze ci mniej skomplikowany Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 13 Czerwca 2010 Udostępnij Opublikowano 13 Czerwca 2010 Ale przecież są 2 pętle :rolleyes: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 13 Czerwca 2010 Udostępnij Opublikowano 13 Czerwca 2010 ee... o co chodzi z przypadkowych ludzi w sensie że ma losować dane, czy że ma je pobierać od uzytkownika Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 13 Czerwca 2010 Udostępnij Opublikowano 13 Czerwca 2010 float* average_persons( std::vector<CPerson> &vec ) { float result[3] = { 0 }; for( uint n = 0; n < vec.size(); n++ ) { result[PERSON_OLD] += vec[n].getOld(); result[PERSON_HEIGHT] += vec[n].getHeight(); result[PERSON_WEIGHT] += vec[n].getWeight(); } for( uint n = 0; n < 3; n++ ) result[n] /= (float)vec.size(); return result; } Znajdź błąd w swoim kodzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 13 Czerwca 2010 Udostępnij Opublikowano 13 Czerwca 2010 Ależ Konradzie, pomyśl ; D - skoro dostał tego typu zadanie to na pewno nie miał styczności czymś takim jak prog. obj. . Z tego co pamiętam tego typu rzeczy robiło się na tablicach. #include <iostream> using namespace std; int tab[10][2], sred[2], ludzie=10; int main() { for (int i = 0; i < ludzie; i ++) { tab[i][0] = rand()%100; // wiek tab[i][1] = 150+(rand()%60); // wzrost tab[i][2] = 50+(rand()%60); // waga for (int a = 0; a < 3; a++) { sred[a] += tab[i][a]; } } for (int a = 0; a < 3; a++) { sred[a] = sred[a]/ludzie; cout << "sred" << a << "= " << sred[a] << endl; } return false; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 Oki doki Will: float* average_persons( std::vector<CPerson> &vec ) { float result = new float[3]; result[0] = result[1] = result[2] = 0.0f; for( uint n = 0; n < vec.size(); n++ ) { result[PERSON_OLD] += vec[n].getOld(); result[PERSON_HEIGHT] += vec[n].getHeight(); result[PERSON_WEIGHT] += vec[n].getWeight(); } for( uint n = 0; n < 3; n++ ) result[n] /= (float)vec.size(); return result; } :3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 14 Czerwca 2010 Filar Społeczności Udostępnij Opublikowano 14 Czerwca 2010 old =/= age Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
novix8 Opublikowano 14 Czerwca 2010 Autor Udostępnij Opublikowano 14 Czerwca 2010 nie chce mi to działać ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
waxx Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 nom wiele to mowi idz sam napisz a nie noobisz tu Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 Czy Ty wo gulę znasz podstawy C++a? Masz 2 kody, wystarczy że przerobisz je sobie po swojemu :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 ech to jest lekko przerobiona wersja kuby: #include <iostream> #include <conio.h> using namespace std; int tab[10][2], sred[2], ludzie=10; int main() { for (int i = 0; i < ludzie; i ++) { tab[i][0] = rand()%100; // wiek tab[i][1] = 150+(rand()%60); // wzrost tab[i][2] = 50+(rand()%60); // waga for (int a = 0; a < 3; a++) { sred[a] += tab[i][a]; } } for (int a = 0; a < 3; a++) { sred[a] = sred[a]/ludzie; cout << "sred" << a << "= " << sred[a] << endl; getch(); } return false; } a ty Konrad-GM strasznie mu mieszasz on raczej nie miał o wektorach... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 Co ja? Ja się tu nie udzielałem :o a ty roki strasznie mu mieszasz on raczej nie miał o wektorach... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
mipo57 Opublikowano 14 Czerwca 2010 Udostępnij Opublikowano 14 Czerwca 2010 :poster_oops: z Konradem-GM macie podobne avatary... Ed: Za co ktoś zaraportował rokiego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
novix8 Opublikowano 15 Czerwca 2010 Autor Udostępnij Opublikowano 15 Czerwca 2010 Dziękuje wszystkim za pomoc ;) Temat do zamknięcia;) Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się