Αποστολέας Θέμα: Βοηθεια  (Αναγνώστηκε 651 φορές)

GeorgeG

  • Θαμώνας
  • ***
  • Μηνύματα: 37
Βοηθεια
« στις: 29 Δεκ 2012, 06:14:57 μμ »
Αν κάποιος μπορεί να μ βοηθήσει να βρω το λάθος που υπάρχει σε αυτό τον κώδικα

program test1;
uses crt;
var plithos:longint;
epitokio,epit,sun_kef,sun_tokos,kef:real;
const
dek=10000000;
begin
clrscr;
plithos:=0;
sun_tokos:=0;
repeat
writeln('Dwse kefalaio');
readln(kef);
until kef<dek;
writeln('Dwse epitokio');
readln(epit);
repeat
epitokio:=(kef*epit)/100;
sun_kef:=epitokio+kef;
sun_tokos:=sun_tokos+epitokio;
plithos:=plithos+1;
until sun_kef>=dek;
writeln('Ta synolika xronia einai',plithos);
writeln('To synoliko epitokio einai',sun_tokos);
readln;
end.

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2167
Απ: Βοηθεια
« Απάντηση #1 στις: 29 Δεκ 2012, 06:25:23 μμ »
Το λάθος σου είναι ότι έτσι δεν αποθηκεύεις το καινούριο κεφάλαιο στην ίδια μεταβλητή με το προηγούμενο και έτσι το κεφάλαιο σου είναι ίδιο σε κάθε επανάληψη. Η μεταβλητή sun_kef είναι άχρηστη. Πρέπει το κάθε κεφάλαιο να αντικαθιστά το προηγούμενο και άρα αυτό θα γίνει με μια μεταβλητή
Αλλαγές:
sun_kef:=epitokio+kef;   kef:=epitokio+kef;
until sun_kef>=dek;  until kef>=dek;

Καλύτερα την μεταβλητή epitokio να την ονομάσεις tokos γιατί για τόκο πρόκειται και στο τελευταίο μήνυμα να πεις O synolikos tokos einai
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

GeorgeG

  • Θαμώνας
  • ***
  • Μηνύματα: 37
Απ: Βοηθεια
« Απάντηση #2 στις: 29 Δεκ 2012, 06:42:54 μμ »
έχεις δίκαιο  ;)
Αν καταχωρίσω σαν μετρητή το sun_kef
δλδ sun_kef:=0
θα είναι σωστό;

petrosp13

  • Ομάδα Νέου Λυκείου
  • *
  • Μηνύματα: 2167
Απ: Βοηθεια
« Απάντηση #3 στις: 29 Δεκ 2012, 10:06:20 μμ »
Όχι. Μόνο αν θέσεις sun_kef:=kef; πριν την επανάληψη και sun_kef:=epitokio+sun_kef;
Γενικά, μέσα στην επανάληψη θα έχεις μία μεταβλητή για το κεφάλαιο. Αυτή θα πρέπει να έχει πάρει πριν την επανάληψη την τιμή του κεφαλαίου
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής