Cvičenie 10 Dušan Lago IB001 21.11.2013 Agenda 1 Radiace algoritmy Insertion sort Bubble sort 2 Rozsah platnosti identifikátorov 3 Makro 4 Rekurzia 5 Reťazce Insertion sort int insertionSort(int* array, int size) { for (int i = 1; i < size; i++) { int j = i; while (j > 0 && array[j] < array[j-1]) { int temp = array[j-1]; array[j-1] = array[j]; array[j] = temp; j--; } } return 0; } Insertion sort program00 Napíšte program implementujúci radiaci algoritmus Insertion Sort. Radenie vymedzte do samostanej funckie, v ktorej použite dva vnorené cykly for. Bubble sort program01 Napíšte program implementujúci radiaci algoritmus Bubble Sort. Radenie vymedzte do samostanej funkcie. Rozsah platnosti identifikátorov ∙ hodnoty parametrov funkcie predávané hodnotou ∙ oblasť platnosti ⇐⇒ viditeľnosť ∙ globálne ∙ lokálne ∙ {} ∙ for ∙ #define až po #undef ∙ prekrytie Rozsah platnosti identifikátorov program02 Ukážka. Makro ∙ realizácia jednoduchších výpočtov program03 V programe 03 nahraďte funkciu int average(int x, int y){} makrom. Makro program04 Napíšte program definujúci makrá CELSIUM_TO_FAHRENHEIT, RADIAN_TO_DEGREE a DEGREE_TO_RADIAN. Rekurzia ∙ schopnosť objektu definovať sa pomocou samého seba program05 Napíšte program definujúci funkcie unsigned int factorial(){} a unsigned int factorialRecursion(){}. Rekurzia program06 Napíšte program definujúci funkciu void printInterval(unsigned long q){}, ktorá vypíše interal od < 1, q > zostupne použitím rekurzie. Reťazce ∙ C nemá dátový typ pre priame uloženie ∙ postupnosť znakov ∙ char retazec[N] ∙ ukončenie ’\0’ ∙ znaky po ’\0’ sú nedostupné ∙ char retazec[] = "Reťazec."; ∙ prístup pomocou indexu ∙ %s, %9s ∙ string.h Reťazce program07 Vo vašom programe si postupne: 1 definujte dve polia typu char s veľkosťou N = 12 2 pomocou funkcie gets() načítajte dva reťazce, ktoré následne vypíšte funkciou puts() 3 pomocou funkcie scanf() načítajte dva reťazce, ktoré následne vypíšte funkciou printf() 4 porovnajte dĺžku načítaných reťazcov a reťazce samotné