Anonymní profil Rudolf – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Rudolf – Programujte.comAnonymní profil Rudolf – Programujte.com

 

Příspěvky odeslané z IP adresy 94.113.68.–

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198508

#17 ondrej39
Takže když si to napíšu tak, jako ty, tak kam pak napíšu to, co potřebuju zjistit? 

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198506

#15 ondrej39
Jak to myslíš, prosímtě?

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198502

Ani nevím, tohle jsme dělali se cvičícím na cviku, mám to podle něj.#12 q

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198496

Napíšu to tak, ale tady:

if (nekdo->jmeno[0] == 'A')  {
//jmeno zacina na A
}

mi to u té šipky háže chybu a nevím, co s tím. 

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198490

Můžeš mi to prosím vysvětlit trošku lehčeji? (Jako pro blbečka:D)

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198483

Takže jak to má prosím vypadat?

C / C++ › Pevne dany linearne spojovy…
28. 1. 2015   #198481

To s tím vyhledáním jména na A mi nejde. Podtrhává mi to Clovek->

Nevíte co s tím?

C / C++ › Pevne dany linearne spojovy…
27. 1. 2015   #198451

Ahojte, mám problém. Zítra jdu na poslední opravny pokus z programování v C++ a nějak to prostě nechápu. Máme daný spojový seznam a jen v tom udělat nějaký úkol. Chtěl jsem se zeptat, jak by vypadalo, kdybych měl:

a) vypočítat BMI

b) vypsat jen lidi, jejichž jméno začíná na A

c) najít poslední zadaný prvek (vek) a vypsat jen to

Je tady někdo, kdo by mi prosím pomohl? Děkuji. (Tyhle úkoly už byly, jen bych chtěl vědět, jak to mám udělat. Snad bych to lépe pochopil.)

Kód:

#include <iostream>
#include <stdlib.h>

using namespace std;

struct Clovek {
    short vek;
    float vaha;
    char jmeno[50];
    Clovek* dalsi;
};


void vypisCloveka(Clovek c)
{
    cout << c.vek << endl;
    cout << c.vaha << endl;
    cout << c.jmeno << endl;
}

void vypisNtehoCloveka(Clovek prvni, int N)
{
    if (N <= 0)
    {
        vypisCloveka(prvni);
    }
    else
    {
        Clovek* current = prvni.dalsi;
        for (int i = 1;i < N;i++)
        {
            if (current->dalsi != nullptr) // Nejsme na poslednim vagone?
            {
                current = current->dalsi; // Prechod k dalsimu vagonku
            }
            else
            { // Jsme na poslednim
                cout << "N je vetsi nez delka spojoveho seznamu" << endl;
                return;
            }
        }
        vypisCloveka(*current);
    }
}

void vlozDoSeznamu(Clovek* loko, Clovek* kdo) // Vlozi clovek "kdo" do spojoveho seznamu zacinajici "loko"
{
    Clovek* current = loko;
    while (current->dalsi != nullptr) // Dojde k poslednimu prvku seznamu
    {
        current = current->dalsi;
    }

    // Pripoji "kdo" za posledni prvek => "kdo" se stava poslednim prvkem
    current->dalsi = kdo;
    kdo->dalsi = nullptr;
}

int spocitejPrvky(Clovek prvni)
{
    int pocitadlo = 1;

    Clovek* current = &prvni;
    while (current->dalsi != nullptr)
    {
        pocitadlo = pocitadlo+1; // to stejne jako pocitadlo++
        current = current->dalsi;
    }

    return pocitadlo;
}

void vypisCelySeznam(Clovek prvni)
{
    Clovek* current = &prvni;
    do //Pouzijeme do-while aby se vypsal i prvni prvek (je-li v seznamu jediny)
    {
        vypisCloveka(*current);
            current = current->dalsi;
    }
    while (current->dalsi != nullptr);

    // Musime vypsat jeste toho posledniho
    vypisCloveka(*current);
}

Clovek* vratNtehoCloveka(Clovek* loko,unsigned int N)
{
    
    int pocitadlo = 1;
    
    Clovek* current = loko;
    while (current->dalsi != nullptr && pocitadlo != N) // dokud nejsme na konci a jeste jsme nedosahli N
    {
        pocitadlo = pocitadlo+1; // to stejne jako pocitadlo++
        current = current->dalsi;
    }
    
    return current;
}

void odstranZeSeznamu(Clovek* loko, int kolikaty)
{
    int pocetPrvku = spocitejPrvky(*loko);

    // Odstranujeme prvek nekde uvnitr vlaku?
    if (kolikaty > 1 && kolikaty < pocetPrvku)
    {
        Clovek* tenCoMazu = vratNtehoCloveka(loko,kolikaty);
        Clovek* tenPredNim = vratNtehoCloveka(loko, kolikaty-1);
        Clovek* tenZaNim = vratNtehoCloveka(loko, kolikaty+1);

        tenPredNim->dalsi = tenZaNim;

        delete tenCoMazu;
    }

    // Jsme na poslednim vagonu a je tam vic vagonu nez jen loko?
    if (kolikaty == pocetPrvku && pocetPrvku > 1)
    {
        Clovek* tenCoMazu = vratNtehoCloveka(loko,kolikaty);
        Clovek* tenPredNim = vratNtehoCloveka(loko, kolikaty-1);
        
        tenPredNim->dalsi = nullptr;
        delete tenCoMazu;
    }
}


void smazCelySeznam(Clovek* loko)
{

    Clovek* current = loko;
    while (current->dalsi != nullptr)
    {
        // Pozor abych si nesmazal neco, co jeste potrebuju
        Clovek* tenCoMazu = current;
        current = current->dalsi;
        delete tenCoMazu;
    }

    delete current;
}


void nactiCloveka(Clovek* kdo)
{
    cout << "Zadejte vek cloveka: " << endl;
    cin >> kdo->vek;

    cout << "Zadejte vahu cloveka: " << endl;
    cin >> kdo->vaha;

    cout << "Zadejte jmeno cloveka: " << endl;
    cin.ignore();
    gets_s(kdo->jmeno); // Tato funkce nam nacte retezec ze standardniho vstupu
    kdo->dalsi = nullptr;
}


Clovek* prvniPrvek = nullptr;


void main()
{
    for (int i=0;i<2;i++) 
    {
        Clovek* novy = new Clovek;
        nactiCloveka(novy);
        
        if (prvniPrvek == nullptr)
        {
            prvniPrvek = novy;
        }
        else 
        {
            vlozDoSeznamu(prvniPrvek,novy);
        }

        cout << "Clovek byl vlozen do seznamu." << endl;
    }

    cout << endl;
    cout << "Vypisuji seznam:" << endl;

    // Vsichni jsou uz jiz nacteni, vypis cely seznam
    vypisCelySeznam(*prvniPrvek);

    // Koncime praci s programem, takze smazeme seznam
    smazCelySeznam(prvniPrvek);

    int c;
    cin >> c;

    smazCelySeznam(prvniPrvek);

}

Rudolf
OS - GNU / Linux › Linux - jak funguje sit
28. 4. 2014   #189677

#2 Kit
jasne, "man ip" mi rekne napr. jak funguji routovaci tabulky. Opravdu super rada...

Nemuzes odpovedet na relativne jasne polozenou otazku?...

Rudolf
OS - GNU / Linux › Linux - jak funguje sit
28. 4. 2014   #189675

Ahoj,

nejak uz me nebavi, ze nevim, co polovina parametru pro `ip addr` znamena, tak jsem si rekl, ze to zmenim :).

Neznate nekdo nejakou peknou knizku o sitich v linuxu? (routovani, co je to 'link-local' adresa apod.?).

Honza

PHP › PHP a velmi pochybne chovani…
2. 4. 2014   #188883

#2 Kit
Vzhledem k tomu, ze standardni autoloader pouzivam (SPL_autoload_register).

Standardni autoloader vypada nejak takto:

__autoload($class_name) {

    require_once $class_name . '.php';

}

Tady neni problem v autoloaderu ale ve zcestnych PHP namespace...

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý