uses crt;
procedure Start;
begin
clrscr;
writeln('Program do obliczen sredniej z n liczb');
end;
function WczytanieDanych(var a:integer):integer;
begin
write('Podaj liczbe: ');
readln(a);
end;
function Petla(var znak:char; licznik:byte);
begin
licznik:=0;
repeat
licznik:=licznik+1;
write('Czy chcesz podawac dalej? t/n');
readln(znak);
znak:=upcase(znak);
until znak='N'
end;
var
a:integer;
srednia:real;
licznik:word;
begin
Start;
WczytanieDanych(a);
Petla(licznik,znak);
readln;
end.
Zwracam się znowu z prośbą
nie wiem czy to ja jestem taki oporny czy to jest takie trudne…
bez procedur i funkcji program ten bym wykonał w minute… po co utrudniać sobie życie jeśli coś jest łatwe takie jakie jest no ale ok.
MUSZE zrobić program który obliczny średnią z n liczb.
Ma to wyglądać jakos tak:
licznik:=0
(petla) (sądzę iż pętla FOR jest bardzo dobra w tym przypadku, ponieważ nie wiem z góry z ilu liczb chcę liczyć średnią)
licznik:=licznik+1;
podaj liczbe
czytaj liczbe
czy chcesz dalej podawac t/n?
jesli n…
(end petla)
to
srednia:=a/liczik (ktory bedzie w pętelce)
end
i problem tkwi w tym iż nie wiem jak użyć pętli w procedurze bądź funkcji. czy wszystko (zaczytanie,obliczenie) ma być w jednej procedurze czy musi być rozbite na kilka…
uses crt;
procedure start;
begin
writeln('srednia z n liczb');
end;
procedure CzytajDane(var suma:real; var licznik:byte);
var
liczba:real;
znak:char;
suma_x:real;
begin
suma_x:=0;
suma:=0;
licznik:=0;
repeat
write('Podaj liczbe ');readln(liczba);
IF liczba>0 then
begin
suma_x:=suma_x+liczba;
licznik:=licznik+1;
end;
write('Czy nastepna liczba t/n ');readln(znak);
znak:=upcase(znak);
until znak<>'T';
suma:=suma_x;
end;
function srednia(suma:real; licznik:word):real;
begin
srednia:=suma/licznik;
end;
procedure OblicziWyswietl(suma:real; licznik:word);
begin
writeln('Srednia= ',srednia(suma,licznik):6:2);
end;
var
suma:real;
licznik:byte;
begin
clrscr;
start;
CzytajDane(suma,licznik);
OblicziWyswietl(suma,licznik);
readln;
end.
{By Hondus}