image/svg+xml

» Poradna » Programy

Pascal kontrola

 |   |  Microsoft Windows 7 Chrome 36.0.1985.143

Zdravím,za úkol mám vytvořit v pascalu program, který by vypočítal aritmetický průměr, kde by uživatel mohl zadat libovolný počet číslic, které by ukončil číslem 0 a číslo 0 už by se do průměru nezapočítávalo. Vytvořil jsem následující program, který funguje, ale nevím zda neni příliš "krkolomný" proto prosím o zhodnocení a případnou radu. DěkujiZde můj programbegin writeln('pro supsteni programu klikni na klavesi 1'); readln (c); pocet:=-1; { -1 z toho důvodu, aby se do proměné nepočítalo ukončovací číslo 0 } suma:=0; while c<>0 do {dokud nebude c = 0 budou se cyklus opakovat a uživatel bude moci zadávat libovlný počet čísel } if c=0 then {podmínka je vytvořena, aby se ukončovací číslo 0 nepočítalo do prumeru} else begin writeln ('zadej cislo'); readln (c); suma:=c+suma; pocet:=pocet+1; end; prumer:=suma / pocet; writeln (prumer:0:2); readln;end.

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Firefox 31.0

Je to trochu krkolomné.Pocet:=0;Suma:=0;Repeat writeln ('zadej cislo'); readln(c); Suma:=Suma+c; {nulu lze klidne pricist} if c<>0 then Pocet:=Pocet+1;until c=0;prumer:=suma / pocet;writeln (prumer:0:2);readln;

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Firefox 31.0

Sry, v případě, že uživatel zadá první nulu, tak dojde k dělení nulou. Něco doplnímPocet:=0;Suma:=0;Repeatwriteln ('zadej cislo');readln(c);Suma:=Suma+c; {nulu lze klidne pricist}if c<>0 then Pocet:=Pocet+1;until c=0;if pocet>0 then begin prumer:=suma / pocet; writeln (prumer:0:2);end else writeln('Nebylo zadano zadne cislo');readln;

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 36.0.1985.143

Jasný repeat použít podmínka na konci to se tady hodí víc. Já na to repeat furt zapomínám.Dík.

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Firefox 31.0

No a nakonec mi počet rádků vyjde asi jako tobě, takže Ok, nech si svou verzi, je dobrá

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 36.0.1985.143

To možná jo, ale je to přehlednější a já to nemám, že bych to měl za úkol někde na odevzdání, ale jenom tak pro sebe a zajímalo mě jestli neni nějaký jednoduší postup než co jsem vyplodil já.

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Firefox 31.0

No přehlednějí to s tím repeat asi je, ale nic si z toho nedělej, já jsem zase dlouho zapomínal na while a dlouho tvrdošíjně používal jen repeat , ono někdy je naopak výhodnější použít while.

Souhlasím  |  Nesouhlasím

Související témata: Suma, Libovolný počet