- Stahuj zápisky z přednášek a ostatní studijní materiály
- Zapisuj si jen kvalitní vyučující (obsáhlá databáze referencí)
- Nastav si své předměty a buď stále v obraze
- Zapoj se svojí aktivitou do soutěže o ceny
- Založ si svůj profil, aby tě tví spolužáci mohli najít
- Najdi své přátele podle místa kde bydlíš nebo školy kterou studuješ
- Diskutuj ve skupinách o tématech, které tě zajímají
Studijní materiály
Zjednodušená ukázka:
Stáhnout celý tento materiálFAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
Počítače a programování 2
Garant předmětu:
Doc. Dr. Ing. Zbyněk Raida
Autoři textu:
Doc. Dr. Ing. Zbyněk Raida
Ing. Pavel Fiala, Ph.D.
Počítače a programování 2 1
Obsah
1 ÚVOD ................................................................................................................................3
1.1 PROGRAMOVÁNÍ..........................................................................................................3
1.2 ZÁKLADNÍ POJMY A UJEDNÁNÍ.....................................................................................5
1.3 ZÁKLADNÍ PRINCIPY, FUNKCE POČÍTAČE .....................................................................6
1.4 ZÁKLADNÍ PRVKY ZÁPISU BLOKOVÉHO SCHÉMATU .....................................................8
1.5 ALGORITMY.................................................................................................................9
1.6 KONTROLNÍ PŘÍKLADY (ALGORITMIZACE).................................................................10
1.7 KONTROLNÍ OTÁZKY .................................................................................................11
2 BORLAND C++ BUILDER 5.0 ....................................................................................13
2.1 VÝVOJ APLIKACE.......................................................................................................14
2.1.1 Spuštění Builderu..............................................................................................14
2.1.2 Základní nastavení............................................................................................15
2.1.3 Sestavení okna ..................................................................................................15
2.1.4 Ošetření událostí ..............................................................................................16
2.1.5 Ladění ...............................................................................................................17
2.2 KONTROLNÍ PŘÍKLADY ..............................................................................................18
2.3 KONTROLNÍ OTÁZKY .................................................................................................19
3 JAZYK C.........................................................................................................................19
3.1 IDENTIFIKÁTORY .......................................................................................................19
3.2 TYPY DAT, PROMĚNNÉ...............................................................................................20
3.2.1 Lokální a globální proměnné............................................................................20
3.2.2 Pravidla deklarování proměnných ...................................................................21
3.2.3 Základní typy proměnných ...............................................................................22
3.2.4 Ukazatele ..........................................................................................................22
3.2.5 Pole.......................................................................................................................23
3.2.6 Inicializace proměnných...................................................................................26
3.2.7 Kontrolní příklady ............................................................................................26
3.2.8 Kontrolní otázky ...............................................................................................26
3.3 LITERÁLY ..................................................................................................................27
3.3.1 Celočíselné konstanty .......................................................................................27
3.3.2 Racionální konstanty ........................................................................................27
3.3.3 Znakové konstanty ............................................................................................28
3.3.4 Řetězcové konstanty..........................................................................................28
3.4 VÝRAZY A OPERÁTORY .............................................................................................28
3.4.1 Aritmetické konverze ........................................................................................29
3.4.2 Priorita operací ................................................................................................30
3.4.3 Aritmetické operátory.......................................................................................31
3.4.4 Relační operátory .............................................................................................31
3.4.5 Logické operátory.............................................................................................31
3.4.6 Bitové operátory ...............................................................................................34
3.4.7 Operátory inkrementování a dekrementování ..................................................35
3.4.8 Přiřazovací operátory ......................................................................................36
3.4.9 Kontrolní příklady ............................................................................................36
3.4.10 Kontrolní otázky ...............................................................................................36
3.5 PŘÍKAZY ....................................................................................................................37
3.5.1 Příkazy pro větvení programu ..........................................................................39
2 Fakulta elektrotechniky a komunikačních technologií VUT v Brně
3.5.2 Příkazy pro cykly.............................................................................................. 40
3.5.3 Příkazy pro přenos řízení................................................................................. 42
3.5.4 Kontrolní příklady............................................................................................ 45
3.5.5 Kontrolní otázky............................................................................................... 45
3.6 FUNKCE .................................................................................................................... 46
3.6.1 Rekurze funkcí.................................................................................................. 49
3.6.2 Funkce main..................................................................................................... 50
3.6.3 Kontrolní příklady............................................................................................ 51
3.6.4 Kontrolní otázky............................................................................................... 51
3.7 VÍCE O DATOVÝCH TYPECH....................................................................................... 52
3.7.1 Struktury........................................................................................................... 52
3.7.2 Unie.................................................................................................................. 56
3.7.3 Výčtové typy ..................................................................................................... 56
3.7.4 Dynamické proměnné....................................................................................... 59
3.7.5 Kontrolní příklady............................................................................................ 69
3.7.6 Kontrolní otázky............................................................................................... 70
3.8 NÁMĚTY TÉMAT ZÁVĚREČNÝCH PROJEKTŮ............................................................... 70
3.9 ZÁVĚR....................................................................................................................... 71
3.10 LITERATURA ............................................................................................................. 71
4 MATLAB ........................................................................................................................ 72
4.1 UŽIVATELSKÉ ROZHRANÍ MATLABU ...................................................................... 73
4.2 OPERACE S MATICEMI ............................................................................................... 75
4.2.1 Vytváření matic ................................................................................................ 76
4.2.2 Aritmetické operace ......................................................................................... 81
4.2.3 Logické operace ............................................................................................... 83
4.2.4 Relační operace................................................................................................ 84
4.2.5 Kontrolní příklady............................................................................................ 84
4.2.6 Kontrolní otázky............................................................................................... 85
4.3 M-SOUBORY.............................................................................................................. 86
4.3.1 Skripty .............................................................................................................. 86
4.3.2 Funkce.................................................................................................................. 87
4.3.3 Globální proměnné, lokální funkce.................................................................. 88
4.3.4 Řízení běhu programu...................................................................................... 90
4.3.5 Kontrolní příklady............................................................................................ 97
4.3.6 Kontrolní otázky............................................................................................... 98
4.4 PŘÍKLADY ELEKTROTECHNICKÝCH VÝPOČTŮ ........................................................... 98
4.4.1 Numerické integrování..................................................................................... 98
4.4.2 Výpočet spektra signálu ................................................................................. 101
4.4.3 Kontrolní příklady.......................................................................................... 104
4.4.4 Kontrolní otázky............................................................................................. 105
4.5 ZÁVĚR..................................................................................................................... 105
Počítače a programování 2 3
1 Úvod
Předmět Počítače a programování 2 je vyučován v letním semestru 1. ročníku bakalář-
ského studia. Předmět je společný všem oborům bakalářského studijního programu Elektro-
technika, elektronika, komunikační a řídicí technika.
I když je předkládané skriptum věnováno předmětu letního semestru, jeho úvodní pa-
sáže použijeme i v semestru zimním, v předmětu Počítače a programování 1. Zde se totiž
poprvé seznámíme s jazykem C a s vývojovým nástrojem Borland C++ Builder 5.0, s jehož
pomocí budeme společně do tajů jazyka C pronikat.
Poté co se v našem kursu podrobně seznámíme s programováním v jazyce C, přejdeme
k programu Matlab. Matlab je speciální matematický program pro inženýrské a vědecké
výpočty. Většina matematických operací či metod pro zobrazování výsledků již byla tvůrci
Matlabu vytvořena a je nám v současnosti k dispozici. Píšeme-li svůj algoritmus v Matlabu,
nemusíme se matematikou zabývat a můžeme se soustředit na vlastní jádro našeho programu.
Abychom získali popsané znalosti a dovednosti, musíme dobře rozumět tomu, proč
počítač funguje a jak pracuje, co jsou základní části počítače a jaká je jejich funkce. Všechny
tyto znalosti získáme v předmětu Počítače a programování 1.
1.1 Programování
Pod pojmem programování rozumíme
psaní textu, který procesoru počítače jedno-
značně říká, co má dělat a jak. Psaní pro-
gramu můžeme rozdělit do následujících
kroků:
1. Sestavení algoritmu. Na základě zadané-
ho úkolu navrhneme postup (sestavíme
algoritmus), jakým lze danou úlohu vy-
řešit. Algoritmus obvykle vyjadřujeme
blokovým schématem.
Na pevném disku počítače máme v sou-
boru teplo.dat uloženy teploty, které byly
během předchozího dne naměřeny v kaž-
dou celou hodinu. Našim úkolem je určit
tu hodinu, kdy byla teplota nejnižší. Sou-
bor tedy otevřeme (data uložíme do pole
temp) a do pomocné proměnné
min_temp uložíme nerealisticky vysokou
teplotu (900°C). Obsah proměnné
min_temp budeme postupně porovnávat
s jednotlivými zaznamenanými teplotami
(na právě porovnávaný údaj ukazuje index
m). Pokud je některá zaznamenaná teplota
nižší nežli obsah min_temp (větev ANO)
uložíme tuto hodnotu do min_temp, a
start
min_temp←
m ←
min_temp
ANO
NE
min_temp←
min_time←
m m + 1←
mtemp(m)
teplo(m)
m
Obr. 1.1 Algoritmus hledání nejnižší teploty
4 Fakulta elektrotechniky a komunikačních technologií VUT v Brně
současně do proměnné min_time uložíme pořadí daného čísla (dané teploty) v souboru
teplot; pořadí čísla v souboru totiž odpovídá hodině, kdy byla teplota naměřena. V opač-
ném případě (testovaná teplota ze souboru je vyšší nežli obsah min_temp) se nic neděje.
Jakmile projdeme všechna čísla v souboru (index m je větší než počet hodin dne), budeme
mít v proměnné min_temp údaj o nejnižší naměřené teplotě a v proměnné min_time údaj
o hodině, kdy byla tato teplota naměřena.
Popsaný algoritmus lze vyjádřit blokovým schématem z obr. 1.1.
2. Zapsání algoritmu pomocí programovacího jazyka. Na základě přesně daných pravidel
napíšeme text (zdrojový kód), který překladač programovacího jazyka umí přeložit do
kódu strojového – do kódu, kterému „rozumí“ procesor našeho počítače.
Pokud se rozhodneme algoritmus pro vyhledávání nejnižší teploty (obr. 1.1) vyjádřit v ja-
zyku C (s využitím Borland C++ Builder), bude zdrojový kód algoritmu vypadat násle-
dovně:
void __fastcall TForm1::find_min(TObject *Sender)
{
// pole teplot; první údaj naměřen v 1:00, poslední údaj
// naměřen ve 24:00
double temp[24] = {-8.1, -8.3, -8.6, -9.2, -9.4, -9.2,
-9.0, -8.5, -7.9, -6.7, -5.0, -2.3,
+1.1, +2.3, +1.2, -0.8, -2.6, -4.1,
-5.2, -6.3, -7.7, -8.5, -9.1, -9.3};
double min_temp; // nejnižší teplota
int min_time; // hodina, kdy naměřena min.teplota
int m; // index pro vyhledávání
min_temp = 900; // počáteční nastavení
for( m=1; mCaption = IntToStr( min_time); // zobraz hodinu
}
První řádek obsahuje hlavičku, automaticky generovanou Builderem. Složené závorky
označují kód, který společně tvoří jeden blok. Za dvojité lomítko můžeme psát svůj ko-
mentář (znaky komentáře jsou překladačem ignorovány). Slovo double uvozuje reálnou
proměnnou, slovo int celočíselnou proměnnou. Proměnná temp sestává z 24 reálných
čísel. Pomocí znaménka = vložíme do proměnné konkrétní číselnou hodnotu. Řádkem for
říkáme, že následný kód budeme vykonávat od m=1 do m=24 (poté přestane platit mText); // -2- první edit.řádek na číslo
second = StrToInt( Add2Edit->Text); // -3- druhý edit.řádek na číslo
Result->Caption = IntToStr( first + second); // -4- sečtení a zobrazení
}
Na řádku č.1 zavádíme dvě pomocné proměnné, které existují jen uvnitř naší funkce. Pro-
měnné first a second jsou typu int (celé číslo).
Druhý a třetí řádek musíme začít číst zprava. Konstrukce Add1Edit->Text říká, že
budeme pracovat s textem, který uživatel vepíše do prvého editačního řádku (v inspektoru
jsme ho pojmenovali – prostřednictvím položky Name – Add1Edit). Vepsaný text je uložen
ve formě řetězce (posloupnost znaků) v proměnné editačního řádku Text (viz inspektor, zá-
ložka Properties).
Abychom mohli provést operaci sčítání, musíme převést řetězec na číslo. O tuto kon-
verzi se stará standardní funkce StrToInt (String To Integer, převod řetězce na celé číslo).
Vstupním parametrem je řetězec Add1Edit->Text, výstupním parametrem je celé číslo.
Získané celé číslo uložíme do celočíselné pomocné proměnné first.
S obsahem druhého editačního řádku a s jeho převodem na druhý sčítanec je to obdob-
né. Výsledkem je druhý řetězec převedený na celé číslo second.
Na posledním řádku obě čísla sečteme (first+second) a součet převedeme z celo-
číselné formy na řetězec (IntToStr, Integer To String). K zobrazení získaného řetězce vy-
užijeme modrého návěští vedle tlačítka Počítej (pojmenovali jsme ho Result – inspektor,
položka Name). Text návěští je uložen v jeho proměnné Caption. Konstrukce
Result->Caption = s tedy říká, že řetězec s ukládáme do proměnné Caption, která
patří návěští Result.
Dále si můžeme povšimnout, že pro lepší srozumitelnost je naše funkce doplněna ko-
mentáři. Komentářem rozumíme libovolný řetězec, umístěný za dvojité lomítko. Komentář
může obsahovat libovolné znaky včetně mezer a českých písmen. Text za dvojitým lomítkem
je překladačem ignorován.
Naši jedinou událost tedy máme ošetřenu. Nyní je třeba zkontrolovat, zda program fun-
guje a zda pracuje správně.
2.1.5 Ladění
Při ladění zastavíme program na začátku bloku, v němž předpokládáme chybu (na od-
povídající řádek programu vložíme přerušovací bod, breakpoint. Poté kritický blok krokujeme
pomocí Trace Into nebo Step Over. V jednotlivých krocích prohlížíme obsah proměnných a
18 Fakulta elektrotechniky a komunikačních technologií VUT v Brně
ověřujeme správnost jejich obsahu. Pokud zjistíme nesprávnou hodnotu, můžeme ji pro další
ladění nahradit hodnotou korektní.
Ke kontrole obsahu proměnných a jejich změně slouží položka menu Run → Evaluate/
Modify. Výběrem této položky otevřeme okno z obr. 2.4a. Do řádku Expression vepíšeme
název proměnné, stiskneme Evaluate a v editačním poli Result objeví její obsah. Chceme-li
obsah proměnné změnit, vepíšeme do řádku New value novou hodnotu proměnné a stiskneme
Modify. Do řádku Expression lze psát i celé výrazy (např. i+j).
Obr. 2.4 Okno pro vyčíslení
výrazů a změnu obsahu proměn-
ných (vlevo). Obsah vybraných
proměnných (vpravo).
K prostému prohlížení obsahu proměnných slouží jednak „bublinová“ nápověda edi-
tačního okna (zastavíme-li kurzor myši na jménu proměnné, objeví se barevný obdélník
s textovým vyjádřením obsahu proměnné) a jednak tzv. Watch List (obr. 2.4b). Watch List je
okno (otevřeme ho prostřednictvím položky menu Run → Add watch), zobrazující seznam
vložených proměnných a jejich obsah. Proměnné vkládáme stisknutím klávesy Insert a ma-
žeme klávesou Delete. Proměnnou (nebo výraz) do okna Watch List je možné rovněž přenést
z řádku Expression okna Evaluate/Modify stiskem Watch.
Ladicí nástroje Builderu jsou velmi efektivní a velmi pohodlné. Přesto je lepší dobře si
promyslet a také nakreslit algoritmus sestavovaného programu, abychom se nedopouštěli zby-
tečných logických omylů. Nutné je dobře se naučit syntaxi programovacího jazyka, abychom
se nedopouštěli zbytečných omylů syntaktických. Takže – hurá na studium jazyka C.
2.2 Kontrolní příklady
Příklad 1. Navrhněte a sestavte program, který bude pomocí tří editačních řádků pro-
vádět operace součet a rozdíl. Výsledek bude zobrazen do třetího editačního řádku. Operaci
součtu nebo rozdílu proveďte po kliknutí na odpovídající tlačítko. Výsledek se okamžitě zo-
brazí v příslušném editačním řádku.
Příklad 2. Navrhněte a sestavte program, který bude pomocí jednoho editačního řádku
provádět operace součet a rozdíl. Výsledek bude zobrazen v editačním řádku. Operaci součtu
nebo rozdílu proveďte po kliknutí na odpovídající klávesu pro zobrazení výsledku.
Příklad 3. Navrhněte a s
Vloženo: 28.05.2009
Velikost: 1,23 MB
Komentáře
Tento materiál neobsahuje žádné komentáře.
Mohlo by tě zajímat:
Skupina předmětu BPC2 - Počítače a programování 2
Reference vyučujících předmětu BPC2 - Počítače a programování 2
Podobné materiály
- BFSL - Finanční služby - Skripta
- BPC1 - Počítače a programování 1 - Skripta Počítače a programování
- BAEY - Analogové elektronické obvody - Skripta Analaogové el.obvody-lab.cvičení
- BAEY - Analogové elektronické obvody - Skripta Analogové el.obvody- počítačová a laboratorní cvičení
- BAEY - Analogové elektronické obvody - Skripta Analogové el.obvody-počítačová cvičení
- BAEY - Analogové elektronické obvody - Skripta Analogové el.obvody
- BASS - Analýza signálů a soustav - Signály a systémy skripta
- BASS - Analýza signálů a soustav - Skripta Dskrétní signály a diskrétní systémy
- BASS - Analýza signálů a soustav - Skripta Spojité systémy 2.část
- BASS - Analýza signálů a soustav - Skripta Spojité systémy
- BASS - Analýza signálů a soustav - Skripta
- BDIZ - Diagnostika a zkušebnictví - Skripta Diagnostika a testování el.systémů
- BDIZ - Diagnostika a zkušebnictví - Skripta Diagnostika a zkušebnictví
- BDIZ - Diagnostika a zkušebnictví - Skripta Speciální diagnostika
- BEL1 - Elektrotechnika 1 - Skripta Elektrotechnický seminář
- BEL1 - Elektrotechnika 1 - Skripta Elektrotechnika 1 - Laboratorní a počítačová cvičení
- BEL1 - Elektrotechnika 1 - Skripta Elektrotechnika 1
- BEL1 - Elektrotechnika 1 - Skripta Technická dokumentace
- BEL2 - Elektrotechnika 2 - Skripta elektrotechnika II
- BEL2 - Elektrotechnika 2 - Skripta laboratorní cvičení 2006
- BEL2 - Elektrotechnika 2 - Skripta laboratorní cvičení 2008
- BEL2 - Elektrotechnika 2 - Skripta počítačové cvičení 200
- BEL2 - Elektrotechnika 2 - Učitelská skripta
- BELF - Elektrické filtry - Skripta Analýza el. obvodů programem
- BELF - Elektrické filtry - Skripta Elektrické filtry
- BEMV - Elektrotechnické materiály a výrobní procesy - Skripta Elektotechnické materiály a výrobní procesy
- BEMV - Elektrotechnické materiály a výrobní procesy - Skripta Elektrotechnické materiály a výrobní procesy - lab. cvičení
- BEMV - Elektrotechnické materiály a výrobní procesy - Skripta Materiály v elektrotechncie
- BESO - Elektronické součástky - Skripta Elektronické součástky - Laboratorní cvičení
- BESO - Elektronické součástky - Skripta Elektronické součástky 2002
- BESO - Elektronické součástky - Skripta Elektronické součástky 2007
- BESO - Elektronické součástky - Skripta Elektronické součástky
- BFY1 - Fyzika 1 - Skripta Fyzikální seminář
- BFY1 - Fyzika 1 - Skripta Průvodce studia předmětu Fyzika 1
- BFY2 - Fyzika 2 - Skripta kmity
- BFY2 - Fyzika 2 - Skripta Optika
- BFY2 - Fyzika 2 - Skripta termofyzika
- BFY2 - Fyzika 2 - Skripta Vlny
- BMA1 - Matematika 1 - Skripta Matematický seminář
- BMA1 - Matematika 1 - Skripta Matematika 1 Počítačová cvičení Maple
- BMA1 - Matematika 1 - Skripta Matematika 1
- BMA1 - Matematika 1 - Skripta Matematika 3
- BMA2 - Matematika 2 - Skripta matematický seminář
- BMA2 - Matematika 2 - Skripta Matematika I
- BMA2 - Matematika 2 - Skripta Matematika II
- BMA3 - Matematika 3 - Skripta Matematika 3
- BMA3 - Matematika 3 - Skripta Sbírka Matematika 3
- BMFV - Měření fyzikálních veličin - Skripta Měření fyz.veličin - návody do lab.cvičení
- BMPS - Modelování a počítačová simulace - Skripta Modelování a počítačová simulace- Počítačová cvičení
- BMTD - Materiály a technická dokumentace - Skripta MTD Laboratorní cvičení
- BMTD - Materiály a technická dokumentace - Skripta MTD část materiály v elektrotechnice
- BMTD - Materiály a technická dokumentace - Skripta MTD část Technická dokumentace - počítačová a konstrukční cvičení
- BMTD - Materiály a technická dokumentace - Skripta MTD část technická dokumentace
- BMVE - Měření v elektrotechnice - Měření v elektrotechnice - Lab.cviceni -skripta
- BMVE - Měření v elektrotechnice - Skripta Meření v elektrotechnice- návody k lab. cvič.
- BMVE - Měření v elektrotechnice - Skripta Měření v elektrotechnice - lab.cvičení II
- BMVE - Měření v elektrotechnice - Skripta Měření v elektrotechnice - laboratorní cvičení
- BPC2 - Počítače a programování 2 - Skripta 2008
- BPIS - Praktikum z informačních sítí - Skripta
- BVNP - Vysoké napětí a elektrické přístroje - Skripta Blažek 1975
- BVNP - Vysoké napětí a elektrické přístroje - Skripta Elektr.přístroje část II
- BVNP - Vysoké napětí a elektrické přístroje - Skripta Lab.cv. Vysoké napětí
- BVNP - Vysoké napětí a elektrické přístroje - Skripta Vysoké napěti el.stroje
- BVNP - Vysoké napětí a elektrické přístroje - Skripta Vysoké napětí část I.
- BVPA - Vybrané partie z matematiky - Skripta Vybrané partie z matematiky
- BEL2 - Elektrotechnika 2 - Učitelská skripta laboratoře
- BPIS - Praktikum z informačních sítí - skripta
- BESO - Elektronické součástky - nová skripta
- AMA2 - Matematika 2 - skripta
- BEKE - Ekologie v elektrotechnice - Něco ze zkoušek, skripta atd..
- BRR2 - Řízení a regulace 2 - Skripta Řízení a regulace 2
- BVPM - Vybrané partie z matematiky - BVPM - skripta k předmětu
- BEPO - Etika podnikání - BEPO (XEPO) - Skripta
- BNAO - Návrh analogových integrovaných obvodů - Skripta BNAO 2010
- BEVA - Elektromagnetické vlny, antény a vedení - BEVA 2 skripta - přednášky a sbírka úloh.zip
- BMPT - Mikroprocesorová technika - BMPT 2011 zadani PC cviceni + skripta s ucivem
- ABSN - Biosenzory - Skripta
- ALDT - Lékařská diagnostická technika - Skripta
- BMVA - Měření v elektrotechnice - Skripta BMVA
- MTOC - Theory of Communication - Teorie sdělování-skripta
Copyright 2024 unium.cz