Na dzisiejszych zajęciach o funkcjach, porządkowaniu kody w plikach, strukturach i uniach. Praca domowa gratis.
s04e01-funkcja-makro.c
#include <stdio.h>#include <stdlib.h>#define MIN(x,y) x<y ? x : y/* deklaracje funkcji */int max(int x, int y);int main(int argc, char *argv[]){ int a, b; printf("Podaj dwie liczby oddzielone spacja: "); scanf("%d %d",&a,&b); printf("a=%d, b=%d,nmax(a,b)=%dn",a,b,max(a,b)); printf("MIN(a,b)=%dn",MIN(a,b)); system("PAUSE"); return 0;}int max(int x, int y){ if(x>y) return x; return y; }
s04e02-argc-argv.c
#include <stdio.h>#include <stdlib.h>#define MIN(x,y) x<y ? x : y#define MAX(x,y) x>y ? x : yint main(int argc, char *argv[]){ if(argc!=3){ printf("Musisz podac dwie liczby jako argument...n"); } else { int a = atoi(argv[1]); int b = atoi(argv[2]); printf("a = %dnb = %dn",a,b); printf("MAX(a,b) = %dn",MAX(a,b)); printf("MIN(a,b) = %dn",MIN(a,b)); } system("PAUSE"); return 0;}
s04e03-sort-introduction.c
#include <stdio.h>#include <stdlib.h>void randArray(int *array, int len);void printArray(int *array, int len);void sortArray(int *array, int len);int main(int argc, char *argv[]){ int len = 10; int tablica[len]; randArray(tablica,len); printArray(tablica,len); sortArray(tablica,len); printArray(tablica,len); system("PAUSE"); return 0;}void randArray(int *array, int len){ int i; srand(time(NULL)); for(i=0;i<len;i++){ array[i]=rand()%100; }}void printArray(int *array, int len){ int i; for(i=0;i<len;i++){ printf("tablica[%d]: %dn",i,array[i]); }}void printArray(int *array, int len){ //TODO}
s04e04 – porządki
main.c
#include <stdio.h>#include <stdlib.h>#include "arrays.h"int main(int argc, char *argv[]){ int len = 10; int tablica[len]; randArray(tablica,len); printArray(tablica,len); system("PAUSE"); return 0;}
arrays.h
void randArray(int *array, int len);void printArray(int *array, int len);void sortArray(int *array, int len);
arrays.c
#include <stdio.h>#include <stdlib.h>void randArray(int *array, int len){ int i; srand(time(NULL)); for(i=0;i<len;i++){ array[i]=rand()%100; }}void printArray(int *array, int len){ int i; for(i=0;i<len;i++){ printf("tablica[%d]: %dn",i,array[i]); }}void sortArray(int *array, int len){ //TODO}
Tak rozbity kod kompilujemy za pomocą polecenia:
gcc main.c arrays.c -o main
s04e05-struct.c
#include <stdio.h>#include <stdlib.h>struct Punkt{ int x; int y;};int main(int argc, char *argv[]){ struct Punkt a; a.x = 5; a.y = 7; struct Punkt b; b.x = 3; b.y = 1; printf("a = (%d,%d), b = (%d,%d)n",a.x,a.y,b.x,b.y); system("PAUSE"); return 0;}
s05e06-struct-of-struct.c
#include <stdio.h>#include <stdlib.h>struct Punkt{ int x; int y;};struct Wektor{ struct Punkt a; struct Punkt b;};int main(int argc, char *argv[]){ struct Punkt a; a.x = 5; a.y = 7; struct Punkt b; b.x = 3; b.y = 1; struct Wektor w; w.a = a; w.b = b; printf("Wektor: (%d,%d), (%d,%d)n",w.a.x,w.a.y,w.b.x,w.b.y); system("PAUSE"); return 0;}
s04e07 – struct porządek
main.c
#include <stdio.h>#include <stdlib.h>#include "wektor.h"int main(int argc, char *argv[]){ Punkt a = {5,7}; Punkt b = {3,1}; Wektor w = {a,b}; printf("Wektor: (%d,%d), (%d,%d)n",w.a.x,w.a.y,w.b.x,w.b.y); //system("PAUSE"); return 0;}
wektor.h
#include "punkt.h"typedef struct { Punkt a; Punkt b;} Wektor;
punkt.h
typedef struct { int x; int y;} Punkt;
s04e08-union.c
#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ union { int a; double b; } u; u.a = 3; u.b = 1.53; printf("%dn",u.a); printf("%fn",u.b);}