dev pascal- program na średnią ważoną.

0

witam. Mam problem z tym programem

 program wazona;
uses crt;
 var n,i,s,o:integer;
var w:real; {sredenia wazona}
  a:array[1..25]of integer; {ocena}
  b:array[1..25]of integer; {waga}
begin
  writeln('podaj liczbe ocen');
  readln(n); {liczba ocen}
  i:=0;
  repeat
  i:=i+1;
  writeln('podaj ocene');
  readln(a[i]);
  writeln('podaj wage');
  readln(b[i]);
  until i=n;
     i:=0;
     o:=0;
     s:=0;
     repeat
     i:=i+1;
     o:=o+a[i]*b[i];
     s:=s+b[i];
     until i=n;
     w:=o/s;
     writeln ('srednia wazona rowna', w);
     begin
     if
     w<1.705 then  ;
     writeln('masz 1 ');
     if
       w>1.705   then  ;
       writeln('masz 2') ;
       if
       w>2.605 then  ;
       writeln('masz 3')  ;
       if w>3.605  then ;
       writeln('masz 4') ;
       if w>4.505 then;
       writeln('masz 5') ;
       writeln ('masz 6');
               end  ;
       readln()
end.

w sumie działa dobrze,liczy średnią, tylko na końcu po przeliczeniu właśnie tej średniej nie wyświetla danej oceny tylko wszystkie, zresztą sami zobaczycie po odpaleniu.
Co zrobić żeby było git ?
ps. jak dodaje 'else' to w ogóle nie śmiga wyskakuje że spodziewano sie ';' zamiast 'else', dałem taki który mi działał.

0

Fragment Twojego kodu:

if
     w<1.705 then  ;

Wiesz, co robi ta instrukcja?

0

przed „else” nie używamy średnika. po „then” z reguły też nie.

0

Nie potrzebnie te średniki przy ostatnich instrukcjach warunkowych ^^

1 użytkowników online, w tym zalogowanych: 0, gości: 1