2. Analýza a návrh řešení

2.2. Rozměr pole

Prvním podprogramem je RozmerPole - viz Obrázek 1. Tato funkce navrací rozměr pole, na jehož základě je následně generován vektor. Funkce přijímá stávající počet prvků, který je uložen do formálního parametru n. Dalším formálním parametrem je konstanta Max. Ve Flowgorithm nelze deklarovat konstantu, proto jsme pojmenovali konstantu velkým písmenem, abychom ji rozeznali od jiné proměnné, nebo parametru. Ve funkci jsou deklarovány následující proměnné:

  • zmena - celočíselná hodnota představující informaci, zda má být provedena změna rozměru pole na základě uživatelem definované hodnoty
  • novaHodnota - uživatelem zadaná hodnota představující nový rozměr vektoru

Po vypsání stávajícího počtu prvků vektoru je pomocí cyklu s podmínkou na konci realizováno čtení celého čísla představujícího informaci, zda chce uživatel provést změnu stávající hodnoty velikosti vektoru. Hodnota 0 uložená do proměnné zmena představuje volbu uživatele, že nechce změnit stávající počet prvků vektoru. Pokud chce uživatel měnit hodnotu velikosti pole zadá v konzoli hodnotu 1. Při zadávání hodnoty se mohlo stát, že uživatel omylem uvedl nevalidní (neplatnou) hodnotu, tj. hodnota je mimo povolený rozsah, nebo neodpovídá požadovanému datovému typu. V tomto případě hodnota uložená v proměnné zmena splní test v řídící podmínce cyklu, tj. jedna z částí řídící podmínky je vyhodnocena jako True a díky operátoru logického součtu || (zatímco platí první část podmínky nebo druhá část řídící podmínky), je celý proces zadávání hodnoty opakován. 

Pokud uživatel zadal hodnotu 1, má být provedena změna počtu prvků na novou hodnotu uloženou do proměnné novaHodnota. Před načtením je ve výpisu uvedena dolní (1) a horní mez (Max) intervalu, ve kterém se nová hodnota musí pohybovat. Pokud načtená hodnota neodpovídá intervalu, je do proměnné novaHodnota uložena maximální přípustná velikost vektoru uložená v konstantě Max. Pokud nová hodnota neodpovídá stávající hodnotě počtu prvků vektoru n, je do proměnné n přiřazena nově načtená hodnota. Tato proměnná n je následně přiřazena návratu funkce - viz Obrázek 1. 

Podprogram RozmerPole - funkce určení rozměru jednorozměrného pole

Obrázek 1: Podprogram RozmerPole - funkce pro určení rozměru jednorozměrného pole