Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που να διαβάζει από το πληκτρολόγιο τα μηνιαία έσοδα ενός καταστήματος για το πρώτο εξάμηνο και να τα καταχωρεί σε πίνακα. Στη συνέχεια για τους μήνες Φεβρουάριο, Μάρτιο, Απρίλιο, Μάιο και Ιούνιο να ελέγχει αν είχαν περισσότερα έσοδα από τον ακριβώς προηγούμενο μήνα και να εμφανίζει κατάλληλο μήνυμα που θα δηλώνει την ύπαρξη αύξησης. Δίνεται το πρόγραμμα (κώδικας [5.17]). Α) Να εκτελέσετε το πρόγραμμα για τις τιμές εισόδου 2000, 1800, 2100, 2100, 2000, 2000 και να καταγράψετε την εκτέλεση της επανάληψης ελέγχου αυξητικής τάσης στον πίνακα τιμών. Β) Ποια λάθη εντοπίσατε κατά την εκτέλεση του προγράμματος; Προτείνετε διορθώσεις.
Σκέψη / Μεθοδολογία: Κάνουμε δοκιμαστική εκτέλεση (πίνακα τιμών) με τα δοσμένα δεδομένα εισόδου, εντοπίζουμε πού η πραγματική έξοδος αποκλίνει από το αναμενόμενο αποτέλεσμα, και συνδέουμε κάθε απόκλιση με συγκεκριμένη γραμμή κώδικα.
Λύση:
Απάντηση: Α) Πίνακας δοκιμαστικής εκτέλεσης: Ι=1: ΕΣΟΔΑ[1]=2000,ΕΣΟΔΑ[2]=1800, συνθήκη Ψευδής, καμία έξοδος (σωστό). Ι=2: 1800<=2100 Αληθής, έξοδος 'Ο 2ος μήνας ΑΥΞΗΣΗ' (λάθος μήνας, έπρεπε 3ος). Ι=3: 2100<=2100 Αληθής, έξοδος 'Ο 3ος μήνας ΑΥΞΗΣΗ' (λάθος, ίσα έσοδα δεν είναι αύξηση). Ι=4: 2100<=2000 Ψευδής, καμία έξοδος (σωστό). Ι=5: 2000<=2000 Αληθής, έξοδος 'Ο 5ος μήνας ΑΥΞΗΣΗ' (λάθος, ίσα έσοδα). Ι=6: προσπέλαση ΕΣΟΔΑ[7] εκτός ορίων → αντικανονικός τερματισμός. Β) Εντοπίστηκαν τρία λάθη: (1) λάθος αριθμός μήνα στο μήνυμα — 'ΓΡΑΨΕ Ι, ...' πρέπει να γίνει 'ΓΡΑΨΕ Ι+1, ...', (2) λανθασμένη συνθήκη '<=' πρέπει να γίνει '<' ώστε ίσα έσοδα να μην θεωρούνται αύξηση, (3) το άνω όριο 'ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 6' στον δεύτερο βρόχο πρέπει να γίνει 'ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5' ώστε να μην προσπελαύνεται το ΕΣΟΔΑ[7] που δεν υπάρχει.
Πρόσεξε:
Μία επιχείρηση έχει τρία υποκαταστήματα. Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ που να διαβάζει από το πληκτρολόγιο τα έσοδα κάθε υποκαταστήματος ανά τρίμηνο ενός έτους και να τα καταχωρεί σε πίνακα. Για κάθε υποκατάστημα να υπολογίζει και να εμφανίζει τα ετήσια έσοδα. Δίνεται το πρόγραμμα (κώδικας [5.18]). i) Εκτελέστε το πρόγραμμα για τις τιμές εισόδου του πίνακα 5.6 και συμπληρώστε τον πίνακα τιμών 5.7. ii) Ποια λάθη εντοπίσατε κατά την εκτέλεση του προγράμματος; Προτείνετε διορθώσεις.
Σκέψη / Μεθοδολογία: Ακολουθούμε την εκτέλεση του διπλού βρόχου προσέχοντας ΠΟΤΕ μηδενίζεται η μεταβλητή 'Άθροισμα' — μία φορά συνολικά ή μία φορά ανά υποκατάστημα — και συγκρίνουμε με το τι απαιτεί η εκφώνηση (ξεχωριστό ετήσιο έσοδο ανά υποκατάστημα).
Λύση:
Απάντηση: i) Το πρόγραμμα εμφανίζει: 'Ετήσια έσοδα: 27000' (1ο υποκατάστημα, σωστό), 'Ετήσια έσοδα: 47000' (2ο υποκατάστημα, λάθος — το σωστό είναι 20000), 'Ετήσια έσοδα: 67000' (3ο υποκατάστημα, λάθος — το σωστό είναι 20000). ii) Το λάθος είναι ότι η μεταβλητή 'Άθροισμα' μηδενίζεται μόνο μία φορά (γραμμή 6, πριν από την εξωτερική επανάληψη) αντί να μηδενίζεται στην αρχή κάθε υποκαταστήματος. Έτσι τα έσοδα κάθε επόμενου υποκαταστήματος προστίθενται σωρευτικά πάνω στα προηγούμενα. Διόρθωση: μεταφορά της εντολής 'Άθροισμα <- 0' μέσα στην εξωτερική επανάληψη 'ΓΙΑ Ι', αμέσως πριν από την εσωτερική επανάληψη 'ΓΙΑ Κ' (δηλαδή ανάμεσα στις γραμμές 8 και 9).
Πρόσεξε:
