Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verze | |||
| pitel:ijc:du1 [08. 04. 2013, 09.24:36] – file pitel | pitel:ijc:du1 [30. 12. 2022, 13.43:01] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | ====== Domácí úkol č.1 ====== | ||
| + | <file c enumdny.c> | ||
| + | // Encoding: ISO-8859-2 | ||
| + | // enumdny.c | ||
| + | // Řešení IJC-DU1, příklad a) | ||
| + | // Autor: Jan Kaláb, FIT | ||
| + | // Přeloženo gcc 4.1.1 | ||
| + | |||
| + | #include " | ||
| + | #include " | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | const char *DayShort [] = {"", | ||
| + | const char *DayShortASCII [] = {"", | ||
| + | const char *DayLong [] = {"", | ||
| + | const char *DayLongASCII [] = {"", | ||
| + | |||
| + | void JeToDen (enum dny den) { | ||
| + | if (den < Po || den > Ne) | ||
| + | Error(" | ||
| + | } | ||
| + | |||
| + | void PrintDayShortASCII (enum dny den) { | ||
| + | JeToDen(den); | ||
| + | printf (" | ||
| + | } | ||
| + | |||
| + | void PrintDayLongASCII (enum dny den) { | ||
| + | JeToDen(den); | ||
| + | printf (" | ||
| + | } | ||
| + | |||
| + | void PrintDayShort(enum dny den) { | ||
| + | JeToDen(den); | ||
| + | printf(" | ||
| + | } | ||
| + | |||
| + | void PrintDayLong(enum dny den) { | ||
| + | JeToDen(den); | ||
| + | printf(" | ||
| + | } | ||
| + | |||
| + | enum dny ReadDay (void) { | ||
| + | // printf(" | ||
| + | |||
| + | char slovo[100]; //100 znaku by mohlo stacit | ||
| + | int i=0; | ||
| + | int znak; | ||
| + | |||
| + | while ((znak=getchar())!=EOF) { | ||
| + | if (znak==EOF) return 0; | ||
| + | if (!isalpha(znak)) continue; //zahodime blbosti | ||
| + | if (i < sizeof(slovo)-1) slovo[i++] = tolower(znak); | ||
| + | } | ||
| + | slovo[i++] = ' | ||
| + | // printf (" | ||
| + | | ||
| + | for (enum dny i = Po; i <= Ne; i++) { | ||
| + | if (strcmp(slovo, | ||
| + | if (strcmp(slovo, | ||
| + | if (strcmp(slovo, | ||
| + | if (strcmp(slovo, | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <file c enumdny.h> | ||
| + | // enumdny.h | ||
| + | // Řešení IJC-DU1, příklad a) | ||
| + | // Autor: Jan Kaláb, FIT | ||
| + | // Přeloženo gcc 4.1.1 | ||
| + | |||
| + | enum dny {Po=1, Ut, St, Ct, Pa, So, Ne}; | ||
| + | |||
| + | void PrintDayShort (enum dny den); | ||
| + | void PrintDayShortASCII (enum dny den); | ||
| + | void PrintDayLong (enum dny den); | ||
| + | void PrintDayLongASCII (enum dny den); | ||
| + | |||
| + | enum dny ReadDay(void); | ||
| + | </ | ||
| + | |||
| + | <file c enumtest.c> | ||
| + | // enumtest.c | ||
| + | // Řešení IJC-DU1, příklad a) | ||
| + | // Autor: Jan Kaláb, FIT | ||
| + | // Přeloženo gcc 4.1.1 | ||
| + | |||
| + | #include " | ||
| + | #include " | ||
| + | |||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | int main(void) { /* test funkcí - NEMĚNIT!!! */ | ||
| + | enum dny den; | ||
| + | char *l = setlocale(LC_ALL," | ||
| + | if(l==NULL) | ||
| + | Error(" | ||
| + | den = ReadDay(); // čte Po, Pondělí, Pondeli, PONdeli, .... | ||
| + | PrintDayShort(den); | ||
| + | printf(" | ||
| + | PrintDayShortASCII(den); | ||
| + | printf(" | ||
| + | PrintDayLong(den); | ||
| + | printf(" | ||
| + | PrintDayLongASCII(den); | ||
| + | printf(" | ||
| + | for( den = Po; den < 10; den++ ) { /* úmyslná chyba */ | ||
| + | PrintDayShortASCII(den); | ||
| + | printf(" | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <file c error.cz> | ||
| + | // error.c | ||
| + | // Řešení IJC-DU1, příklad a) | ||
| + | // Autor: Jan Kaláb, FIT | ||
| + | // Přeloženo gcc 4.1.1 | ||
| + | |||
| + | #include " | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | void Error (const char *fmt, ...) { | ||
| + | va_list parametry; | ||
| + | va_start (parametry, fmt); | ||
| + | fprintf (stderr, " | ||
| + | vfprintf (stderr, fmt, parametry); | ||
| + | fprintf (stderr, " | ||
| + | va_end (parametry); | ||
| + | exit (1); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <file c error.h> | ||
| + | // error.h | ||
| + | // Řešení IJC-DU1, příklad a) | ||
| + | // Autor: Jan Kaláb, FIT | ||
| + | // Přeloženo gcc 4.1.1 | ||
| + | |||
| + | void Error (const char *fmt, ...); | ||
| + | </ | ||
| + | |||
| + | <file make Makefile> | ||
| + | CC = gcc | ||
| + | CFLAGS = -O2 -std=c99 -pedantic -Wall | ||
| + | PROGS = enumtest | ||
| + | LOGIN = xkalab00 | ||
| + | ARCHIVER = zip | ||
| + | |||
| + | all: $(PROGS) | ||
| + | |||
| + | enumtest: enumtest.o error.o enumdny.o | ||
| + | |||
| + | enumdny.o: enumdny.c error.h enumdny.h | ||
| + | enumtest.o: enumtest.c error.h enumdny.h | ||
| + | error.o: error.c error.h | ||
| + | |||
| + | clean: | ||
| + | -rm -f *.o $(PROGS) | ||
| + | |||
| + | pack: | ||
| + | -$(ARCHIVER) $(LOGIN).zip *.c *.h Makefile | ||
| + | </ | ||