====== 1. Seznámení s učebnou, základy reprezentace dat, číselné soustavy ====== * pro vyučující: [[..:..:internal:tutorials:01:start|cvičení 1]] ===== Osnova cvičení ===== - požadavky na zápočet, hodnocení - seznámení s učebnou - základní reprezentace čísel, program v C ===== Co bych si měl na první cvičení zopakovat / připravit ===== - Nastavit heslo pro GNU/Linux instalaci v místnosti KN:E-307 na:http://www.felk.cvut.cz/, v položce IT služby na KN - binární a hexadecimální reprezentace čísel - syntaxe jazyka C - pojmy little/big endian - doplňkový kód ===== Náplň cvičení ===== Cílem cvičení je seznámení s učebnou, zopakování základních pojmů na téma reprezentace dat v počítači. Na cvičení budeme vycházet z následujícího programu v C, který budeme dále modifikovat. Program pro zobrazování reprezentace čísel: #include #define PRINT_MEM(a) print_mem((unsigned char*)&(a), sizeof(a)) void print_mem(unsigned char *ptr, int size) { int i; printf("adresa = 0x%08lx\n", (long unsigned int)ptr); for (i = 0; i < size; i++) { printf("0x%02x ", *(ptr+i)); } printf("\n"); } int main() { unsigned int unsig = 5; int sig = -5; printf("hodnota = %d\n", unsig); PRINT_MEM(unsig); printf("\nhodnota = %d\n", sig); PRINT_MEM(sig); return 0; } Překlad programu: gcc -Wall -ansi -pedantic ./program.c ==== Úkoly ==== - přeložte a spusťte uvedený program - interpretujte výstupy programu - modifikujte program tak, aby tiskl vnitřní reprezentaci i jiných datových typů (např. char, float) - modifikujte program tak, aby vytiskl tabulku celých čísel čísel včetně jejich reprezentace v rozsahu -16 až 15 - modifikujte program tak, aby realizoval operace sčítání a odčítání dvou proměnných (celá čísla) a vytiskl na obrazovku vstupní operandy a výsledky těchto operací včetně jejich vnitřní reprezentace - vyzkoušejte operace s kladnými i zápornými čísly, zaměřtě se i na takové hodnoty, kdy po provedení operace dojde k přetečení ===== Užitečné odkazy ===== * [ [[http://support.dce.felk.cvut.cz/pos/cv-langc/|http://support.dce.felk.cvut.cz/pos/cv-langc/]] ] - Základy jazyka C * [ [[http://www.gnu.org/software/libc/manual/html_node/Formatted-Output.html|http://www.gnu.org/software/libc/manual/html_node/Formatted-Output.html]] ] - Dokumentace k řízení formátovaného výstupu pro implementaci **printf** z knihovny funkcí pro jazyk C ([[http://www.gnu.org/software/libc/|GLIBC]]) z projektu [[http://www.gnu.org/|GNU]] ===== Domácí úkoly ===== * domácí úkoly 1 až 3 budou zadané a odevzdávané elektronickou formou * vstup k zadání a odevzdání úkolů je přes adresu [[https://dcenet.felk.cvut.cz/apo/|https://dcenet.felk.cvut.cz/apo/]] * Na stránce "Assignments" naleznete seznam zadaných úkolů * Pro vyzkoušení práce s odevzdávacím systémem je k dispozici nehodnocená varianta prvního úkolu **1st training homework** * Případnými problémy s odevzdávacím systémem se obracejte na svého cvičícího nebo přímo na autora/správce sytému [[courses:a0b36apo:teacher:susta:start|Richarda Šustu]] ===== Počítačová síť v učebně KN:E-307 ===== Učebna KN:E-307 je vybavena počítači se síťovou instalací operačního systému Ubuntu GNU/Linux. Po zapnutí počítače je zaveden z lokálního serveru přes PXE zavaděč GRUB. Ten umožňuje volit * boot z lokálního disku stanice * nahrání nového image nastaveného učitelem na lokálním serveru * spuštění distribuované síťové verze operačního systému [[http://www.debian.org/|Debian Jessie]] Volba menu zajistí natažení image jádra GNU/Linux a počátečního RAM-disku ze sítě s využitím protokolu TFTP. Po spuštění jádra je připojen přes NFS kořenový svazek. Ten je ale připojen jen v režimu pro čtení. Pro dočasné uložení lokálních změn je pak nad tuto adresářovou strukturu namapovaný souborový systém pro dočasné uložení lokálních změn. Jedná se buď o modul [[http://aufs.sourceforge.net/|AUFS]] nebo [[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/overlayfs.txt|Overlayfs]]. Pro ověření přihlašovacích údajů se používá systém Kerberos. Do adresářové struktury systému jsou připojené domovské adresáře přes síťový protokol NFS. ===== Studentská konta a hesla ===== Pro ověření oprávnění k přístupu do systému a se používá systém Kerberos Katedry počítačů. Heslo pro instalace GNU-Linuxu na Katedře počítačů lze nastavit na stránce http://www.felk.cvut.cz/ , v položce IT služby na KN Nastavení hesla pro učebny KN:E-307, KN:E-310, KN:E-311, KN:E-331, T2:H1-130, T2:H1-131. ===== Řešení problémů s konty, obnova dat ===== V případě problémů s kontem kontaktuje Ing. Petra Bendu ze skupiny IT K13136 (petr.benda@fel.cvut.cz). /* * [[courses:a0b36apo:solutions:01:start]]*/