Одређивање минимума и максимума¶
Нека променљиве \(a_1\), \(a_2\), \(a_3\), и \(a_4\) садрже 4 броја од којих треба одредити највећи. Одредићемо најпре највећи број у ужем скупу вредности, а затим постепено проширивати скуп док не обухватимо све дате бројеве. Означимо са \(M_1\), \(M_2\), \(M_3\) и \(M_4\) редом максимуме скупова \(S_1 = \{ a_1 \}\), \(S_2 = \{ a_1, a_2 \}\), \(S_3 = \{ a_1, a_2, a_3 \}\), \(S_4 = \{ a_1, a_2, a_3, a_4 \}\). Очигледно је да је \(M_1 = a_1\). Даље, за свако k важи да је максимум \(M_{k+1}\) скупа \(S_{k+1}\) једнак већем од бројева \(М_k\) и \(a_{k+1}\).
На основу уочених релација можемо да формулишемо следећи поступак за одређивање највећег од 4 дата броја:
najveci = a1;
if (a2 > najveci)
najveci = a2;
if (a3 > najveci)
najveci = a3;
if (a4 > najveci)
najveci = a4;
Врло сличним поступком можемо да одредимо и најмањи од неколико, на пример 5 датих бројева:
najmanji = a1;
if (a2 < najmanji)
najmanji = a2;
if (a3 < najmanji)
najmanji = a3;
if (a4 < najmanji)
najmanji = a4;
if (a5 < najmanji)
najmanji = a5;
Уместо if наредби у ову сврху могу да се употребе и функције Math.Max и Math.Min из стандардне библиотеке. На пример, наредбe
if (a4 > najveci)
najveci = a4;
if (a5 < najmanji)
najmanji = a5;
имају исти ефекат као и наредбe
najveci = Math.Max(najveci, a4);
najmanji = Math.Min(najmanji, a5);
Пример - све три награде:
У једној популарној телевизијској емисији три спонзора деле своје производе присутнима у публици. Први спонзор награђује гледаоце на местима од \(a_1\) до \(a_2\), други на местима од \(b_1\) до \(b_2\), а трећи на местима од \(c_1\) до \(c_2\) (укључујући и границе), при чему се ови бројеви мењају у свакој емисији.
Написати програм који учитава бројве \(a_1, a_2, b_1, b_2, c_1, c_2\), а затим исписује број посетилаца који су добили све три награде.
Дата су нам три интервала својим почетком и крајем. Да бисмо решили задатак, прво ћемо да одредимо највећи почетак интервала као највећи од бројева \(a_1, b_1, c_1\) и најмањи крај интервала као најмањи од бројева \(a_2, b_2, c_2\). Гледаоци који су добили производе сва три спонзора постоје ако је највећи почетак мањи или једнак најмањем крају и у том случају број таквих гледалаца је \(min(a_2, b_2, c_2)+1-max(a_1, b_1, c_1)\). Програм који решава задатак може да се напише овако:
Решавањем задатака који следе проверите да ли сте научили како да израчунате и комбинујете минимуме и максимуме малих серија бројева.