Rozklad na prvočinitele. 3. prosince 2010



Podobné dokumenty
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Programování v C++ 1, 1. cvičení

C# konzole Podíl dvou čísel, podmínka IF

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Poslední nenulová číslice faktoriálu

Seznámení s prostředím dot.net Framework

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Více o konstruktorech a destruktorech

Novinky ve Visual Studio Tomáš Kroupa

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Technologie Sharepoint

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

2. lekce Algoritmus, cyklus Miroslav Jílek

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

První kapitola úvod do problematiky

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

VISUAL BASIC. Přehled témat

Úvodem... 9 Kapitola 1 Karetních

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Martin Flusser. November 1, 2016

3 KTE / ZPE Informační technologie

Počítačové kurzy buildit

Úvod do programování. Lekce 3

Komprimace/Dekomprimace

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Profilová část maturitní zkoušky 2013/2014

Tvorba webových stránek

Úvod do programování. Lekce 1

Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Operační systémy. Cvičení 4: Programování v C pod Unixem

Vstupní požadavky, doporučení a metodické pokyny

Stručný návod k programu Octave

Lekce 01 Úvod do algoritmizace

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Profilová část maturitní zkoušky 2017/2018

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

Skriptovací jazyky. Obsah

ČÁST 1. Základy 32bitového programování ve Windows

CASE nástroje. Jaroslav Žáček

Úvod do programovacího jazyka Python

Microsoft Access tvorba databáze jednoduše

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

CineStar Černý Most Praha

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Řídicí struktury. alg3 1

Algoritmizace a programování

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Poznámky k verzi Remote support platform 3.1

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

OBJEDNÁVÁNÍ DÁRCŮ KRVE PŘES INTERNET Naděžda Kalužová, Zdeněk Slanina

Programování v C++ 1, 14. cvičení

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

6. Příkazy a řídící struktury v Javě

1 Webový server, instalace PHP a MySQL 13

Wonderware Information Server 4.0 Co je nového

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do programování - Java. Cvičení č.4

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

Novinky. Autodesk Vault helpdesk.graitec.cz,

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Objektově orientované programování

Digitální učební materiál

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Základy algoritmizace a programování

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Podpora skriptování v Audacity

Instalace a konfigurace web serveru. WA1 Martin Klíma

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. December 7, 2016

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 12.2.

Překladač a jeho struktura

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Algoritmy a datové struktury

Indexace pro souborová uložiště a Vyhledávací centrum

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

Matematika v programovacích

Transkript:

Rozklad na prvočinitele Ondřej Slavíček 3. prosince 2010 1

Obsah 1 Příručka k programu 3 1.1 funkce main()............................. 3 1.2 funkce hlavnifunkce()........................ 3 1.3 funkce naplnenipole()........................ 3 1.4 funkce nactenicisla()......................... 4 1.5 funkce rozkladnaprvocisla()..................... 4 1.6 funkce max()............................. 6 1.7 funkce vypocetmocnitele()...................... 6 1.8 funkce vypisnaobrazovku()..................... 11 2 Vývojové prostředí 11 2.1 Microsoft Visual studio....................... 11 3 Autor 13 4 Literatura 14 2

1 Příručka k programu 1.1 funkce main() void main() hlavnifunkce(); cin.get(); cin.get(); Funkce main() je pro běh programu nezbytná. Program ji vyžaduje a neumí bez ní pracovat. Pro pochopení programu se zde objevuje jen příkaz pro volání fuknce hlavnifunkce(). Zařazení příkazu cin.get() do kódu nám pozastaví program a umožní přečtení výstupu na obrazovce. 1.2 funkce hlavnifunkce() void hlavnifunkce() hlavicka(); naplnenipolenulami( mocnitel ); naplnenipolenulami( delitel ); nactenicisla(); rozkladnaprvocisla( cislo ); maximumpole( delitel ); vypocetmocnitele( delitel ); vypisnaobrazovku( cislotemp, mocnitel, maximum); pata(); Funkce s názvem hlavnifunkce() je takovou, jak už název napovídá, hlavní funkcí. Má za úkol volat všechny ostatní funkce. 1.3 funkce naplnenipole() int naplnenipolenulami( int pole[] ) for( i = 0; i < VELIKOST_POLE_PRVOCISEL; i++ ) pole[i] = 0; return pole[velikost_pole_prvocisel]; 3

Funkce naplnenipole() naplní pole, které se nachází uvnitř příkazu, nulami. 1.4 funkce nactenicisla() int nactenicisla() cout << endl << "...cislo v rozmezi od 2 do 10 000: "; cin >> cislo; cislotemp = cislo; return cislo, cislotemp; Funkce nactenicisla() očekává vstup z klávesnice, který uloží do proměnné cislo. Cislotemp slouží k zálohování zadaného čísla. 1.5 funkce rozkladnaprvocisla() Tato funkce rozkládá číslo na prvočísla, jak můžeme vidět na obrázku 1 na straně č.5. Funkce je jedna ze stěžejních, rozeberme si ji tedy detailně: int rozkladnaprvocisla( int hodnota ) j = 0; for( i = 0; i < VELIKOST POLE PRVOCISEL; ) if( hodnota % poleprvocisel[i] == 0 ) hodnota = hodnota / poleprvocisel[i]; delitel[j] = poleprvocisel[i]; j++; else i++; return delitel[velikost_pole_prvocisel]; Část kódu s podmínkou: 4

Obrázek 1: Rozklad na prvočísla if( hodnota % poleprvocisel[i] == 0 ) hodnota = hodnota / poleprvocisel[i]; delitel[j] = poleprvocisel[i]; j++; Pokud zbytek po dělení čísla cislo číslem na pozici i v poli poleprvocisel[] je roven 0, proměnné cislo se přiřadí výsledek dělení. Do pole delitel[] se na pozici j zapíše dané prvočíslo. Index j se zvýší o 1. 1.6 funkce max() int maximumpole( int pole[] ) for( i = 0; i < VELIKOST_POLE_PRVOCISEL; i++ ) if( pole[i] > maximum ) maximum = pole[i]; return maximum; Funkce max() má za úkol zjistit největší číslo v poli[], jak můžeme vidět na obrázku 2 na straně č.7. Díky cyklu for probíhá celá funkce i krát. Podmínka if zjišt uje, zda je číslo na pozici i v poli[] větší než proměnná maximum. Pokud 5

Obrázek 2: Maximum pole tomu tak je, číslo na pozici i v poli[] se zapíše do proměnné maximum. 1.7 funkce vypocetmocnitele() Funkce vypocetmocnitele() slouží k výpočtu mocnitele daných prvočísel, jak můžeme vidět na obrázku 3 na straně č.10. Funkce je druhou velice důležitou funkcí. Rozeberme si ji tedy rovněž podrobně: 6

int vypocetmocnitele( int pole[] ) for( i = 0; i < VELIKOST_POLE_PRVOCISEL; i++ ) if( i == 0 ) j = 0; jtemp = j; for( j; ; j++ ) if( pole[j] == poleprvocisel[i] ) mocnitel[i] += 1; continue; else j = jtemp + mocnitel[i]; break; return mocnitel[velikost_pole_prvocisel]; Část kódu pro nastavení hodnoty proměnné j : for( i = 0; i < VELIKOST_POLE_PRVOCISEL; i++ ) if( i == 0 ) j = 0; jtemp = j; 7

Obrázek 3: Umocnění int vypocetmocnitele( int pole[] ) for( i = 0; i < VELIKOST POLE PRVOCISEL; i++ )... for( j; ; j++ ) if( pole[j] == poleprvocisel[i] ) mocnitel[i] += 1; continue; else j = jtemp + mocnitel[i]; break; return mocnitel[velikost_pole_prvocisel]; V případě, že je podmínka splněna, zvýší se číslo na pozici i v poli mocnitel [] o 1 a běh programu skočí na začátek druhého příkazu for. Když podmínka splněna není, proměnná j se zvýší o číslo na pozici i v poli mocnitel []. Běh programu pokračuje na začátku prvního příkazu for. 8

Obrázek 4: Výsledné zobrazení 1.8 funkce vypisnaobrazovku() void vypisnaobrazovku ( int zalohacisla, int polemocnitelu[], int maximum ) cout << endl; cout << zalohacisla << " = "; for( i = 0; i < VELIKOST_POLE_PRVOCISEL; i++ ) if( polemocnitelu[i]!= 0 ) if( poleprvocisel[i] == maximum ) cout << poleprvocisel[i] << "^" << polemocnitelu[i] <<endl else cout << poleprvocisel[i] << "^" << polemocnitelu[i] << "*" Funkce vypisnaobrazovku(), jak její název napovídá, vypisuje, jak můžete vidět na obrázku 4 na straně č.12, vše vypočítané na obrazovku v požadovaném formátu. Na obrazovku nejsou pochopitelně vypisovány prvočísla umocněné na 0. Podmínka if slouží jen k tomu, aby se za posledním číslem výpisu neobjevovala hvězdička ( * ). 9

2 Vývojové prostředí 2.1 Microsoft Visual studio Microsoft Visual Studio je vývojové prostředí (IDE) od Microsoftu. Může být použito pro vývoj konzolových aplikací a aplikací s grafickým rozhraním spolu s Windows Forms aplikacemi, webovými stránkami, webovými aplikacemi a webovými službami jak ve strojovém kódu, tak ve spravovaném kódu na platformách Microsoft Windows, Windows Mobile, Windows CE,.NET,.NET Compact Framework a Microsoft Silverlight. Visual Studio obsahuje editor kódu podporující IntelliSense a refaktorování. Integrovaný debugger pracuje jak na úrovni kódu, tak na úrovni stroje. Další vestavěné nástroje zahrnují designer formulářů pro tvorbu GUI aplikací, designer webu, tříd a databázových schémat. Je možné přidávat rozšíření, což vylepšuje funkčnost na téměř každé úrovni - od přidání podpory pro verzovací systémy (jako Subversion a Visual SourceSafe) do přidání nových nástrojů jako editory a vizuální designery pro jazyky specifické pro obor nebo nástroje pro další aspekty návrhu programu (jako klient Team Foundation Serveru: Team Explorer). Visual Studio podporuje jazyky prostřednictvím jazykových služeb, což umožňuje, aby editor kódu a debugger podporoval jakýkoliv programovací jazyk. Mezi vestavěné jazyky patří C/C++ (použitím Visual C++), VB.NET (použitím Visual Basic.NET) a C# (použitím Visual C#). Podpora dalších jazyků jako Chrome, F#, Python a Ruby spolu s ostatními může být přidána jazykovými službami, které musí být nainstalovány zvlášt. Také je podporováno XML/XSLT, HTML/XHTML, JavaScript a CSS. Existují i verze Visual Studia pro určitý jazyk, které uživateli poskytují omezenější jazykové služby. Tyto individuální balíčky jsou Microsoft Visual Basic, Visual J#, Visual C# a Visual C++. 3 Autor Ondřej Slavíček krycí jméno SLA0065 narozen v červenci 1990 student VŠB-TU Ostrava, fakulta FEI, obor B2647 záliby SPORT programování filmy matematika více o autorovi zde 10

4 Literatura Reference [1] Základy jazyka L A TEX http://voho.cz/wiki/poznamky-latex/ [2] Jak na L A TEX http://www.root.cz/serialy/jak-na-latex/ [3] Ne příliš stručný úvod do systému L A TEX http://www.root.cz/knihy/ne-prilis-strucny-uvod-do-systemu-latex-2e/ 11