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 | ||
+ | </ |