abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Nová verze

    Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Humor

    Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.

    NUKE GAZA! 🎆 | Komentářů: 7
    včera 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 6
    včera 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 15
    včera 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 3
    12.1. 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    12.1. 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    11.1. 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (48%)
    Celkem 402 hlasů
     Komentářů: 11, poslední včera 15:18
    Rozcestník

    Trocha rekurze nemůže škodit

    10.11.2008 21:52 | Přečteno: 1817× | Ostatní | poslední úprava: 10.11.2008 21:54

    Jen tak, před nedávnem, z dlouhé chvíle vzniklo toliko kódu…

    #include "iostream"
    using namespace std;
    
    class CsSuccesor
    {
    public:
    	CsSuccesor();
    	CsSuccesor(CsSuccesor &that);
    	~CsSuccesor();
    	CsSuccesor& Succesor(CsSuccesor &that);
    	friend ostream& operator <<(ostream &stream, CsSuccesor succesor);
    	CsSuccesor& operator =(CsSuccesor &that);
    	CsSuccesor& operator +(CsSuccesor &that);
    	CsSuccesor& operator -(CsSuccesor &that);
    	unsigned long long int ToInteger();
    
    private:
    	CsSuccesor *m_pSucc;
    };
    
    CsSuccesor::CsSuccesor()
    {
    	m_pSucc = NULL;
    }
    
    CsSuccesor::CsSuccesor(CsSuccesor &that)
    {
    	m_pSucc = NULL;
    
    	if (that.m_pSucc != NULL)
    	{
    		m_pSucc = new CsSuccesor(*(that.m_pSucc));
    	}
    }
    
    CsSuccesor::~CsSuccesor()
    {
    	if (m_pSucc != NULL)
    	{
    		delete m_pSucc;
    		m_pSucc = NULL;
    	}
    }
    
    CsSuccesor& CsSuccesor::Succesor(CsSuccesor &that)
    {
    	m_pSucc = new CsSuccesor();
    	if (that.m_pSucc != NULL)
    	{
    		m_pSucc->Succesor(*(that.m_pSucc));
    	}
    	return *this;
    }
    
    ostream& operator <<(ostream &stream, CsSuccesor succesor)
    {
    	if (succesor.m_pSucc)
    	{
    		stream << "Succ(" << *(succesor.m_pSucc) << ")";
    	}
    	else
    	{
    		stream << "Zero";
    	}
    	return stream;
    }
    
    CsSuccesor& CsSuccesor::operator =(CsSuccesor &that)
    {
    	if (this != &that)
    	{
    		if (m_pSucc != NULL)
    		{
    			delete m_pSucc;
    			m_pSucc = NULL;
    		}
    		if (that.m_pSucc)
    		{
    			m_pSucc = new CsSuccesor(*that.m_pSucc);
    		}
    	}
    	return *this;
    }
    
    CsSuccesor& CsSuccesor::operator +(CsSuccesor& that)
    {
    	CsSuccesor* out = new CsSuccesor();
    	if (m_pSucc != NULL)
    	{
    		out->m_pSucc = new CsSuccesor(*m_pSucc + that);
    	}
    	else
    	{
    		if (that.m_pSucc != NULL)
    		{
    			out = new CsSuccesor(that);
    		}
    	}
    	return *out;
    }
    
    CsSuccesor& CsSuccesor::operator -(CsSuccesor& that)
    {
    	CsSuccesor* out = new CsSuccesor(*this);
    	if (that.m_pSucc != NULL)
    	{
    		if (m_pSucc != NULL)
    		{
    			delete out;
    			out = new CsSuccesor(*m_pSucc - *that.m_pSucc);
    		}
    	}
    	return *out;
    }
    
    unsigned long long int CsSuccesor::ToInteger()
    {
    	return (m_pSucc != NULL ? m_pSucc->ToInteger() + 1 : 0);
    }
    
    int main()
    {
    	CsSuccesor succ1;
    	cout << succ1 << '\n' << succ1.ToInteger() << '\n';
    	CsSuccesor succ2(succ1);
    	cout << succ2 << '\n' << succ2.ToInteger() << '\n';
    	CsSuccesor succ3(succ1.Succesor(succ2));
    	cout << succ3 << '\n' << succ3.ToInteger() << '\n';
    	CsSuccesor succ4 = succ3;
    	cout << succ4 << '\n' << succ4.ToInteger() << '\n';
    	CsSuccesor succ5 = succ3 + succ4;
    	cout << succ5 << '\n' << succ5.ToInteger() << '\n';
    	CsSuccesor succ6 = succ5 - succ3;
    	cout << succ6 << '\n' << succ6.ToInteger() << '\n';
    
    	return 0;
    }
    
    

    …netvrdím, že ve všech rysech je to dokonalé, ale zábavné a hravé.

           

    Hodnocení: 25 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    10.11.2008 22:02 dum8d0g
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    to se tak strasne bojis komentaru? to ti proboha udelali.. ;-)
    10.11.2008 22:03 dum8d0g
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    *co
    vogo avatar 10.11.2008 22:07 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    tohle je tzv. „no comment code“ :)

    u vážně míněného kódu komentáře píšu
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    Heron avatar 10.11.2008 22:22 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Tak tady jsou tak krátké metody (což je jedině dobře), že jejich fce je tak plně popsána jejich jménem (tak to má být).

    Pravda, mohlo být popsáno API, ale jako kód pro radost se mi to na první pohled líbí (chyby jsem nehledal).
    11.11.2008 10:14 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Proč? Navzdory neskutečně ukecanému a silně uhozenému programovacímu jazyku je to docela čitelné. BTW takhle se obvykle v teorii čísel formálně definují přirozená čísla- je to prostě nejjednodušší.
    Táto, ty de byl? V práci, já debil.
    vogo avatar 11.11.2008 16:39 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Přesně o to jde, je to rekurzívní datový typ celé číslo. Zřejmě kolega :).
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    11.11.2008 21:05 Ignor
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    V teorii čísel asi ne, tam to je spíš nanic.

    Jestli jsem to dobře pochopil (za což fakt neručím), tak to připomíná ňákou takovouhle konstrukci třeba

    0 = {}; S(n) = {n}

    než tu běžnou z teorie množin

    0 = {}; S(n) = n u {n}
    11.11.2008 21:07 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Už nevim, kdo to řekl, ale:

    "Real Programmers don't use comments. If it was hard to write, it should be hard to read."
    11.11.2008 22:41 Jirka | skóre: 36
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    To už by to mohlo vypadat rovnou takhle:

    void do(int A[], int s) { int i, j, k, l; k = size / 2; while (k > 0) { for (i = k; i < s; i++) { j = i; l = A[i]; while ((j >= k) && (A[j-k] > l)) { A[j] = A[j - k]; j = j - k; } A[j] = l; } if (k == 2) k = 1; else k = (int) (k / 2.2); } }

    Eliminace poznámek a (tím blbým způsobem jsou i vhodné názvy proměnných formou poznámek a přesto znám programátory, kteří používají jména jako: xx, yy, xxx, yyy, xxxx, yyyy) substituce názvů proměnných jejich stručnějším ekvivalentem, zde imho naprosto znečitelnila tento (jinak profláklý) kus kódu.

    Ono to zcela jistě bylo myšleno jako ironie, ale někdo by se té citace mohl chytnout.

    (Přebráno s mírnou úpravou z wikipedie.)
    11.11.2008 22:47 Jirka | skóre: 36
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Omlouvám se, nějak jsem při náhledu ignoroval špatný tag:
    void do(int A[], int s) 
    { 
      int i, j, k, l; 
      k = size / 2; 
    
      while (k > 0) 
      { 
        for (i = k; i < s; i++) 
        { 
          j = i; 
          l = A[i]; 
          
          while ((j >= k) && (A[j-k] > l)) 
          { 
            A[j] = A[j - k]; 
            j = j - k; 
          } 
        
          A[j] = l; 
        } 
    
        if (k == 2) k = 1; else k = (int) (k / 2.2); 
      } 
    } 
    
    11.11.2008 22:57 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Já myslel, že to byl záměr… :-)
    11.11.2008 23:09 Jirka | skóre: 36
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Myslím, že odsazují i ti největší barbaři (kromě soutěží v zatemňování kódu). :-)
    11.11.2008 23:17 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    A také kromě těch, kdo se s programovacím jazykem utkávají jen proto, že kvůli zápočtu/zkoušce musejí. Viděl jsem i jedince, kteří sice odsazovali (nejspíš proto, že jim řekli, že se to má), ale víceméně nahodile, bez vazby na strukturu zdrojáku.
    11.11.2008 23:09 xavier | skóre: 10 | blog: borkovo
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Nebo tak.
    hikikomori82 avatar 10.11.2008 23:43 hikikomori82 | skóre: 18 | blog: foobar | Košice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    A teraz verzia pre bash, asi 100x jednoduchsia
    #!/bin/bash
    echo "Nejaky text"
    echo "Nejaky text"
    echo "Nejaky text"
    echo "Nejaky text"
    echo "Nejaky text"
    echo "Nejaky text"
    11.11.2008 07:41 Kverulant
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    nevidim rekurziu :-)
    hikikomori82 avatar 11.11.2008 08:17 hikikomori82 | skóre: 18 | blog: foobar | Košice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Naco, na vypis piatich textov potrebujete rekurziu a 100 riadkov kodu?
    11.11.2008 13:19 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Třeba na to, aby titulek dával smysl. :-)
    11.11.2008 00:48 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    CsSuccesor& CsSuccesor::operator -(CsSuccesor& that)
    {
    	CsSuccesor* out = new CsSuccesor(*this);
    	if (that.m_pSucc != NULL)
    	{
    		if (m_pSucc != NULL)
    		{
    			delete out;
    			out = new CsSuccesor(*m_pSucc - *that.m_pSucc);
    		}
    	}
    	return *out;
    }
    
    tak se mi udelalo nevolno a ted jdu uz radsi spat... jen tak na okraj - pan je Javista ??? :-)
    vogo avatar 11.11.2008 06:40 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    bývalý…

    mínus jsem chtěl předělat, ale pak jsem na to zapomněl :)
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    11.11.2008 07:12 JS
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Chtel jsem vas upozornit na zajimavy clanek:

    Trocha rekurze nemůže škodit
    11.11.2008 08:27 skonciljsem | skóre: 20
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Tenhle je taky prima.
    11.11.2008 08:45 Kverulant
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Ja som niekde videl odkaz na dobry odkaz.
    mkoubik avatar 11.11.2008 13:52 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Tenhle je lepší.
    Václav 11.11.2008 09:18 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Dík, mrknu se.
    Cross my heart and hope to fly, stick a cupcake in my eye!
    11.11.2008 10:48 ::: | skóre: 14 | blog: e_lama
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    super, ale chybi ti tam podminka na ukonceni rekruze... :-D
    11.11.2008 13:04 JS
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Nechybi, ta je tam implicitni - po urcite dobe bude prislusny proces automaticky ukoncen operacnim systemem. ;-)
    11.11.2008 15:25 Kverulant
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Nechybi, ta je tam implicitni - po urcite dobe bude prislusny proces automaticky ukoncen operacnim systemem. ;-)
    Alebo ujom z elektrarni :-D Elektrikari su naj hackeri :-D Vypnu a je to...
    11.11.2008 21:10 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Naprosto nejlepší vysvětlení rekurze je tady.
    Michal Fecko avatar 11.11.2008 21:42 Michal Fecko | skóre: 31 | blog: Poznámkový blog
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    Pamatam sa ako na strednej nas informatikarka ucila triedenie s pouzitim rekurzie a vzdy to komentovala takto: "Vnarame sa, vnarame sa, vnarame sa, HOP a už sa vynárame, a znova sa vynárame ... " :-D
    12.11.2008 21:18 rtfm
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    lisp? haskell? -> pleasure
    vogo avatar 13.11.2008 18:53 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Trocha rekurze nemůže škodit
    haskel
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.