Skocz do zawartości

Program do wyznaczania średniej długości odnóży gąsienicy


Pomocna odpowiedź

Witam mam taki problem , otóż napisałam sobie program wspomniany w temacie postu tyle tylko,że po kompilacji wyskakuje jakiś czerwony komunikat widoczny na zdjęciu , program oczywiscie sam w sobie sie kompiluje i działa wiec co takieg jest źle ,że takie coś wyskakuje???

oto kod

#include <iostream>

using namespace std;



  class robaki
  {

  public:
    int liczba_nog;
    int dlugosc;
    void pytaj(string pytanie, int &odpowiedz);

  };
  void pytaj(string pytanie, int &odpowiedz)
    {

        cout<<pytanie;
        cin>>odpowiedz;
    }
int main()
{
    float suma=0;
    float srednia =0;
    robaki robak;
    int ile;
    cout<<"podaj liczbe robakow do wczytania"<<endl;
    cin>>ile;
    for(int i=0;i<ile;i++)
    {

       // cout<<"podaj liczbe nóg robaka"<<i+1<<endl;
        pytaj("podaj liczbe nog robaka ",robak.liczba_nog);
        for(int j=0;j<robak.liczba_nog;j++)
        {
            pytaj("podaj długosc kazdej nogi robaka",robak.dlugosc);

        suma+=robak.dlugosc;
        }
        cout<<"suma długosci nóg tego robaka wynosi"<<suma<<endl;
        srednia=suma/robak.liczba_nog;
        cout<<"srednia długośc nogi robaka wynosi"<<srednia<<endl;
    }


    return 0;
}

 

problem.PNG

Link to post
Share on other sites

oczywisćie jesli ktośby miał inną koncepcje kodu tego programu , bardziej łatwiejszą to bardzo prosiłabym o podesłanie, program ogólnie ma za zadanie wprowadzać liczbe robakow w sensie gąsienic oraz wprowadzić liczbe ich odnózy (odnóza są niby innej długosci),a także wprowadzić długość każdej z odnózy i wylliczyć średnią długośc nóg każdego robaka i jeszcze ale tego nie wiem jak zrobić wyznaczyć czy dłuższe odnóza są na przodzie czy na tyle robaka.

Link to post
Share on other sites

O matko... no to znów czas na pisanie...

  1. Implementowanie metody, która znajduje się w klasie musi być poprzedzone nazwą klasy
  2. Klasy tworzy się z wykorzystaniem wskaźnika oraz operatora "new"
  3. int jest większym typem niż float, dlatego zaleca się korzystać z double, ale to tylko dobra praktyka

Komunikat jest efektem tego, że zmienna "robak" nie jest zainicjalizowana (wskazuje na adres 0x0), który jest zarezerwowany dla systemu operacyjnego i do którego nie można uzyskać dostępu.

#include <iostream>

using namespace std;

class robaki
{

public:
    int liczba_nog;
    int dlugosc;

    void pytaj(string pytanie, int &odpowiedz);

};
  
void robaki::pytaj(string pytanie, int &odpowiedz) // Poprawna implementacja metody w klasie
{

    cout << pytanie;
    cin >> odpowiedz;
}
  
int main() {
    double suma = 0;
    double srednia = 0;
    robaki robak = *new robaki(); // Inicjalizacja klasy
    int ile;
    cout << "podaj liczbe robakow do wczytania" << endl;
    cin >> ile;
    for (int i = 0; i < ile; i++) {
        robak.pytaj("podaj liczbe nog robaka ", robak.liczba_nog); // Poprawa wywołań metody
        for (int j = 0; j < robak.liczba_nog; j++) {
            robak.pytaj("podaj długosc kazdej nogi robaka", robak.dlugosc);

            suma += robak.dlugosc;
        }
        cout << "suma długosci nóg tego robaka wynosi" << suma << endl;
        srednia = suma / robak.liczba_nog;
        cout << "srednia długośc nogi robaka wynosi" << srednia << endl;
    }


    return 0;
}

 

  • Pomogłeś! 1
Link to post
Share on other sites

Dziękuję bardzo za pomoc a czy można by byłoby napisać ten kod bez tej rezerwacji pamięci posługując się tylko dwoma pętlami ?

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.