[2007 - 2008] Ασκήσεις στην ΑΕΠΠ

Status
Το θέμα δεν είναι ανοιχτό για νέες απαντήσεις.

Kristal

Εκκολαπτόμενο μέλος

Ο Αποστόλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Ζωγράφος (Αττική). Έχει γράψει 381 μηνύματα.
Απαντηση στην 11

Code:
ΠΡΟΓΡΑΜΜΑ ΣΚΟΠΟΒΟΛΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Ι,J,ΒΟΛΗ[120,10],Β[10],ΣΒ[120],ΘΕΣΗ
ΧΑΡΑΚΤΗΡΕΣ:ΟΝΟΜΑ[120]
ΑΡΧΗ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 120 
ΔΙΑΒΑΣΕ ΟΝΟΜΑ[Ι]
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 10 
ΔΙΑΒΑΣΕ ΒΟΛΗ[Ι,J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 120 
ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 10
Β[J]<--ΒΟΛΗ[Ι,J]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΣΒ[Ι]<--ΒΑΘΜΟΛΟΓΙΑ(Β)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΚΑΛΕΣΕ ΜΕΓΙΣΤΟΣ(ΣΒ,ΘΕΣΗ)
ΓΡΑΨΕ ΟΝΟΜΑ[ΘΕΣΗ]
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ 
 
 
ΣΥΝΑΡΤΗΣΗ ΒΑΘΜΟΛΟΓΙΑ(Α): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Α[10],Ι,Σ,ΜΑΧ,ΜΙΝ
ΑΡΧΗ
ΜΑΧ<--Α[1]
ΜΙΝ<--Α[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 
ΑΝ Α[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Α[Ι]
ΑΛΛΙΩΣ_ΑΝ Α[Ι]<ΜΙΝ ΤΟΤΕ 
ΜΙΝ<--Α[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Σ<--0 
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 
ΑΝ Α[Ι]<>ΜΑΧ ΚΑΙ Α[Ι]<>ΜΙΝ ΤΟΤΕ
Σ<--Σ+Α[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΒΑΘΜΟΛΟΓΙΑ<--Σ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 
 
ΔΙΑΔΙΚΑΣΙΑ ΜΕΓΙΣΤΟΣ(Π,ΜΑΧ_Θ)
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ:Π[120],Ι,ΜΑΧ,ΜΑΧ_Θ
ΑΡΧΗ
ΜΑΧ<--Π[1]
ΜΑΧ_Θ<--1
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 120 
ΑΝ Π[Ι]>ΜΑΧ ΤΟΤΕ
ΜΑΧ<--Π[Ι]
ΜΑΧ_Θ<--Ι
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Άσκηση 15


:jumpy::bye::(
Μια σύγχρονη πτηνοτροφική μονάδα παρακολουθεί την ημερήσια παραγωγή αυγών και καταγράφει τα στοιχεία σε ηλεκτρονικό αρχείο. Να αναπτύξετε αλγόριθμο ο οποίος θα διαχειρίζεται τα στοιχεία της μονάδας στη διάρκεια ενός έτους. Για το σκοπό αυτό:
Α. Να κατασκευάσετε κύριο πρόγραμμα το οποίο:
1. να ζητάει το έτος παρακολούθησης, ελέγχοντας ότι πρόκειται για έτος του 21ου αιώνα (από 2000 μέχρι και 2099). Ο αλγόριθμος να δημιουργεί πίνακα με τον αριθμό των ημερών για καθέναν από τους δώδεκα μήνες του έτους που δόθηκε. Ο αριθμός των ημερών του μήνα θα υπολογίζεται από υποπρόγραμμα το οποίο θα κατασκευάσετε για το σκοπό αυτό. Η λειτουργία του υποπρογράμματος περιγράφεται στο ερώτημα Β.
Μονάδες 3
2. να ζητάει την ημερήσια παραγωγή (αριθμό αυγών) για κάθε μέρα του έτους και να καταχωρίζει τις τιμές σε πίνακα δύο διαστάσεων, με μια γραμμή για κάθε μήνα.
Μονάδες 3
3. να εμφανίζει τον τρίτο κατά σειρά από τους μήνες του έτους που έχουν ο καθένας μέσο όρο ημερήσιας παραγωγής μέχρι και δέκα ποσοστιαίες μονάδες πάνω ή κάτω από τον ετήσιο μέσο όρο. Αν δεν βρει τέτοιο μήνα, να εμφανίζει κατάλληλο μήνυμα.
Μονάδες 8
Β. Να κατασκευάσετε υποπρόγραμμα το οποίο να δέχεται ως παραμέτρους κάποιο έτος και τον αριθμό κάποιου μήνα (1 έως 12), και να επιστρέφει τον αριθμό των ημερών του συγκεκριμένου μήνα. Όταν το έτος είναι δίσεκτο, ο Φεβρουάριος έχει 29 ημέρες, διαφορετικά έχει 28. Δίσεκτα είναι τα έτη που διαιρούνται με το 4 αλλά όχι με το 100, καθώς και εκείνα που διαιρούνται με το 400. Για τους υπόλοιπους μήνες, πλην του Φεβρουαρίου, ισχύει το εξής: μέχρι και τον Ιούλιο (7ος μήνας) οι μονοί μήνες έχουν 31 ημέρες και οι ζυγοί 30. Για τους μήνες μετά τον Ιούλιο, ισχύει το αντίστροφο.
Μονάδες 6
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

mostel

Πολύ δραστήριο μέλος

Ο Στέλιος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 1,203 μηνύματα.
Επαναλητπικές @ 2007 αν δεν κάνω λάθος.



Η εκφώνηση μπάζει από παντού....



Στέλιος
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Kristal

Εκκολαπτόμενο μέλος

Ο Αποστόλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Ζωγράφος (Αττική). Έχει γράψει 381 μηνύματα.
Επαναλητπικές @ 2007 αν δεν κάνω λάθος.
Οχι δεν κάνεις λάθος...Απο τις επαναληπτικές είναι...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Επαναλητπικές @ 2007 αν δεν κάνω λάθος.



Η εκφώνηση μπάζει από παντού....

Στέλιος

Έτσι ακριβώς. Το ερώτημα είναι στο Α.3, ζητάει τον 3ο κατά σειρά απο τον Ετήσιο ΜΟ ή τον 3ο πιο κοντινό (αριθμητικά)με +-10% ?
Προσωπικά αν διόρθωνα θα τα έπαιρνα και τα 2 σωστά ...

Εν πάση περιπτώσει, το θεωρώ ένα από τα πιο δύσκολα θέματα που έχουν πέσει (ειδικά αν ισχύει το 2ο σενάριο από αυτά που αναφέρω) και αξίζει να την προσέξετε ιδιαίτερα την άσκηση γιατί συνηθίζουν να επαναλαμβάνουν τα θέματα των επαναληπτικών της μίας χρονιάς στις κανονικές της επόμενης ;) (για τον ίδιο λόγο παίζει και το Θ2-τι θα εμφανίσει- που είναι πρωτότυπο)

BTW, μια και τα είπαμε αυτά, προσοχή και σε μετατροπή από Αν ... αλλιως_αν σε Επίλεξε
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Διδακτορικός και μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
Εγώ πάντως όταν το 'δα κατάλαβα "τον τρίτο κατά σειρά ξεκινώντας από τον Γενάρη". Δηλαδή ξεκινάω από τον Γενάρη, μετά Φλεβάρη, Μάρτη, κοκ και ο 3ος που θα είναι εκτός ορίων είναι ο ζητούμενος.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Εγώ πάντως όταν το 'δα κατάλαβα "τον τρίτο κατά σειρά ξεκινώντας από τον Γενάρη". Δηλαδή ξεκινάω από τον Γενάρη, μετά Φλεβάρη, Μάρτη, κοκ και ο 3ος που θα είναι εκτός ορίων είναι ο ζητούμενος.

Είναι το πιο πιθανό. Οπότε η λύση θέλει παραλλαγή αναζήτησης (ενώ η άλλη περίπτωση είναι αρκετά πιο μπερδεμένη και θέλει μεταξύ των άλλων ταξινόμηση)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Διδακτορικός και μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
Είναι το πιο πιθανό. Οπότε η λύση θέλει παραλλαγή αναζήτησης (ενώ η άλλη περίπτωση είναι αρκετά πιο μπερδεμένη και θέλει μεταξύ των άλλων ταξινόμηση)
Με προσθήκη ενός counter. :)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vamou90

Εκκολαπτόμενο μέλος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 198 μηνύματα.
Παιδιά πείτε αν η σκέψη μου είναι σωστή.....
Νομίζω ότι το υποπρόγραμμα είναι συνάρτηση....γιατί επιστρέφει μία τιμή...
Μετά διαβάζοντας την ημερίσια παραγωγή η δεύτερη επαναληψη είναι: ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ ΑΗ[Ι]... δλδ τον πίνακα που αποθηκεύσαμε τον αριθμό τον ημερών κάθε μήνα...
Και στο τρίτο ερώτημα έβαλα τους μήνες που ήθελε σε ένα πίνακα καινούργιο...και έκανα ταξινόμηση....
Με αναζήτηση πως θα γίνει το τρίτο ερώτημα???
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

leftkox

Εκκολαπτόμενο μέλος

Ο Λευτέρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Πτυχιούχος. Έχει γράψει 149 μηνύματα.
Πιθανή απάντηση στην άσκηση 15

Code:
ΠΡΟΓΡΑΜΜΑ πτηνοτροφική_μονάδα
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: έτος, i, μήνες[12], j, αυγά[12,31], Σ, Π[12], α
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ_έτος, ΜΟ[12]
ΛΟΓΙΚΕΣ: εξοδος
ΑΡΧΗ
εξοδος<--ψευδής
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
     ΓΡΑΨΕ 'Δώσε έτος (2000-2099)'
     ΔΙΑΒΑΣΕ έτος
     ΑΝ έτος>2099 Ή έτος < 2000 ΤΟΤΕ
          ΓΡΑΨΕ 'Λάθος δεδομένα'
     ΑΛΛΙΩΣ
          εξοδος<--αληθής
     ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ εξοδος=αληθής
!Υπολογισμός ημερών κάθε μήνα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     μήνες[i] <-- μέρες(έτος,i)
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Εισαγωγή αριθμού αυγών ανα μέρα
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ μήνες[i]
          ΔΙΑΒΑΣΕ αυγά[i,j]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Υπολογισμός μέσης ημερήσιας παραγωγής για όλο το έτος
Σ <--0
α <--0
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ μήνες[i]
          α<--α+1
          Σ<--Σ+αυγά[i,j]
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΟ_έτος <-- Σ/α
!Υπολογισμός μέσης ημερήσιας παραγωγής κάθε μήνα χωριστά
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     Σ<--0
     ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ μήνες[i]
          Σ<-Σ+αυγά[i,j]
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΜΟ[i]<--Σ/μήνες[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
!Μου φάνηκε πως αυτό ζητάει
κ<--1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     Π[i]<--0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     ΑΝ ΜΟ[i] >= 0.9*ΜΟ_έτος Ή ΜΟ[i] <= 1.1*ΜΟ_έτος ΤΟΤΕ
          Π[κ] <--i
          κ<--κ+1
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Π[3]=0 ΤΟΤΕ
     ΓΡΑΨΕ 'Δε βρέθηκε τέτοιος μήνας'
ΑΛΛΙΩΣ
     ΓΡΑΨΕ 'Ο μήνας αυτός είναι ο', Π[3],'ος μήνας.'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ μέρες(έτος,i):ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: έτος, i, δίσεκτο
ΑΡΧΗ
δίσεκτο <--0
ΑΝ έτοςMOD4=0 ΚΑΙ έτοςMOD100<>0 Ή έτοςMOD400=0 ΤΟΤΕ
     δίσεκτο <--1
ΤΕΛΟΣ_ΑΝ
!Υπολογισμός ημερών Φεβρουαρίου
ΑΝ i=2 ΤΟΤΕ
     ΑΝ δίσεκτο=0 ΤΟΤΕ
          μέρες<--28
     ΑΛΛΙΩΣ
          μέρες<--29
     ΤΕΛΟΣ_ΑΝ
     ΑΛΛΙΩΣ
!Υπολογισμός μερών υπολοίπων μηνών μέχρι και τον Ιούλιο
          ΑΝ i<=7 ΤΟΤΕ
               ΑΝ iMOD2=0 ΤΟΤΕ
                    μέρες<--30
               ΑΛΛΙΩΣ
                    μέρες<--31
               ΤΕΛΟΣ_ΑΝ
          ΑΛΛΙΩΣ
!Υπολογισμός μερών Αυγούστου-Δεκεμβρίου
               ΑΝ iMOD2=0 ΤΟΤΕ
                    μέρες<--31
               ΑΛΛΙΩΣ
                    μέρες<--30
          ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vamou90

Εκκολαπτόμενο μέλος

Ο Βασίλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 198 μηνύματα.
Λογικά σωστή φαίνεται...εγώ σε κάποια σημεία έκανα κάποια άλλα πραγματα:
Ο ππώτος έλεγχος θα μπορούσε να είναι πιο απλός:
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΕΤΟΣ
ΜΕΧΡΙΣ_ΟΤΟΥ (ΕΤΟΣ>=2000) ΚΑΙ (ΕΤΟΣ < 3000) !ΕΤΟΣ στις ακέραιες...

το τρίτο ερώτημα το έλυσα ακριβώς έτσι, αλλά καλύτερα νομίζω να γίνει...
ΑΝ Κ>=3 ΤΟΤΕ
ΓΡΑΨΕ Π[3]
ΑΛΛΙΩΣ......

και στη συνάρτηση χρησιμοποιείς το ίδιο όνομα μεταβλητών με το κυρίως πρόγραμμα..απ' ότι ξέρω δεν επιτρέπεται....
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Kristal

Εκκολαπτόμενο μέλος

Ο Αποστόλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι Φοιτητής και μας γράφει απο Ζωγράφος (Αττική). Έχει γράψει 381 μηνύματα.
και στη συνάρτηση χρησιμοποιείς το ίδιο όνομα μεταβλητών με το κυρίως πρόγραμμα..απ' ότι ξέρω δεν επιτρέπεται....
Οχι δεν είναι απαραίτητη η διαφοροποίηση τυπικών και πραγματικών παραμέτρων αν και συνιστάται...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Code:
!Μου φάνηκε πως αυτό ζητάει
κ<--1
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     Π[i]<--0
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     ΑΝ ΜΟ[i] >= 0.9*ΜΟ_έτος Ή ΜΟ[i] <= 1.1*ΜΟ_έτος ΤΟΤΕ
          Π[κ] <--i
          κ<--κ+1
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Π[3]=0 ΤΟΤΕ
     ΓΡΑΨΕ 'Δε βρέθηκε τέτοιος μήνας'
ΑΛΛΙΩΣ
     ΓΡΑΨΕ 'Ο μήνας αυτός είναι ο', Π[3],'ος μήνας.'
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Σωστή η λύση σου (αν δεν μου ξέφυγε τίποτα) αλλά στο Α3 κάνεις κάτι αρκετά πολύπλοκο. Θα πρότεινα κάτι σαν το παρακάτω (χρησιμοποιώντας όσο μπορώ τον κώδικά σου):
Code:
θέση <-- 0 ! η θέση του ζητούμενου μήνα
κ <-- 0 ! πόσοι μήνες πληρούν την ζητούμενη συνθήκη
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 12
     ΑΝ ΜΟ[i] >= 0.9*ΜΟ_έτος Ή ΜΟ[i] <= 1.1*ΜΟ_έτος ΤΟΤΕ
          κ<--κ+1
          ΑΝ κ = 3 ΤΟΤΕ
                θέση <-- i
          ΤΕΛΟΣ_ΑΝ
     ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ θέση=0 ΤΟΤΕ
     ΓΡΑΨΕ 'Δε βρέθηκε τέτοιος μήνας'
ΑΛΛΙΩΣ
     ΓΡΑΨΕ 'Ο μήνας αυτός είναι ο', θέση, 'ος μήνας.'
ΤΕΛΟΣ_ΑΝ

ευκολότερο ή δυσκολότερο δεν ξέρω, είναι λίγο θέμα προσωπικού γούστου :) Συγχαρητήρια για την σωστή λύση.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Οχι δεν είναι απαραίτητη η διαφοροποίηση τυπικών και πραγματικών παραμέτρων αν και συνιστάται...

Όπως λέει μέσα στο βιβλίο, η εμβέλεια των μεταβλητών είναι τοπική. Επομένως μπορείς να έχεις ίδιο όνομα μεταβλητής στο πρόγραμμα και σε οποιοδήποτε υποπρόγραμμα, ακόμα κι αν είναι παράμετροι κλπ κλπ (*)

Δεν τίθεται κάποιο θέμα σύστασης αποφυγής. Προσωπικά χρησιμοποιώ διαφορετικά ονόματα στις τυπικές και στις αντίστοιχες πραγματικές παραμέτρους όταν πρωτοδιδάσκω υποπρογράμματα για να δείξω τη διαφορά στους μαθητές. Από κει και πέρα και αφού το έχουν κατανοήσει, είναι εξαιρετικά βολικό να έχεις ίδιο όνομα για τυπικές και πραγματικές παραμέτρους ;)

(*)Αυτό που δεν μπορείς να χρησιμοποιήσεις είναι το όνομα υποπρογράμματος σαν μεταβλητή οπουδήποτε στο πρόγραμμα (εκτός απο την ειδική περίπτωση των συναρτήσεων που χρησιμοποιούν το όνομα τους σαν μεταβλητή, αλλά μόνο στο εσωτερικό τους). Δηλ από τη στιγμή που δηλώσεις ένα υποπρόγραμμα, το όνομά του αποτελεί ΔΕΣΜΕΥΜΕΝΗ λέξη, όπως τις υπόλοιπες της ΓΛΩΣΣΑΣ (ΑΝ, ΟΣΟ, ΠΡΟΓΡΑΜΜΑ, ΜΕΤΑΒΛΗΤΕΣ κλπ)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

leftkox

Εκκολαπτόμενο μέλος

Ο Λευτέρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Πτυχιούχος. Έχει γράψει 149 μηνύματα.
Όντως, είναι πιο ωραίος τρόπος αν και δεν μου πέρασε από το μυαλό. Ευχαριστώ για τη συμβουλή :no1:
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Όντως, είναι πιο ωραίος τρόπος αν και δεν μου πέρασε από το μυαλό. Ευχαριστώ για τη συμβουλή :no1:

Μια συμβουλή που δίνω πάντα στους μαθητές μου είναι: προσπαθήστε να λύνετε πρώτα τα προβλήματα απλά, όπως θα τα λύνατε στην καθημερινή ζωή αν δεν είχατε ιδέα από αλγορίθμους, αν, όσο, για, και όλα αυτά τα βασανιστικά που σας αποπροσανατολίζουν λόγω έλλειψης εμπειρίας. Και μετά προσπαθήστε να βάλετε την ιδέα σας σε εντολές αλγορίθμου/γλώσσας, εφαρμόζοντας την αρχική σας σκέψη βήμα-βήμα. Καλό είναι να κάνετε πρώτα και μια "εξομοίωση" στο χαρτί και παράδειγμα με νουμερα, τιμές, κλπ.
Και φυσικά στο τέλος πάντα έλεγχο του κώδικα: Σ'αυτή την περίπτωση πάντα επιλέγουμε τιμές μεταβλητών που είναι σε "κομβικά" σημεία, π.χ αν έχω να δοκιμάσω την εντολή:

Όσο α>0 επανάλαβε
εντολές ...
τέλος_επανάληψης

θα δοκιμάσω αν λειτουργεί σωστά για τιμές του α κοντά στο 0, δηλ, -1, 0, 1

Για να ανακεφαλαιώσω, 4 βασικά βήματα:

1) Καλή ανάγνωση και κατανόηση της άσκησης
2) Παράδειγμα από την πραγματική ζωή ξεχνώντας παντελώς τον κώδικα, για τη σωστή κατανόηση του μηχανισμού του αλγορίθμου
3) Υλοποιήση του κώδικα
4) Έλεγχος του με τιμές μεταβλητών που δοκιμάζουν τις συνθήκες στα όρια τους.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
ΑΣΚΗΣΗ 16

Τι θα εμφανίσει;

Code:
[B]ΠΡΟΓΡΑΜΜΑ[/B] ΠΡΑΞΕΙΣ
[B]ΜΕΤΑΒΛΗΤΕΣ[/B]
        [B]ΑΚΕΡΑΙΕΣ[/B][B]:[/B] α[B],[/B]β[B],[/B]γ[B],[/B] ένα, δύο
[B]ΑΡΧΗ[/B]
[B]ΓΙΑ[/B] α [B]ΑΠΟ[/B] [B]-[/B]1 [B]ΜΕΧΡΙ[/B] 1
        β [B]<–[/B] α[B]+[/B]1
        γ [B]<–[/B] β[B]*[/B]β
        [B]ΚΑΛΕΣΕ[/B] πράξη[B]([/B]α[B],[/B]β[B],[/B]γ[B],[/B]ένα[B])[/B]
        [B]ΓΡΑΨΕ[/B] α[B],[/B]β[B],[/B]γ[B],[/B]ένα
[B]          ΚΑΛΕΣΕ[/B] πράξη[B]([/B]γ,α,β,δύο[B])[/B]
        [B]ΓΡΑΨΕ[/B] α[B],[/B]β[B],[/B]γ[B],[/B]δύο
[B]ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ[/B]
[B]ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ[/B] ΠΡΑΞΕΙΣ
[B]ΔΙΑΔΙΚΑΣΙΑ[/B] πράξη[B]([/B]κ[B],[/B]λ[B],[/B]μ[B],[/B]δύο[B])[/B]
[B]ΜΕΤΑΒΛΗΤΕΣ[/B]
        [B]ΑΚΕΡΑΙΕΣ[/B][B]:[/B] κ[B],[/B]λ[B],[/B]μ[B],[/B]δύο
[B]ΑΡΧΗ[/B]
δύο [B]<–[/B] 2*τρία[B]([/B]μ,κ[B])
ΓΡΑΨΕ δύο
[/B] μ[B]<–[/B]μ[B]+[/B]1
[B]ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ[/B]
[B]ΣΥΝΑΡΤΗΣΗ[/B] τρία[B]([/B]χ,ψ[B]):[/B][B]ΑΚΕΡΑΙΑ[/B]
[B]ΜΕΤΑΒΛΗΤΕΣ[/B]
        [B]ΑΚΕΡΑΙΕΣ[/B][B]:[/B] χ,ψ
[B]ΑΡΧΗ[/B]
τρία[B]<–[/B]χ[B]*[/B]χ+ψ
[B]ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ[/B]
Αρχική ιδέα άσκησης από : https://blogs.sch.gr/gskapetis/
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

leftkox

Εκκολαπτόμενο μέλος

Ο Λευτέρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 33 ετών και Πτυχιούχος. Έχει γράψει 149 μηνύματα.
Χμμ, στην πρώτη επανάληψη, όταν καλείται η διαδικασία για δεύτερη φορά, η πραγματική παράμετρος δύο δεν έχει καμμία τιμή, συνεπώς η τυπική παράμετρος κ δεν έχει τιμή. Όμως η κ χρησιμοποιείται στην εκχώρηση τιμής στην τυπική μεταβλητή δύο. Γίνεται αυτό;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

mostel

Πολύ δραστήριο μέλος

Ο Στέλιος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, Φοιτητής και μας γράφει απο Θεσσαλονίκη (Θεσσαλονίκη). Έχει γράψει 1,203 μηνύματα.
Με συγχωρείτε, αλλά αυτή η άσκηση είναι πολύ μπερδεμένη νομίζω, χωρίς ουσιαστικό λόγο :(

Μπορεί να τσεκάρει κάποιος αν κάνει καλή αντικατάσταση των τυπικών - πραγματικών παραμέτρων (δηλαδή 1η στην 1η, 2η στη 2η, κ.ό.κ.), χωρίς τόοοοοοοοσες πολλές πράξεις!


Στέλιος
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

teacher

Νεοφερμένος

Ο teacher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 52 ετών και Καθηγητής. Έχει γράψει 68 μηνύματα.
Δεκτές οι παρατηρήσεις, fixed:no1:
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 16 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Status
Το θέμα δεν είναι ανοιχτό για νέες απαντήσεις.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 1 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top