Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Zdravím. Ve škole jsme dostali úkol a já si sním nevím rady. Na cykli jsem ve škole nebyl z netu jsem to nějak nepochopil a proto váš prosím o radu jak napsat toto v pascalu
V průběhu roku jste si zaznamenali náklady na provoz domácnosti v každém čtvrtletí. Na základě zaznamenaných údajů (t.j. čtyř čísel) vypište celkové náklady za rok (použijte cyklus) a určete ve kterém čtvrtletí byly náklady nejvyšší, a ve kterém nejnižší a kolik činily. Hodnoty o jednotlivých čtvrtletích uchovejte v poli hodnot.
Ještě jsem pochopil že se ty čísla mezi sebou porovnaj ale to je tak vše.
Předem díky
Offline
V cykle načítaš 4 čísla do jednorozmerného poľa t.j. každý štvrťrok...
Urobíš súčet všetkých čísel nachádzajúcich sa v poli = celkové náklady...
Vyhľadáš maximum a minimum...
Môžeš to urobiť všetko v jednom cykle teda hneď pri načítaní hodnôt, alebo si urobiť 3 samostatné cykly resp. funkcie.
Offline
↑ Salsho:
Hodnoty budeš mít v poli, které bude obsahovat 4 hodnoty. Víš jak deklarovat toto pole? Dále potřebuješ proměnnou pro celkové náklady.
Celkové náklady budou součet všech nákladů. Zde použiješ cyklus (jedno který, ale asi for bude nejednodušší), tím budeš procházet pole a přičítat jeho hodnoty
Bude to takto:
for i:=1 to 4 do celkem:=celkem+pole[i]
i - řídící proměnná cyklu, nutno také deklarovat! zde proměnná typu integer, nemusí se předem zadat její počáteční hodnota (jinak řídící proměnnou může být kterýkoliv ordinální datový typ)
1 to 4 - hodnoty, kterých bude proměnná i nabývat tj. 1, 2, 3, 4
celkem:=celkem+pole[i] - příkaz, kterým budeš sčítat náklady, do proměnné celkem bude přičítat hodnotu pole s indexem i, která je řídící proměnnou cyklu (její hodnota se bude měnit automaticky), proměnnou celkem je před cyklem nutné nastavit na 0
Offline
↑ Salsho:
Mohlo by to třeba být takto (horší, i když správné řešení):
program naklady_domacnosti; uses crt; var udaje:array[1..4] of integer; celkove,min,ctvrtleti_min,max,ctvrtleti_max,i:integer; begin clrscr; for i:=1 to 4 do begin write('Zadej naklady domacnosti za ',i,'. ctvrtleti: '); readln(udaje[i]); end; celkove:=0; for i:=1 to 4 do celkove:=celkove+udaje[i]; writeln('Celkove naklady cinily ',celkove,' kc.'); min:=udaje[1]; ctvrtleti_min:=1; for i:=1 to 4 do if min>udaje[i] then begin min:=udaje[i]; ctvrtleti_min:=i; end; writeln('Nejnizsi naklady byly ve ',ctvrtleti_min,'.ctvrtleti a cinily ',min,' kc.'); max:=udaje[1]; ctvrtleti_max:=1; for i:=1 to 4 do if max<udaje[i] then begin max:=udaje[i]; ctvrtleti_max:=i; end; writeln('Nejvyssi naklady byly ve ',ctvrtleti_max,'.ctvrtleti a cinily ',max,' kc.'); end.
Nebo se to dá vše udělat v jednom cyklu:
program naklady_domacnosti; uses crt; var udaje:array[1..4] of integer; celkove,min,ctvrtleti_min,max,ctvrtleti_max,i:integer; begin clrscr; celkove:=0; min:=udaje[1]; ctvrtleti_min:=1; max:=udaje[1]; ctvrtleti_max:=1; for i:=1 to 4 do begin write('Zadej naklady domacnosti za ',i,'. ctvrtleti. '); readln(udaje[i]); celkove:=celkove+udaje[i]; if min>udaje[i] then begin min:=udaje[i]; ctvrtleti_min:=i; end; if max<udaje[i] then begin max:=udaje[i]; ctvrtleti_max:=i; end; end; writeln('Celkove naklady cinily ',celkove,' kc.'); writeln('Nejnizsi naklady byly ve ',ctvrtleti_min,'.ctvrtleti a cinily ',min,' kc.'); writeln('Nejvyssi naklady byly ve ',ctvrtleti_max,'.ctvrtleti a cinily ',max,' kc.'); end.
Offline
Stránky: 1