Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldchangelog/action.php on line 8 Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/lib/plugins/importoldindex/action.php on line 0 Deprecated: Function split() is deprecated in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 154 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 456 Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/inc/auth.php on line 453 Strict Standards: Only variables should be passed by reference in /DISK2/WWW/pavel-rimsky.cz/vyuka/wiki/doku.php on line 71 ==== Zadání ==== Napište program, který nejprve přečte z klávesnice kladné celé číslo //n//, které je alespoň 5. Poté přečte //n// čísel a vypíše jejich aritmetický průměr, do průměru však nezahrne dvě největší ani dvě nejmenší čísla. Příklad: je-li vstup 1 2 3 4 5 6 7, průměr bude počítat pouze z čísel 3, 4, 5 (čtyři krajní ignoruje), vypíše tedy číslo 4. ==== Řešení ==== uses crt; {Program bude fungovat pouze pro cisla od -1000 po +1000.} const MAX = 1000; MIN = -MAX; {definice promennych} var n: integer; {pocet cisel} i: integer; {citac cyklu} x: real; {ctene cislo} max1, {nejvetsi nactene cislo} max2, {druhe nejvetsi nactene cislo} min1, {nejmensi nactene cislo} min2: real; {druhe nejmensi nactene cislo} sum: real; {soucet VSECH nactenych cisel} begin {nacteni n - pocet cisel, z nichz chceme pocitat orezany prumer} write('Zadej pocet cisel (minimalne 5): '); readln(n); if (n < 5) then writeln('Cisel bylo mene nez 5...') {uzivatel spravne zadal n - muzeme zacit} else begin {zatim bylo precteno 0 cisel} i := 0; {fiktivni hodnoty maxim a minim - vsechna nactena cisla budou mezi MIN a MAX, tudiz po aspon ctyrech ctenich budou min1, min2, max1 a max2 nahrazeny skutecnymi hodnotami maxim a minim} max1 := MIN - 1; max2 := MIN - 1; min1 := MAX + 1; min2 := MAX + 1; {Pocitame soucet vsech nactenych cisel - dokud jsme nic nenacetli, je roven nule.} sum := 0; {Budeme cist prave n-krat.} while (i < n) do begin {Citac cteni i zvysime o 1 a precteme i-te cislo.} i := i + 1; write ('Zadej ', i, '. cislo: '); readln(x); {K souctu vsech nactenych cisel pricteme prave nactenou hodnotu.} sum := sum + x; {Uprava zapamatovanych maxim a minim.} if (x > max1) then begin max2 := max1; max1 := x; end else if (x > max2) then max2 := x; if (x < min1) then begin min2 := min1; min1 := x; end else if (x < min2) then min2 := x; end; {Vypis vysledku - prumer spocitany z celkove sumy, ale bez ctyr krajnich hodnot.} writeln('Orazany prumer je ', (sum - min1 - min2 - max1 - max2) / (n - 4)); end; readkey; end.