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: 20120329-Thu-odkazNaFunkce.c
3 * Datum: 29.03.2012 09:07
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
15 /* *************** Funkce ******************** */
16 float secti(float x, float y) {
17 return x + y;
18 }
19
20 float odecti(float x, float y)
21 {
22 return x - y;
23 }
24
25 int porovnej(const void *x, const void *y)
26 {
27 int a = *((int *) x);
28 int b = *((int *) y);
29 if (a > b)
30 return -1;
31 else if (a == b)
32 return 0;
33 else if (a < b)
34 return 1;
35 }
36
37
38 /****************************************************
39 * Hlavní program.
40 ****************************************************/
41 int main(void) {
42
43 //float *operace(); /*definice funkce, která vrací odkaz na float */
44 float (*operace)(float,float); /*odkaz na funkci, která vrací float */
45 //float *(*operace)(); /*odkaz na funkci, která vrací odkaz float */
46
47 operace = secti;
48 printf("%g\n",operace(1024,512));
49 operace = odecti;
50 printf("%g\n",operace(1024,512));
51
52 int pole[10] = { 2, 38, 1, 87, 8493, 6, 7 ,89 ,2 ,8 } ;
53
54 qsort(pole, 10, sizeof(int), porovnej);
55
56 for (int i=0; i<10; i++) {
57 printf("%d ",pole[i]);
58 }
59 printf("\n");
60
61
62
63
64 return 0;
65 }