ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΑΛΑ ΡΩΣΙΚΑ ΜΕ ΑΛΛΑΓΗ

Ξεκίνησε από landreou, 23 Ιαν 2013, 01:14:05 ΜΜ

« προηγούμενο - επόμενο »

landreou

Γεια σας φίλοι του ΣτΠ. Στο βιβλίο σελ.44 ξεκινάει το θέμα "Πολλαπλασιασμός αλά Ρώσικα" και λέει (σελ.45) : "Ωστόσο, η πράξη του πολλαπλασιασμού δεν εκτελείται από τον υπολογιστή με τον τρόπο αυτό. Πιο συγκεκριμένα, ο χρησιμοποιούμενος τρόπος είναι ο λεγόμενος πολλαπλασιασμός αλά ρωσικά. Χωρίς βλάβη της γενικότητας θεωρούμε ότι οι ακέραιοι είναι θετικοί (μεγαλύτεροι του μηδενός), αλλά η μέθοδος μπορεί εύκολα να μετατραπεί, ώστε να περιγράψει και την περίπτωση των αρνητικών ακεραίων."
Αν γίνεται αυτή η μετατροπη να εκφραστεί σε αλγόριθμο για να καλύψουμε και αυτή τη περίπτωση .

Εκ προοιμίου σας ευχαριστώ

gthal

Υποθέτω εφαρμόζεις τον αλγόριθμο κανονικά (για τις απόλυτες τιμές των αριθμών) και στο τέλος, ανάλογα με τα πρόσημα των αριθμών που πολ/σιάζεις καθορίζεις και το πρόσημο του αποτελέσματος.
Φιλικά,
Γιώργος Θαλασσινός

landreou

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

nikolasmer

Θα προσθέσεις τις εξής εντολές:

Διάβασε χ, ψ ! που μπορεί να είναι και ομόσημοι και ετερόσημοι.
α <- Α_Τ(χ)
β <- Α_Τ(ψ)
! κάνεις πολ/σμό Αλά Ρώσικα με τις α και β μεταβλητές και στο τέλος
Αν χ * ψ >0 τότε ! ομόσημοι
   Εμφάνισε αποτέλεσμα
Αλλιώς  ! ετερόσημοι
   Εμφάνισε - αποτέλεσμα
Τέλος_αν

Μερεντίτης Νικόλαος
Πληροφορικός

gthal

ε, εντάξει, επειδή είναι λίγο ειρωνεία να παλεύουμε τόση ώρα για να βρούμε το γινόμενο χ*ψ με πολ/σμό αλά ρωσικά και στο τέλος να λέμε
"Αν χ*ψ >0 "  (δηλ. να χρησιμοποιούμε έτοιμο το γινόμενο για να βρούμε το πρόσημό του)
θα προτιμούσα τις στοιχειώδεις συγκρίσεις με το μηδέν

Αν (χ<0 και ψ>0) ή (χ>0 και ψ<0) τότε
  αποτέλεσμα <-  - αποτέλεσμα
τέλος_αν
Φιλικά,
Γιώργος Θαλασσινός

nikolasmer

Ναι έχεις  απόλυτο δίκαιο. Δε μου πέρασε καθόλου από το μυαλό.
Διορθώνω
Παράθεση από: gthal στις 31 Ιαν 2013, 02:51:58 ΠΜ

Αν (χ<0 και ψ>0) ή (χ>0 και ψ<0) τότε
  αποτέλεσμα <-  - αποτέλεσμα
τέλος_αν

Μερεντίτης Νικόλαος
Πληροφορικός

Κωστας τζιαννης

Παράθεση από: gthal στις 31 Ιαν 2013, 02:51:58 ΠΜ
ε, εντάξει, επειδή είναι λίγο ειρωνεία να παλεύουμε τόση ώρα για να βρούμε το γινόμενο χ*ψ με πολ/σμό αλά ρωσικά και στο τέλος να λέμε
"Αν χ*ψ >0 "  (δηλ. να χρησιμοποιούμε έτοιμο το γινόμενο για να βρούμε το πρόσημό του)
θα προτιμούσα τις στοιχειώδεις συγκρίσεις με το μηδέν

Αν (χ<0 και ψ>0) ή (χ>0 και ψ<0) τότε
  αποτέλεσμα <-  - αποτέλεσμα
τέλος_αν

και γιατι να μην το ελεγξεις ως εξης?
ΑΝ X/Y>0 ...κτλ κτλ (δεν χρησιμοποιεις το γινομενο αλλα διαιρεση) ;) ;) ;)

dpats

Αν και το σχολικό αναφέρει ότι "Χωρίς βλάβη της γενικότητας θεωρούμε ότι οι ακέραιοι είναι θετικοί", ωστόσο η μέθοδος του πολ/σμού αλά ρωσικά δουλεύει και για Υ = 0, ενώ η διαίρεση Χ/Υ όχι. Μια άλλη λύση θα ήταν
ΑΝ Χ < 0 ΤΟΤΕ
  αποτέλεσμα <- - αποτέλεσμα
ΤΕΛΟΣ_ΑΝ
ΑΝ Υ < 0 ΤΟΤΕ
  αποτέλεσμα <- - αποτέλεσμα
ΤΕΛΟΣ_ΑΝ
ΓΡΑΨΕ αποτέλεσμα