Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Θεωρία => Μήνυμα ξεκίνησε από: manosteach στις 05 Απρ 2012, 06:33:34 ΜΜ

Τίτλος: Διαφορά div με A_M(x)
Αποστολή από: manosteach στις 05 Απρ 2012, 06:33:34 ΜΜ
1)α<-- β div γ

2)α<-- A_M(β/γ)

Σε αυτές τις 2 εντολές η διαφορά είναι οτι στην πρώτη περίπτωση τα β και γ πρέπει να είναι ακέραιες τιμές ενώ στην δεύτερη περίπτωση μπορεί να είναι και πραγματικές.

Υπάρχει και κάποια άλλη διαφορά; 
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: P.Tsiotakis στις 05 Απρ 2012, 06:51:23 ΜΜ
νομίζω πως όχι

και στα δυο το α θα δεχτεί ακέραια τιμή
και το γ πρέπει <> 0
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: manosteach στις 05 Απρ 2012, 07:19:17 ΜΜ
Γιατί στην συνάρτηση Α_Μ(α/β) πρέπει τα α και β να είναι ακέραιες τιμές; 
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: P.Tsiotakis στις 05 Απρ 2012, 07:37:10 ΜΜ
A_M(β/γ) είχες γράψει
τα β, γ πραγματικές τιμές (γ όχι 0)
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: manosteach στις 05 Απρ 2012, 07:42:19 ΜΜ
Οπότε συμφωνείς και εσύ οτι η διαφορά τους είναι οτι στο div πρέπει να είναι ακέραιες τιμές τα β και γ, ένω στην Α_Μ(β/γ) μπορούν να είναι πραγματικές και το γ<>0
Σωστά κατάλαβα συνάδελφε;
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: P.Tsiotakis στις 05 Απρ 2012, 07:48:21 ΜΜ
Ναι Μάνο
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: manosteach στις 05 Απρ 2012, 08:09:58 ΜΜ
Ευχαριστώ πολύ.

Αν δεν γίνομαι κουραστικός μπορώ να κάνω ακόμα μία ερώτηση?
Έβαλα σαν άσκηση να υλοποιήσουν την συνάρτηση Α_Μ(β,γ) που επιστρέφει το ακέραιο μέρος β/γ. Σαν Λύση έδωσα το παρακάτω. Η συνάρτηση θα είναι ακέραια ή πραγματική;

ΣΥΝΑΡΤΗΣΗ  Α_Μ(Β,Γ):???????
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ:Β,Γ,Κ,Μ
ΑΡΧΗ
Κ<--Β/Γ   
Μ<--Κ   
ΟΣΟ Μ>= 1 ΕΠΑΝΑΛΑΒΕ
Μ<--Μ-1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Α_Μ<--Κ-Μ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: gpapargi στις 05 Απρ 2012, 09:47:49 ΜΜ
Μια διεκρινιστική ερώτηση πάνω στο αρχικό ερώτημα: μιλάμε μόνο για θετικούς ή και για αρνητικούς;
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: manosteach στις 05 Απρ 2012, 10:03:08 ΜΜ
Για θετικούς.
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: gpapargi στις 06 Απρ 2012, 10:25:54 ΠΜ
Μια μικρή παρατήρηση είναι ότι η Α_Μ είναι υπάρχουσα συνάρτηση και άρα δεσμευμένη λέξη. Καλό είναι να αλλάξουμε όνομα συνάρτησης.

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

Έτσι όπως έχεις φτιάξει τη συνάρτηση το αποτέλεσμα είναι πραγματικό σαν δήλωση μεταβλητής, αλλά ακέραιο σαν αξία (πχ 3.0) Για να το κάνεις ακέραιο σα δήλωση μεταβλητής θα πρέπει να χρησιμοποιήσεις την ενσωματωμένη συνάρτηση Α_Μ, κάτι που απαγορεύει η άσκηση αφού αυτή πας να υλοποιήσεις.  Γι αυτό είναι λίγο μπερδεμένη η φάση. Η ενσωματωμένη Α_Μ δε βρίσκει μόνο την αξία του αριθμού. Κάνει και αποκοπή των δεκαδικών ώστε να μπορεί να μπει ο αριθμός σε ακέραια μεταβλητή.

Να πω επίσης ότι στα μαθηματικά οι τελεστές div και mod ορίζονται στους ακεραίους. Δεν έχει νόημα κάτι άλλο. Αφού σταματάς τη διαδικασία της διαίρεσης πριν την υποδιαστολή και δεν μπλέκεις με δεκαδικά ψηφία τι νόημα έχει το να έχει δεκαδικά ψηφία σε διαιρετέο και διαιρέτη;
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: P.Tsiotakis στις 06 Απρ 2012, 02:48:40 ΜΜ
συμπληρωματικά στην ανάλυση του Γιώργου
θα μπορούσες να υλοποιήσεις την επανάληψης ξεκινώντας από το μηδέν (και ανεβαίνοντας κατά 1) μέχρι να μην ξεπεραστεί ο αριθμός
έτσι το αποτέλεσμα είναι ακέραια τιμή!!
Τίτλος: Απ: Διαφορά div με A_M(x)
Αποστολή από: gpapargi στις 06 Απρ 2012, 03:09:17 ΜΜ
Μια ωραία συναφής άσκηση που είχε προτείνει ο evry παλιότερα είναι το να βρεις div και mod επαναληπτικά. Δηλαδή να ξεκινήσεις από το διαιρετέο και να καταβείνεις με βήμα το διαιρέτη μέχρι να σκάσεις στο διάστημα από 0 μέχρι το διαιρέτη - 1. 
Εδώ θα εντοπίσεις ότι το πρόβλημα μοιάζει ως προς τη λύση του με εκείνα που προσθέτεις και σταματάς πριν ξεπεράσεις το όριο ή εναλλακτικά αφαιρείς. Πχ αυτό με τα γραμματόσημα που είχε πέσει θέμα 3 το 2007. Έχουμε τις ίδιες λύσεις.