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 03:11 | Nová verze

    Desktopové prostredie Trinity Desktop vyšlo vo verzii R14.1.5. Je tu opravená chyba v tqt komponente spôsobujúca 100% vyťaženie cpu, dlaždice pre viac monitorov a nemenej dôležité su dizajnové zmeny v podobe ikon, pozadí atď. Pridaná bola podpora distribúcií Debian Trixie, Ubuntu Questing, RHEL 10 a OpenSUSE Leap 16.

    lukve | Komentářů: 0
    včera 22:11 | Nová verze

    Grafická aplikace Easy Effects (Flathub), původně PulseEffects, umožňující snadno povolovat a zakazovat různé audio efekty v aplikacích používajících multimediální server PipeWire, byla vydána ve verzi 8.0.0. Místo GTK 4 je nově postavená nad Qt, QML a Kirigami.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Komunita

    Na YouTube lze zhlédnout Godot Engine – 2025 Showreel s ukázkami toho nejlepšího letos vytvořeného v multiplatformním open source herním enginu Godot.

    Ladislav Hagara | Komentářů: 0
    včera 10:00 | Humor

    Blíží se konec roku a tím i všemožná vyhlášení slov roku 2025. Dle Collins English Dictionary je slovem roku vibe coding, dle Dictionary.com je to 6-7, …

    Ladislav Hagara | Komentářů: 5
    včera 09:55 | IT novinky

    Cloudflare Radar: podíl Linuxu na desktopu dosáhl v listopadu 6,2 %.

    Ladislav Hagara | Komentářů: 2
    9.11. 19:22 | Pozvánky

    Chcete vědět, co se odehrálo ve světě techniky za poslední měsíc? Nebo si popovídat o tom, co zrovna bastlíte? Pak doražte na listopadovou Virtuální Bastlírnu s mikrofonem a kamerou, nalijte si něco k pití a ponořte se s strahovskými bastlíři do diskuze u virtuálního piva o technice i všem možném okolo. Mezi nejvýznamnější novinky patří Průšovo oznámení Core One L, zavedení RFID na filamentech, tisk silikonu nebo nový slicer. Dozvíte se ale i

    … více »
    bkralik | Komentářů: 4
    9.11. 05:00 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.50.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek i s náhledy obrazovek v oznámení o vydání.

    Ladislav Hagara | Komentářů: 0
    8.11. 23:11 | Zajímavý software

    Komunita kolem Linux Containers po roce vývoje představila (YouTube) neměnný operační systém IncusOS speciálně navržený pro běh Incusu, tj. komunitního forku nástroje pro správu kontejnerů LXD. IncusOS poskytuje atomické aktualizace prostřednictvím mechanismu A/B aktualizací s využitím samostatných oddílů a vynucuje zabezpečení bootování pomocí UEFI Secure Bootu a modulu TPM 2.0. Postaven je na Debianu 13.

    Ladislav Hagara | Komentářů: 18
    8.11. 22:44 | IT novinky

    Mozilla začne od ledna poskytovat komerční podporu Firefoxu pro firmy. Jedná se o podporu nad rámec stávající podpory, která je k dispozici pro všechny zdarma.

    Ladislav Hagara | Komentářů: 0
    8.11. 03:44 | Komunita

    V Bolzanu probíhá konference SFSCON (South Tyrol Free Software Conference). Jean-Baptiste Kempf, zakladatel a prezident VideoLAN a klíčový vývojář VLC media playeru, byl na ní oceněn cenou European SFS Award 2025 udělovanou Free Software Foundation Europe (FSFE) a Linux User Group Bolzano‑Bozen (LUGBZ).

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (47%)
     (18%)
     (17%)
     (22%)
     (15%)
     (22%)
     (16%)
     (16%)
    Celkem 340 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    Rozcestník

    Dotaz: Fungování programu

    18.1.2011 15:40 Vojta
    Fungování programu
    Přečteno: 280×
    Ahoj, mám program ale nevím, co znamená úsek v kódu

    #include iostream

    using namespace std;

    void rozklad() { int prvocisla[1229]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179, }; int cislo; int mocnina,pocet=0; cout << "Vlozte cislo do 10000: "; cin >> cislo; cout<< endl << cislo << " = ";

    for ( int i=0 ; i<1229 ; i++ ) { mocnina=0; while (cislo % prvocisla[i]==0) { cislo /= prvocisla[i]; mocnina++; } if (mocnina > 0) { if (pocet= !0) cout<<" * "; pocet++; if (mocnina == 1) { cout << prvocisla[i]; } else { cout << prvocisla[i] << "^" << mocnina; } } } cout << endl << endl; }

    void main() { cout << "Rozklad na prvocinitele CHY0022" << endl ; char moznost='a'; while( 1 > 0 ) { if (moznost=='a') rozklad(); cout << "Chcete pokracovat v rozkladu dalsiho cisla? vlote a pro ano n pro ne "; cin>> moznost; cout << endl; if (moznost=='n') break; } } Nevím si rady s tímhle kouskem programu

    if (pocet= !0) cout<<" * "; pocet++;

    Je mi jasný, že je to příkaz, kterej nastaví, kdy se má napsat * ale nechápu to, že přece proměnná počet je nastavená na nulu... jak může teda nastat situace, kdy to nula nebude.... Sorry asi za blbej dotaz, s programováním začínám a díky za jakýkoli rady nebo vysvětlení.

    Odpovědi

    Michal Wirth avatar 18.1.2011 15:43 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: Fungování programu
    tohle nikdo cist nebude, dej to do <pre></pre>
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.
    18.1.2011 15:49 Vojta
    Rozbalit Rozbalit vše Re: Fungování programu
    #include iostream
    
    using namespace std;
    
    void rozklad()
    {
    	int prvocisla[179]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,
    };
    	
    	int cislo;
    	int mocnina,pocet=0;
    	cout << "Vlozte cislo do 10000: ";
    	cin >> cislo;
    	cout<< endl << cislo << " = ";
    
    	for ( int i=0 ; i<1229 ; i++ )
    	 {
    	 mocnina=0;
    		 while (cislo % prvocisla[i]==0)
    		 {
    			cislo /= prvocisla[i];
    			mocnina++;
    		 }
    		if (mocnina > 0)
    		 {
    			 if (pocet= !0) 
    			 cout<<" * ";
    			 pocet++;
    		 
    		 if (mocnina == 1)
    			 {
    				cout << prvocisla[i];
    			 }
    		 else
    			 {
    				cout << prvocisla[i] << "^" << mocnina;
    			 }
    		 }
    	 }
    	cout << endl << endl;
    }
    
    void main()
    {
    cout << "Rozklad na prvocinitele                   CHY0022" << endl ;
    char moznost='a';
    while( 1 > 0 )
    	{
    	if (moznost=='a') rozklad();
    	cout << "Chcete pokracovat v rozkladu dalsiho cisla? vlote a pro ano n pro ne  "; cin>> moznost; 
    	cout << endl;
    	if (moznost=='n') 
    		break;
    	}
    }
    
    Nevim si rady s timhle kouskem programu:
                           if (pocet= !0) 
    			 cout<<" * ";
    			 pocet++;
    
    Je mi jasný, že je to příkaz, kterej nastaví, kdy se má napsat * ale nechápu to, že přece proměnná počet je nastavená na nulu... jak může teda nastat situace, kdy to nula nebude.... Sorry asi za blbej dotaz, s programováním začínám a díky za jakýkoli rady nebo vysvětlení.

    18.1.2011 16:20 chrono
    Rozbalit Rozbalit vše Re: Fungování programu
    Ten program vypisuje nejaké čísla. Funguje to tak, že sa vypíše " * " a potom číslo. Tá podmienka zabezpečí, že sa pri prvom čísle ten reťazec nevypíše (takže tam nebude niečo ako * 1 * 2 * 3 ale bude tam 1 * 2 * 3).
    18.1.2011 16:43 Jan Trávníček | skóre: 10 | blog: ehonza | Existuje
    Rozbalit Rozbalit vše Re: Fungování programu
    Nevim jestli to je jenom překlep ale podmínka if(pocet = !0) {...} je hodně divoká a rozhodně nezabezpečí aby se nevypisovalo * 1 * 2 * 3. Nemělo by to být spíš if(pocet != 0) {...}? Mimochodem ta podmínka je divoká protože je vždycky pravdivá a navíc přiřazuje do proměnný počet.

    Při rychlém pohledu na zbytek kódu: proč je ten for cyklus do 1229 (spadlo mi to na i = 42 s floating point exception protože se přelezlo pole a chtělo asi dělit nulou )?
    To mess up a Linux box, you need to work at it; to mess up your Windows box, you just have to work on it.
    18.1.2011 16:57 Vojta
    Rozbalit Rozbalit vše Re: Fungování programu
    To pole má mít 1229 prvků- prvočísel do 10000- nechtěl sem to sem všechno kopírovat, bylo by to na pul strany, na výstupu má vypsat rozklad na prvočísla.
    18.1.2011 17:01 Jan Trávníček | skóre: 10 | blog: ehonza | Existuje
    Rozbalit Rozbalit vše Re: Fungování programu
    Ok tak pak to dává smysl.
    To mess up a Linux box, you need to work at it; to mess up your Windows box, you just have to work on it.
    18.1.2011 17:05 Vojta
    Rozbalit Rozbalit vše Re: Fungování programu
    Ta podmínka je tam teda proto, aby se nevypisovalo * před první číslo?
    18.1.2011 17:09 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Fungování programu
    Byla by, kdyby byla napsaná správně.
    18.1.2011 17:11 Jan Trávníček | skóre: 10 | blog: ehonza | Existuje
    Rozbalit Rozbalit vše Re: Fungování programu
    Ale jak jsem psal tak ta podmínka je napsaná špatně je prohozený = a !. if(pocet= !0) je to samý jako if(pocet= 1) a to je vždy pravda. Neboli jak při tom řekne kompilátor:

    main.cpp:26:15: warning: suggest parentheses around assignment used as truth value
    To mess up a Linux box, you need to work at it; to mess up your Windows box, you just have to work on it.
    18.1.2011 17:08 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Fungování programu
    A nebylo by čistě náhodou lepší ten program napsat tak, aby nemusel obsahovat všechna prvočísla od 1 do 10000 (a třeba aby fungoval i pro čísla větší než 10000? Mimochodem, když už byste to chtěl dělat takhle šíleně, na rozklad čísel do 10000 by vám stačilo znát prvočísla do 100.
    18.1.2011 17:26 Vojta
    Rozbalit Rozbalit vše Re: Fungování programu
    Jak jsem psal, nejsem v programování ještě tak zběhlý.... proto jsem rád za každou radu

    Založit nové vláknoNahoru

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

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