====== 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]]*/