Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 45 - Zadanie domowe podpunkt 2 - problem ze zrozumieniem zadania - mile widziane wskazówki.

Ostatnio zmodyfikowano 2018-04-30 00:12
Autor Wiadomość
Peter_m
Temat założony przez niniejszego użytkownika
» 2018-04-28 18:59:47
Kurde, przyjacielu weź mi to napisz w kodzie przykładowym, nie chcę spamować, czy iść na łatwiznę. Tobie chodzi o Napisanie dodatkowej funkcji typu void, czy w ciele funkcji dodaj koniec(), mam dopisać wskaźnik znajdujący się w dodatkowej strukturze o nazwie Wezel. Proszę pomóż mi to zrozumieć cholerstwo :(
P-170856
pekfos
» 2018-04-28 19:29:05
C/C++
struct Lista // Nowa struktura
{
    Wezel * poczatek;
    Wezel * koniec;
};

struct Wezel // struktura `Lista` z lekcji
{
    Wezel * ogon;
    int liczba;
};

void dodajKoniec( Lista & lista, int liczba );
P-170857
Peter_m
Temat założony przez niniejszego użytkownika
» 2018-04-28 20:00:51
Ok, to mam
C/C++
struct Lista //struktura lista z lekcji
{
   
    Lista * ogon;
    int liczba;
   
};
struct Wezel //dodatkowa struktura
{
    Wezel * poczatek;
    Wezel * koniec;
   
   
};
I muszę teraz zmodyfikować voida dodaj koniec? Dopisać wskaźnik dla struktury Wezel?
Proszę o wybaczenie, za tak laickie pytania ale chcę być pewny czy dobrze myślę.
P-170858
pekfos
» 2018-04-28 20:26:12
Jak na razie kodu nie masz dobrego.
P-170859
Peter_m
Temat założony przez niniejszego użytkownika
» 2018-04-28 21:12:43
Chyba zadziałało mi, a przynajmniej mam takie wrażenie.
o to cały kod aplikacji wraz z rozwiązaniem zadania 1 także jest rozwiązanie z zadania 2.
jeśli mógłbyś przeanalizować kod będę wdzięczny ewentualnie znowu wytkać błąd. Serdecznie dziękuję nad cierpliwość nade mną ale naprawdę pierwszy raz proszę o wskazówkę.
Jeszcze raz dziękuję.

C/C++
struct Lista //struktura z lekcji
{
   
    Lista * ogon;
    int liczba;
   
};
struct Wezel // myślę że to jest już dobrze teraz.
{
    Lista * lista;
    Wezel * Lista;
   
   
};


void wypisz( Lista * lista )
{
    if( lista )
    {
        cout << lista->liczba << ", ";
        wypisz( lista->ogon );
       
    }
}

Lista * ostatni( Lista * lista )
{
    if( lista )
    while( lista->ogon )
         lista = lista->ogon;
   
    return lista;
   
}

void dodajPoczatek( Lista *& lista, int liczba ) //rozwiązanie z zadania 1
{
    Lista * NewTab = new Lista;
    NewTab->liczba = liczba;
    NewTab->ogon = lista;
    if( NewTab == NULL )
         ostatni( lista )->ogon = NewTab;
    else
         lista = NewTab;
   
}

void dodajKoniec( Lista *& lista, int liczba )
{
   
   
    Lista * nowy = new Lista;
    nowy->liczba = liczba;
    nowy->ogon = NULL;
    if( lista )
         ostatni( lista )->ogon = nowy;
    else
         lista = nowy;
   
   
}

void zniszcz( Lista *& lista )
{
    while( lista )
    {
        Lista * tmp = lista;
        lista = lista->ogon;
        delete tmp;
    }
    lista = NULL;
}
int main()
{
    int liczba;
    Lista * lista = NULL;
   
    cout << "Podaj liczby, o lub blad konczy: \n";
    while( cin >> liczba && liczba )
   
         dodajKoniec( lista, liczba );
   
    while( cin >> liczba && liczba )
         dodajPoczatek( lista, liczba );
   
    cout << "Koniec, o to liczby: \n" << endl;
    wypisz( lista );
    zniszcz( lista );
   
}
P-170861
pekfos
» 2018-04-28 21:42:05
Nie ma tym kodzie nic, co można by nazwać rozwiązaniem drugiego zadania. Problem z polecenia do zadania nie został rozwiązany.
P-170862
Peter_m
Temat założony przez niniejszego użytkownika
» 2018-04-28 21:47:45
Na chwilę obecną się poddaje :(
cały dzień przesiedziałem nad tym i nic :(, a nie chcę też tracić waszego cennego czasu.
P-170863
pekfos
» 2018-04-29 00:58:45
Jak na razie nie zastosowałeś się do żadnej wskazówki, zwłaszcza do tych do których był nawet podany kod.

C/C++
void dodajPoczatek( Lista *& lista, int liczba ) //rozwiązanie z zadania 1
{
    Lista * NewTab = new Lista;
    NewTab->liczba = liczba;
    NewTab->ogon = lista;
    //if( NewTab == NULL )
    //     ostatni( lista )->ogon = NewTab;
    //else
    lista = NewTab;
   
}
Wykomentowane linie nie mają żadnego sensu. Rozwiązanie działa tylko dlatego, że ten kod akurat nigdy nie jest wykonywany i te 3 linie nie wpływają na działanie programu. Nie byłoby ich, gdybyś zaczął od zrozumienia co masz zrobić, a nie od skopiowania kodu z funkcji, która robi zupełnie co innego.
P-170865
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona