Το Στέκι των Πληροφορικών

Επαγγελματικό Λύκειο => Γενικά => Προγραμματισμός Υπολογιστών => Μήνυμα ξεκίνησε από: Κώστας.Γ στις 05 Μαρ 2013, 04:11:59 ΜΜ

Τίτλος: 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 που είναι το πρόβλημα?
Τίτλος: Απ: Askhsh
Αποστολή από: Νίκος Αδαμόπουλος στις 06 Μαρ 2013, 12:11:42 ΠΜ
Το πρόβλημα είναι ότι έχεις λάθος συνθήκη στη while. Η συνθήκη σου σημαίνει ότι "όσο το x<0 επανάλαβε". Εσύ δίνεις αρχικά μη αρνητικό αριθμό, επομένως δεν μπαίνει στο βρόχο της while, και εκτελείται στη συνέχεια η τελευταία εντολή. Εκεί λοιπόν έχεις διαίρεση με το μηδέν!
Τίτλος: Απ: Askhsh
Αποστολή από: Κώστας.Γ στις 06 Μαρ 2013, 01:14:48 ΠΜ
euxaristo tora douleuei