B4B33RPH: Řešení problémů a hry PEP 8. Čistý kód.
|
|
- Vlasta Novotná
- před 6 lety
- Počet zobrazení:
Transkript
1 B4BRPH: Řešení problémů a hry PEP 8. Čistý kód. Petr Pošík Katedra kybernetiky ČVUT FEL Formátování kódu 2 Proč? PEP Doporučení Clean Code 6 Který kód je čistší? A proč? Co je clean code? Čistý kód v praxi Smysluplná jména Eratostenovo síto: smysluplná jména Komentáře Eratostenovo síto: komentáře Funkce a metody Eratostenovo síto: funkce Eratostenovo síto: pomocná třída? Příklad Podle přednáškyraymond Hettinger: Beyond PEP 8 Best Practices for Beautiful Intelligible Code. PyCon Původní kód Podle PEP Lepší kód Modulnettools Závěr
2 Formátování kódu 2 / 22 Proč je důležité formátování? Kód je čten mnohem častěji než psán. Na čitelnosti záleží. Použitý formát/styl by měl čtenáři pomáhat vizuálně sdružovat věci, které spolu souvisí, vizuálně oddělovat věci, které nejsou těsně svázané; vizuálně evokovat začátek a konec výrazu, bloku kódu, funkce, metody, třídy, atd.; a neměl by čtenáře mást. P. Pošík c 2016 B4BRPH: Řešení problémů a hry / 22 PEP 8 Python Enhancement Proposal 8: Style guide for Python code Doporučení, jak formátovat kód tak, aby formát nebránil v jeho snadném pochopení. Konzistence s PEP 8 je důležitá, ale konzistence v rámci projektu je důležitější, konzistence v rámci jednoho modulu je nejdůležitější. Dobré důvody ignorovat určité doporučení z PEP 8: když doporučení dělá kód méně čitelným; když je třeba zachovat konzistenci v rámci modulu, či projektu (např. z historických důvodů (ale možná je to příležitost jak vyčistit nečitelný kód?); když je kód starší než doporučení a není žádný jiný důvod daný kód modifikovat; když kód musí zůstat kompatibilní se starší verzí Pythonu, která ještě nepodporuje doporučovaný způsob. Modulpep8: Automatická kontrola formátování kódu podle doporučení PEP 8. P. Pošík c 2016 B4BRPH: Řešení problémů a hry 4 / 22 2
3 Některá doporučení PEP 8 Rozložení a organizace kódu: Pro odsazení používejte 4 mezery (nikoli tabulátory). Omezte délku řádků na 79 znaků, 72 pro docstringy a komentáře. Používejte výchozí kódování UTF-8; jinak jej specifikujte v úvodu modulu např. takto: # -*- encoding: latin_1 -*- importy umístěte na začátek souboru, každý modul na zvláštní řádek Definice funkcí udržujte pohromadě. Definice tříd a funkcí nejvyšší úrovně oddělujte 2 prázdnými řádky. Definice vnořených funkcí a metod oddělujte 1 prázdným řádkem. Příkazy a volání funkcí na nejvyšší úrovni udržujte pohromadě na konci programu. Komentáře a docstringy: Komentáře pište v angličtině. (Výjimkou jsou případy, kdy jste si na 120 % jistí, že váš kód nebude číst nikdo, kdo by nerozuměl vašemu jazyku.) Konvence pro pojmenování: lowercase_with_underscores pro proměnné, funkce, moduly a balíky; CamelCase pro názvy tříd a výjimek; CAPITAL_LETTERS_WITH_UNDERSCORES pro konstanty. A to stačí, aby byl můj kód čistý??? P. Pošík c 2016 B4BRPH: Řešení problémů a hry 5 / 22 Clean Code Zpracováno podle Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, / 22 Který kód je čistší? A proč? Eratostenovo síto Dvě implementace téhož algoritmu: 1 def generate_primes_up_to(max_value): 2 """Find primes up to the max_value using the Sieve of Eratosthenes. 4 """ 5 if max_value >= 2: # There are some primes 6 # Initialize the list (incl. 0) 7 f = [True for i in range(max_value+1)] 8 # Get rid of the known non-primes 9 f[0] = f[1] = False 10 # Run the sieve 11 for i in range(2, len(f)): 12 if f[i]: # i is still a candidate 1 # mark its multiples as not prime 14 for j in range(2*i, len(f), i): 15 f[j] = False 16 # Find the primes and put them in a list 17 primes = [i for i in range(len(f)) if f[i]] 18 return primes 19 else: # max_value < 2 20 # no primes, return empty list 21 return list() 5 """Find primes up to the max_value 6 using the Sieve of Eratosthenes. 7 """ 8 if max_value < 2: 9 return [] 10 else: 11 candidates = init_integers_up_to(max_value) 12 mark_non_primes(candidates) 1 return collect_remaining(candidates) def init_integers_up_to(max_value): 16 return [PRIME for i in range(max_value+1)] def mark_non_primes(candidates): 19 # Mark 0 and 1, they are not primes. 20 candidates[0] = candidates[1] = NONPRIME 21 for number in range(2, len(candidates)): 22 if candidates[number] == PRIME: 2 mark_multiples_of(number, candidates) def mark_multiples_of(number, candidates): 26 for multiple in range( 27 2*number, len(candidates), number): 28 candidates[multiple] = NONPRIME 29 0 def collect_remaining(candidates): 1 primes = [i for i in range(len(candidates)) 2 if candidates[i] == PRIME] return primes P. Pošík c 2016 B4BRPH: Řešení problémů a hry 7 / 22
4 Co je clean code? Bjarne Stroustrup, autor jazyka C++ a knihy The C++ Programming Language : I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well. Grady Booch, autor knihy Object Oriented Analysis and Design with Applications : Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer s intent but rather is full of crisp abstractions and straightforward lines of control. Dave Thomas, zakladatel firmy OTI (převzata firmou IBM v roce 1996), kmotr Eclipse: Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. P. Pošík c 2016 B4BRPH: Řešení problémů a hry 8 / 22 Čistý kód v praxi Code review: Jediné správné měřítko kvality kódu: Co-to-k-čerty za minutu P. Pošík c 2016 B4BRPH: Řešení problémů a hry 9 / 22 4
5 Smysluplná jména Vymyslet dobrá jména je velmi těžké! Nebojte se jméno změnit, přijdete-li na lepší! Dobré jméno odhaluje autorův záměr (intention-revealing). Pokud jméno vyžaduje komentář, neodhaluje záměr. Porovnejte: self.d = 0 # Elapsed time in days self.elapsed_days = 0 Porovnejte (co když i ten komentář chybí?): st("obama", 20, False, True) search_twitter("obama", 20, False, True) Názvy tříd: podstatná jména (s přívlastky): Customer, WikiPage, AddressParser, Filter, StupidFilter, Corpus, TrainingCorpus Názvy funkcí/metod: slovesa (s předmětem): post_payment, delete_page, save, train, test, get_ Jeden termín pro jeden koncept! Nepoužívejte stejné slovo k více účelům! Nebojte se dlouhých jmen! Dlouhé popisné jméno je lepší než dlouhý popisný komentář. Čím delší oblast platnosti proměnné, tím popisnější jméno by měla mít. Používejte pojmenované konstanty místo magických čísel v kódu! Porovnejte: if opponents_move == True: if opponents_move == DEFECT: P. Pošík c 2016 B4BRPH: Řešení problémů a hry 10 / 22 Eratostenovo síto: smysluplná jména 1 def generate_primes_up_to(max_value): 2 """Find primes up to the max_value using the Sieve of Eratosthenes. 4 """ 5 if max_value >= 2: # There are some primes 6 # Initialize the list (incl. 0) 7 f = [True for i in range(max_value+1)] 8 # Get rid of the known non-primes 9 f[0] = f[1] = False 10 # Run the sieve 11 for i in range(2, len(f)): 12 if f[i]: # i is still a candidate 1 # mark its multiples as not prime 14 for j in range(2*i, len(f), i): 15 f[j] = False 16 # Find the primes and put them in a list 17 primes = [i for i in range(len(f)) if f[i]] 18 return primes 19 else: # max_value < 2 20 # no primes, return empty list 21 return list() 5 """Find primes up to the max_value 6 using the Sieve of Eratosthenes. 7 """ 8 if max_value >= 2: # There are some primes 9 # Initialize the list (incl. 0) 10 candidates = [ 11 PRIME for i in range(max_value+1)] 12 # Get rid of the known non-primes 1 candidates[0] = candidates[1] = NONPRIME 14 # Run the sieve 15 for number in range(2, len(candidates)): 16 if candidates[number] == PRIME: 17 # mark its multiples as not prime 18 for multiple in range( 19 2*number, len(candidates), number): 20 candidates[multiple] = NONPRIME 21 # Find the primes and put them in a list 22 primes = [i for i in range(len(candidates)) 2 if candidates[i] == PRIME] 24 return primes 25 else: # max_value < 2 26 # no primes, return empty list 27 return list() Další smyslupná jména budou následovat!!! P. Pošík c 2016 B4BRPH: Řešení problémů a hry 11 / 22 5
6 Komentáře Čistý kód komentáře (skoro) nepotřebuje! Komentáře kompenzují naše selhání vyjádřit se v prog. jazyce. Porovnej: 1 # Check whether point lies inside the unit circle 2 if point[0]**2 + point[1]**2 <= 1: versus 1 if is_inside_unit_circle(point): Komentáře lžou! Ne vždy a ne záměrně, ale až příliš často! Nepřesné komentáře jsou horší než žádné komentáře! Komentáře nenapraví špatný kód! Dobré komentáře: (do)vysvětlení, (do)upřesnění zdůraznění, varování před následky TODOs Špatné komentáře: staré (už neplatné), bezvýznamné, nevhodné, redundantní, nebo zavádějící komentáře komentáře z povinnosti zakomentovaný kód nelokální nebo nadbytečné informace P. Pošík c 2016 B4BRPH: Řešení problémů a hry 12 / 22 Eratostenovo síto: komentáře 1 # This function generates prime numbers up to 2 # a user specified maximum. The algorithm # used is the Sieve of Eratosthenes 4 # 5 # Eratosthenes of Cyrene, b. c. 276 BC, 6 # Cyrene, Libya -- d. c. 194 BC, Alexandria. 7 # The first man to calculate the circumference 8 # of the Earth. Also known for working on 9 # calendars with leap years and ran 10 # the library at Alexandria. 11 # 12 # The algorithm is quite simple. 1 # Given an array of integers starting at 2, 14 # cross out all multiples of # Find the next uncrossed integer, 16 # and cross out all of its multiples. 17 # Repeat until you have passed 18 # the maximum value. 19 # 20 hugo # This function generates prime numbers up to 2 # a user specified maximum. The algorithm # used is the Sieve of Eratosthenes. 4 # Given an array of integers starting at 2, 5 # cross out all multiples of 2. 6 # Find the next uncrossed integer, 7 # and cross out all of its multiples. 8 # Repeat until you have passed 9 # the maximum value. 10 # 11 hugo 12 1 Za chvíli se zbavíme dalších komentářů! P. Pošík c 2016 B4BRPH: Řešení problémů a hry 1 / 22 6
7 Funkce a metody Funkce by měly být krátké! (A ještě kratší!) Funkce by měla dělat právě 1 věc a měla by ji dělat dobře. (A bez vedlejších efektů.) Funkce dlouhé méně než 5 řádků většinou dělají právě 1 věc, mohou mít přesné a výstižné jméno, nemohou obsahovat vnořené příkazy if, for,..., a bloky uvnitř příkazů if, for,... jsou pouze 1-2 řádky dlouhé. Krátké funkce umožňují testovat dílčí části algoritmu! Sekce uvnitř funkcí/metod: Jasná indikace toho, že funkce/metoda nedělá jen 1 věc a měla by být rozdělena. Parametry funkcí/metod: Udržujte jejich počet malý! 0, 1, 2, výjimečně. Vytvořte jméno tak, aby evokovalo pořadí argumentů. Boolovské argumenty funkcí často značí, že funkce nedělá 1 věc! Rozdělte ji. Při volání používejte častěji keyword arguments! Porovnejte: st("obama", 20, False, True) search_twitter("obama", 20, False, True) search_twitter("obama", numtweets=20, retweets=false, unicode=true) P. Pošík c 2016 B4BRPH: Řešení problémů a hry 14 / 22 Eratostenovo síto: funkce 5 """Find primes up to the max_value 6 using the Sieve of Eratosthenes. 7 """ 8 if max_value >= 2: # There are some primes 9 # Initialize the list (incl. 0) 10 candidates = [ 11 PRIME for i in range(max_value+1)] 12 # Get rid of the known non-primes 1 candidates[0] = candidates[1] = NONPRIME 14 # Run the sieve 15 for number in range(2, len(candidates)): 16 if candidates[number] == PRIME: 17 # mark its multiples as not prime 18 for multiple in range( 19 2*number, len(candidates), number): 20 candidates[multiple] = NONPRIME 21 # Find the primes and put them in a list 22 primes = [i for i in range(len(candidates)) 2 if candidates[i] == PRIME] 24 return primes 25 else: # max_value < 2 26 # no primes, return empty list 27 return list() 5 """Find primes up to the max_value 6 using the Sieve of Eratosthenes. 7 """ 8 if max_value < 2: 9 return [] 10 else: 11 candidates = init_integers_up_to(max_value) 12 mark_non_primes(candidates) 1 return collect_remaining(candidates) def init_integers_up_to(max_value): 16 return [PRIME for i in range(max_value+1)] def mark_non_primes(candidates): 19 # Mark 0 and 1, they are not primes. 20 candidates[0] = candidates[1] = NONPRIME 21 for number in range(2, len(candidates)): 22 if candidates[number] == PRIME: 2 mark_multiples_of(number, candidates) def mark_multiples_of(number, candidates): 26 for multiple in range( 27 2*number, len(candidates), number): 28 candidates[multiple] = NONPRIME 29 0 def collect_remaining(candidates): 1 primes = [i for i in range(len(candidates)) 2 if candidates[i] == PRIME] return primes P. Pošík c 2016 B4BRPH: Řešení problémů a hry 15 / 22 7
8 Eratostenovo síto: pomocná třída? 5 """Find primes up to the max_value 6 using the Sieve of Eratosthenes. 7 """ 8 if max_value < 2: 9 return [] 10 else: 11 candidates = init_integers_up_to(max_value) 12 mark_non_primes(candidates) 1 return collect_remaining(candidates) def init_integers_up_to(max_value): 16 return [PRIME for i in range(max_value+1)] def mark_non_primes(candidates): 19 # Mark 0 and 1, they are not primes. 20 candidates[0] = candidates[1] = NONPRIME 21 for number in range(2, len(candidates)): 22 if candidates[number] == PRIME: 2 mark_multiples_of(number, candidates) def mark_multiples_of(number, candidates): 26 for multiple in range( 27 2*number, len(candidates), number): 28 candidates[multiple] = NONPRIME 29 0 def collect_remaining(candidates): 1 primes = [i for i in range(len(candidates)) 2 if candidates[i] == PRIME] return primes 5 """Return a list of primes up to the max_value.""" 6 if max_value < 2: return [] 7 candidates = CandidateNumbers(max_value) 8 candidates.checkout_multiples() 9 return candidates.collect_remaining() class CandidateNumbers: 12 """List of boolean values for use in the Sieve of Eratosthenes. 1 Shall be used with the generate_primes_up_to function. 14 """ 15 def init (self, max_value): 16 self.max = max_value self.candidates = [PRIME for i in range(self.max)] 18 self.candidates[0] = self.candidates[1] = NONPRIME def checkout_multiples(self): 21 """Mark multiples of all prime numbers as not prime.""" 22 for number in range(2, int(self.max**0.5)+1): 2 if self.candidates[number] == PRIME: 24 self.checkout_multiples_of(number) def checkout_multiples_of(self, number): 27 """Mark multiples of number as not prime.""" 28 for multiple in range(2*number, self.max, number): 29 self.candidates[multiple] = NONPRIME 0 1 def collect_remaining(self): 2 """Return a list of remaining candidates, they are prime.""" return [i for i in range(self.max) 4 if self.candidates[i] == PRIME] P. Pošík c 2016 B4BRPH: Řešení problémů a hry 16 / 22 Příklad Podle přednášky Raymond Hettinger: Beyond PEP 8 Best Practices for Beautiful Intelligible Code. PyCon / 22 Původní kód 1 import jnettool.tools.elements.networkelement, \ 2 jnettool.tools.routing, \ jnettool.tools.routeinspector 4 5 ne=jnettool.tools.elements.networkelement( ) 6 try: 7 routing_table=ne.getroutingtable() # fetch table 8 9 except jnettool.tools.elements.missingvar: 10 # Record table fault 11 logging.exception( No routing table found ) 12 # Undo partial changes 1 ne.cleanup( rollback ) else: 16 num_routes=routing_table.getsize() # determine table size 17 for RToffset in range( num_routes ): 18 route=routing_table.getroutebyindex( RToffset ) 19 name=route.getname() # route name 20 ipaddr=route.getipaddr() # ip address 21 print( {:15s} -> {:s}.format(name, ipaddr)) # format nicely 22 finally: 2 ne.cleanup( commit ) # lockin changes 24 ne.disconnect() Vyhovuje tento kód doporučením PEP 8? P. Pošík c 2016 B4BRPH: Řešení problémů a hry 18 / 22 8
9 Původní kód - podle PEP 8 1 import jnettool.tools.elements.networkelement 2 import jnettool.tools.routing import jnettool.tools.routeinspector ne = jnettool.tools.elements.networkelement( ) 7 8 try: 9 routing_table = ne.getroutingtable() 10 except jnettool.tools.elements.missingvar: 11 logging.exception( No routing table found ) 12 ne.cleanup( rollback ) 1 else: 14 num_routes = routing_table.getsize() 15 for RToffset in range(num_routes): 16 route = routing_table.getroutebyindex(rtoffset) 17 name = route.getname() 18 ipaddr = route.getipaddr() 19 print( {:15s} -> {:s}.format(name, ipaddr)) 20 finally: 21 ne.cleanup( commit ) 22 ne.disconnect() Je toto čistý kód? Co ten kód vlastně dělá? 1. Importuje potřebné věci z knihovny pro práci se sít ovými prvky. 2. Připojuje se k sít ovému zařízení (routeru).. Pokouší se stáhnout směrovací tabulku. 4. Pokud tabulka chybí, zaznamená chybu a uklidí po sobě a skončí. (Pokud byste neuklidili, mohlo byto router zanechat ve stavu, kdy se k němu nelze připojit.) 5. Zjistí velikost tabulky. 6. Následně iteruje přes indexy ve směrovací tabulce. 7. Najde směrovací pravidlo podle indexu. 8. Zjistí název pravidla, IP adresu a vytiskne je. 9. Nakonec uloží všechny změny a odpojí se od směrovače. Čeho chce programátor tímto kódem dosáhnout? Je to čistý kód? Nehezky kombinuje ošetření chyb s vlastní logikou. Není zřejmé, co kód vlastně dělá. P. Pošík c 2016 B4BRPH: Řešení problémů a hry 19 / 22 Lepší kód Jak to udělat lépe? 1 from nettools import NetworkElement 2 with NetworkElement( ) as ne: 4 for route in ne.routing_table: 5 print( {:15s} -> {:s}.format(route.name, route.ipaddr)) Krátký, přehledný kód. Jasně sděluje, co je jeho hlavním účelem. Má jedinou vadu. Nefunguje. (Zatím.) Aby kód fungoval, musíme vytvořit nový modul nettools, který bude překládat náš krásný kód na volání původní knihovny jnettools. To není zcela triviální a my to ještě neumíme. Nicméně Python to umožňuje a podporuje. Modul nettools schovává detaily ošetření chyb, atd. Váš hlavní kód se může soustředit na logiku aplikace. Je to nezanedbatelná práce navíc. Ale uděláte ji jedinkrát, a v budoucnu z toho budete profitovat vy i vaši spolupracovníci. P. Pošík c 2016 B4BRPH: Řešení problémů a hry 20 / 22 9
10 Modulnettools Pro pokročilejší programátory, které zajímá, jak se takový modul dá udělat: 1 import jnettool.tools.elements.networkelement 2 import jnettool.tools.routing 4 class NetworkElementError(Exception): 5 pass 6 7 class NetworkElement: 8 9 def init (self, ipaddr): 10 self.ipaddr = ipaddr 11 self.oldne = jnettool.tools.elements.networkelement(ipaddr) def routing_table(self): 15 try: 16 return RoutingTable(self.oldne.getRoutingTable()) 17 except jnettool.tools.elements.missingvar: 18 raise NetworkElementError( No routing table found ) def enter (self): 21 return self 22 2 def exit (self, exctype, excinst, exctb): 24 if exctype == NetworkElementError: 25 logging.exception( No routing table found ) 26 self.oldne.cleanup( rollback ) 27 else: 28 self.oldne.cleanup( commit ) 29 self.oldne.disconnect() 0 1 def repr (self): 2 return {:s}({:s}).format(self. class.name, self.ipaddr) 4 class RoutingTable: 5 6 def init (self, oldrt): 7 self.oldrt = oldrt 8 9 def len (self): 40 return self.oldrt.getsize() def getitem (self, index): 4 if index >= len(self): 44 raise IndexError 45 return Route( 46 self.oldrt.getroutebyindex(index)) class Route: def init (self, old_route): 52 self.old_route = old_route 5 55 def name(self): 56 return self.old_route.getname() def ipaddr(self): 60 return self.old_route.getipaddr() P. Pošík c 2016 B4BRPH: Řešení problémů a hry 21 / 22 Závěr Čistý kód je subjektivní pojem, přesto by se o něj měl každý programátor snažit. Čistý kód by měl být především čitelný (skoro jako v přirozeném jazyce). 80 % čistého kódu jsou správně zvolená jména! Vhodná jména lze volit, jsou-li funkce/metody dostatečně krátké! Opakují-li se ve vašem programu stejné nebo podobné kusy kódu, prakticky vždy je možné takový kód definovat jako samostatnou funkci/metodu. P. Pošík c 2016 B4BRPH: Řešení problémů a hry 22 / 22 10
A4B99RPH: Řešení problémů a hry Čistý kód.
A4B99RPH: Řešení problémů a hry Čistý kód. Petr Pošík Katedra kybernetiky ČVUT FEL Clean Code 2 Který kód je čistší? A proč?...........................................................................................
Chyby a výjimky. Chyba. Odkud se chyby berou? Kdo chyby opravuje? Co můžete dělat jako programátor? Dvě hlavní metody práce s chybami.
Chyby a výjimky Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH Řešení problémů a hry, 2016 Chyba Stav programu (podmínky), který mu brání v dosažení požadovaného výsledku. Odkud se chyby
Automatické testování softwaru. Testujte svůj kód! Předpoklady: Příklad: sum_digits() Možnost 1: Zkusíme funkci použít v konzoli Pythonu.
Automatické testování softwaru Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH: Řešení problémů a hry, 2016 Předpoklady: funkce moduly Testujte svůj kód! Nebudete vědět, zda váš kód funguje,
1, Žáci dostanou 5 klíčových slov a snaží se na jejich základě odhadnout, o čem bude následující cvičení.
Moje hlavní město Londýn řešení: 1, Žáci dostanou 5 klíčových slov a snaží se na jejich základě odhadnout, o čem bude následující cvičení. Klíčová slova: capital, double decker bus, the River Thames, driving
WORKSHEET 1: LINEAR EQUATION 1
WORKSHEET 1: LINEAR EQUATION 1 1. Write down the arithmetical problem according the dictation: 2. Translate the English words, you can use a dictionary: equations to solve solve inverse operation variable
Čipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
Dynamic programming. Optimal binary search tree
The complexity of different algorithms varies: O(n), Ω(n ), Θ(n log (n)), Dynamic programming Optimal binary search tree Různé algoritmy mají různou složitost: O(n), Ω(n ), Θ(n log (n)), The complexity
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost. Projekt MŠMT ČR Číslo projektu Název projektu školy Klíčová aktivita III/2 EU PENÍZE ŠKOLÁM CZ.1.07/1.4.00/21.2146
Jak postupovat při zpracování jednotlivých částí testu: Flyers
Jak postupovat při zpracování jednotlivých částí testu: Flyers Tip 1 Je třeba bezchybně porozumět zadání, které je vždy psané anglicky. Pomůže ti následující slovníček. Choose a word from the box. Vyber
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů
SPJA, cvičení 1 ipython, python, skripty základy syntaxe: základní datové typy, řetězce podmínky: if-elif-else, vyhodnocení logických výrazů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list
VY_32_INOVACE_06_Předpřítomný čas_03. Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace
VY_32_INOVACE_06_Předpřítomný čas_03 Autor: Růžena Krupičková Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace Název projektu: Zkvalitnění ICT ve slušovské škole Číslo projektu: CZ.1.07/1.4.00/21.2400
Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické
Kámen-nůžky-papír Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Studijní program: Otevřená informatika 2018-10-09 08/10/18 než začneme
2. Entity, Architecture, Process
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš
Kámen-nůžky-papír. Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické
Kámen-nůžky-papír Tomáš Svoboda Centrum strojového vnímání, Katedra kybernetiky Fakulta elektrotechnická, České vysoké učení technické Studijní program: Otevřená informatika 2017-10-10 18/10/17 než začneme
Jak importovat profily do Cura (Windows a
Jak importovat profily do Cura (Windows a macos) Written By: Jakub Dolezal 2019 manual.prusa3d.com/ Page 1 of 10 Step 1 Stažení Cura profilů V tomto návodu se dozvíte, jak importovat a aktivovat nastavení
Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi
Evoluční algoritmy Použítí evoluční principů, založených na metodách optimalizace funkcí a umělé inteligenci, pro hledání řešení nějaké úlohy. Populace množina jedinců, potenciálních řešení Fitness function
Gymnázium, Brno, Slovanské nám. 7, SCHEME OF WORK Mathematics SCHEME OF WORK. cz
SCHEME OF WORK Subject: Mathematics Year: first grade, 1.X School year:../ List of topisc # Topics Time period Introduction, repetition September 1. Number sets October 2. Rigtht-angled triangle October,
Introduction to MS Dynamics NAV
Introduction to MS Dynamics NAV (Item Charges) Ing.J.Skorkovský,CSc. MASARYK UNIVERSITY BRNO, Czech Republic Faculty of economics and business administration Department of corporate economy Item Charges
EU peníze středním školám digitální učební materiál
EU peníze středním školám digitální učební materiál Číslo projektu: Číslo a název šablony klíčové aktivity: Tematická oblast, název DUMu: Autor: CZ.1.07/1.5.00/34.0515 III/2 Inovace a zkvalitnění výuky
Python profesionálně: dynamické parametry, generátory, lambda funkce... with. Dynamické parametry
1 z 9 09.11.2015 10:02 Python profesionálně: dynamické parametry, generátory, lambda funkce a with Články - Michal Hořejšek (https://www.zdrojak.cz/autori/michal-horejsek/) - Různé (https://www.zdrojak.cz/ruzne/)
Czech Republic. EDUCAnet. Střední odborná škola Pardubice, s.r.o.
Czech Republic EDUCAnet Střední odborná škola Pardubice, s.r.o. ACCESS TO MODERN TECHNOLOGIES Do modern technologies influence our behavior? Of course in positive and negative way as well Modern technologies
IB111 Úvod do programování skrze Python Přednáška 7
IB111 Úvod do programování skrze Python Přednáška 7 Správa paměti (proměnné podrobněji) Práce se soubory Nikola Beneš 2. listopad 2016 IB111 přednáška 7: správa paměti, práce se soubory 2. listopad 2016
Transportation Problem
Transportation Problem ١ C H A P T E R 7 Transportation Problem The transportation problem seeks to minimize the total shipping costs of transporting goods from m origins (each with a supply s i ) to n
Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:
WORKBOOK Subject: Teacher: Student: Mathematics.... School year:../ Conic section The conic sections are the nondegenerate curves generated by the intersections of a plane with one or two nappes of a cone.
Úvod do Operačních Systémů
Úvod do Operačních Systémů 10. cvičení Uživatelský vstup, zpracování přepínačů, psaní a ladění skriptů, plánování úloh. 1 Obsah Skript pro logování informací o systému, uložení konfigurace, transformaci
3. Řízení běhu programu
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 3 1 Základy algoritmizace 3. Řízení běhu programu doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Doxygen. Jakub Břečka
Doxygen Jakub Břečka Úvod Proč a typy dokumentace na přednášce Programátorská dokumentace (popis implementace, tříd, funkcí, API) Doxygen, JavaDoc, Sandcastle, AppleDoc, Doxygen = klasika mezi dokumentačními
UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9
www.regulus.cz UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9 CZ EN UPM3 Hybrid 1. Úvod V továrním nastavení čerpadla UPM3 Hybrid je profil PWM
Compression of a Dictionary
Compression of a Dictionary Jan Lánský, Michal Žemlička zizelevak@matfyz.cz michal.zemlicka@mff.cuni.cz Dept. of Software Engineering Faculty of Mathematics and Physics Charles University Synopsis Introduction
ČTENÍ. M e t o d i c k é p o z n á m k y k z á k l a d o v é m u t e x t u :
ČTENÍ Jazyk Úroveň Autor Kód materiálu Anglický jazyk 5. třída Hana Vavřenová aj5-rie-vav-čte-07 Z á k l a d o v ý t e x t ( 1 5 0 2 5 0 s l o v ) : Hallo! My name is Megan. This summer I am at language
Název projektu: Multimédia na Ukrajinské
Základní škola, Ostrava Poruba, Ukrajinská 1533, příspěvková organizace Operační program Vzdělávání pro konkurenceschopnost Název projektu: Multimédia na Ukrajinské číslo projektu: CZ1.07/1.4.00/21.3759
Konečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
Algoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Anglický jazyk
Ú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
PG 9.5 novinky ve vývoji aplikací
PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu
Granit 1280i. Stručný návod k použití. Industrial Full Range Laser Scanner CZ-QS Rev A 1/14
Granit 1280i Industrial Full Range Laser Scanner Stručný návod k použití 1280-CZ-QS Rev A 1/14 Poznámka: Informace o čištění zařízení najdete v uživatelské příručce. Lokalizované verze tohoto dokumentu
Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz
Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).
Vestavěné nástroje Pythonu
Vestavěné nástroje Pythonu Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH Řešení problémů a hry, 2016 Credits David Beazley (http://www.dabeaz.com/): Builtin Superheros! PyData Chicago,
VY_22_INOVACE_60 MODAL VERBS CAN, MUST
VY_22_INOVACE_60 MODAL VERBS CAN, MUST Vzdělávací oblast: Jazyk a jazyková komunikace Vzdělávací obor: Anglický jazyk Ročník: 9. MODAL VERBS CAN, MUST, SHOULD 1/ Connect the verbs to their future forms.
Caroline Glendinning Jenni Brooks Kate Gridley. Social Policy Research Unit University of York
Caroline Glendinning Jenni Brooks Kate Gridley Social Policy Research Unit University of York Growing numbers of people with complex and severe disabilities Henwood and Hudson (2009) for CSCI: are the
Číslo materiálu: VY 32 INOVACE 29/18. Číslo projektu: CZ.1.07/1.4.00/
Číslo materiálu: Název materiálu: Ironic Číslo projektu: CZ.1.07/1.4.00/21.1486 Zpracoval: Mgr. Petra Březinová IRONIC 1. Listen to the song Ironic from the singer Alanis Morissette. For the first time
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
EXACT DS OFFICE. The best lens for office work
EXACT DS The best lens for office work EXACT DS When Your Glasses Are Not Enough Lenses with only a reading area provide clear vision of objects located close up, while progressive lenses only provide
Next line show use of paragraf symbol. It should be kept with the following number. Jak může státní zástupce věc odložit zmiňuje 159a.
1 Bad line breaks The follwing text has prepostions O and k at end of line which is incorrect according to Czech language typography standards: Mezi oblíbené dětské pohádky patří pohádky O Palečkovi, Alenka
Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných
Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro
ITICA. SAP Školení přehled 2012. Seznam kurzů
ITICA SAP Školení přehled 2012 Seznam kurzů SAP Školení v roce 2012 Způsob realizace školení Naše školení jsou zaměřena především na cíl předvést obrovský a rozsáhlý systém SAP jako použitelný a srozumitelný
LOGOMANUÁL / LOGOMANUAL
LOGOMANUÁL / LOGOMANUAL OBSAH / CONTENTS 1 LOGOTYP 1.1 základní provedení logotypu s claimem 1.2 základní provedení logotypu bez claimu 1.3 zjednodušené provedení logotypu 1.4 jednobarevné a inverzní provedení
PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.
PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk
Algoritmus. Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému.
ZAL 2. cvičení 2016 Algoritmus Algoritmus je posloupnost kroků, které jsou potřeba k vyřešení problému. Algoritmus na vstupu přijímá instanci problému a na výstupu dává řešení zadané instance. U algoritmu
Programování v Pythonu
ƒeské vysoké u ení technické v Praze FIT Programování v Pythonu Ji í Znamená ek P íprava studijního programu Informatika je podporována projektem nancovaným z Evropského sociálního fondu a rozpo tu hlavního
POSLECH. Anglický jazyk 9. třída Mgr. Martin Zicháček. Jazyk Úroveň Autor Kód materiálu. Z á k l a d o v ý t e x t :
POSLECH Jazyk Úroveň Autor Kód materiálu Anglický jazyk 9. třída Mgr. Martin Zicháček aj9-kap-zic-pos-20 Z á k l a d o v ý t e x t : Caren: High Wings, Caren speaking, how can I help you? John: Hello,
JAVA. Další jazyky kompilovatelné do Java byte-code
JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace
Automatika na dávkování chemie automatic dosing
Automatika na dávkování chemie automatic dosing Swimmingpool Technology Autodos 700 Automatické dávkování Autodos Autodos automatic dosing Autodos 700 je jedno-kanálové zaøízení, pro mìøení a dávkování.
Arduino Ethernet Shield W5100 R3
1420993161 VÝROBNÍ ČÍSLO Arduino Ethernet Shield W5100 R3 1. POPIS Arduino Ethernet Shield umožní vývojovým kitům Arduino Nano, Mega 1280/2560 nebo Duemilanove 168/328 připojení k internetu (nelze použít
Litosil - application
Litosil - application The series of Litosil is primarily determined for cut polished floors. The cut polished floors are supplied by some specialized firms which are fitted with the appropriate technical
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
Vánoční sety Christmas sets
Energy news 7 Inovace Innovations 1 Vánoční sety Christmas sets Na jaře tohoto roku jste byli informováni o připravované akci pro předvánoční období sety Pentagramu koncentrátů a Pentagramu krémů ve speciálních
Výjimky. Tomáš Pitner, upravil Marek Šabo
Výjimky Tomáš Pitner, upravil Marek Šabo K čemu jsou výjimky Výjimky jsou mechanizmem umožňujícím reagovat na nestandardní (tj. chybové) běhové chování programu, které může mít různé příčiny: chyba okolí:
CODE BOOK NEISS 8. A code book is an identification tool that allows the customer to perform a test result evaluation using a numeric code.
CODE BOOK NEISS 8 A code book is an identification tool that allows the customer to perform a test result evaluation using a numeric code. Kodová kniha je identifikační pomůcka, která umožňuje provést
Přechod webových aplikací na Python 3 Tomáš Pazderka 6. listopadu 2018
Přechod webových aplikací na Python 3 Tomáš Pazderka tomas.pazderka@nic.cz 6. listopadu 2018 Python 3 První verze vyšla 2008 První production ready verze vyšla 2009 Řešení některých chyb v návrhu jazyka
Výukový materiál zpracovaný v rámci operačního programu Vzdělávání pro konkurenceschopnost
Výukový materiál zpracovaný v rámci operačního programu Vzdělávání pro konkurenceschopnost Registrační číslo: CZ.1.07/1. 5.00/34.0084 Šablona: II/2 Inovace a zkvalitnění výuky cizích jazyků na středních
Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT
Škola: Střední škola obchodní, České Budějovice, Husova 9 Projekt MŠMT ČR: EU PENÍZE ŠKOLÁM Číslo projektu: CZ.1.07/1.5.00/34.0536 Název projektu školy: Výuka s ICT na SŠ obchodní České Budějovice Šablona
Problém identity instancí asociačních tříd
Problém identity instancí asociačních tříd Autor RNDr. Ilja Kraval Ve školeních a také následně po jejich ukončení se stále častěji objevují dotazy, které se týkají tzv. identity instancí asociační třídy.
Vytvoření pokročilé Fotogalerie v Drupalu - Views
Vytvoření pokročilé Fotogalerie v Drupalu - Views Views Máme tři pohledy: gallery_photos, all_galeries, admin_gallery Buď je můžete vytvořit podle návodu níže, nebo importovat z přiložených txt souborů
Agilní metodiky vývoje softwaru
vývoje softwaru : důraz na průběžnou komunikaci mezi vývojovým týmem a zákazníkem důraz na tvorbu kvalitního kódu a funkcí, které mají přímou obchodní hodnotu pro zákazníka týmovou spolupráci a samoorganizaci
Střední odborná škola stavební a Střední odborné učiliště stavební Rybitví
Střední odborná škola stavební a Střední odborné učiliště stavební Rybitví Vzdělávací oblast: Vzdělávání a komunikace v cizím jazyce Název: Rozdíl v používání as/ like Autor: Mgr.Tompos Monika Datum, třída:
Housework, professions, jobs, services, tradition/culture.
Housework, professions, jobs, services, tradition/culture. Zpracovala: Ing. Lucie Gerlach, DiS. pro: KONVERZACE V ANGLICKÉM JAZYCE seminář 8. třída/ říjen DO THE SHOPPING DO THE DISHES DO THE LAUNDRY MAKE
PSANÍ. (1) My address is Dlouhá 34, Liberec. Thank you and!
PSANÍ Jazyk Úroveň Autor Kód materiálu Anglický jazyk 5. třída Mgr. Petra Prokophová aj5-kap-prk-psa-06 Z á k l a d o v ý t e x t : Dear Santa, (1) My address is Dlouhá 34, Liberec. Thank you and! (2)I
Website review vaznikystrechy.eu
Generated on August 02 2016 10:08 AM The score is 56/100 SEO Content Title Dřevěné příhradové vazníky pro všechy typy střech Length : 49 Perfect, your title contains between 10 and 70 characters. Description
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
VYUŽITÍ DATA DRIVEN PAGES
VYUŽITÍ DATA DRIVEN PAGES Oldřich MAŠÍN oddělení krizového řízení, krajský úřad Pardubického kraje, Komenského nám. 125, 53211 Pardubice, Česká republika oldrich.masin@pardubickykraj.cz Abstrakt Uživatelé
Jméno autora: Mgr. Alena Chrastinová Datum vytvoření: Číslo DUMu: VY_32_INOVACE_O7_AJ
Jméno autora: Mgr. Alena Chrastinová Datum vytvoření: 24.07.2012 Číslo DUMu: VY_32_INOVACE_O7_AJ Ročník: IV. Anglický jazyk Vzdělávací oblast: Jazyk a jazyková komunikace Vzdělávací obor: cizí jazyk anglický
Funkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
PRIMÁRNÍ MODÁLNÍ SLOVESA CAN
PRIMÁRNÍ MODÁLNÍ SLOVESA Jak již bylo řečeno, primární modální slovesa vyjadřují míru svobody/nesvobody provádět nějakou činnost. Podíváme se na jednotlivá modální slovesa a vysvětlíme si jejich význam.
Funkce - opakování. Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu.
ZAL 3. cvičení 2016 Funkce - opakování Funkce může přijímat parametry na vstupu a může vracet parametry na výstupu. Délka funkce by měla být rozumná. Tipněte si co je rozumná délka funkce. V Pythonu se
Název společnosti: VPK, s.r.o. Vypracováno kým: Ing. Michal Troščak Telefon: Datum:
Pozice Počet Popis 1 SCALA2 3-45 A Datum: 2.7.217 Výrobní č.: 98562862 Grundfos SCALA2 is a fully integrated, self-priming, compact waterworks for pressure boosting in domestic applications. SCALA2 incorporates
Postřehová hra. Zadání projektu. 1 Moje cíle
Gymnázium, Praha 6, Arabská 16 předmět Programování, vyučující Tomáš Obdržálek Postřehová hra ročníkový projekt Matouš Jokl, 1E květen 2014 Obsah 1 Moje cíle...1 2 Kód...2 1.Objekty a ArrayList...2 2.Jpanel
Výukový materiál zpracován v rámci projektu EU peníze školám
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.4.00/21.3149 Šablona: III/2 č. materiálu: VY_32_INOVACE_140 Jméno autora: Marina Hozmanová Třída/ročník:
Projekt: ŠKOLA RADOSTI, ŠKOLA KVALITY Registrační číslo projektu: CZ.1.07/1.4.00/21.3688 EU PENÍZE ŠKOLÁM
ZÁKLADNÍ ŠKOLA OLOMOUC příspěvková organizace MOZARTOVA 48, 779 00 OLOMOUC tel.: 585 427 142, 775 116 442; fax: 585 422 713 email: kundrum@centrum.cz; www.zs-mozartova.cz Projekt: ŠKOLA RADOSTI, ŠKOLA
Chapter 7: Process Synchronization
Chapter 7: Process Synchronization Background The Critical-Section Problem Synchronization Hardware Semaphores Classical Problems of Synchronization Critical Regions Monitors Synchronization in Solaris
POSLECH. M e t o d i c k é p o z n á m k y k z á k l a d o v é m u t e x t u :
POSLECH Jazyk Úroveň Autor Kód materiálu Anglický jazyk 9. třída Mgr. Martin Zicháček aj9-kap-zic-pos-07 Z á k l a d o v ý t e x t : Margaret: Hi Eric. Eric: Oh, hi Margaret. How are you doing? Margaret:
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost. Projekt MŠMT ČR Číslo projektu Název projektu školy Klíčová aktivita III/2 EU PENÍZE ŠKOLÁM CZ.1.07/1.4.00/21.2146
User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 VÍTKOVICE STEEL, a.s. vitkovicesteel.com
1/ 11 User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 2/ 11 Contents 1. MINIMUM SYSTEM REQUIREMENTS... 3 2. SŘHV ON-LINE WEB INTERFACE... 4 3. LOGGING INTO SŘHV... 4 4. CONTRACT
Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;
Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru
LOGBOOK. Blahopřejeme, našli jste to! Nezapomeňte. Prosím vyvarujte se downtrade
název cache GC kód Blahopřejeme, našli jste to! LOGBOOK Prosím vyvarujte se downtrade Downtrade (z GeoWiki) Je to jednání, kterého byste se při výměnách předmětů v keších měli vyvarovat! Jedná se o snížení
Samovysvětlující pozemní komunikace
Samovysvětlující pozemní komunikace Ing. Petr Pokorný, Centrum dopravního výzkumu, v.v.i, duben 2013 Abstrakt Dopravní inženýři v ČR se stále častěji, ve shodě s vývojem v zahraničí, setkávají s termínem
EURO přeshraniční platba
EURO přeshraniční platba EURO přeshraniční platba je platební příkaz splňující následující kriteria: Je předložen elektronicky Je požadováno standardní provedení (tj. nikoliv urgentní nebo expresní) Částka
1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Třídění a vyhledávání Searching and sorting
Třídění a vyhledávání Searching and sorting Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 33 Vyhledávání Třídění Třídící algoritmy 2 / 33 Vyhledávání Searching Mějme posloupnost (pole)
První kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
PREPROCESOR POKRAČOVÁNÍ
PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,
UŽIVATELSKÁ PŘÍRUČKA
UŽIVATELSKÁ PŘÍRUČKA Plni víry a naděje míříme kupředu. S odhodláním zlepšujeme své dovednosti. Zapomeňte na zklamání, ale nikoli na svůj nevyužitý potenciál. Touha překonat sám sebe a dosáhnout hranice
Název projektu: Multimédia na Ukrajinské
Základní škola, Ostrava Poruba, Ukrajinská 1533, příspěvková organizace Operační program Vzdělávání pro konkurenceschopnost Název projektu: Multimédia na Ukrajinské číslo projektu: CZ1.07/1.4.00/21.3759
PSANÍ. M e t o d i c k é p o z n á m k y k z á k l a d o v é m u t e x t u : My family, my hobbies Present simple and continuous, Wh- questions
PSNÍ Jazyk Úroveň utor Kód materiálu nglický jazyk 5. třída Eva Prokšová j5-doc-pro-psa-01 Z á k l a d o v ý t e x t : Dear Johny, My name s Pavel Novák and I m twelve years old. I m from Prague which
Výuka programování v jazyce Python
Výuka programování v jazyce Python Tomáš Fortelka RNDr. Jaroslav Icha Školní rok: 2009-10 Abstrakt Bakalářská práce se týká výuky programování v jazyce Python. Na trhu je velké množství knih a různých
Čtvrtý Pentagram The fourth Pentagram
Energy News 4 1 Čtvrtý Pentagram The fourth Pentagram Na jaře příštího roku nabídneme našim zákazníkům již čtvrtý Pentagram a to Pentagram šamponů. K zavedení tohoto Pentagramu jsme se rozhodli na základě