Αποστολέας Θέμα: Askhsh  (Αναγνώστηκε 800 φορές)

Κώστας.Γ

  • Νέος
  • *
  • Μηνύματα: 5
Askhsh
« στις: 05 Μάρ 2013, 04:11:59 μμ »
να γράψετε πρόγραμμα που να διαβάζει συνεχώς αριθμούς μέχρι να διαβάσει καποιον αρνητικό αριθμό και να βγάζει το μέσο ορό όλων των αριθμών εκτός του αρνητικού

Program arithmoi;
var x,i,a:real;
begin
   writeln('Dwse arithmo');
   readln(x);
   i:=0;
   a:=0;
   while x<0 do
      begin
      i:=i+1;
      readln(x);
      a:=a+x
      end;
      writeln('o mesos oros einai :',a/i);
end.      

κατά την εκτέλεση μου βγάζει runtime error 207 που είναι το πρόβλημα?

Νίκος Αδαμόπουλος

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2784
  • Πύργος Ηλείας
    • ΚΕΠΛΗΝΕΤ Ηλείας
Απ: Askhsh
« Απάντηση #1 στις: 06 Μάρ 2013, 12:11:42 πμ »
Το πρόβλημα είναι ότι έχεις λάθος συνθήκη στη while. Η συνθήκη σου σημαίνει ότι "όσο το x<0 επανάλαβε". Εσύ δίνεις αρχικά μη αρνητικό αριθμό, επομένως δεν μπαίνει στο βρόχο της while, και εκτελείται στη συνέχεια η τελευταία εντολή. Εκεί λοιπόν έχεις διαίρεση με το μηδέν!

Κώστας.Γ

  • Νέος
  • *
  • Μηνύματα: 5
Απ: Askhsh
« Απάντηση #2 στις: 06 Μάρ 2013, 01:14:48 πμ »
euxaristo tora douleuei