Да се позволи въвеждане на числа до въвеждане на 0 и да се отпечата:
- сумата на положителните
- произведението на нечетните
- броят на числата, които са кратни на 5
- средното аритметично на всички числа
- най-малкото и най-голямото положително число
Да се позволи въвеждане на числа до въвеждане на 0 и да се отпечата:
Трябва да влезете, за да публикувате коментар.
program Project1; var chislo, sumap, suma, pr, br, brc, max, min:integer; begin Writeln('Vavedi razlichni chisla chisla'); suma:=0; sumap:=0; pr:=1; br:=0; max:=0; min:=0; brc:=0; repeat Readln(chislo); // сума на всички числа suma:=suma+chislo; brc:=brc+1; // сумата на положителните if chislo>0 then sumap:=sumap+chislo; //произведението на нечетните if chislo mod 2 = 1 then pr:=pr*chislo; //броят на числата, които са кратни на 5 if chislo mod 5 = 0 then br:=br+1; //най-малкото и най-голямото положително число if chislo>0 then if chislo>max then max:=chislo; if chislo>0 then if chislo<min then min:= chislo; until chislo=0 ; Writeln; Writeln('Sumata na polojitelnite chisla e: ',sumap); Writeln('Proizvedenieto na nechetnite chisla e: ',pr); Writeln('Broqt na chislata, koito sa kratni na 5 sa: ',br); Writeln('Sredno aritmetichno na vsichki chisla e: ',suma/brc:5:2); Writeln('Nai-golqmoto chislo e: ',max); Writeln('Nai-malkoto chislo e: ',min); Readln; end.Ехаа, колко добре обяснена и форматирана програма, браво!
Проверката за min и max може да бъде и по-проста, така:
if chislo>0 then begin if chislo>max then max:=chislo; else if chislo<min then min:= chislo; end;program Project1; var chislo, SumPol, ProizvNech, BrKr5, suma, br, MinPol, MaxPol: integer; begin //задаване на начални стойности SumPol:=0; ProizvNech:=1; BrKr5:=0; suma:=0; br:=0; //въвеждане на първо число, за да се зададат стойности на MinPol и MaxPol WriteLn('Vavejdaite chisla:'); ReadLn(chislo); if chislo<>0 then begin if chislo>0 then SumPol:=SumPol+chislo; if ((chislo mod 2=1) or (chislo mod 2=-1)) then ProizvNech:=ProizvNech*chislo; if (chislo mod 5=0) then BrKr5:=BrKr5+1; suma:=suma+1; br:=br+1; if (chislo>0) then begin MinPol:=chislo; MaxPol:=chislo; end; end; //цикъл с постусловие repeat ReadLn(chislo); if chislo>0 then SumPol:=SumPol+chislo; if ((chislo mod 2=1) or (chislo mod 2=-1)) then ProizvNech:=ProizvNech*chislo; if ((chislo mod 5=0) and (chislo<>0)) then BrKr5:=BrKr5+1; suma:=suma+1; br:=br+1; if (chislo>MaxPol) then MaxPol:=chislo; if ((chislo<MinPol) and (chislo>0)) then MinPol:=chislo; until chislo=0; //извеждане на данни WriteLn('Vie vavedohte 0. Tova e kraiat na programata.'); WriteLn; WriteLn('Sumata na polovitelnite chisla e ', SumPol); WriteLn('Proizvedenieto na nechetniete chisla e ', ProizvNech); WriteLn('Broiat na chislata, kratni na 5, e ', BrKr5); WriteLn('Srednoto aritmetichno na vsichki chisla e ', suma/br); WriteLn('Nai-malkoto pologitelno chislo e ', MinPol); WriteLn('Nai-goliamoto pologitelno chislo e ', MaxPol); ReadLn; end.Ехаа, колко подробно обяснена! Но ако първото ти число е отрицателно, няма да ти укаже стойност на MinPol и MaxPol. Другото е вярно.
program Project1; var chislo,suma,pn,k5,min,max:integer; begin suma:=0; pn:=0; k5:=0; min:=0; max:=0; WriteLn('Vavedete chisla:'); repeat ReadLn(chislo); if chislo>0 then suma:=suma+chislo; if chislo mod 2 =1 then pn:=chislo*chislo; if chislo mod 5=0 then k5:=k5+1; if chislo>max then max:=chislo; if chislo<min then min:=chislo; until chislo=0 ; WriteLn('Sumata e: ',suma); WriteLn('Proizvedenieto na nechetnite chisla e: ',pn); WriteLn('Kratnite na 5 sa: ',k5); WriteLn('Maximalnoto chislo e: ',max); WriteLn('Minimalnoto chislo e: ',min); ReadLn; end.Браво Вики! Само произведението ти няма да се смята вярно, виж си грешката.
program Project1; var suma, min, max, chislo:integer; begin suma:=0; min:=0; max:=0; WriteLn ('vavedete chisla'); repeat ReadLn (chislo); if chislo>0 then suma:= suma+chislo; if chislo>max then max:= chislo; if chislo<min then min:= chislo; until chislo=0; Writeln ('sumata e: ',suma ); Writeln ('maksimalnoto chislo e: ',max); Writeln ('minimalnoto chislo e: ',min); Readln; end.