Βοήθεια/Απορίες στην ΑΕΠΠ - Ασκήσεις

Τι πιστεύετε για την ΑΕΠΠ;

Αποτελέσματα της δημοσκόπησης (Ψήφισαν 51)
  • Εύκολη

    Ψήφοι: 28 54,9%
  • Δύσκολη

    Ψήφοι: 23 45,1%
  • ΔΞ/ΔΑ

    Ψήφοι: 0 0,0%

  • Σύνολο ψηφοφόρων
    51
Έλα ρε Στέλιο, έχω υψηλότερα στάνταρ από 'σένα ρε φίλε :P.

Αλγόριθμος Πρώτοι

i<-2
μ<-1

Αρχή_Επανάληψης
Για j από 2 μέχρι i
Αν imodj=0 και i<>j τότε
Πρώτος <- ΨΕΥΔΗΣ
Τέλος_Αν
Τέλος_Επανάληψης
Αν Πρώτος = ΑΛΗΘΗΣ τότε
Εμφάνισε i
μ<-μ+1
Τέλος_Αν
i<-i+1
Μέχρις_Ότου μ=50

Τέλος Πρώτοι

Εντάξει, προφανώς η μέσα Για γίνεται και Μέχρις_Ότου για βελτιστοποίηση απλά βαριέμαι τρελά τώρα :P. Anyway, η βασική ιδέα αυτή είναι.

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

 
Μόνο που αυτό έχει πολυπλοκότητα O(n*n). Βασικά δεν υπάρχει πρόβλημα για το συγκεκριμένο, αλλά για μεγαλύτερους αριθμούς θα υπήρχε.

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

 
Ναι μωρέ, γίνονται κι άλλες πολλές μαθηματικές βελτιστοποιήσεις, π.χ. κανένας άρτιος δεν είναι πρώτος μετά το 4 κ.ο.κ., όποιος έχει όρεξη κάθεται και τα κάνει implement, απλά δεν νομίζω ότι έχει ιδιαίτερο νόημα.

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

 
Εγώ είχα στο μυαλό μου κάτι τέτοιο:

Animation_Sieve_of_Eratosth-2.gif

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

 
Δεν μπορώ να καταλάβω, έξυπνος το παίζεις; Τον κώδικα αυτόν τον έχεις γράψει εσύ; Ξέρεις πώς δουλεύει; Ο Στέλιος, όπως ξεκάθαρα δηλώνει ο τίτλος, υπέβαλλε μια άσκηση για το μάθημα ΑΕΠΠ της τρίτης λυκείου, κώδικα δηλαδή, and only.

Βασικά δεν είναι καν κώδικας, .gif είναι...

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

 
Δεν καταλαβαίνω το πρόβλημά σου. Τον αλγόριθμο δεν τον έχω γράψει εγώ, αλλά πειράζει που δίνω μία εναλλακτική λύση;

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

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

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

 
Λέγεται Κόσκινο του Ερατοσθένη και μπορείς να το ψάξεις στη Wikipedia. Αν βαριέσαι, δεν είναι πρόβλημά μου. :)

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

 
Εγώ ξέρω πως δουλεύει, για άλλους μιλάω. Τέλος πάντων, όπως σου είπα δεν έχει κανένα νόημα, είναι ξεκάθαρο ότι ζητείται κώδικας.

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

 
Δεν διαφωνώ, ίσως ήταν λάθος μου να το αναφέρω.

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

 
Καλώς :P.

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

 
Το κόσκινο του Ερατοσθένη αποτελεί μαθηματική πράξη στην ουσία. Στον προγραμματισμό ζητούμενο είναι να κάνει το pc τις πράξεις, όχι εμείς. Βέβαια φαντάζομαι ότι η λογική του κοσκίνου μπορεί να χρησιμοποιηθεί για να γίνει το πρόγραμμα.

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

 
θελω να ρωτησω κατι..
οταν μια ασκηση λεει πχ να διαβαστουν οι αριθμοι απο το ενα ως το 100 και το κανουμε αυτο με τν εντολη μεχρισ οτου γτ στ λυση πισω δνει ''μεχρις οτου α>100''?
Αρχική τιμή είναι το 1 οπότε διαβάζει το 1ο στοιχείο και μετά αυξάνεται η τιμή κατά 1 και γίνεται 2...οπότε στο 100ο στοιχείο διαβάζει τιμή και αυξάνεται κατά 1, δηλαδή γίνεται 101 όπου και η συνθήκη τερματισμού γίνεται ΑΛΗΘΗΣ (101>100) και ο βρόχος σταματά διαβάζοντας ακριβώς 100 στοιχεία.
Αν ήταν η συνθήκη τερματισμού α>=100 τότε το 99ο στοιχείο θα το διάβαζε κανονικά θα αυξανόταν κατά 1, δηλαδή θα γινόταν 100 και η συνθήκη θα ήταν ΑΛΗΘΗΣ, θα τερμάτιζε ο βρόχος διαβάζοντας μόνο 99 στοιχεία!

επισης οταν εχουμε μια ασκηση που θελουμε να τν κανουμε με δομη επαναληψεις πως θα καταλαβουμε ποια απο τις 3 εκφρασεις τις θα παρουμε

1. Γενικά πάντα μπορούμε να πάρουμε την Όσο!

2. Όταν όμως το πλήθος των επαναλήψεων είναι γνωστό (δηλαδή λέει η εκφώνηση της άσκησης π.χ.: Να διαβάζονται 100 αριθμοί), τότε προτιμούμε την Για.

3. Όταν πρέπει οπωσδήποτε να διαβαστεί μία τιμή ( σε έλεγχο ορθότητας πολλές φορές π.χ.: να διαβάζεται κάτι μέσα σε κλειστό διάστημα τιμών), προτιμούμε την Αρχή.


Έτσι πολύ χοντρικά!!!

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

 
αααα χιλια ευχαριστω!τα καταλαβα!!:)
-----------------------------------------
να ρωτησω και μια διευκρινηση ακομα..οταν λεει να διαβαστουν ολοι οι αριθμοι απο 1 εως 100,με την εντολη μεχρις οτου λεμε α>110
με την ΓΙΑ λεμε ΓΙΑ α απο 1 εως 100
και για την ΟΣΟ λεμε οσο α>100?????

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

 
Το αντίστροφο δηλαδή όχι(α>100) άρα α<=100...
Πάντα από Όσο σε Αρχή και από Αρχή σε Όσο αντιστρέφουμε τη συνθήκη...

Άντε καλό διάβασμα!

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

 
Λοιπόν, βασικά σκέψου ότι αν θέλεις αναγκαστικά να εκτελεστεί το loop μία φορά τουλάχιστον θα βάλεις μέχρις ότου, ενώ αν βάλεις όσο μπορεί να μην εκτελεστεί και καθόλου.

Η για εντάξει είναι η πιο εύκολη λες
Για α από 1 έως 100
διάβασε α
τέλος_επανάληψης

α=1
Όσο α<101 (μπορείς να πεις και α<=100 αλλά θα κάνει διπλό έλεγχο και δεν είναι βέλτιστο)
διάβασε α
α<-α+1
τέλος_επανάληψης

α<-1
Επανάλαβε
διάβασε α
α<-α+1
Μέχρις_ότου α>100

Και για να είσαι πάντα σίγουρη, να σκέφτεσαι πρώτα ένα παράδειγμα με μικρότερα νούμερα πχ τι θα έκανες για να εμφανίσεις τους αριθμούς από 1-5 και να προσπαθείς να κάνεις εικονικό τρέξιμο με χαρτί ή απλά στο μυαλό σου. Έτσι θα ελαχιστοποιήσεις και τα πιθανά λάθη σου.

Ό,τι άλλος θες ρώτα

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

 
δηλ δεν καταλαβα ακριβως τι εννοειτε ....

λεμε
ΓΙΑ α ΑΠΟ 1 ΜΕΧΡΙ 100

ΟΣΟ α<=100

ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ
...........
ΜΕΧΡΙΣ ΟΤΟΥ α>100
??????????

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

 
δηλ δεν καταλαβα ακριβως τι εννοειτε ....

Πρώτον σε παρακαλώ μίλα μου στον ενικό :) Δεν είμαι μεγάλη

Προσπάθησα να σου δείξω ολοκληρωμένα πώς θα έκανες το διάβασμα των αριθμών.
Όπως ξέρεις υπάρχουν τρία είδη επανάληψης.
Το "για" το "μέχρις ότου" και το "όσο" και από ότι φαίνεται είχαμε μερικές μικρές αναντιστοιχίες με το βιβλίο σου :P


ΓΙΑ α ΑΠΟ 1 ΜΕΧΡΙ 100 :no1:

ΟΣΟ α<=100 :no1: --->Εδώ θα μπορούσες να πεις και ΟΣΟ Α<101. Είναι ακριβώς το ίδιο σαν αποτέλεσμα στο πρόγραμμα σου, αλλά είναι καλύτερο υπό την έννοια όταν θα γίνεται μόνο ένας έλεγχος στην μεταβλητή α (αν δηλαδή είναι μικρότερη του 101) και όχι δύο (δηλαδή αν είναι μικρότερη του 100 ή ίση με 100).Και τα 2 πάντως σωστά θα τα θεωρήσουν οι εξεταστές, την ίδια δουλειά κάνουν. Επίσης, μην ξεχάσεις ότι πρέπει πριν την αρχή της επανάληψης πρέπει να αρχικοποιήσεις το α με την τιμή 1.

ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ
...........
ΜΕΧΡΙΣ ΟΤΟΥ α>100 :no1:Κι εδώ πρέπει πριν την αρχή της επανάληψης πρέπει να αρχικοποιήσεις το α
??????????

Απλά δεν ήμουν 100% σίγουρη πώς ορίζει το βιβλία σας τις επαναλήψεις. Πχ. ότι πρέπει να γράφετε ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ και με κεφαλαία, συγγνώμη που στο έγραψα "επανάλαβε" και σου έγραψα με πεζούς χαρακτήρες. Δεν ήθελα να σε μπερδέψω σε καμία περίπτωση.
Η δυσκολία πάντως είναι να βρεις την σωστή συνθήκη ελέγχου/τερματισμού. Μόλις την βρεις (ε εύκολο είναι), μια χαρά θα ορίσεις την επανάληψη σου!

Καλή επιτυχία!!!

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

 
βσκ αυτο με κεφαλαια και πεζα δν το εχουμε ξεκαθαρισει..τν κυριο μ που ρωτησα μου ειπε οτι δν παιζει ρολο..αν και καπου διαβασα οτι στα προγραμματα γραφονται με καφαλαια(δν θυμαμαι καλα ομως)

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

 
Βασικά, αν σας ζητήσουν αλγόριθμο νομίζω ότι πρέπει να το γράψεις με έναν τρόπο ενώ το πρόγραμμα με άλλο τρόπο. Ουφ, απορώ γιατί... Αλλά ίσως θέλουν να καταλάβετε τη διαφορά μεταξύ αλγορίθμου και προγράμματος. Τέλος πάντων. Το βιβλίο κοίτα πώς τα γράφει! Aν μπερδευτείς ξαναρώτα τον καθηγητή...

Offtopic: Πάντως πρακτικά πάντα (ξεφεύγοντας από τα σχολικά μαθήματα), αλγόριθμος είναι κάτι πιο αφηρημένο που μετά το γράφεις σε πρόγραμμα κάποιας γλώσσας (c, java και ένα σωρό άλλες) που έχει και τον δικό της τρόπο σύνταξης και κάποια μπορεί να θέλει να τις δώσεις τον κώδικα με πεζούς χαρακτήρες, ενώ άλλη να επιτρέπει και κεφαλαίους. Απλά να θυμάσαι ότι οι μεταβλητές είναι case-sensitive. Άλλο η μεταβλητή α και άλλο η μεταβλητή A.
(Μη φανταστείς, ότι καθόμαστε και φτιάχνουμε πρώτα τυπικό αλγόριθμο σε χαρτί!!! Με τίποτα, σε γλώσσα προγραμματισμού γράφουμε κατευθείαν.)

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

 
Back
Top