Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 02. 04. 2020 20:54

Tmitheadway
Zelenáč
Příspěvky: 16
Reputace:   
 

Spojový seznam

Zdravím,

prosím o pomoc!!! Mohl by mi někdo říct, proč mi v kodu píše Use of undeclared identifier UsporadanySeznam

tady je main

#include <iostream>
#include "UsporadanySeznam"
using namespace std;

/*Ukazka testovaci funkce pro metodu najdiPrvek() */
void vypisPrvek(UsporadanySeznam &t, int klic)
{
    Prvek* p = t.najdiPrvek(klic);
    if (p)
    {
        cout << "Nalezen prvek: ";
        cout << "(" << p->klic << "," << p->hodnota << ") ";
        cout << endl;
    }
    else
        cout << "Prvek " << klic << " nenalezen. \n";
}

void test()
{
    UsporadanySeznam t;
   
    /* Vkladani prvku: */
    t.vlozPrvek(9, "pracovni stul");
    t.vlozPrvek(3, "kancelarska zidle");
    t.vlozPrvek(6, "PC");
    t.vlozPrvek(6, "notebook");
    t.vlozPrvek(12, "lampa");
   
    t.vypis();
   
    /* Nalezeni prvku: */
    Prvek* p = t.najdiPrvek(9);
    if (p)
        cout << "Prvek 9 nalezen.\n";
    else
        cout << "Prvek 9 nenalezen.\n";
    vypisPrvek(t, 9);
    vypisPrvek(t, 1);
   
    /* Smazani prvku: */
    t.smazPrvek(10);
    t.smazPrvek(12);
    t.smazPrvek(6);
    t.smazPrvek(3);
    t.smazPrvek(9);
    t.smazPrvek(3);
   
    t.vypis();
}

int main()
{
    test();
    return 0;
}


tady je zdroják

#include "UsporadanySeznam.h"

UsporadanySeznam::UsporadanySeznam()
{
    prvni = new Prvek();
    zarazka = prvni;
}

UsporadanySeznam::~UsporadanySeznam()
{
    Prvek* P;
    P = prvni;
    while (prvni != zarazka)
    {
        P = prvni;
        prvni*= prvni->
        delete p;
    }
}

void UsporadanySeznam::najdiPrvek(int klic)
{
    Prvek* p = prvni;
    while (p != zarazka && klic < p->klic)
    {
        p = p->dalsi;
        if (p != zarazka && klic == p ->klic)
        {
            return p;
        }
        return nullptr;
    }
}



Prvek* UsporadanySeznam::vlozPrvek(int klic, const std::string& hodnota)
{
    if(prvni == zarazka || klic < prvni->klic)
    {
        Prvek *p = new prvek;
        p->dalsi = prvni;
        prvni = p;
        return;
    }
   
    Prvek *p = prvni;
    if ( prvni -> klic > klic || prvni == zarazka)
    {
        Prvek* n = new Prvek();
        n -> klic = klic;
        n -> hodnota = hodnota;
        n -> dalsi = prvni;
        prvni = n;
        return;
    }
    Prvek *p = prvni;
    while(p-> dalsi != zarazka && p->dalsi->klic < klic)
        p = p->dalsi;
    Prvek *n = new Prvek();
    n -> klic = klic;
    n -> hodnota = hodnota;
    n ->dalsi = p-> dalsi;
    p -> dalsi = n;
    if( p-> dalsi->klic == klic)
    {
        p->dalsi = zarazka &&
        p->dalsi ->klic == klic;
        p->dalsi -> hodnota == hodnota;
        return;
    }
   
void UsporadanySeznam::smazPrvek(int klic)
{
    if(*p == 0)
    {
        return;
    }
    Prvek *p = prvni;
    if ( prvni -> klic > klic || prvni == zarazka)
           
    {
        prvni = p->dalsi;
        delete p;
        return;
    }
       
       
       
    if (p != zarazka && klic == p ->klic)
        delete p;
}
   
void UsporadanySeznam::vypis()
{
    Prvek *p = prvni;
    cout << "UsporadanySeznam:" << endl;
    while(p)
    {
        cout  << p->klic << p->hodnota << endl;;
        p = p* dalsi;
    }
}
   
   
   
   
Díky za vysvětlení

Offline

 

#2 03. 04. 2020 08:08 — Editoval LukasM (03. 04. 2020 08:10)

LukasM
Příspěvky: 3274
Reputace:   193 
 

Re: Spojový seznam

↑ Tmitheadway:
V jednom souboru vidím #include "UsporadanySeznam.h", ve druhém #include "UsporadanySeznam". Bylo by dobré si ujasnit, který z nich chci používat. Ale čekal bych spíš chybu typu "include file not found" (ale možná jsi nějakým zázrakem vytvořil oba soubory a v jednom z nich (nebo v obou) ta definice není).

Mimochodem, opět se ti nepodařilo sem dát kompletní kód. Obsah těch headerů je klíčový.
Popravdě když vidím tvůj kód a tvé dotazy, nejsem si jistý, jestli jsi nějakou část výuky nepřeskočil. Např. nemá smysl se pokoušet používat templaty, pokud si sám neporadíš s touto chybou.

Offline

 

#3 03. 04. 2020 12:36

Tmitheadway
Zelenáč
Příspěvky: 16
Reputace:   
 

Re: Spojový seznam

↑ LukasM:

Ano, zobrazuje se mi "include file not found". Za úkol mám dát jen těla do zdrojáku. Ten main a zdrojový kód, takže ty headery jsem už měl k dispozici od paní profesorky.

Offline

 

#4 03. 04. 2020 14:46 — Editoval LukasM (03. 04. 2020 14:46)

LukasM
Příspěvky: 3274
Reputace:   193 
 

Re: Spojový seznam

Use of undeclared identifier UsporadanySeznam

Ano, zobrazuje se mi "include file not found".

Kompilátor ti přesně řekl, co je za problém. Je třeba ty chyby řešit v pořadí v jakém se objevují. Takže v tomto případě se zastavil na řádku #include "UsporadanySeznam" a napsal, že tento soubor nevidí. Teprve v důsledku toho si pak dále stěžuje, že nikde nepotkal definici té třídy. Je naprosto přímočaré, co je potřeba s tím udělat.


ty headery jsem už měl k dispozici od paní profesorky.

To je sice hezké, ale my nejsme tvoje profesorka a nikdo tu nemůže vědět, co v tom headeru je nebo není.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson