Witam, otóż muszę zrobić program, który by obliczał średnią ważoną. Znalazłem na innym forum kod źródłowy użytkownika o nicku - Lou93 - który sobie przystosowałem do swojej potrzeby. I mam 1 problem, otóż za każdym razem program trzeba uruchamiać od nowa by wyczyścić tablice która jest tworzona, mimo kodu który ma rzekomo ją czyścić, czy ktoś mógłby mi wskazać drogę żeby faktycznie program sam sobie czyścił tą tablicę po wykonaniu i wypisaniu wyniku, zamiast uruchamiać go od nowa za każdym razem?
program srednia;
uses crt;
var
i, j:integer;
oceny:array[1..32] of real;
waga:array[1..32] of integer;
suma_ocen:real;
suma_wag:integer;
klawisz:char;
zakoncz:string;
LABEL
zle;
begin
zle:
clrscr;
writeln(' ____________________________');
writeln('/ \');
writeln('| LICZENIE SREDNIEJ WAZONEJ |');
writeln('\____________________________/');
writeln;
writeln;
writeln('INSTRUKCJA');
writeln('________________________________________________________________________________');
writeln;
writeln('kalkualtor zapyta o ocene ktora nalezy wprowadzic w postaci liczby');
writeln('calkowitej [np 5 dla piatki][UWAGA! dla ocen z + i - ocene nalezy');
writeln('wpisac w postaci liczby rzeczywistej, np dla 3+ 3.75 (koniecznie');
writeln('kropka . a nie przecinek ,), a nastepnie kalkulator zapyta o jej');
writeln('wage [nalezy ja wpisac w postaci calkowitej, np dla wagi 0,10 nalezy');
writeln('wpisac 10.');
writeln;
writeln;
writeln('kliknij aby przejsc dalej');
klawisz:=readkey;
clrscr;
repeat
write('Podaj z ilu ocen chcesz wyliczyc srednia wazona (max 32) : ');
readln(i);
if i>32 then
begin
writeln('Za duza liczba');
goto zle;
end
else
for j:=1 to i do
begin
clrscr;
writeln('._______________.');
writeln('|ocena | sposob |');
writeln('| | zapisu |');
writeln('|---------------|');
writeln('| 1+ | 1.50 |');
writeln('| 2- | 1.50 |');
writeln('| 2+ | 2.50 |');
writeln('| 3- | 2.75 |');
writeln('| 3+ | 3.50 |');
writeln('| 4- | 3.75 |');
writeln('| 4+ | 4.50 |');
writeln('| 5- | 4.75 |');
writeln('| 5+ | 5.50 |');
writeln('| 6- | 5.75 |');
writeln('|_______________|');
writeln('powyzej znajduje sie tabela z przykladowa postacia ocen, nie ma');
writeln('obowiazku podazania za wartosciami ocen z + i -, chodz liczby');
writeln('nadal musza byc zapisywane w postaci rzeczywistej');
writeln;
writeln('Podaj ', j,'. ocene');
readln(oceny[j]);
writeln('Podaj wage tej oceny');
readln(waga[j]);
end;
writeln;
writeln;
write('Srednia : ');
for j:=1 to i do
begin
suma_ocen:=suma_ocen+(oceny[j]*waga[j]);
suma_wag:=suma_wag+waga[j];
end;
writeln(suma_ocen/suma_wag:8:2);
writeln;
writeln('kliknij aby kontynuowac');
readkey;
{---------petla do 'czyszczenia' tablicy--------------}
for j:=1 to 32 do
begin
oceny[j]:=0;
waga[j]:=0;
end;
{---------petla do 'czyszczenia' tablicy--------------}
clrscr;
writeln('chcesz obliczyc srednia kolejnego ucznia czy zakonczyc program?');
writeln('["kont" lub "uczen" by kontynuowac ; "exit" by wyjsc');
readln(zakoncz);
until zakoncz='exit'
end.