Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.
1/1
Na této stránce jsou k dispozici zdrojové soubory, které jsem vytvářel při výkladu během výuky. Nejsou to ukázkové a bezchybné zdrojové soubory. Ba naopak, jsou to pracovní neučesané verze, které vznikaly interaktivně ve výuce, často s cílem ukázat, že "takto se to nemá".
1 /*
2 * Soubor: 20120105-Thu-matice-obrazek.c
3 * Datum: 05.01.2012 08:27
4 * Autor: Marek Nožka, nozka <@t> spseol <d.t> cz
5 * Licence: GNU/GPL
6 * Úloha:
7 * Popis:
8 ****************************************************/
9 #define _ISOC99_SOURCE
10 #define _GNU_SOURCE
11 #include <stdio.h>
12 #include <stdbool.h>
13 #include <stdlib.h>
14 #include <ctype.h>
15
16 #define RADKU 128
17 #define SLOUPCU 128
18 #define ABCD ('z'-'a'+1)
19
20
21 /****************************************************
22 * Hlavní program.
23 ****************************************************/
24 int main(void)
25 {
26 int i, j;
27 int znak;
28 char matice[RADKU][SLOUPCU];
29
30 /* - je černá
31 * + je bílá */
32
33 /* naplním matici daty */
34 i = 0;
35 while ((znak = getchar()) != EOF && i < RADKU * SLOUPCU) {
36 znak = tolower(znak);
37 if ( isalpha(znak) ) {
38 matice[0][i] = znak;
39 i++;
40 }
41 }
42 j=0;
43 while (i < RADKU * SLOUPCU) {
44 matice[0][i] = matice[0][j];
45 i++;
46 j++;
47 }
48
49 /* uložím matici do obrázku */
50 FILE *soubor;
51 soubor = fopen("matice.xpm", "w");
52 fprintf(soubor, "! XPM2\n%d %d %d 1\n", RADKU, SLOUPCU, ABCD);
53 for (i = 0; i < ABCD; i++) {
54 fprintf(soubor, "%c c #%02x%02x%02x\n", 'a' + i,
55 rand() % 256, rand() % 256, rand() % 256);
56 }
57 for (i = 0; i < RADKU; i++) {
58 for (j = 0; j < SLOUPCU; j++) {
59 fputc(matice[i][j], soubor);
60 }
61 fputc('\n', soubor);
62 }
63
64 fclose(soubor);
65
66
67
68 return 0;
69 }