Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016
|
|
- Miloš Mach
- před 8 lety
- Počet zobrazení:
Transkript
1 Semestrální práce KIV/PC Řešení kolizí frekvencí sítě vysílačů Zdeněk Bečvář A14B0466P 10. ledna 2016
2 Obsah 1 Zadání 1 2 Analýza úlohy Uložení dat ze vstupního souboru Graf kolizí Zásobník Algoritmus řešení Popis implementace Použité datové struktury Struktura vysilac Struktura frekvence Struktura matice Struktura zasobnik Popis modulů Modul main.c Modul vstup.c Modul matice.c Modul zasobnik.c Konstanty Uživatelská příručka Sestavení a spuštění programu na systému Windows Sestavení a spuštění programu na systému Linux Vstupní data Výstup programu Závěr 11
3 1 Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která jako vstup načte z parametru příkazové řádky název textového souboru obsahující informaci o pozici vysílačů na mapě a na jeho základě přidělí každému vysílači frekvenci tak, aby jeho signál nekolidoval s vysílači v blízkém okolí. Program se bude spouštět příkazem freq.exe <soubor-s-vysílači>. Symbol <soubor-s-vysílači> zastupuje jméno textového souboru, který obsahuje informaci o rozmístění vysílačů na mapě a o dostupných vysílacích frekvencích, které jim je možné přidělit. Váš program tedy může být během testování spuštěn například takto: freq.exe vysilace-25.txt Výsledkem práce programu bude výpis do konzole se seznamem přidělených frekvencí každému vysílači ze vstupního souboru (viz Specifikace výstupu programu). V případě chyby nebo neřešitelné situaci skončí program výpisem příslušné chybové hlášky. Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný návod k použití programu v angličtině podle běžných zvyklostí (viz např. ukázková semestrální práce na webu předmětu Programování v jazyce C). Vstupem programu je pouze argument na příkazové řádce interakce s uživatelem pomocí klávesnice či myši v průběhu práce programu se neočekává. Hotovou práci odevzdejte v jediném archivu typu ZIP prostřednictvím automatického odevzdávacího a validačního systému. Postupujte podle instrukcí uvedených na webu předmětu. Archiv nechť obsahuje všechny zdrojové soubory potřebné k přeložení programu, makefile pro Windows i Linux (pro překlad v Linuxu připravte soubor pojmenovaný makefile a pro Windows makefile.win) a dokumentaci ve formátu PDF vytvořenou v typografickém systému TEX, resp. L A TEX. Bude-li některá z částí chybět, kontrolní skript Vaši práci odmítne. Úplný dokument zadání si lze prohlédnout na internetové adrese: 1
4 2 Analýza úlohy 2.1 Uložení dat ze vstupního souboru Pro uložení dat ze vstupního souboru můžeme použít dvě datové struktury. První je pole (obrázek 1). Statické pole nemá cenu používat, protože nikdy nevíme, kolik budeme mít od uživatele dat. Proto dynamické pole, které se bude za běhu programu dynamicky zvětšovat podle přibývajících dat, je mnohem vhodnější volba. Vkládání a vyhledávání v poli není časově náročné. Jelikož pole je uspořádáno v adresním prostoru za sebou, hned víme, na jakou adresu máme přistupovat. Oproti druhé datové struktuře, seznamu, pole může zabrat více paměti, pokud ho nezaplníme celé prvky. Obrázek 1: Příklad pole. Druhou strukturou je již zmíněný spojový seznam (obrázek 2). Oproti poli má výhodu v menší paměťové náročnosti. Pro každý prvek se vyhrazuje samostatně paměť a nemusíme si ji vyhrazovat dopředu. Ovšem je zde nevýhoda, a to vkládání a vyhledávání prvků. Jelikož víme jen adresu prvního prvku, na libovolný prvek v seznamu musíme odkrokovat tolikrát, kolikátý je daný prvek. Pro data o tisících prvcích může být tento rozdíl znatelný. Obrázek 2: Příklad spojového seznamu. 2
5 2.2 Graf kolizí Graf kolizí má obdobné řešení jako ukládání dat ze vstupu. V prvním případě ale místo pole použijeme matici (obrázek 3). Pokud jsou dva vysílače sousedé (jsou v kolizi), matice sousednosti na daných indexech má hodnotu 1. Matice sousednosti je vhodná pro grafy husté. To jsou grafy s velkým počtem hran (počet hran přibližně roven druhé mocnině počtu vrcholů). Matice sousednosti má výhodu oproti spojovému seznamu v rychlosti zjištění existence hrany. Obrázek 3: Příklad matice sousednosti. V druhém případě zůstane spojový seznam (obrázek 4). Pokud jsou dva vysílače sousedé, uloží si adresu svého souseda. Spojový seznam sousednosti je vhodný pro grafy řídké. To jsou grafy s malým počtem hran (počet hran mnohem menší než druhá mocnina počtu vrcholů). Obrázek 4: Příklad spojového seznamu sousednosti. 3
6 2.3 Zásobník Zásobník (obrázek 5) lze implementovat opět buď seznamem, nebo polem. Zásobník je určen pro dočasné uložení dat. Data uložena do zásobníku jako poslední se čtou jako první (LIFO Last In - First Out ). Pro zásobník je také důležitý ukazatel adresy poslední přidané položky (vrchol zásobníku). Obrázek 5: Ukázka zásobníku. 2.4 Algoritmus řešení 1. Načti vstupní data do paměti. 2. Vytvoř graf kolizí (obrázek 6). 3. Nastav všechny vrcholy grafu jako dosud neobarvené. 4. Procházej všechny vrcholy grafu a vlož do zásobníku první neobarvený vrchol. 5. Není-li zásobník prázdný, vyjmi vrchol ze zásobníku. 6. Vybranému vrcholu přiřaď nejmenší možnou barvu, takovou, kterou nemá žádný stávající soused (obrázek 7). Pokud je nejmenší možná barva větší než dostupný počet barev, ukonči algoritmus a označ úlohu jako neřešitelnou. 7. Vlož do zásobníku všechny dosud neobarvené sousední vrcholy právě obarveného vrcholu. 4
7 8. Pokud je zásobník prázdný, načti další neobarvený vrchol (bod 4). Jinak pokračuj od bodu 5. Obrázek 6: Ukázka převodu informací o vysílačích na graf kolizí. Obrázek 7: Ukázka neobarveného grafu kolizí a jedna ze správných variant obarveného grafu. 5
8 3 Popis implementace 3.1 Použité datové struktury Struktura vysilac Struktura pro uložení informací o vysílačích. Je implementována dynamickým polem, které se v případě potřeby (nedostatek místa pro další prvky) dynamicky zvětší Struktura frekvence Struktura pro uložení informací o frekvencích. Stejně jako struktura vysilac je implementována dynamickým pole s dynamickým zvětšením paměti Struktura matice Struktura pro vytvoření grafu kolizí. Jak název napovídá, graf je implementován maticí Struktura zasobnik Struktura pro vytvoření zásobníku. Zásobník je implementován polem, které se v případě nedostatku paměti dynamicky zvětší. 3.2 Popis modulů Modul main.c Tento modul je hlavní modul programu. int main(int argc, char *argv[]) je hlavní funkce programu, která spojuje všechny části programu, přijímá argumenty z příkazové řádky, řídí běh programu a obarvuje graf kolizí. void napoveda() tiskne nápovědu k programu, pokud uživatel zadá špatný vstup. void matice_sousednosti (matice *mat_soused) vytvoří graf kolizí. 6
9 3.2.2 Modul vstup.c Tento modul načítá data ze vstupního souboru, vyhrazuje pro ně paměť a dále s nimi pracuje. void nacti_vstup(char *soubor) načte a uloží data ze vstupu do alokovaného pole. void vytvor_frekvence_seznam() alokuje paměť pro frekvence. void vytvor_vysilace_seznam() alokuje paměť pro vysílače. void pridani_vysilace(int poradi, double osa_x, double osa_y) uloží vysílač do pole a dynamicky zvětšuje pole. void pridani_frekvence(int poradi, int vysilaci_f) uloží frekvence do pole a dynamicky zvětšuje pole. void hodnoty_citacu(int *vysilac, int *frekvence) vrací celkový počet frekvencí a čítačů. int vypocet_vzdalenosti(int i, int j) vypočítá vzdálenost dvou vysílačů. int barva_vysilace(int i) vrací barvu vysílače. void nastav_barvu(int i, int kmitocet) nastavuje přidělenou barvu vysílači. void tisk_vysilace(vysilac *pom) vypisuje jeden vysílač s jeho přidělenou frekvencí na obrazovku. void vypis_vysilacu() vypisuje všechny vysílače. void uvolni_vstup() uvolňuje alokovanou paměť pole frekvencí a vysílačů Modul matice.c matice *vytvor_matici(int radky, int sloupce) alokuje paměť pro matici sousednosti a nastaví všechny prvky matice na výchozí hodnotu. void uvolni_matici(matice* pom) uloží informaci o sousedovy na dané pozici matice. 7
10 void nastav_souseda(matice* pom, int radek, int sloupec, int soused) vrací hodnotu souseda na dané pozici matice. int zjisti_souseda(matice* pom, int radek, int sloupec) uvolňuje alokovanou paměť matice, její řádky a všechny sloupce Modul zasobnik.c zasobnik *vytvor_zasobnik(int velikost, int velikost_prvku, matice *mat_soused) alokuje paměť pro zásobník. void zasobnik_push(zasobnik *pom, void *prvek_push, matice *mat_soused) vkládá data do zásobníku a dynamicky ho zvětšuje. void zasobnik_pop(zasobnik *pom, void *prvek_pop) odebírá data ze zásobníku. int zasobnik_citac(zasobnik *pom) zjišťuje počet prvků v zásobníku. void uvolni_zasobnik(zasobnik *pom) uvolňuje alokovanou paměť zásobníku. 3.3 Konstanty V programu jsou použity konstanty pro odstranění výskytu magických čísel. V modulu main.c: VYCHOZI_ZASOBNIK 20 výchozí velikost zásobníku. V modulu vstup.c: VYCHOZI_VYSILACE 100 výchozí velikost pole pro vysílače. VYCHOZI_FREKVENCE 10 výchozí velikost pole pro frekvence. MAX_DELKA_TEXTU 23 délka pole pro text ze vstupního souboru. VYCHOZI_BARVA -1 výchozí barva pro vysílač. V modulu matice.c: VYCHOZI_SOUSED 0 výchozí hodnota pro souseda vysílače. 8
11 4 Uživatelská příručka Program freq.exe je konzolovou aplikací. Aplikace je přeložitelná a spustitelná na systémech Windows i Linux. Pokud aplikace není přeložena (nemáme k dispozici freq.exe), překládá se pomocí souboru makefile a je vyžadováno mít nainstalovaný překladač, např. GCC se správně nastavenou cestou Path. 4.1 Sestavení a spuštění programu na systému Windows Otevřete příkazovou řádku v adresáři se zdrojovými soubory. Spusťte překlad a sestavení programu příkazem mingw32-make (obrázek 8). Obrázek 8: Překlad a sestavení programu v příkazovém řádku. Spusťte program příkazem freq.exe <nazev_souboru>, kde <nazev_souboru> je název vstupního souboru s daty (obrázek 9). 4.2 Sestavení a spuštění programu na systému Linux Otevřete terminál v adresáři se zdrojovými soubory. Spusťte překlad a sestavení programu příkazem make. Spusťte program příkazem freq.exe <nazev_souboru>, kde <nazev_souboru> je název vstupního souboru s daty (obrázek 9). 9
12 4.3 Vstupní data Soubor se vstupními daty (obrázek 9) by měl obsahovat informace o dostupných vysílacích frekvencích pro vysílače, dosah vysílače a souřadnice vysílačů. Formát dat: Available frequencies: (ID frekvence) (kmitočet [Hz]) Transmission radius: (rádius) Transmitters: (ID vysílače) (souřadnice na ose x [km]) (souřadnice na oes y [km]) Obrázek 9: Ukázkový vstupní soubor. 4.4 Výstup programu Při spuštění programu se souborem s daty ve správném formátu má výstup (obrázek 10), pokud je zadání řešitelné, formát: (ID vysílače) (přidělená vysílací frekvence) 10
13 Obrázek 10: Ukázkový výstup programu. 5 Závěr Semestrální práci jsem napsal na počítači (CPU Intel Xeon E v Ghz, RAM 8 GB DDR3, GPU ASUS R9 280X) s Windows bit ve vývojovém prostředí Dev-C++ s překladačem GCC verze Čas běhu programu se zvyšuje s větším objemem vstupních dat. Přesto časy nejsou nijak závratné a běh programu je velmi dobrý. Pro data se čtyřmi frekvencemi a dvaceti pěti vysílači je průměrný čas běhu programu 32 ms a pro data s dvaceti čtyřmi frekvencemi a tisíci vysílači je průměrný čas běhu programu 200 ms. S jazykem C jsem do předmětu KIV/PC neměl téměř žádné zkušenosti (pouze náhled na Arduino a jeho vývojové prostředí) a obecně se nepovažuji za příliš dobrého programátora. I tak si myslím, že jsem semestrální práci vypracoval obstojně a dle zadání. S tím mi také velmi pomohlo cvičení, z kterého jsem čerpal nápady a konstrukce programu. Možné zlepšení by bylo implementace grafu kolizí spojovým seznamem, který by nejspíše (záleží na počtu hran) nezabíral tolik místa v paměti. 11
14 Při vypracovávání semestrální práce jsem se potýkal s problémem, kdy a jak začít. Nakonec jsem začal akorát a pod rouškou deadlinu jsem práci dokončil. Také se vyskytl problém v podobě plánované odstávky elektřiny, kterou jsem si ale vůbec nenaplánoval. A ještě k L A TEXu. I přes bídný začátek samostudia (jukebox přednášky jsem se bohužel nemohl zúčastnit) jsem si základní prvky celkem osvojil. Ve výsledku mě tento typografický systém překvapil a rozhodně jsem rád za donucení psání těchto řádků v L A TEXu. 12
Pokud nebude na příkazové řádce uveden právě jeden argument, vypište chybové hlášení a stručný
KIV/PC ZS 2015/2016 Zadání ZADÁNÍ SEMESTRÁLNÍ PRÁCE ŘEŠENÍ KOLIZÍ FREKVENCÍ SÍTĚ VYSÍLAČŮ VARIANTA 2 (REx) Naprogramujte v ANSI C přenositelnou 1 konzolovou aplikaci, která jako vstup načte z parametru
VíceSemestrální práce z KIV/PC. Kolja Matuševský (A14B0310P)
Semestrální práce z KIV/PC Řešení kolizí frekvencí sítě vysílačů Kolja Matuševský (A14B0310P) mkolja@students.zcu.cz 10. ledna 2016 Obsah 1 Zadání 2 2 Analýza úlohy 3 2.1 Vytvoření grafu..........................
VíceSemestální práce z předmětu PC
A05450 ZCU ZS2006 Martin Lipinský martin@lipinsky.cz Semestální práce z předmětu PC Přebarvování souvislých oblastí 1. Zadání Naprogramujte v ANSI C přenositelnou konzolovou aplikaci, která provede v binárním
VíceImplementace numerických metod v jazyce C a Python
Fakulta elektrotechnická Katedra matematiky Dokumentace k semestrální práci Implementace numerických metod v jazyce C a Python 2013/14 Michal Horáček a Petr Zemek Vyučující: Mgr. Zbyněk Vastl Předmět:
VíceŠifrování/Dešifrování s použitím hesla
Fakulta elektrotechnická Katedra teoretické elektrotechniky Dokumentace k semestrální práci Šifrování/Dešifrování s použitím hesla 2012/13 Petr Zemek Vyučující: Ing. Petr Kropík, Ph.D Předmět: Základy
VícePROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.
Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky. V průběhu budou vysvětlena následující témata: 1. Dynamicky alokovaná paměť 2. Jednoduché
VíceSprávné vytvoření a otevření textového souboru pro čtení a zápis představuje
f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru
VíceDigitální učební materiál
Digitální učební materiál Projekt CZ.1.07/1.5.00/34.0387 Krok za krokem Šablona III/2 Inovace a zkvalitnění výuky prostřednictvím ICT (DUM) Tématická Elektrotechnické zboží 3 oblast DUM č. 32_J06_3_15
VíceIUJCE 07/08 Přednáška č. 1
Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming
VíceZákladní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
VíceOperační systémy. Cvičení 3: Programování v C pod Unixem
Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené
VíceKonstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
VíceIUJCE 07/08 Přednáška č. 6
Správa paměti Motivace a úvod v C (skoro vždy) ručně statické proměnné o datový typ, počet znám v době překladu o zabírají paměť po celou dobu běhu programu problém velikosti definovaných proměnných jak
VíceSemestrální projekt. Předmět: Programování v jazyce C. Zadání: Operace s maticemi. Uživatelský manuál. ver. 1.0
Semestrální projekt Předmět: Programování v jazyce C Zadání: Operace s maticemi Uživatelský manuál ver. 1.0 Jakub Štrouf Obor: Aplikovaná informatika Semestr: 1. Rok: 2009/2010 Obsah: 1. Úvod 1.1. Technická
VíceZpracování deklarací a přidělování paměti
Zpracování deklarací a přidělování paměti Účel deklarací -pojmenování objektů -umístění objektů v paměti Tabulka symbolů -uchovává informace o objektech -umožňuje kontextové kontroly -umožňuje operace
VíceOperační systémy a programování
Vysoká škola báňská Technická univerzita Ostrava Operační systémy a programování učební text David Fojtík Ostrava 2007 Recenze: Jiří Kulhánek Miroslav Liška Název: Operační systémy a programování Autor:
VíceInterpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
VíceKoncepce (větších) programů. Základy programování 2 Tomáš Kühr
Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je
VíceStruktury a dynamická paměť
Struktury a dynamická paměť Petyovský, Macho, Richter (bpc2a_cv12), ver. 2017.2 Definujte strukturu TVector pro dynamické pole dat typu double. Definujete strukturu TMatrix, která bude obsahovat dynamické
VícePrincipy operačních systémů. Lekce 3: Virtualizace paměti
Principy operačních systémů Lekce 3: Virtualizace paměti Virtuální paměť Adresní prostor paměti je uspořádán logicky jinak, nebo je dokonce větší než je fyzická operační paměť RAM Rozšíření vnitřní paměti
Více2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.
Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv copyright To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby
VíceWebový server lapache
Webový server lapache Abstrakt lapache (lukas light apache) je jednoduchý UNIXový webový server podporující: podmnožinu HTTP 1.0/1 protokolu virtuální servery (s vlastními chybovými stránkami a kořenem
VíceŘešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem
2. 1. 213 MI-PAA úkol č. 2 Antonín Daněk Řešení problému batohu dynamickým programováním, metodou větví a hranic a aproximativním algoritmem 1 SPECIFIKACE ÚLOHY Cílem tohoto úkolu bylo naprogramovat řešení
VíceExperimentální hodnocení kvality algoritmů
24. 11. 213 MI-PAA úkol č. 3 Antonín Daněk Experimentální hodnocení kvality algoritmů 1 SPECIFIKACE ÚLOHY Cílem tohoto úkolu bylo ohodnotit různé algoritmy pro řešení problému batohu. Předmětem hodnocení
VíceADT/ADS = abstraktní datové typy / struktury
DT = datové typy obor hodnot, které může proměnná nabývat, s operacemi na tomto oboru určen: obor hodnot + výpočetní operace např. INT = { 2 147 483 648 až +2 147 483 647} + {+,,*,/,} ADT/ADS = abstraktní
Víceint => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:
13.4.2010 Typová konverze - změna jednoho datového typu na jiný - známe dva základní implicitní ("sama od sebe") a explicitní (výslovně vyžádána programátorem) - C je málo přísné na typové kontroly = dokáže
VíceZáklady programování (IZP)
Základy programování (IZP) Jedenácté počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Gabriela Nečasová, inecasova@fit.vutbr.cz
VíceDílčí příklady použití jazykových konstrukcí v projektu. Jazyk C Příklady. Pravidla překladu v gmake. Zadání
Dílčí příklady použití jazykových konstrukcí v projektu Jazyk C Příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 10 A0B36PR2 Programování 2 Program
VíceKlasifikace textu do kategorií spam/ne-spam
Západočeská univerzita v Plzni Fakulta aplikovaných věd Klasifikace textu do kategorií spam/ne-spam KIV/PC 2. ledna 2015 Marek Zimmermann A12B0215P zimmma@students.zcu.cz Obsah 1 Zadání 2 2 Analýza úlohy
Vícematice([[1,1,0,0,0],[1,1,1,0,0],[0,1,1,0,0],[0,0,0,1,1],[0,0,0,1,1]],1). matice([[1,1,1],[1,1,0],[1,0,1]],2).
% Zápočtový program % souvislost grafu % popis algoritmu a postupu % Program využívá algoritmu na násobení matic sousednosti A. % Příslušná mocnina n matice A určuje z kterých do kterých % vrcholů se lze
VíceÚvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
VícePB071 Programování v jazyce C Jaro 2013
Programování v jazyce C Jaro 2013 Uživatelské datové typy, dynamické struktury a jejich ladění Organizační Organizační Vnitrosemetrální test 7.4. Dotazník k domácím úkolům informační, nebodovaný, pomáhá
VíceMATLAB a Simulink R2015b
MATLAB a Simulink R2015b novinky ve výpočetním systému Jan Houška HUMUSOFT s.r.o. houska@humusoft.cz 1 >> 2016 1991 ans = 25 2 Release 2015a a 2015b tradiční dvě vydání do roka březen a září 2015 R2015a
VíceZáklady programování (IZP)
Základy programování (IZP) Osmé 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 20.11.2017,
VíceStruktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
VíceElektronická dokumentace - LATEX. Maticové operace
Elektronická dokumentace - LATEX Maticové operace 29.listopadu 2009 Luděk Bordovský (bor0022) Fakulta elektrotechniky a informatiky VŠB-TU Ostrava Uživatelská příručka 1 Obsah 1 Úvod 3 2 Ovládání 3 3 Operace
VíceZdroj: http://www.fit.vutbr.cz
Zdroj: http://www.fit.vutbr.cz Motivace Cílem této úlohy je zopakovat si nebo se naučit vytváření obecných řešení, která na rozdíl od ad hoc řešení umožňují zvládat složitější úlohy bez nadměrného úsilí,
VíceIUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje
Konstanty I možnosti: přednostně v paměti neexistuje žádný ; o preprocesor (deklarace) #define KONSTANTA 10 o konstantní proměnná (definice) const int KONSTANTA = 10; příklad #include v paměti
VíceZdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.
1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
VíceIUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí
Velké projekty v C velký = 100ky a více řádek udržovatelnost, bezpečnost, přehlednost kódu rozdělení programu do více souborů další prvky globální proměnné, řízení viditelnosti proměnných, funkcí Globální
Více- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:
21.4.2009 Makra - dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h - jak na vlastní makro: #define je_velke(c) ((c) >= 'A' && (c)
Více6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek
6. lekce Úvod do jazyka C knihovny datové typy, definice proměnných základní struktura programu a jeho editace Miroslav Jílek 1/73 https://en.cppreference.com internetová stránka s referencemi https://gedit.en.softonic.com/download
VíceZáklady programování (IZP)
Základy programování (IZP) Deváté 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 27.11.2017,
VíceDynamická vícerozměrná pole. Základy programování 2 Tomáš Kühr
Dynamická vícerozměrná pole Základy programování 2 Tomáš Kühr Statická pole připomenutí Příklad definice: int polea[2][3]; Nejjednodušší způsob vytvoření pole Pole je statické oba rozměry se zadávají konstantou
VíceOperační systémy. Přednáška 8: Správa paměti II
Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné
VícePB071 Programování v jazyce C Jaro 2015
Programování v jazyce C Jaro 2015 Argumenty main(), Typový systém, Dynamická alokace Organizační Polosemestrální test Úterý 7. dubna v 10:00 a 11:00 v D1 20 bodů rozdíl mezi E a C Zdroj: http://www.bugemos.com/?node=342
VícePrincipy operačních systémů. Lekce 2: Správa paměti
Principy operačních systémů Lekce 2: Správa paměti Funkce správce paměti Správce (operační) paměti je součástí kernelu. Jeho implementace může být různá, ale základní funkce jsou obdobné ve všech OS: Udržovat
VíceDNS IT -01-2016 Výrobce a typ Specifikace nabízeného zboží. Celková nabídková cena za položku bez DPH. Cena za 1 jednotku bez DPH. viz.
Příloha č.1 ZD DNS na IT Kód Název položky CPV kód Název cpv kódu Minimální požadované specifikace 1 HDMI splitter 30237000-9 2 PC stanice 3 Monitor k PC 30213000-5 48624000-8 30231310-3 4 SD karta 30237200-1
VíceŘešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou
Řešení problému vážené splnitelnosti booleovské formule pokročilou iterativní metodou 1 SPECIFIKACE ÚLOHY Cílem této úlohy bylo použít vybranou pokročilou iterativní metodou pro řešení problému vážené
VíceZáklady programování (IZP)
Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno Cvičící: Petr Veigend (iveigend@fit.vutbr.cz) Důležité
VíceSeznámení se se zvolenou pokročilou iterativní metodou na problému batohu
4. 12. 213 MI-PAA úkol č. 4 Antonín Daněk Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu 1 SPECIFIKACE ÚLOHY Cílem tohoto úkolu bylo seznámit se s vybranou pokročilou iterativní
VíceTestovací protokol. OpenSSL 1.0.0e. sada PIIX3; 1 GB RAM; harddisk 20 GB IDE OS: Windows Vista Service Pack 2 SW: JSignPDF 1.1.1
Příloha č. 8 1 Informace o testování estovaný generátor: 2 estovací prostředí estovací stroj č. 1: estovací stroj č. 2: estovací stroj č. 3: estovací stroj č. 4: estovací stroj č. 5: Certifikáty vydány
VícePROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10
UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10 Využití zásobníku pro předání parametrů podprogramům a lokální proměnné Jan Dolinay Petr Dostálek Zlín
VícePř. další použití pointerů
Př. další použití pointerů char *p_ch; int *p_i; p_ch = (char *) p_i; // konverze int * na char * 8 int i = 5; int *p_i; p_i = &i; POZOR!!!! scanf("%d", p_i); printf("%d", *p_i); Obecný pointer na cokoliv:
Více09. Memory management. ZOS 2006, L.Pešička
09. Memory management ZOS 2006, L.Pešička Správa paměti paměťová pyramida absolutní adresa relativní adresa počet bytů od absolutní adresy fyzický prostor adres fyzicky k dispozici výpočetnímu systému
VíceOperační systémy. Cvičení 4: Programování v C pod Unixem
Operační systémy Cvičení 4: Programování v C pod Unixem 1 Obsah cvičení Řídící struktury Funkce Dynamická alokace paměti Ladění programu Kde najít další informace Poznámka: uvedené příklady jsou dostupné
VíceJazyk C++ II. Výjimky
Jazyk C++ II Výjimky AR 2013/2014 Jazyk C++ II Funkce abort Dříve byl obvyklý způsob zavolat metodu abort(). Metoda provádí okamžitě: Vyprázdnění vyrovnávací paměti, Ukončení celého programu, Vrátí číslo
VíceReprezentace dat v informačních systémech. Jaroslav Šmarda
Reprezentace dat v informačních systémech Jaroslav Šmarda Reprezentace dat v informačních systémech Reprezentace dat v počítači Datové typy Proměnná Uživatelské datové typy Datové struktury: pole, zásobník,
VíceMnožina čísel int stl-set-int.cpp
Řetězce, pole a STL V C++ je výhodné pro práci s řetězci použít třídu string, funkce C jsou stále k dispozici cstring, ukazatele a pole lze stále používat stejně, jako v C, použití iterátorů a dalších
VíceZáklady programování (IZP)
Základy programování (IZP) Páté 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 5. týden
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceVirtualizace koncových stanic Položka Požadováno Nabídka, konkrétní hodnota
Technická specifikace Obnova školicího střediska OKRI PP ČR Virtualizace koncových stanic 20 ks Výrobce doplnit Název doplnit podpora stávající virtualizační platformy podpora technologie linkovaných klonů
VíceKapitola 11. Vzdálenost v grafech. 11.1 Matice sousednosti a počty sledů
Kapitola 11 Vzdálenost v grafech V každém grafu lze přirozeným způsobem definovat vzdálenost libovolné dvojice vrcholů. Hlavním výsledkem této kapitoly je překvapivé tvrzení, podle kterého lze vzdálenosti
VíceSoftware Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze
Více
Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze
Více
Software Operaèní systém autorské dílo licenci multilicenci Aplikaèní software Komerèní programy upgrade OEM software Demoverze a zku ební verze
Více
Technická specifikace: NPMK Nákup výpočetní techniky
Technická specifikace: NPMK Nákup výpočetní techniky Obecná specifikace Kompaktní kancelářský počítač v provedení small form factor. Procesor (CPU) Frekvence procesoru: min. 2,8 GHz Počet jader: 2 Počet
VíceZadání vzorové úlohy výpočet stability integrálního duralového panelu křídla
Příloha č. 3 Zadání vzorové úlohy výpočet stability integrálního duralového panelu křídla Podklady SIGMA.1000.07.A.S.TR Date Revision Author 24.5.2013 IR Jakub Fišer 1 2 1 Obsah Abstrakt... 3 1 Úvod...
VíceMatematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
VícePole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0
Pole stručný úvod do začátku, podrobně později - zatím statická pole (ne dynamicky) - číslují se od 0 int policko[100]; // tj. pole je od 0 do 99!!! policko[5] = 7; // pozor je to 6. prvek s indexem 5
VíceProcesor. Procesor FPU ALU. Řadič mikrokód
Procesor Procesor Integrovaný obvod zajišťující funkce CPU Tvoří srdce a mozek celého počítače a do značné míry ovlivňuje výkon celého počítače (čím rychlejší procesor, tím rychlejší počítač) Provádí jednotlivé
VíceOperační systémy 2. Přednáška číslo 2. Přidělování paměti
Operační systémy 2 Přednáška číslo 2 Přidělování paměti Základní pojmy Paměť = operační paměť paměť, kterou přímo využívají procesory při zpracování instrukcí a dat Funkce modulu přidělování paměti: Sledování
VíceKarel Johanovský Michal Bílek SPŠ-JIA GRAFICKÉ KARTY
Karel Johanovský Michal Bílek SPŠ-JIA GRAFICKÉ KARTY Úvod Grafická karta se stará o grafický výstup na monitor, TV obrazovku či jinou zobrazovací jednotku. V případě, že grafická karta obsahuje tzv. VIVO
VíceKrokové motory. Klady a zápory
Krokové motory Především je třeba si uvědomit, že pokud mluvíme o krokovém motoru, tak většinou myslíme krokový pohon. Znamená to, že se skládá s el. komutátoru, výkonového spínacího a napájecího prvku,
VíceKolekce, 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
VícePřidělování paměti II Mgr. Josef Horálek
Přidělování paměti II Mgr. Josef Horálek Techniky přidělování paměti = Přidělování jediné souvislé oblasti paměti = Přidělování paměti po sekcích = Dynamické přemisťování sekcí = Stránkování = Stránkování
Více3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem
ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte
VíceVýhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
VíceGPGPU. Jan Faigl. Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze
GPGPU Jan Faigl Gerstnerova Laboratoř pro inteligentní rozhodování a řízení České vysoké učení technické v Praze 8. cvičení katedra kybernetiky, FEL, ČVUT v Praze X33PTE - Programovací techniky GPGPU 1
VíceUNIVERZITA OBRANY. Knihovna HLAGate. Programátorská dokumentace. Petr Františ 24.1.2011
UNIVERZITA OBRANY Knihovna HLAGate Programátorská dokumentace Petr Františ 24.1.2011 Programátorská dokumentace knihovny HLAGate, výsledek projektu DISIM Popis knihovny Knihovna HLAGate je určena pro propojení
VíceX-Sign Basic Uživatelská příručka
X-Sign Basic Uživatelská příručka Copyright Copyright 2015, BenQ Corporation. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována, přenášena, přepisována, ukládána do systému pro
VíceVýběr produktů einstein vhodných pro Vaši školu
Výběr produktů einstein vhodných pro Vaši školu Je Vaše škola vybavená tablety? NE ANO ipady ipad + einstein TM LabMate TM + MiLAB TM einstein TM Tablet+ tablety s OS Windows 8 nebo 8.1 tablet + einstein
VíceObsah. 1. Upozornění. 2. Všeobecný popis
Obsah 1. Upozornění... 1 2. Všeobecný popis... 1 3. Obsah servisního CD... 2 4. Hlavní elektronické části LES-RACK:... 2 5. Nastavení Ethernetového modulu zařízení LES-RACK... 2 6. Použití servisního programu
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová
VíceIntel 80486 (2) Intel 80486 (1) Intel 80486 (3) Intel 80486 (4) Intel 80486 (6) Intel 80486 (5) Nezřetězené zpracování instrukcí:
Intel 80486 (1) Vyroben v roce 1989 Prodáván pod oficiálním názvem 80486DX Plně 32bitový procesor Na svém čipu má integrován: - zmodernizovaný procesor 80386 - numerický koprocesor 80387 - L1 (interní)
VíceLED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48
LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám
VíceNové kreativní týmy v prioritách vědeckého bádání CZ.1.07/2.3.00/30.0055. Tento projekt je spolufinancován z ESF a státního rozpočtu ČR.
Nové kreativní týmy v prioritách vědeckého bádání CZ.1.07/2.3.00/30.0055 Tento projekt je spolufinancován z ESF a státního rozpočtu ČR. Téma: EXCELentní tipy a triky pro mírně pokročilé Martina Litschmannová
VíceZADÁVACÍ DOKUMENTACE PRO VEŘEJNOU ZAKÁZKU
Město Černošice, okres Praha západ Městský úřad Černošice - Riegrova 1209, 252 28 Černošice odbor informatiky e-mail: informatika@mestocernosice.cz ZADÁVACÍ DOKUMENTACE PRO VEŘEJNOU ZAKÁZKU V souladu s
VíceZáklady programování (IZP)
Základy programování (IZP) Druhé laboratorní cvičení Vysoké učení technické v Brně, Fakulta informačních technologií v Brně Božetěchova 2, 612 66 Brno inecasova@fit.vutbr.cz Důležité informace Můj profil:
VíceNPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk
NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk Pavel Töpfer Katedra softwaru a výuky informatiky MFF UK MFF Malostranské nám., 4. patro, pracovna 404 pavel.topfer@mff.cuni.cz http://ksvi.mff.cuni.cz/~topfer
VíceZáklady programování (IZP)
Základy programování (IZP) Šesté 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 6. týden
VíceUSB 3G Dongle OBSAH:
USB 3G Dongle OBSAH: Úvod První uvedení do provozu O produktu Specifikace produktu Upozornění Další informace Obsah balení Poznámky Instalace software a ovladačů Poradce při potížích Průvodce selhání připojení
VíceVýzva k podání nabídky včetně zadávací dokumentace na veřejnou zakázku malého rozsahu
Výzva k podání nabídky včetně zadávací dokumentace na veřejnou zakázku malého rozsahu Zadavatel Úřední název zadavatele: Česká republika - Úřad vlády České republiky IČO: 00006599 Sídlo/místo podnikání:
VícePřidělování paměti I Mgr. Josef Horálek
Přidělování paměti I Mgr. Josef Horálek = Paměť = operační paměť je paměť, kterou přímo využívají procesory při zpracováni instrukci a dat; Paměť Funkce modulu přidělování paměti = Sledování stavu každého
VíceNávrhy elektromagnetických zení
Návrhy elektromagnetických součástek stek a zařízen zení Zuzana Záhorová zuzanaz@humusoft.cz Karel Bittner bittner@humusoft.cz www.humusoft.cz www.comsol comsol.com tel.: 284 011 730 fax: 284 011 740 Program
Více"SUSEN - dodávky základního hardware a základního software, etapa III.
Příloha č. 1 - Specifikace a ceny jednotlivých položek "SUSEN - dodávky základního hardware a základního software, etapa III. Specifikace a ceny jednotlivých položek číslo položky Název typ Cena v Kč (bez
VíceGRAFICKÉ ADAPTÉRY. Pracovní režimy grafické karty
GRAFICKÉ ADAPTÉRY Grafický adaptér (též videokarta, grafická karta, grafický akcelerátor) je rozhraní, které zabezpečuje výstup obrazových dat z počítače na zobrazovací jednotku (monitor, displej, dataprojektor,
Víceak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014
Zadání projektu Texturování Základy počítačové grafiky (IZG) ak. rok 2013/2014 Michal Španěl, spanel@fit.vutbr.cz 24.2.2014 1 První seznámení Cílem projektu je pochopení praktických souvislostí témat přednášek
VíceMANUÁL SMART-MQU. 1. Úvod. 2. Fyzické provedení přenosové sítě.
1. Úvod MANUÁL SMART-MQU Program SMART MQU je určen pro přenos naměřených údajů z ultrazvukového průtokoměru SMART MQU (9500) a MQU 99 firmy ELA,spol. s.r.o.. Přístroj SMART MQU je ultrazvukový průtokoměr
Více