Algoritmy I Cvičení č.1 1
ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář EA441 jiri.dvorsky@vsb.cz www.cs.vsb.cz/dvorsky 2
Přihlášení Osobní číslo Každý uživatel počítačové sítě TUO-Net má automaticky přiděleno osobní číslo. Osobní číslo se skládá ze tří písmen a tří (nebo čtyř) číslic, např.: abc123 Osobní číslo slouží pro identifikaci v počítačových systémech. Heslo Počáteční heslo je uživateli nastaveno jeho rodné číslo (bez lomítka) Uživatel je povinen změnit si heslo co nejdříve Prvotní heslo opravňuje uživatele k 6 přihlášením Zapomenuté heslo může nastavit fakultní - požádat musíte osobně - nelze telefonicky či poštou 3
ALG I, informace Ukončení klasifikovaný zápočet Tři testy po max 20 bodech, min z každého 10 bodů Písemka max 40, min 21 bodů Opisování NE!!! Totožné nebo jen mírně modifikované projekty, neschopnost vysvětlit zdrojový kód apod. Opisování u testů Disciplinární komise podmíněné nepodmíněné vyloučení ze studia 4
Programátorské desatero Programování je lidská činnost, vyžaduje tedy trénink. Programování není cíl, ale prostředek k dosažení cíle. Programování vyžaduje pochopení algoritmizovaného problému. Programátor přemýšlí. Programátor pracuje samostatně. Programátor čte, zejména dokumentaci. Programátor se stále učí nové věci. Programátor testuje to, čemu ještě nerozumí. Programátor umí improvizovat. Programátor optimalizuje. Programátor musí umět přecházet plynule mezi více jazyky. Programátor umí hledat chyby. Programátor hledá chyby, aby se poučil. Programátor umí číst cizí kód. Je to poučné. Programátor píše slušně. Programátor si musí poradit s více editory. Programátor musí umět přečíst kód i bez zvýrazněné syntaxe. 5
ALG I, informace Instalace (odkazy na webové stránce cvičícího a přednášejícího) MS Visual Studio 2013 (univerzální prostředí C++, C#, Jscript, VB, ) Zadání cvičení, web cvičícího Literatura tamtéž 6
Visual Studio Vytvoření projektu File New Project Klikněte na "Visual C++ Projects" v boxu Project Types. V boxu Templates vyberte "Win32 Console Project. Pojmenujte projekt, např. cv1 (nepoužívejte mezery a speciální znaky) a vyberte adresář, kam se projekt (zdrojové soubory, výsledný program ) uloží. Pro druhý a další projekty bude potřeba vybrat soultion nejlépe mějte stále tutéž, vyberte tedy "Add to Solution" Klikněte na Next v boxu "Application Settings" vyberte "Empty project" a klikněte na Finish. 7
Visual Studio Přidání souboru do projektu Klikněte (pravým tl.) v okně Solution Explorer na jméno projektu (cv1) Klikněte na Add Add New Item Vyberte "C++ File Pojmenujte v boxu "Name" Váš zdrojový soubor, např. HelloWorld. Soubor obdrží příponu.cpp A můžeme začít programovat! 8
První program // Pokud překladač narazí na výskyt #include, zpřístupní funkce dané knihovny. #include <stdio.h> // hlavní funkce programu int main() { // na konzoli vypíšeme 'Hello world' a odřádkujeme printf("hello world\n"); } // návratová hodnota 0 return 0; 9
Visual Studio Spuštění programu Debug "Start Without Debugging CTRL+F5 Pokud se objeví následující zpráva: "These project configuration(s) are out of date:... Would you like to build them?" vyberte "Yes". Tato volba uloží vaše soubory a vytvoří spustitelný (executable).exe soubor. Pokaždé když modifikujete vaše soubory a chcete znovu spustit váš program musíte na tuto výzvu odpovědět "Yes". Program se nyní spustí. V adresáři vašeho projektu, tj. v adresáři se zdrojovým souborem.cpp, se vytvořil nový podadresář "Debug. Váš program, tedy spustitelný soubor s příponou.exe, se uloží do něj. 10
Kompilační překladač Překlad ze zdrojového jazyka (např. C++) do cílového jazyka (Absolutní binární kód, přemístitelný binární kód (.obj,.o), jazyk symbolických instrukcí) C++ je kompilovaný jazyk Ze zdrojového souboru.cpp se sestaví tzv. přemístitelný modul (.obj), poté se linkuje do spustitelného (.exe) souboru a pak je spuštěn. 11
Konvence Komentáře Na začátku každého zdrojového souboru (třídy) uveďte: - stručný popis zdrojového souboru (třídy), - autora či autory, - označení verze (pořadové číslo či datum poslední změny). Před každou funkcí by měl být její popis doplněný o popis významu jednotlivých parametrů a návratových hodnot. Vlastní kód můžete rovněž doplnit o komentář, zejména pokud jste začátečníci. 12
Konvence Identifikátory ( C like jazyky jsou tzv. case senzitivní jazyk pozor na malá a velká písmena!) Prvním symbolem smí být pouze písmeno nebo podtržítko, poté následuje libovolná kombinace písmen, číslic a podtržítek Klíčová slova se píšou malými písmeny! Jména proměnných a funkcí pište malými písmeny s využitím podtržítek Nevhodné je používat dva stejné identifikátory rozlišené jen velikostí písmen (suma x SUMA) 13
Konvence Srozumitelnosti přispívá vhodná volba názvů proměnných, funkcí, tříd, šablon a jiných entit. Mnemotechnické názvy - např. pocet_bodu nebo soucet() - jsou rozhodně vhodnější než názvy, které nic neříkají - jako nb nebo S(). Šetřit na délce názvů přinese víc problémů než úspor. Funkce main vrací vždy hodnotu typu int. Občas (i v učebnicích) můžete spatřit deklaraci void main(), ale ta neodpovídá žádné z norem jazyka C, ani normě jazyka C++. 14
Konvence Formátování Na jednom řádku by měl být jeden příkaz, deklarace jedné proměnné. Obsah bloku odsaďte vždy o 3 či 4 mezery. V rámci jednoho bloku by měly být všechny příkazy odsazeny stejně (většina IDE odsazuje sama). Otevírací závorka bloku je obvykle na konci řádku (nebo na začátku dalšího, nemíchat oba přístupy), uzavírací samostatná na řádku. V řídících strukturách vždy používejte složené závorky pro bloky (a to i v případě, že v bloku je pouze jeden příkaz). Používejte mezeru před otevírací závorkou a okolo operátorů. 15
Konvence Formátování Doporučuje se, aby délka řádku nepřekročila 120 znaků (jazyk poskytuje dostatek možností, jak zkrátit dlouhé řádky pro zápis na potřebnou délku). Tabulátor přitom považujte ve shodě s obvyklými programy pro výpis textu za 8 mezer, ale raději se mu vyhněte úplně. Podobně výstupy formátujte tak, aby byly optimalizovány pro terminál o 24 řádcích po 120 znacích. Na konci má program zanechat kursor na novém řádku. 16