Αποστολέας Θέμα: ΠΑΡΑΔΕΙΓΜΑ 1 /ΣΕΛ88 ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ  (Αναγνώστηκε 2214 φορές)

clevercitizen

  • Βετεράνος
  • ****
  • Μηνύματα: 75
ΠΑΡΑΔΕΙΓΜΑ 1 /ΣΕΛ88 ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ
« στις: 29 Ιαν 2007, 08:49:52 μμ »
Συμφωνα με την εκφωνηση μας ζηταει να γραψουμε προγραμμα που να διαβαζει τα ονοματα 50 αεροπορικων εταιρειων.
Στο λυμμενο προγραμμα ομως παρουσιαζει και ενα Ν  στο οποιο καλειται ο χρηστης να βαλει τον αριθμο των εταιρειων. Yπαρχει λογος που το κανει αυτο???Αφου ο αριθμος των εταιρειων ειναι προκαθορισμενος απο την εκφωνηση(ουτε παρα πανω ουτε παρα κατω, ακριβως 50).
Μια ενδεικτικη λυση του προγραματος (σε συνδυασμο με την ασκηση ΔΣ1/σελ96) δινω παρακατω:

Κώδικας: ΓΛΩΣΣΑ
  1. ΠΡΟΓΡΑΜΜΑ Β
  2. ΜΕΤΑΒΛΗΤΕΣ
  3.   ΠΡΑΓΜΑΤΙΚΕΣ:ΜΟΝΕΥ[50],ΑΘΡ,ΜΟ,ΜΙΝ,ΜΑΧ
  4.   ΑΚΕΡΑΙΕΣ:Ι
  5.   ΧΑΡΑΚΤΗΡΕΣ:ΝΑΜΕ[50]
  6. ΑΡΧΗ
  7.   ΑΘΡ <-- 0
  8.   ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 50
  9.     ΔΙΑΒΑΣΕ ΜΟΝΕΥ[Ι]
  10.     ΔΙΑΒΑΣΕ ΝΑΜΕ[Ι]
  11.     ΑΘΡ <-- ΑΘΡ + ΜΟΝΕΥ[Ι]
  12.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  13.   ΜΟ <-- ΑΘΡ/50
  14.   ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 50
  15.     ΑΝ ΜΟΝΕΥ[Ι]>ΜΟ ΤΟΤΕ
  16.       ΓΡΑΨΕ 'ΠΑΝΩ ΑΠΟ ΜΟ',ΝΑΜΕ[Ι]
  17.     ΤΕΛΟΣ_ΑΝ
  18.     ΑΝ ΜΟΝΕΥ[Ι]<ΜΟ ΤΟΤΕ
  19.       ΓΡΑΨΕ 'ΚΑΤΩ ΑΠΟ ΜΟ',ΝΑΜΕ[Ι]
  20.     ΤΕΛΟΣ_ΑΝ
  21.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  22.   ΜΙΝ <-- ΜΟΝΕΥ[1]
  23.   ΜΑΧ <-- ΜΟΝΕΥ[1]
  24.   ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 50
  25.     ΑΝ ΜΙΝ>ΜΟΝΕΥ[Ι] ΤΟΤΕ
  26.       ΜΙΝ <-- ΜΟΝΕΥ[Ι]
  27.     ΤΕΛΟΣ_ΑΝ
  28.     ΑΝ ΜΑΧ<ΜΟΝΕΥ[Ι] ΤΟΤΕ
  29.       ΜΑΧ <-- ΜΟΝΕΥ[Ι]
  30.     ΤΕΛΟΣ_ΑΝ
  31.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  32.   ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 50
  33.     ΑΝ ΜΙΝ=ΜΟΝΕΥ[Ι] ΤΟΤΕ
  34.       ΓΡΑΨΕ 'Η ΕΤΑΙΡΕΙΑ ΜΕ ΤΙΣ ΛΙΓΟΤΕΡΕΣ ΕΙΣΠΡΑΞΕΙΣ ΕΙΝΑΙ Η',ΝΑΜΕ[Ι]
  35.     ΤΕΛΟΣ_ΑΝ
  36.     ΑΝ ΜΑΧ=ΜΟΝΕΥ[Ι] ΤΟΤΕ
  37.       ΓΡΑΨΕ 'Η ΕΤΑΙΡΕΙΑ ΜΕ ΤΙΣ ΠΕΡΙΣΣΟΤΕΡΕΣ ΕΙΣΠΡΑΞΕΙΣ ΕΙΝΑΙ Η',ΝΑΜΕ[Ι]
  38.     ΤΕΛΟΣ_ΑΝ
  39.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  40. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ                                                      
  41.  
« Τελευταία τροποποίηση: 30 Ιαν 2007, 03:34:43 μμ από clevercitizen »
ΘΕΛΩ
                ΑΛΛΑΓΗ
                ΕΚΠΑΙΔΕΥΤΙΚΟΥ
                ΣΥΣΤΗΜΑΤΟΣ

gpapargi

  • Γενικός διαχειριστής
  • *****
  • Μηνύματα: 2457
  • I 'm not young enough to know everything
Απ: ΠΑΡΑΔΕΙΓΜΑ 1 /ΣΕΛ88 ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ
« Απάντηση #1 στις: 30 Ιαν 2007, 09:47:55 πμ »
Έχει φτιαχτεί το πρόγραμμα έτσι ώστε να μπορεί να υποστηρίξει και λιγότερες από 50 εταιρείες. Αυτό είναι κάτι συνηθισμένο στον προγραμματισμό. Θα πρέπει τα προγράμματα να είναι όσο γίνεται πιο γενικής χρήσεως. Οπότε δεσμεύει ένα πίνακα 50 θέσεων αλλά μπορεί να χρησιμοποιεί λιγότερες. (Ίσως θα ήταν καλύτερα αν η εκφώνηση έλεγε «το πολύ 50 εταιρείες».)

Φυσικά σε αυτή την περίπτωση θα πρέπει να έχει σε μια μεταβλητή τη θέση στην οποία τελειώνουν τα δεδομένα και αρχίζουν οι αχρησιμοποίητες θέσεις του πίνακα. Σκέψου ότι μπορεί μετά να γίνει κάποια επεξεργασία στον πίνακα (πχ ταξινόμηση ή αναζήτηση) και πρέπει να ξέρουμε που θα σταματήσει η σάρωση.  Αν προσέξεις, στη λύση του τετραδίου οι εντολές «Για» σταματούν σε αυτή τη θέση (Ν) και όχι στο 50.

Στο πρόγραμμα που έστειλες βλέπω εκ πρώτης όψεως ότι πριν την εύρεση ελαχίστου/μεγίστου αρχικοποιείς τις μεταβλητές min και max με το πρώτο στοιχείο του πίνακα. Αλλά η αρχικοποίηση βρίσκεται εντός της προηγούμενης εντολής «Για» και εκτελείται 50 φορές. Επίσης δεν αρχικοποιείς την τιμή του ΑΘΡ με 0.


clevercitizen

  • Βετεράνος
  • ****
  • Μηνύματα: 75
Απ: ΠΑΡΑΔΕΙΓΜΑ 1 /ΣΕΛ88 ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ
« Απάντηση #2 στις: 30 Ιαν 2007, 03:38:07 μμ »
Στο πρόγραμμα που έστειλες βλέπω εκ πρώτης όψεως ότι πριν την εύρεση ελαχίστου/μεγίστου αρχικοποιείς τις μεταβλητές min και max με το πρώτο στοιχείο του πίνακα. Αλλά η αρχικοποίηση βρίσκεται εντός της προηγούμενης εντολής «Για» και εκτελείται 50 φορές. Επίσης δεν αρχικοποιείς την τιμή του ΑΘΡ με 0.

Εχετε δικιο. Το 1 λαθος( τα ΜΙΝ και ΜΑΧ μεσα στην Για) εκ παραδρομης και το 2ο απροσεξιας:P(Τα διορθωσα.)
Παντως η εκφωνηση λεει ξεκαθαρα για 50 εταιρειες, ουτε λιγοτερες ουτε περισσοτερες.
ΘΕΛΩ
                ΑΛΛΑΓΗ
                ΕΚΠΑΙΔΕΥΤΙΚΟΥ
                ΣΥΣΤΗΜΑΤΟΣ