#include "types.h" #include // fixed array size #define ARR_SIZE 10 #ifndef TEST_BUILD int main(int argc, char *argv[]) { // TODO: 0. Staticky inicializujte alokované pole int array[ARR_SIZE] = {1,2,3,4,5,6,7,8,9,10}; array_print(array, ARR_SIZE); // TODO: 2b. Pronásobte hodnoty pole libovolným číslem array_multiply(array, ARR_SIZE,2); // TODO: 2c. Vytiskněte aktualizované pole array_print(array, ARR_SIZE); // TODO: 3b. Vložte libovolnou hodnotu na indexy 3 a 7 int a = array_insert(array,ARR_SIZE, 69, 3); int b = array_insert(array,ARR_SIZE, 420, 7); // TODO: 3c. V případě chyby informujte uživatele if(!a || !b){ printf("Upsík dupsík, nastala chyba"); return 1; } // TODO: 3d. Vytiskněte aktualizované pole array_print(array, ARR_SIZE); return 0; } #endif /** * Vytiskne obsah pole na standardní výstup programu. * Tisk musí proběhnout na jeden řádek, konkrétní * oddělovač jednotlivých prvků není vynucován. * * Hlavičky žádných funkcí NEMĚŇTE! * * @param array pole, které bude zobrazeno * @param size velikost pole */ void array_print(int array[], int size) { // TODO: 1a. implementujte funkci dle zadání for (int i = 0; i < size; i++) { printf("%d ", array[i]); } printf("\n"); } /** * Vynásobí všechny prvky zadaného pole zvolenou hodnotou. * * Hlavičky žádných funkcí NEMĚŇTE! * * @param array pole, jehož hodnoty budou násobeny * @param size velikost pole * @param multiplier násobitel */ void array_multiply(int *array, int size, int multiplier) { for (int i = 0; i < size; i++) { array[i] *= multiplier; } } /** * Vloží prvek do zadaného pole na zvolený index. * Ostatní prvky přesune směrem doprava, ke konci pole. * Přebývající prvek je smazán. * * Hodnoty relevantních vstupních parametrů odpovídajícím * způsobem ošetřete. * * Hlavičky žádných funkcí NEMĚŇTE! * * @param array pole, do kterého bude nový prvek vložen * @param size velikost pole * @param value hodnota k vložení * @param position index na který bude hodnota vložena * * @returns hodnotu 1 pokud vložení proběhlo úspšně, 0 jinak */ int array_insert(int array[], int size, int value, int position) { if(position > size-1 || position < 0) return 0; for (int i = 0; i < size; i++) { if(position == i){ for (int afterInsertIndex = size-1; afterInsertIndex>position; afterInsertIndex--) { array[afterInsertIndex] = array[afterInsertIndex-1]; } array[position] = value; break; } } return 1; }