Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

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

#1 16. 06. 2010 13:32

Docctor
Zelenáč
Příspěvky: 15
Reputace:   
 

Příklady na procvičení

Byl by někdo kdo by mi pomohl s tímto zadáním ??? :

Napište šablonu třídy Prvek, z jejichž instancí může být vytvořen spojový seznam hodnot typu T. Dále napište šablonu funkce:
a)    ostream& vypis(ostream& os, Prvek<T>* s), která do výstupního proudu os vypíše hodnoty ze spojového seznamu s.
b)    int pocetPrvku(Prvek<T>* s), jejímž výsledkem je počet prvků spojového seznamu s.
c)    Prvek<T>* vytvor(T* p, int n), která vytvoří spojový seznam z n prvků pole p tak, že hodnoty ve spojovém seznamu mají stejné pořadí, jako v poli p.
d)    void vypisObracene(Prvek<T>* s), která vypíše hodnoty ze seznamu s v opačném pořadí (použijte rekurzi).
e)    Prvek<T>* odstranDuplicity(Prvek<T>* s), která ze seznamu s odstraní všechny prvky, jejichž hodnota je stejná s hodnotou předcházejícího prvku a vrátí ukazatel na upravený seznam.
f)    T* vytvorPole(Prvek<T>* s), která hodnoty ze spojového seznamu s uloží do dynamicky vytvořeného pole. Ukazatel na pole bude výsledkem funkce.
g)    int nejdelsiUsek(Prvek<T>* s), jejímž výsledkem je největší počet po sobě jdoucích prvků seznamu s, které mají stejnou hodnotu
h)    Prvek<T>* vytvorObraceny(Prvek<T>* s), která vytvoří spojový seznam hodnot obsažených v seznamu s, ale v opačném pořadí.
i)    Prvek<T>* odstranX(Prvek<T>* s, T x), která ze seznamu s odstraní všechny prvky, jejichž hodnota je x a vrátí ukazatel na upravený seznam.
j)    Prvek<T>* bezX(Prvek<T>* s, T x), která vytvoří spojový seznam obsahující jeho prvky s výjimkou těch, které mají hodnotu x. Ukazatel na první prvek nového seznamu je výsledkem funkce.


no pak druhy zadani i :

1. Napište třídu realizující datový typ „fronta hodnot různých typů“ pomocí spojového seznamu. Operace:
-    konstruktor
-    destruktor
-    vložení hodnoty x na konec fronty metodou insert
-    výběr prvního prvku fronty metodou first
-    odebrání prvního prvku fronty metodou remove
-    výpis prvků fronty přetíženým operátorem <<
Třídu napište tak, aby použití kopírujícího konstruktoru a operátoru přiřazení znamenalo chybu při překladu.
Napište třídy potřebné k tomu, aby do fronty bylo možné vložit hodnoty typu int a char.

2. Napište třídu realizující datový typ „fronta hodnot různých typů“ pomocí dynamicky alokovaného pole. Operace:
-    konstruktor
-    kopírující konstruktor používající hlubokou kopii
-    operátor přiřazení používající hlubokou kopii
-    destruktor
-    vložení hodnoty x na konec fronty metodou insert
-    výběr prvního prvku fronty metodou first
-    odebrání prvního prvku fronty metodou remove
-    výpis prvků fronty přetíženým operátorem <<
Napište třídy potřebné k tomu, aby do fronty bylo možné vložit hodnoty typu int a char.

3. Napište třídu realizující datový typ „množina hodnot různých typů“ (neobsahuje duplicity) pomocí dynamicky alokovaného pole. Operace:
-    konstruktor
-    kopírující konstruktor používající hlubokou kopii
-    operátor přiřazení používající hlubokou kopii
-    destruktor
-    vložení hodnoty x do množiny metodou insert
-    test, zda množina obsahuje hodnotu x
-    výpis prvků množiny přetíženým operátorem <<
Napište třídy potřebné k tomu, aby do množiny bylo možné vložit hodnoty typu int a char.

4. Napište třídu realizující datový typ „množina hodnot různých typů“ (neobsahuje duplicity) pomocí spojového. Operace:
-    konstruktor
-    kopírující konstruktor používající hlubokou kopii
-    operátor přiřazení používající hlubokou kopii
-    destruktor
-    vložení hodnoty x do množiny metodou insert
-    test, zda množina obsahuje hodnotu x
Napište třídy potřebné k tomu, aby do množiny bylo možné vložit hodnoty typu int a char.

5. Napište třídu realizující datový typ „pytel (bag) hodnot různých typů“ (může obsahovat duplicity) pomocí dynamicky alokovaného pole. Operace:
-    konstruktor
-    kopírující konstruktor používající hlubokou kopii
-    operátor přiřazení používající hlubokou kopii
-    destruktor
-    vložení hodnoty x do pytle metodou insert
-    test, zda pytel obsahuje hodnotu x
-    výpis prvků pytle přetíženým operátorem <<
Napište třídy potřebné k tomu, aby do pytle bylo možné vložit hodnoty typu int a char.

6. Napište třídu realizující datový typ „pytel (bag) hodnot různých typů“ (může obsahovat duplicity) pomocí spojového seznamu. Operace:
-    konstruktor
-    kopírující konstruktor používající hlubokou kopii
-    operátor přiřazení používající hlubokou kopii
-    destruktor
-    vložení hodnoty x do pytle metodou insert
-    test, zda pytel obsahuje hodnotu x
-    výpis prvků pytle přetíženým operátorem <<
Napište třídy potřebné k tomu, aby do pytle bylo možné vložit hodnoty typu int a char.


no jestli se na to nekdo koukne.....predem dekuji ....

Offline

  • (téma jako vyřešené označil(a) gladiator01)

#2 16. 06. 2010 15:28

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Příklady na procvičení

Nechodíš ty na VŠPJ? (Nebo na ČVUT a máš p. Müllera?)


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#3 16. 06. 2010 18:00

Docctor
Zelenáč
Příspěvky: 15
Reputace:   
 

Re: Příklady na procvičení

:)...A i C je správně :).......potřebuji spíš něak nakopnout, protože vyznat se v těch výrazech je hukot

Offline

 

#4 16. 06. 2010 20:15 — Editoval gladiator01 (16. 06. 2010 20:26)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Příklady na procvičení

Něco jsem našla co by mohli být ty lehčí příklady, nevím nakolik to je správně:

Code:

// vypíše seznam
void Seznam::vypis(Seznam *Elem){
  Seznam::Elem *pom=celo;
  while (pom!=0) {    
    cout << pom->prvek  << " ";       
    pom = pom->dalsi;  }
}
//vypíše pocet prvků
int Seznam::pocetPrvku(Seznam *Elem){
  Seznam::Elem *pom=celo;
  int pp=0;
  while (pom != NULL)  { p++;  pom = pom->dalsi;  }
  cout << pp;
}
//vypíše počet kladných čísel
int Seznam::pocetKladnych(Seznam *Elem){
  Seznam::Elem *pom=celo;
  int pk=0;
  while (pom != NULL){  if(pom->prvek>0)    pk++; pom = pom->dalsi; }
  cout << pk;
}

Code:

// vypíše seznam obráceně
void Seznam::vypisObracene(Seznam *Elem) {
  Seznam::Elem *pom=celo;
  if(pom==NULL)   return; 
  while (pom!=NULL) {  
    vypisObracene(Elem);
    cout << pom->prvek  << " "; 
    pom = pom->dalsi;       
  }
}
//vypíše jen suda čísla
void Seznam::jenSude(Seznam *Elem) {
  Seznam::Elem *pom=celo;
  while (pom!=0) {  
   if(pom->prvek%2==0) {
     cout << pom->prvek  << " ";   
     pom = pom->dalsi;   }
   else    pom = pom->dalsi;
  }
}

Code:

//odstraní všechna sudá čísla
Seznam* Seznam::odstranSude(Seznam* Elem){
  Seznam::Elem *pom, *pr=NULL, *c=celo;
  while(c!=NULL) {     
    if(c->prvek%2==0) {  
     if(pr){
       pom=c->dalsi;
       delete c; pr->dalsi=pom;
       if(!pom) volny=0;
       c=pom;
     } else {
       pom=celo->dalsi;
       delete celo; celo=pom; 
       if(!pom)  volny=0; } 
    }
    else { 
      pr=c;   c=c->dalsi; }
  }
  return this;
}

Code:

//odstrani všechna čísla, která se rovnají svým sousedům
Seznam* Seznam::odstranDuplicity(Seznam* Elem){
 Seznam::Elem *pom, *pr, *c=celo;
  while(c!=NULL) {
    if(c->prvek==pr->prvek){
       pr->dalsi=c->dalsi;
       pom=c;
       c=c->dalsi;
       delete pom;
       if(!c) volny=0;
    }
    else { 
      pr=c;      
      c=c->dalsi; 
    }
  }
  return this;
}

U těch druhých, když jsi udělal příklady do cvičení, tak uděláš i tyto - většina jde opsat ze skript nebo z příkladů ze cvičení.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson