Algoritmy. 71 Zjištění, zda je číslo sudé. 72 Zjištění, zda je číslo dělitelné jiným beze zbytku
|
|
- Jakub Novotný
- před 9 lety
- Počet zobrazení:
Transkript
1 Algoritmy 71 Zjištění, zda je číslo sudé Chceme-li zjistit, zda je určité číslo sudé, či liché, vypočítáme pomocí binárního operátoru % jeho zbytek po dělení číslem 2. Je-li roven 0, je číslo sudé, je-li roven 1, je liché. bool JeSude(int cislo) return cislo % 2 == 0; 72 Zjištění, zda je číslo dělitelné jiným beze zbytku Jestliže chceme zjistit, zdali je číslo beze zbytku dělitelné jiným, čili zda je jejich zbytek po dělení roven 0, použijeme binární operátor %. bool JeDelitelneZcela(int delenec, int delitel) if (delenec % delitel == 0) return true; return false; 73 Jak získat pole všech prvočísel v intervalu od 2 do N Eratosthenovo síto je algoritmus určený pro nalezení všech prvočísel v intervalu 2 N. Následující metoda představuje jeho implementaci v jazyce C#. Množina nalezených prvočísel je vrácena jako instance kolekce System.Collections.ArrayList. ArrayList EratosthenovoSito(int MaxN) ArrayList arl = new ArrayList(); bool[] pole = new bool[maxn + 1]; int i, j; for (i = 2; i < MaxN; i++) pole[i] = true; i = 2; while (i * i <= MaxN) if (pole[i]) j = 2; while (i * j <= MaxN) pole[j * i] = false; j++; i++;
2 60 Algoritmy int m = 0; foreach (bool b in pole) if (b) arl.add(m); m++; return arl; 74 Zjištění minimální a maximální hodnoty číselného typu Číselné datové typy jako int, double, decimal, char apod. obsahují konstantní položky MinValue a MaxValue, které vrací hodnotu představující minimum a maximum intervalu čísel, ve kterém je daný typ platný a který bychom neměli přesáhnout. Pokud se tak stane, bude vyvolána výjimka System.OutOfRangeException. Console.WriteLine( Nejmenší hodnota typu int je: 0, int.minvalue); Console.WriteLine( Největší hodnota typu int je: 0, int.maxvalue); Vypíše: Nejmenší hodnota typu int je Největší hodnota typu int je Vytvoření instance číselného datového typu z řetězce Všechny číselné datové typy, jako například int, char, double apod., obsahují statickou metodu Parse, která z řetězce, jenž je jejím argumentem, vytvoří proměnnou daného datového typu. Pokud řetězec neobsahuje správnou reprezentaci čísla, metoda Parse vyvolá výjimku System.FormatException. string s = int c = int.parse(s); 76 Jak z řetězce získat číslo zapsané s oddělovačem tisíců Máme-li řetězec obsahující číslo zapsané s oddělovači tisíců (tedy podle lokálních zvyklostí) převést na číselný datový typ (například int), použijeme přetíženou metodu Parse daného datového typu. Jako její první argument dosadíme daný řetězec a jako druhý pak položku AllowThousands výčtového typu System.Globalization.NumberStyles, která metodě říká, že jsou jednotlivá trojčíslí v řetězci oddělena odpovídajícím znakem. string cislo = ; int m = int.parse(cislo, System.Globalization.NumberStyles.AllowThousands); 77 Jak zaokrouhlit číslo nahoru Metoda Ceiling statické třídy System.Math zaokrouhlí číslo na nejbližší vyšší celé číslo. Pokud tedz jako argument zadáme číslo x, které není celé, bude nám vráceno nejbližší následující celé číslo.
3 Algoritmy 61 double cislo = ; double zaoknahoru = Math.Ceiling(cislo); // Vrátí 2 78 Jak vypočítat sinus úhlu vyjádřeného ve stupních Následující kód vypočítá hodnotu sinu určitého úhlu, jehož velikost je zadána ve stupních. Ten je v následujícím případě představován proměnnou stupneuhlu. int stupneuhlu = 45; // Metoda Math.Sin vypočítá hodnotu sinu úhlu zadaného v radiánech, // pokud je zadán ve stupních, musíme ho nejprve na radiány převést: double uhelvradianech = (Math.PI * stupneuhlu) / 180; double sinuhlu = Math.Sin(uhelVRadianech); Console.WriteLine( Sinus úhlu 0 je 1, stupneuhlu, sinuhlu); V tomto případě bude vypsáno: Sinus úhlu 45 je 0, Jak vypočítat kosinus úhlu vyjádřeného ve stupních Následující kód vypočítá hodnotu kosinu určitého úhlu zadaného ve stupních. Ten je v následujícím příkladě představován proměnnou stupneuhlu. int stupneuhlu = 45; // Metoda Math.Cos vypočítá hodnotu kosinu úhlu zadaného v radiánech, // pokud ho máme v stupních, musíme ho nejprve na radiány převést: double uhelvradianech = (Math.PI * stupneuhlu) / 180; double cosuhlu = Math.Cos(uhelVRadianech); Console.WriteLine( Kosinus úhlu 0 je 1., stupneuhlu, cosuhlu); V tomto případě vypíše: Kosinus úhlu 45 je 0, Jak vypočítat tangens úhlu vyjádřeného ve stupních Následující kód vypočítá hodnotu tangenty určitého úhlu zadaného ve stupních. Ten je v následujícím příkladě představován proměnnou stupneuhlu. int stupneuhlu = 45; // Metoda Math.Cos vypočítá hodnotu kosinu úhlu zadaného v radiánech, // pokud ho máme v stupních, musíme ho nejprve na radiány převést: double uhelvradianech = (Math.PI * stupneuhlu) / 180; double tanuhlu = Math.Tan(uhelVRadianech); Console.WriteLine( Tangenta úhlu 0 je 1., stupneuhlu, tanuhlu); V tomto případě vypíše: Tangenta úhlu 45 je 1, Zaokrouhlení čísla na několik desetinných míst Pokud chceme zaokrouhlit desetinné číslo na stanovený počet desetinných míst, použijeme metodu Round statické třídy System.Math. První argument této metody představuje
4 62 Algoritmy číslo, jež chceme zaokrouhlit, druhý pak počet desetinných míst, na které má být dané číslo zaokrouhleno. double pi = ; double z = Math.Round(pi, 4); // Vrátí Získání absoulutní hodnoty daného čísla K získání absolutní hodnoty určitého čísla nám poslouží metoda Abs. double VratAbsHodnotu(double cislo) if (cislo >= 0) return cislo; return (int)math.abs(cislo); 83 Výpočet n-té odmocniny daného čísla Statická třída System.Math implicitně neobsahuje metodu pro výpočet n-té odmocniny z určitého čísla. Chceme-li ji vypočítat, umocníme pomocí metody Pow dané číslo převrácenou hodnotou čísla n. double Odmocni(double cislo, double n) if (exp == 0) return 1; exp = 1 / exp; return Math.Pow(cislo, exp); 84 Výpočet n-té mocniny daného čísla Pokud chceme umocnit číslo na určitý exponent, poslouží nám metoda System.Math.Pow. Tato metoda jako svůj první argument očekává číslo, které má být umocněno exponentem, jenž je představován druhým argumentem a vrací výsledek jako typ double. double c = 2; double exp = 3; double vysledek = Math.Pow(c,exp); 85 Zaokrouhlení ceny na padesátihaléře Následující metoda zaokrouhlí ceny v korunách s přesností na padesátihaléře. Pravidla, jež jsou stanovena Českou národní bankou, jsou pro zaokrouhlavání tato: Částka končící na 1 až 24 haléřů se zaokrouhlí na celé koruny dolů. Haléře u částky končící na 25 až 74 haléřů se zaokrouhlí na padesátihaléř. Částka končící na 75 až 99 haléřů se zaokrouhlí na celou korunu nahoru.
5 Algoritmy 63 double ZaokrouhliCenu(double cena) double descast = cena - Math.Floor(cena); if (descast < 0.25f) return Math.Floor(cena); if (descast < 0.75f) return Math.Floor(cena) + 0.5f; return (float)math.round(cena); 86 Výpočet logaritmu Pokud chceme vypočítat logaritmus o daném základu, poslouží nám metoda Log třídy System.Math. Tato metoda očekává dva argumenty. Prvním z nich je číslo, jehož algoritmus chceme nalézt, druhým pak základ logaritmu. int cislo = 55; int zaklad = 4; double log = Math.Log(cislo, zaklad); V případě, že potřebujeme vypočítat dekadický logaritmus, použijeme metodu Math. Log Převod hodnoty úhlu ve stupních na radiány Následující výsek kódu převede hodnotu úhlu zadaného ve stupních na jednotky radiánu. double uhel = 45; double radiany = (uhel * Math.PI) / 180; 88 Vygenerování pseudonáhodného čísla Pokud chceme vytvořit pseudonáhodné celé číslo, použijeme přetíženou metodu Next třídy System.Random, která jako argument očekává čísla typu int představující spodní a horní hranici zvýšenou o 1 intervalu čísel, jež mohou být vygenerována. Toto číslo by mělo být o 1 větší než námi požadovaná vrchní hranice intervalu. Následující příklad vygeneruje číslo v intervalu 4 20: Random r = new Random(); int spodnihranice = 4; int hornihranice = 20; double nahodnecislo = r.next(spodnihranice,hornihranice + 1); 89 Vygenerování řetězce z náhodných znaků abecedy Následující metoda vygeneruje řetězec z náhodných velkých písmen anglické abecedy, jejichž počet je definován číslem, které slouží jako její argument. string GenerujZnaky(int pocet) StringBuilder vyslednyretezec = new StringBuilder(); int i = 0;
6 64 Algoritmy Random r = new Random(); while (i < pocet) int m = r.next(65, 91); char znak = (char)m; i++; vyslednyretezec.append(znak); return vyslednyretezec.tostring(); 90 Vygenerování řetězce z náhodných písmen a číslic Následující metoda vygeneruje řetězec náhodných znaků, jejichž počet je definován číslem sloužícím jako argument této metody. Samotné znaky jsou buď malá nebo velká písmena anglické abecedy nebo také číslice. string GenerujZnaky(int pocet) string vyslednyretezec = ; int i = 0; // Vytvoříme novou instanci třídy Random, pomocí které budeme // generovat náhodná čísla. Random r = new Random(); while (i < pocet) int m = 0; // Necháme náhodné číslo rozhodnout, zdali náhodně vybraným // znakem bude malé či velké písmeno nebo číslice. int l = r.next(1, 4); switch (l) case 1: m = r.next(65, 91); break; case 2: m = r.next(48, 58); break; case 3: m = r.next(97, 122);break; char znak = (char)m; i++; vyslednyretezec += znak.tostring(); return vyslednyretezec; 91 Náhodné vygenerování řetězce z předdefinovaných znaků Následující metoda vygeneruje řetězec o určité délce, která je definována jejím prvním argumentem. Znaky, ze kterých bude řetězec náhodně poskládán, jsou uloženy v poli, které představuje argument druhý. string VygenerujZnaky(int delka, char[] znaky) StringBuilder sb = new StringBuilder(delka); Random r = new Random();
7 Algoritmy 65 for (int x = 0; x < delka; x++) int rand = r.next(znaky.length); sb.append(znaky[rand]); return sb.tostring(); 92 Vygenerování série náhodných čísel Následující metoda vrací pole celých čísel. Počet vygenerovaných čísel je stanoven prvním argumentem. Hranice spodního a vrchního intervalu, ve kterém bude náhodné číslo ležet, je definována zbylými dvěma argumenty. int[] VygenerujCisla(int pocet, int min, int max) int[] nahcisla = new int[pocet]; Random rand = new Random(); for (int x = 0; x < pocet; x++) nahcisla[x] = (int)rand.next(min, max+1); return nahcisla; 93 Vygenerování pseudonáhodného čísla typu double v intervalu 0 1 Metoda NextDouble třídy System.Random vygeneruje pseudonáhodné desetinné číslo typu double, jež leží v intervalu <0-1), což znamená, že vygenerované číslo spadá do intervalu 0 až necelá 1. Jednotlivá čísla jsou v tomto intervalu rovnoměrně rozdělena, což znamená, že u každého čísla je stejná pravděpodobnost výběru. Random r = new Random(); double nahcislo = r.nextdouble(); 94 Ověření, zda jde o celé číslo Chceme-li zjistit, zdali je určité číslo celé, zaokrouhlíme ho dolů metodou System.Math. Floor a následně odečteme od původního čísla. Je-li rozdíl roven 0, je toto číslo celé. K tomuto úkonu slouží následující metoda typu bool, která vrací true pouze v případě, že je číslo celé. bool JeCele(double cislo) double descast = Math.Floor(cislo) - cislo; if (descast == 0) return true; return false;
8 66 Algoritmy 95 Jak získat desetinnou část čísla Chceme-li získat desetinnou část určitého čísla, nejprve zaokrouhlíme metodou Floor třídy System.Math toto číslo dolů a následně jej odečteme od původního čísla, čímž získáme jeho desetinnou část. double cislo = ; double descast = cislo - Math.Floor(cislo); Console.WriteLine( Desetinná část čísla 0 je 1, cislo, descast); 96 Řešení kvadratické rovnice Následující metoda vyřeší kvadratickou rovnici, jsou-li zadány její koeficienty ty jsou představovány argumenty této metody. static string VypoctiKvadr(double a, double b, double c) double diskriminant = (b * b) - 4 * a * c; if (diskriminant < 0) throw new ArgumentException ( Zadaná rovnice nemá v real. číslech řešení ); double x1 = (Math.Pow(diskriminant, 0.5) - b) / (2 * a); if (diskriminant == 0) return x1.tostring(); double x2 = (Math.Pow(diskriminant, 0.5) + b) / (2 * a); return x1.tostring() + + (x2 * -1).ToString() + i ; 97 Převedení časového údaje v sekundách na hodiny, minuty a sekundy Chceme-li převést čas v sekundách na minuty, hodiny či dny, vytvoříme pomocí tovární metody FromSeconds novou instanci struktury TimeSpan, která bude obsahovat potřebné vlastnosti: int sekundy = 36523; TimeSpan ts = TimeSpan.FromSeconds(sekundy); Console.WriteLine( 0 sekund je 1 dní, 2 hodin, 3 minut a 4 sekund, sekundy, ts.days,ts.hours, ts.minutes, ts.seconds); Pro vstup dostaneme následující výstup: sekund je 1 dní, 10 hodin, 8 minut a 43 sekund 98 Nalezení nejmenšího čísla v nesetříděném poli Pokud chceme najít nejmenší číslo v nesetříděném poli, nejprve vytvoříme proměnnou nejmensicislo typu int a uložíme do ní nejmenší hodnotu tohoto datového typu. Ta bude představována prvním prvkem v poli. Následně pole projdeme v cyklu a každé z čísel
9 Algoritmy 67 porovnáme s proměnnou nejmensicislo. Pokud je prvek pole menší, uložíme ho do této proměnné. Po ukončení všech iterací cyklu bude proměnná nejmensicislo obsahovat nejmenší číslo v zadaném poli. Nakonec proměnnou nejmensicislo vrátíme příkazem return. int NajdiNejmensi(int[] cisla) int nejmensicislo = cisla[0]; foreach (int cislo in cisla) if (cislo < nejmensicislo) nejmensicislo = cislo; return nejmensicislo; 99 Jak nalézt nejčastěji se vyskytující číslo v poli Následující metoda vrátí číslo, jež se v poli vyskytuje nejčastěji. Pokud se počet výskytů několika různých čísel rovná, metoda vrátí to číslo, jehož první výskyt má v poli nejnižší index. int NajdiNejcastejsiCislo(int[] cisla) int index = 0; int max = int.minvalue; // Postupně projdeme pole čísel a vždy vybereme jedno z nich. for (int x = 0; x < cisla.length; x++) int m = 0; // Projdeme všechna čísla, která v poli leží napravo od čísla // vybraného. for (int y = x + 1; y < cisla.length; y++) // Pokud se obě čísla rovnají, inkrementujeme proměnnou m // představující počet výskytů daného čísla v poli. if (cisla[x] == cisla[y]) m++; if (m > max) max = m; index = x; return cisla[index]; 100 Nalezení největšího čísla v poli čísel Jestliže chceme najít nejmenší číslo v nesetříděném poli, vytvoříme nejprve proměnnou nejvetsicislo typu int, do níž uložíme první prvek pole. Následně projdeme v cyklu všechny prvky pole a každý z nich porovnáme s proměnnou nejvetsicislo. Je-li větší, uložíme
10 68 Algoritmy jeho hodnotu do proměnné nejvetsicislo. Po ukončení všech iterací bude proměnná nejvetsicislo obsahovat největší číslo v tomto poli. int NajdiNejvetsiCislo(int[] cisla) int nejvetsicislo = int.minvalue; foreach (int cislo in cisla) if (cislo > nejvetsicislo) nejvetsicislo = cislo; return nejvetsicislo; 101 Zjištění souřadnic maxima kvadratické funkce Následující metoda vypočítá hodnotu maxima paraboly kvadratické funkce z jejích koeficientů. Jednotlivé souřadnice maxima budou vypsány na konzolu. Proměnné a, b, c, které jsme deklarovali v hlavičce metody, představují jednotlivé koeficienty kvadratické funkce. void NajdiVrcholy(double a, double b, double c) if (a == 0) Console.WriteLine( Nejedná se o kvadratickou funkci ); else double vrcholx0 = (b / (2 * a)) * -1; double vrcholy0 = c - ((b * b) / (4 * a)); Console.WriteLine( Souřadnice x vrcholu rovnice je: + vrcholx0); Console.WriteLine( Souřadnice y vrcholu rovnice je: + vrcholy0); 102 Jak v poli nalézt prvek a vrátit index jeho prvního či posledního výskytu Jestliže chceme v poli vyhledat prvek a vrátit index jeho prvního výskytu, použijeme metodu IndexOf třídy System.Array. Jako její první argument dosadíme pole, ve kterém chceme prvek vyhledat. Ten je představován druhým argumentem. Jestliže tato metoda prvek v poli nenajde, vrátí -1. int[] pole = 5, 8, -2, 41, 15; int hledanyprvek = 41; int prvnivyskyt = pole.indexof(hledanyprvek); // Vrátí 3 Chceme-li vrátit index posledního výskytu prvku v poli, použijeme metodu LastIndexOf.
11 Algoritmy Jak vypočítat aritmetický průměr z hodnot uložených v poli Chceme-li spočítat aritmetický průměr hodnot, jež jsou uloženy v poli, sečteme je v cyklu a součet uložíme do proměnné hodnota. Tu pak vydělíme počtem prvků daného pole. Počet prvků tu reprezentuje vlastnost Length. double SpoctiArPrumer(int[] cisla) double hodnota = 0; foreach (int c in cisla) hodnota += c; hodnota /= cisla.length; return hodnota; 104 Jak vypočítat geometrický průměr z hodnot uložených v poli Následující metoda spočítá geometrický průměr z hodnot, jež jsou uloženy v poli, které je použito jako její argument. double SpoctiGeoPrumer(int[] cisla) double hodnota = 1; foreach (int c in cisla) hodnota *= c; hodnota = Math.Pow(hodnota,(1 /(double)cisla.length)); return hodnota; 105 Výpočet faktoriálu Následující metoda spočítá faktoriál čísla, které je jejím argumentem. Pokud je toto číslo záporné nebo větší než 20, metoda vyvolá výjimku. long Faktorial(int n) if ( n < 0) throw new ArgumentException( Zadané číslo musí být kladné! ); if (n > 20) throw new ArgumentException( Číslo nesmí být větší než 20 ); long vysledek = 1; for (int x = 2; x <= n; x++) vysledek *= x; return vysledek;
12 70 Algoritmy 106 Výpočet počtu variací n prvků k-té třídy bez opakování Následující metoda vypočítá počet variací z n prvků k-té třídy bez opakování. long Variace(int n, int k) long pocetvariaci = 1; for (int x =0; x < k; x++) pocetvariaci *= n-x; return pocetvariaci; 107 Vypočet počtu kombinací z n prvků k-té třídy bez opakování Následující metoda vrací číslo představující počet kombinací z n prvků k-té třídy. long SpocitejKombinace(int k, int n) int a = n + k - 1; return Faktorial(a) / (Faktorial(k) * (Faktorial(n - 1)); 108 Výpočet počtu kombinací z n prvků k-té třídy s opakováním Následující metoda vrácí číslo představující počet kombinací z n prvků k-té třídy s opakováním. long SpocitejKombinace(int k, int n) if ((k + n) >= 21) throw new ArgumentException( n + k musí být menší než 21! ); int a = n + k - 1; int c = n - 1; return Faktorial(a) / (Faktorial(k) * Faktorial(c)); 109 Jak zjistit trojúhelníkovou nerovnost Následující metoda očekává jako argumenty jednotlivé strany trojúhelníka a vrátí hodnotu typu bool v závislosti na tom, zda trojúhelník lze setrojit, či nikoli. Sestrojit ho lze právě tehdy, jestliže je součet dvou různých stran trojúhelníka větší než délka strany třetí. Tímto způsobem prověříme všechny tři strany. Pokud lze trojúhelník sestrojit, vrátí tato metoda true, v opačném případě vrátí false. bool LzeSestrojit(int a, int b, int c) if (a + b < c)
13 Algoritmy 71 return false; if (a + c < b) return false; if (b + c < a) return false; return true; 110 Zjištění pohlaví z rodného čísla V rodném čísle mají ženy k datu měsíce narození přičteno 50, a proto, chceme-li zjistit kterému z pohlaví náleží dané rodné číslo, vyjmeme ze řetězce podřetězec představující měsíc a převedeme jej na číslo. Pokud je toto číslo větší než 12, datum patří ženě. V opačném případě muži. string rodnecislo = xxxxxx/xxxx ; if (int.parse(rodnecislo.substring(2, 2)) > 12) Console.WriteLine( Toto rodné číslo patří ženě ); return; Console.WriteLine( Toto rodné číslo patří muži ); 111 Ověření validity rodného čísla Pokud chceme zjistit, zda je validní rodné číslo, které bylo vydáno po roce 1953, spočítáme zbytek po vydělení prvních devíti čísel rodného čísla číslem 11. Je-li roven poslední číslici (pro 10 je to 0), rodné číslo je validní (tedy je to možné rodné číslo). bool OverRodneCislo(string rodnecislo) rodnecislo = rodnecislo.replace( /, ); int n = int.parse(rodnecislo.substring(0, 9)); int poslednicifra = int.parse(rodnecislo.substring(9, 1)); int zbytekpodeleni = n % 11; if ((zbytekpodeleni == 10 && zbytekpodeleni == poslednicifra) zbytekpodeleni == poslednicifra) return true; return false; 112 Ověření validity IČO Jestliže chceme ověřit správnost IČO (identifikační číslo organizace), vynásobíme jeho prvních sedm cifer čísly od 8 do 2 a jednotlivé výsledky postupně sečteme. Poté z výsledného součtu vypočítáme zbytek po dělení číslem 11, a pokud je zbytek po dělení: roven 1, poslední, tedy osmá cifra IČO, by se měla rovnat 0. roven 0, poslední cifra IČO by se měla rovnat 1. roven 10, poslední cifra IČO by se měla rovnat také 1. ve zbylých případech platí: poslední cifra = 11 zbytek po dělení.
14 72 Algoritmy Následující metoda vrací hodnotu typu bool v závislosti na tom, zda je IČO validní. Pokud ano, metoda vrací true, v opačném případě však false. bool OverICO(string cislo) int m = 0; if (cislo.length!= 8) Console.WriteLine( Číslo musí mít osm cifer ); return false; for (int x = 0; x < cislo.length - 1; x++) int c = Convert.ToInt32(cislo[x].ToString()); m += c * (8 - x); int zbytek = m % 11; int poslcislo = Convert.ToInt32(cislo[7].ToString()); if ((zbytek == 0 zbytek == 10) && poslcislo == 1) return true; if (zbytek == 1 && poslcislo == 0) return true; if (poslcislo == 11 - zbytek) return true; return false; 113 Vypočet poslední (kontrolní) číslice IČO Následující metoda očekává jako argument číslo představující prvních sedm číslic IČO. Metoda spočítá osmou (kontrolní) číslici a vrátí celé IČO. int VygenerujICO(int cis) string cislo = cis.tostring(); int m = 0; for (int x = 7; x > 0; x--) int c = int.parse(cislo[7-x].tostring()); m += c * (x + 1); int zbytek = int.parse(cislo) % 11; if (zbytek == 0 zbytek == 10) return int.parse(cislo.tostring() + 1 ); else if (zbytek == 1) return int.parse(cislo.tostring() + 0 ); else return int.parse(cislo + (11 zbytek).tostring()); 114 Převod čísla z decimální soustavy do binární Následující metoda převede číslo zapsané v desítkové soustavě do soustavy binární. string PrevedDoBinarni(int cislo) string bin = ;
15 Algoritmy 73 while (cislo!= 0) bin += (cislo % 2).ToString(); cislo /= 2; string s = ; for (int x = bin.length - 1; x >= 0; x--) s += bin[x].tostring(); return s; 115 Převod čísla ze šestnáctkové soustavy Následující metoda převede číslo v hexadecimální soustavy do soustavy desítkové. int HexToDec(string hexcislo) int vysledek = 0; int exp = 0; foreach(char c in hexcislo.tochararray()) int n; if (char.isdigit(c)) n = Convert.ToInt32(c.ToString()); else n = (int)c-55; vysledek += n * (int)math.pow(16, hexcislo.length - exp-1); exp++; return vysledek; 116 Převod čísla o základu menším než 10 na číslo typu int Následující metoda převede řetězec představující zápis čísla o základu menším než 10 na číslo typu int. static int Převe (string číslo, int základ) int výsledek = 0; int pom = 1; for (int x = číslo.length - 1; x >= 0; x--) výsledek += pom*int32.parse(číslo[x].tostring()); pom *= základ; return výsledek; 117 Převod čísla typu int na číslo v rozmezí 2 16 Následující metoda převede všechny hodnoty typu int (kromě int.minvalue) na číslo o základu v rozmezí 2 16.
16 74 Algoritmy static string DoSoustavy(int číslo, int základ) if (číslo == 0) return 0 ; // Je-li to nula, není co řešit. string číslice = ABCDEF ; Stack<char> obráceně = new Stack<char>(); bool záporné = číslo < 0; if (záporné) číslo = -číslo; while (číslo!= 0) obráceně.push(číslice[číslo % základ]); číslo /= základ; if (záporné) obráceně.push( - ); // Získal jsem číslice v obráceném pořadí. // Otočím je pomocí zásobníku. Je to rychlejší než // vkládat na počátek pomocí metody Insert. StringBuilder hex = new StringBuilder(); foreach (char c in obráceně) hex.append(c); return hex.tostring(); 118 Jak rozložit číslo na součin prvočísel Následující metoda rozloží číslo na součin prvočísel, která následně vypíše na konzolu. Pokud dané číslo rozložit nelze, metoda vypíše příslušné hlášení. void RozlozCislo(int cislo) bool jeprvocislo = true; StringBuilder vysledek = new StringBuilder(cislo.ToString() + = ); for (int x = 2; x <= cislo; x++) while (cislo % x == 0) jeprvocislo = false; vysledek.append( x.tostring() + * ); cislo = cislo / x; if (jeprvocislo) Console.WriteLine( Zadané číslo nelze rozložit na součin prvočísel ); else Console.WriteLine(vysledek.ToString().TrimEnd( * )); Zadáme-li jako vstup například číslo 224, dostaneme následující výstup: 224 = 2*2*2*2*2*7 119 Seřazení řetězců od nejkratšího po nejdelší znalec Chceme-li setřídit pole řetězců dle jejich délky, použijeme metodu Sort třídy System.Array a jako její první argument dosadíme pole řetězců, jež chceme setřídit. Druhý argument bude představován instancí třídy implementující rozhraní System.Collections.IComparer.
17 Algoritmy 75 Tato třída musí obsahovat veřejnou metodu Compare očekávající dva argumenty typu object představující porovnávané objekty. V našem případě chceme porovnávat délku řetězců, a proto objekty, jež představují argument této metody, přetypujeme na typ string a následně pomocí vlastnosti Length získáme jejich délku. Pokud je první z nich delší, vrátíme 1. Je-li tomu naopak, tak -1. Jsou-li oba stejné, vrátíme 0. Takto by mohla vypadat deklarace komparátoru: class Komparator : IComparer public int Compare(object x, object y) string a = (string)x; string b = (string)y; if (a.length > b.length) return 1; if (b.length > a.length) return -1; return 0; Pokud zavoláme tuto funkci následujícím kódem, public static void Main() string[] retezce = myš, dlouhý řetězec, trouba, práce ; Array.Sort(retezce, new Komparator()); foreach (string retezec in retezce) Console.WriteLine(retezec); dostaneme následující výstup: myš práce trouba dlouhý řetězec 120 Součet prvních n členů aritmetické posloupnosti Následující kód vypočítá součet všech členů, které leží v intervalu od prvního po n-tý člen aritmeticky uspořádané posloupnosti dle vzorce hodnota n-tého členu = první hodnota + diference * n // Proměnná min představuje hodnotu prvního prvku posloupnosti. int min = 0; // Proměnná d představuje rozdíl mezi jednotlivými prvky posloupnosti. int d = 2; // Proměnná n představuje pozici n-tého prvku v posloupnosti, jehož // hodnotu chceme vypočítat. int n = 20; int soucet = min + d * n;
18 76 Algoritmy 121 Součet prvních n členů geometrické posloupnosti Následující kód vypočítá součet všech členů, které leží v intervalu od prvního po n-tý člen geometrické posloupnosti. int SpoctiSoucinClenu(int prvniclen, double q,int n) if (q!= 1) return prvniclen * (Math.Pow(q,n)-1) / (q-1)); return prvniclen * n; 122 Zjištění, zda je posloupnost klesající, konstantní či rostoucí Následující metoda zjistí, zda čísla uložená v poli tvoří rostoucí, klesající nebo konstantní posloupnost či žádnou z nich. void ZjistiRustPosloupnosti(double[] hodnoty) if (hodnoty.length < 2) Console.WriteLine( Posloupnost musí obsahovat alespoň dva prvky ); return; double rozdil = hodnoty[0] - hodnoty[1]; for (int x = 1; x < hodnoty.length; x++) double h = hodnoty[x - 1] - hodnoty[x]; if (Math.Sign(rozdil)!= Math.Sign(h)) Console.WriteLine( Nelze určit typ růstu posloupnosti. ); break; if (rozdil < 0) Console.WriteLine( Posloupnost je rostoucí ); else if (rozdil > 0) Console.WriteLine( Posloupnost je klesající ); else Console.WriteLine( Posloupnost je konsntantní ); 123 Tvoří čísla uložená v poli aritmetickou posloupnost? Následující metoda vrací hodnotu typu bool v závislosti na tom, zda čísla poli, jež je argumentem této metody, tvoří aritmetickou posloupnost. Pokud ano, metoda vrací true, jinak vrací false. bool JeLinearni(double[] cisla) if (cisla.length < 3) throw new Exception( Pole musí obsahovat nejméně tři prvky );
19 Algoritmy 77 double rozdil = cisla[0] - cisla[1]; for (int x = 2; x < cisla.length; x++) if (!(cisla[x - 1] - cisla[x] == rozdil)) return false; return true; 124 Tvoří čísla uložená v poli geometrickou posloupnost? Následující metoda vrací hodnotu typu bool v závislosti na tom, zda čísla v poli, jež je argumentem této metody, tvoří geometrickou posloupnost. Pokud ano, metoda vrací true, jinak vrací false. bool JeGeometricka(double[] pole) // Pokud pole obsahuje méně než tři prvky, vyvoláme výjimku. if (pole.length < 3) throw new Exception( Pole musí obsahovat minimálně tři prvky ); // Spočítáme podíl, který by měl být stejný pro všechny prvky, které // leží v poli vedle sebe tak, aby jednotlivá čísla pole tvořila // geometrickou posloupnost. double podil = pole[1] / pole[0]; // Postupně projdeme jednotlivé prvky čísla v poli. // Pokud není podíl dvou vedle sebe ležících čísel roven proměnné // podíl, tato posloupnost není geometrická, čili // vrátíme false. for (int x = 2; x < pole.length; x++) if (!(pole[x] / pole[x - 1] == podil)) return false; return true; 125 Vypsání všech čísel dělitelných daným číslem v určitém intervalu Následující metoda vypíše všechna čísla, jež leží v určitém intervalu a jsou dělitelná daným číslem. void VypisDelence(int min, int max, int delitel) int m = 0; for (int x = min; x < min + delitel; x++) if (x % delitel == 0) m = x; break;
20 78 Algoritmy for (int x = m; x <= max; x = x+ delitel) Console.WriteLine(x); 126 Výpočet n-té číslice Fibonacciho posloupnosti Následující metoda vypočte n-tý prvek Fibonacciho posloupnosti. public static int Fibonacci(int index) if(index == 0) return 0; if(index == 1) return 1; int prepre = 0; int pre = 1; int vysledek = 0; for(int i = 1; i < index; i++) vysledek = prepre + pre; prepre = pre; pre = vysledek; return vysledek; 127 Výpis písmen anglické abecedy Následující algoritmus vypíše všechna velká písmena anglické abecedy. for (int i = 65; i <= 90; i++) Console.WriteLine((char)i); 128 Jsou čísla v poli setříděna od největšího po nejmenší? Pokud chceme zjistit, zda je číselné pole setříděné, projdeme jeho jednotlivé prvky, a pokud je každé číslo ix > ix+1, je pole setříděno od největšího po nejmenší. bool JeSetridene(int[] pole) for (int x = 1; x < pole.length; x++) if (pole[x - 1] < pole[x]) return false; return true; 129 Jsou čísla v poli setříděna od nejmenšího po největší? Pokud chceme zjistit, zda je číselné pole setříděné, projdeme jeho jednotlivé prvky, a pokud je každé číslo ix < ix+1, tak je pole setříděno od nejmenšího čísla po největší.
21 Algoritmy 79 bool JeSetridene(int[] pole) for (int x = 1; x < pole.length; x++) if (pole[x - 1] > pole[x]) return false; return true; 130 Jak setřídit čísla uložená v poli Chceme-li setřídit pole čísel, použijeme metodu Sort třídy System.Array, která toto pole očekává jako svůj argument. int[] cisla = 5, 1, 55, -3, 6 ; Array.Sort(cisla); Ještě bych rád dodal, že metoda Sort umožňuje třídění prvků jakéhokoli typu. Jejich typ však musí implementovat rozhraní System.Collections.IComparer. 131 Jak v setříděném poli vyhledat prvek Jestliže chceme zjistit index určitého prvku v setříděném poli, použijeme metodu BinarySearch třídy System.Array, která jako svůj argument očekává pole, ve kterém chceme daný prvek vyhledat. Ten je představován druhým argumentem. Pokud hledaný prvek v poli obsažen není, metoda vrací -1. string[] setridenepole = hledaný prvek, něco, něco jiného ; string hledanyprvek = hledaný prvek ; int index = Array.BinarySearch(setridenePole, hledanyprvek); // Vrátí Převrácení pořadí znaků v řetězci Chceme-li získat řetězec obsahující znaky jiného řetězce, ale seřazené pozpátku, nejprve tento řetězec převedeme metodou ToCharArray na pole znaků, jejichž pořadí v poli převrátíme statickou metodou Reverse třídy Array. Nakonec toto pole použijeme jako argument konstruktoru třídy String, čímž získáme výsledný řetězec. static string Převra Řetězec(string řetězec) char[] znaky = řetězec.tochararray(); Array.Reverse(znaky); return new String(znaky); Pro vstup: string retezec = Žlu oučký kůň příšerně úpěl ábelské ódy ; Console.WriteLine(Prevra Řetězec(retezec)); Dostaneme následující text ydó ékslebá lěpú ěnrešířp ňůk ýkčuo ulž
Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double
Čísla Desetinná čísla pro celá čísla jsme používali typ int pro desetinná čísla používáme typ double analogicky pro konverzi ze stringu na double se místo Convert.ToInt32 používá Convert.ToDouble Př. program,
Pole a kolekce. v C#, Javě a C++
Pole a kolekce v C#, Javě a C++ C# Deklarace pole typ_prvku_pole[] jmeno_pole; Vytvoření pole jmeno_pole = new typ_prvku_pole[pocet_prvku_pole]; Inicializace pole double[] poled = 4.8, 8.2, 7.3, 8.0; Java
Programy na PODMÍNĚNÝ příkaz IF a CASE
Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak
Algoritmizace a programování
Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech
IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {
Vyhledání extrému v poli použito v algoritmech řazení hledání maxima int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) // nikoli 0 if (Pole[i] > max) max = pole[i];
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury, standardní metody Problematika načítání pomocí Scanner Některé poznámky k příkazům Psaní kódu programu Metody třídy Math Obalové třídy primitivních datových
IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená
Výčtový typ Motivační příklad řízení semaforu na křižovatce = přepínání červená/oranžová/zelená const int CERVENA = 0; const int ORANZOVA = 1; const int ZELENA = 2; int prististav = CERVENA; while (true)
Paměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
MS EXCEL_vybrané matematické funkce
MS EXCEL_vybrané matematické funkce Vybrané základní matematické funkce ABS absolutní hodnota čísla CELÁ.ČÁST - zaokrouhlení čísla na nejbližší menší celé číslo EXP - vrátí e umocněné na hodnotu argumentu
int t1, t2, t3, t4, t5, t6, t7, prumer; t1=sys.readint();... t7=sys.readint(); prume pru r = r = ( 1+t 1+t t3+ t3+ t4 t5+ t5+ +t7 +t7 )/ ;
Pole Příklad: přečíst teploty naměřené v jednotlivých dnech týdnu, vypočítat průměrnou teplotu a pro každý den vypsat odchylku od průměrné teploty Řešení s proměnnými typu int: int t1, t2, t3, t4, t5,
Jednoduché cykly 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Jednoduché cykly Tento oddíl obsahuje úlohy na první procvičení práce s cykly. Při řešení každé ze zde uvedených úloh stačí použít vedle podmíněných příkazů jen jediný cyklus. Nepotřebujeme používat ani
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL
Středoškolská technika 2017 Setkání a prezentace prací středoškolských studentů na ČVUT PROGRAM NA GENEROVÁNÍ PRVOČÍSEL Vojtěch Pchálek Střední škola technická Kouřílkova 8, Přerov ANOTACE Bratr, který
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
Úvod do programování 7. hodina
Úvod do programování 7. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Syntax Znaky Vlastní implementace
1. Téma 03 - Rozhodování
1. Téma 03 - Rozhodování Cíl látky Seznámit se a prakticky si vyzkoušet zápis rozhodování v jazyce Java 1.1. Úvod Jednou z nejčastěji používanou konstrukcí při programování je rozhodování. Právě této problematice
Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady
Předmět: Náplň: Třída: Počet hodin: Pomůcky: Matematika Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady 4. ročník a oktáva 3 hodiny týdně PC a dataprojektor, učebnice
Zápis programu v jazyce C#
Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!
Java práce s řetězci Trochu povídání.. Řetězce jsou v Javě reprezentovány instancemi tříd StringBuffer a String. Tyto třídy jsou součástí balíčku java.lang, tudíž je možno s nimi pracovat ihned bez nutného
Kód trezoru 1 je liché číslo.
1 Kód trezoru 1 je liché číslo. Kód trezoru 1 není prvočíslo. Každá číslice kódu trezoru 1 je prvočíslo. Ciferný součet kódu trezoru 1 je 12. Druhá cifra kódu trezoru 1 je sudá, ostatní jsou liché. Jeden
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Funkce jedné reálné proměnné. lineární kvadratická racionální exponenciální logaritmická s absolutní hodnotou
Funkce jedné reálné proměnné lineární kvadratická racionální exponenciální logaritmická s absolutní hodnotou lineární y = ax + b Průsečíky s osami: Px [-b/a; 0] Py [0; b] grafem je přímka (získá se pomocí
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek
8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy
Cykly a pole 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116.
Cykly a pole Tato část sbírky je tvořena dalšími úlohami na práci s cykly. Na rozdíl od předchozího oddílu se zde již v řešeních úloh objevuje více cyklů, ať už prováděných po sobě nebo vnořených do sebe.
Matematické a statistické funkce
Matematické a statistické funkce EU peníze středním školám Didaktický učební materiál Anotace Označení DUMU: VY_32_INOVACE_IT4.14 Předmět: IVT Tematická oblast: Microsoft Office 2007 Autor: Ing. Vladimír
MATURITNÍ TÉMATA Z MATEMATIKY
MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické
Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.
Příkazy cyklu v C# Kapitola vysvětluje použití tří typů cyklů for, while a -while a plňuje jejich použití řau příkladů programů v jazyku C#. V jazyku C by šlo pouze k záměně funkcí pro vstup a výstup.
MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)
MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT) 1. Číselné obory 1.1 Přirozená čísla provádět aritmetické operace s přirozenými čísly rozlišit prvočíslo
FUNKCE 2. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika
FUNKCE 2 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
Dynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
Algoritmizace a programování
Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,
Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
II. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
KTE / ZPE Informační technologie
7 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň - ternární
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM
KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat
Kolekce, cyklus foreach
Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Cvičné texty ke státní maturitě z matematiky
Cvičné texty ke státní maturitě z matematiky Pracovní listy s postupy řešení Brno 2010 RNDr. Rudolf Schwarz, CSc. Státní maturita z matematiky Obsah Obsah NIŽŠÍ úroveň obtížnosti 4 MAGZD10C0K01 říjen 2010..........................
Poslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
Algoritmy I, složitost
A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??
CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 15 Mgr. Tomáš Kotler OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST VÝCHOZÍ TEXT K ÚLOZE 1 Je dána čtvercová mřížka, v níž každý čtverec má délku
Funkce a lineární funkce pro studijní obory
Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce
Gymnázium Jiřího Ortena, Kutná Hora
Předmět: Náplň: Třída: Počet hodin: Pomůcky: Cvičení z matematiky algebra (CZMa) Systematizace a prohloubení učiva matematiky: Číselné obory, Algebraické výrazy, Rovnice, Funkce, Posloupnosti, Diferenciální
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
MATEMATIKA Tematické okruhy ke státní maturitní zkoušce Obor: mechanik elektronik
MATEMATIKA Tematické okruhy ke státní maturitní zkoušce Obor: mechanik elektronik R4 1. ČÍSELNÉ VÝRAZY 1.1. Přirozená čísla počítání s přirozenými čísly, rozlišit prvočíslo a číslo složené, rozložit složené
VZOROVÝ TEST PRO 1. ROČNÍK (1. A, 3. C)
VZOROVÝ TEST PRO. ROČNÍK (. A, 3. C) Zjednodušte daný příklad. (a 2 3 b 3 4) 2 (a 2 b 3 8) 3 max. 3 body 2 Ve které z následujících možností je uveden správný postup usměrnění daného zlomku a správný výsledek?
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Fz =a z + a z +...+a z +a z =
Polyadické číselné soustavy - převody M-místná skupina prvků se z-stavovou abecedou umožňuje zobrazit z m čísel. Zjistíme, že stačí vhodně zvolit číslo m, abychom mohli zobrazit libovolné číslo menší než
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
Excel Matematické operátory. Excel předdefinované funkce
Excel Matematické operátory a) Sčítání + příklad =A1+A2 sečte obsah buněk A1 a A2 b) Odčítání - příklad =A1-A2 odečte hodnotu buňky A2 od hodnoty buňky A1 c) Násobení * příklad =A1*A2 vynásobí obsah buněk
Výčtový typ strana 67
Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce
CVIČNÝ TEST 10. OBSAH I. Cvičný test 2. Mgr. Renáta Koubková. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19
CVIČNÝ TEST 10 Mgr. Renáta Koubková OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST 1 Pro x R řešte rovnici: 5 x 1 + 5 x + 5 x + 3 = 3 155. 2 Za předpokladu
PŘETĚŽOVÁNÍ OPERÁTORŮ
PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako
M - Příprava na pololetní písemku č. 1
M - Příprava na pololetní písemku č. 1 Určeno jako studijní materiál pro třídu 2K. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase. Více informací o programu
Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu
1 Podklady předmětu pro akademický rok 2006/2007 Radim Farana Obsah 2 Obsah předmětu, Požadavky kreditového systému, Datové typy jednoduché, složené, Programové struktury, Předávání dat. Obsah předmětu
Úvod do programování 6. hodina
Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection
5 Rekurze a zásobník. Rekurzivní volání metody
5 Rekurze a zásobník Při volání metody z metody main() se do zásobníku uloží aktivační záznam obsahující - parametry - návratovou adresu, tedy adresu, kde bude program pokračovat v metodě main () po skončení
Popisná statistika kvantitativní veličiny
StatSoft Popisná statistika kvantitativní veličiny Protože nám surová data obvykle žádnou smysluplnou informaci neposkytnou, je žádoucí vyjádřit tyto ve zhuštěnější formě. V předchozím dílu jsme začali
Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
Požadavky na konkrétní dovednosti a znalosti z jednotlivých tematických celků
Maturitní zkouška z matematiky 2012 požadované znalosti Zkouška z matematiky ověřuje matematické základy formou didaktického testu. Test obsahuje uzavřené i otevřené úlohy. V uzavřených úlohách je vždy
Variace. Číselné výrazy
Variace 1 Číselné výrazy Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Číselné výrazy Číselné výrazy, výpočty
for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }
Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný
Více o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku
Podprogramy zásady: jednu věc programovat pouze jednou podprogram logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku // nacteni strany 1 double
Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
Mnohotvarost (polymorfizmus)
Mnohotvarost (polymorfizmus) TYPY MNOHOTVAROSTI... 2 PŘETĚŽOVÁNÍ METOD, PŘETĚŽOVÁNÍ OPERACÍ... 3 PŘETÍŽENÍ OPERÁTORŮ... 4 ČASTO PŘETĚŽOVANÉ OPERÁTORY... 4 PŘEPISOVÁNÍ... 7 VIRTUÁLNÍ METODY... 10 SEZNAM
FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika
FUNKCE 3 Autor: Mgr. Dana Kaprálová Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
INTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE
INTERNETOVÉ ZKOUŠKY NANEČISTO - VŠE: UKÁZKOVÁ PRÁCE. Součin 5 4 je roven číslu: a) 4, b), c), d), e) žádná z předchozích odpovědí není správná. 5 5 5 5 + + 5 5 5 5 + + 4 9 9 4 Správná odpověď je a) Počítání
Základy programování (IZP)
Základy programování (IZP) Sedmé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz 2018/2019,
Cvičné texty ke státní maturitě z matematiky
Cvičné texty ke státní maturitě z matematiky Pracovní listy s postupy řešení Brno 2010 RNDr. Rudolf Schwarz, CSc. Státní maturita z matematiky Úloha 1 1. a = s : 45 = 9.10180 45 = 9.101+179 45 = 9.10.10179
Sada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
Číselné soustavy. Binární číselná soustava
12. Číselné soustavy, binární číselná soustava. Kódování informací, binární váhový kód, kódování záporných čísel. Standardní jednoduché datové typy s pevnou a s pohyblivou řádovou tečkou. Základní strukturované
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Kód uchazeče ID:... Varianta:
Fakulta informačních technologií ČVUT v Praze Přijímací zkouška z matematiky 01 Kód uchazeče ID:.................. Varianta: 1. Mějme dvě čísla zapsaná v sedmičkové soustavě 3456 7 a 3310 7. Vyjádřete
CVIČNÝ TEST 7. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19
CVIČNÝ TEST 7 Mgr. Václav Zemek OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 17 IV. Záznamový list 19 I. CVIČNÝ TEST 1 Určete přirozené číslo n tak, aby platilo: 3 + 12 + 27 = n. 1 bod 2 Doplňte
Iterační výpočty Projekt č. 2
Dokumentace k projektu pro předměty IUS & IZP Iterační výpočty Projekt č. 2 Autor: Jan Kaláb (xkalab00@stud.fit.vutbr.cz) Úvod Úkolem bylo napsat v jazyce C program sloužící k výpočtům matematických funkcí
Výrobní produkce divizí Ice Cream Po lo ha plane t Rozložený výse ový 3D graf Bublinový graf Histogram t s tn e ídy
Výrobní produkce divizí Ice Cream Polo ha planet Rozložený výsečový 3D graf Bublinový graf Ice Cream 1 15% Ice Cream 2 12% Ice Cream 3 18% Ice Cream 4 20% Statistika 40 30 20 Ice Cream 6 19% Ice Cream
. je zlomkem. Ten je smysluplný pro jakýkoli jmenovatel různý od nuly. Musí tedy platit = 0
Příklad 1 Určete definiční obor funkce: a) = b) = c) = d) = e) = 9 f) = Řešení 1a Máme určit definiční obor funkce =. Výraz je zlomkem. Ten je smysluplný pro jakýkoli jmenovatel různý od nuly. Musí tedy
DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)
Indukcí dokažte následující výrok: pokud lef t a right jsou parametry funkce f a platí left right, pak volání f(array, left, right) vrátí minimální hodnotu z hodnot všech prvků v poli array na indexech
3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti
Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti 3. přednáška nalezení největšího prvku, druhého nejvyššího prvku, algoritmus shozeného praporku. Algoritmizace
9. přednáška - třídy, objekty
třída String a její použití kolekce, typované kolekce 9. přednáška - třídy, objekty Algoritmizace (Y36ALG), Šumperk - 9. přednáška 1 Třída String Objekty knihovní třídy String jsou řetězy znaků Od ostatních
Učební plán 4. letého studia předmětu matematiky. Učební plán 6. letého studia předmětu matematiky
Učební plán 4. letého studia předmětu matematiky Ročník I II III IV Dotace 3 3+1 2+1 2+2 Povinnost povinný povinný povinný povinný Učební plán 6. letého studia předmětu matematiky Ročník 1 2 3 4 5 6 Dotace
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
CVIČNÝ TEST 2. OBSAH I. Cvičný test 2. Mgr. Václav Zemek. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17
CVIČNÝ TEST 2 Mgr. Václav Zemek OBSAH I. Cvičný test 2 II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17 I. CVIČNÝ TEST 1 Od součtu libovolného čísla x a čísla 256 odečtěte číslo x zmenšené o 256.
Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.
Proměnná Pojmenované místo v paměti sloužící pro uložení hodnoty. K pojmenování můžeme použít kombinace alfanumerických znaků, včetně diakritiky a podtržítka Rozlišují se velká malá písmena Název proměnné
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
M - Kvadratické rovnice a kvadratické nerovnice
M - Kvadratické rovnice a kvadratické nerovnice Určeno jako učební tet pro studenty dálkového studia. VARIACE 1 Tento dokument byl kompletně vytvořen, sestaven a vytištěn v programu dosystem - EduBase.
URČITÝM ZPŮSOBEM PODOBNÉ
Objekty Svět se skládá z objektů! konkrétní x abstraktní hmatatelné x nehmatatelné (letadlo) x (chyba v programu) Objekty mohou obsahovat jiné objekty (tělo obsahuje buňky, letadlo součásti). Objekty URČITÝM
Programy a algoritmy pracující s čísly. IB111 Úvod do programování skrze Python
Programy a algoritmy pracující s čísly IB111 Úvod do programování skrze Python 2013 1 / 60 Připomenutí z minule proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady: faktoriál, binární
I. Kalkulátor Rebell SC2040 manuál s příklady Tlačítko: MODE CLR
I. Kalkulátor Rebell SC2040 manuál s příklady Tlačítko: MODE CLR Toto tlačítko je velmi důležité pro volbu pracovního režimu. 1 stisknutí: 1 (COMP) - běžné výpočty SD, REG statistické výpočty 2 stisknutí
Jazyk C# a platforma.net
Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond
4.4.2012. Obsah přednášky. Příkaz for neúplný. Příkaz for příklady. Cyklus for each (enhanced for loop) Příkaz for příklady
Základy programování (IZAPR, IZKPR) Přednáška 5 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky Příkazy cyklu -
Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
MATA Př 3 Číselné soustavy Poziční číselná soustava je dnes převládající způsob písemné reprezentace čísel dokonce pokud se dnes mluví o číselných soustavách, jsou tím obvykle myšleny soustavy poziční.
- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
MATEMATIKA STUDIJNÍ POŽADAVKY PRO JEDNOTLIVÉ ROČNÍKY STUDIA
MATEMATIKA STUDIJNÍ POŽADAVKY PRO JEDNOTLIVÉ ROČNÍKY STUDIA Osmileté studium 1. ročník 1. Opakování a prohloubení učiva 1. 5. ročníku Číslo, číslice, množiny, přirozená čísla, desetinná čísla, číselné