Πολλαπλασιασμός αλά ρωσικά ??

Ξεκίνησε από ptsiotakis, 19 Μαΐου 2006, 11:28:28 ΠΜ

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

P.Tsiotakis


Ο ανηψούλης μου από την Τενεούπολη με ρώτησε αν ο παρακάτω αλγόριθμος (για τον πολ/σμό αλά ρωσικά) είναι σωστός (δεν τον σκέφτηκε μόνος του):

   Δεδομένα // Μ1, Μ2 //
   P ← 0
   Για Ε από Μ2 μέχρι 0 με_βήμα Κ
      Αν Ε mod 2 = 1 τότε
           P ← P + M1
      Τέλος_αν
      M1 ← M1*2
      K ← M2 div 2
   Τέλος_επανάληψης
   Αποτελέσματα // P //

Ο γιατρός μου είπε οτι ήμουν πολύ τυχερός που τη γλύτωσα και πως πρέπει να προσέχω πολύ στο εξής. Σε επόμενη παρόμοια...συγκίνηση μπορεί να μην είμαι τόσο τυχερός. Δεν είναι και πολύ συνηθισμένες τέτοιες κρίσεις στα 29...

Με εκτίμηση,


nekis


Vangelis

Ποιός τον έγραψε αυτόν βρε παιδιά!!!

gpapargi

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

Δεδομένα //χ, ψ//
γινόμενο < - 0
Αρχή_επανάληψης
  γινόμενο < - γινόμενο + χ * (ψ mod2)   ! Τι σκέφτηκε το άτομο!!!
  χ < - 2* χ
  ψ < - ψ div 2
Μέχρις_ότου ψ = 0
Εμφάνισε γινόμενο

EleniK

Είστε τυχεροί!!!
Μακάρι να είχα και εγώ τετοιες συγκινήσεις έστω και στα 31 πιστεύω να το άντεχα. :-)
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

P.Tsiotakis


Πολύ ωραίο, αλλά ο στόχος του πολλαπλασιασμού αλά ρωσικά είναι να μη χρησιμοποιηθεί ο τελεστής * (του πολλαπλασιασμού)  :D

Ελένη, εσύ έχεις το Φοίβο, μη σκιάζεσαι  :o

Sergio

Παναγιώτη,

"παίξε" βρε συ εκείνο το ωραίο "κομμάτι" που είχες φτιάξει, να δεις πώς το λέγαν, πώς το λέγαν ... ... ... ΑΑΑ ύψωση σε δύναμη α λα ρωσσικά !!  :D

ΤΙ ωραία άσκηση !!!

Βάλε τη να τη δούνε όλοι να ... θαυμάσουν  :)
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

EleniK

Τελικά έτσι θα καταλήξω. Στην ανάγκη του Φοίβου αν καταργηθεί η ΑΕΠΠ.  ;D
Ελένη Κοκκίνου
Καθηγήτρια Πληροφορικής, ΠΕ19

Sergio

Επειδή ο Παναγιώτης είναι μάλλον πολύ ... μετριόφρων για να απαντήσει στην "πρόσκληση", θα μου επιτρέψει να την "ανεβάσω" εγώ την άσκηση. 

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

Ιδού λοιπόν:

Να σχηματίσετε το διάγραμμα ροής για την παρακάτω κωδικοποίηση.
Nα σχηματίσετε τον πίνακα τιμών αν
i. x = 4, n = 2,
ii. x = 3, n = 3 
Μελετώντας τα αποτελέσματα, ποια πιστεύετε ότι είναι η λειτουργία του αλγορίθμου;

Κώδικας: ΑΛΓΟΡΙΘΜΟΣ
Αλγόριθμος Ασκηση
  Διάβασε x, n
  m ← n
  z ← x
  αποτέλεσμα ← 1
  Όσο m > 0 επανάλαβε
    Όσο (m mod 2 = 0) επανάλαβε
    m ← m div 2
    z ← z * z
    Τέλος_επανάληψης
    m ← m - 1
    αποτέλεσμα ← αποτέλεσμα * z
  Τέλος_επανάληψης
  Εκτύπωσε αποτέλεσμα
Τέλος Ασκηση


Δεν είναι πολλαπλασιασμός αλα ρωσσικά, όμως νομίζω ότι "φέρνει λίγο" σε ... κάτι αλα ρωσσικά.

Ας τον εξετάσει επομένως (και ας τον "βαφτίσει") ο καθένας μόνος του  ;)
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

P.Tsiotakis


Σέργιε, πρόκειται για τη ΔΣ3 στο κεφάλαιο 4 (σελίδα 42 τετραδίου μαθητή) που είναι πλέον ο μόνος αλγόριθμος στο διδακτικό πακέτο που δεν έχει χρησιμοποιηθεί ακόμα στα θέματα των εξετάσεων. Και τώρα με τη διαφήμισή του, δεν πρόκειται να μπει ποτέ  :'( . Εγώ απλά πρόσθεσα το διάγραμμα ροής. Κρίμα, και είχα πιάσει το θέμα των εξετάσεων    :o

Μπορείς με αυτόν τον αλγόριθμο να υπολογίσεις την ύψωση σε δύναμη αν στο πληκτρολόγιό σου δεν δουλεύει το ^  ;D

Με εκτίμηση, Παναγιώτης

Sergio

Τώρα αν πω:

...Ναι ρε συ... το θυμόμουν!!! Ήθελα να δω αν θα αφήσεις να υποθέσουμε ότι είναι δική σου η άσκηση...

θα πείσω κανένα;; :-[
Απ τη μια η θητεία μου σε σχολικές αίθουσες: να φλυαρώ - να ελπίζω πως κατι κατάλαβαν - να εξερευνώ - να μαθαίνω. Απ την άλλη, σχεδόν συνομήλικη, η Διδακτική της Πληροφορικής: ερευνά διαδικασίες μάθησης - φλερτάρει με την Ψυχολογία - με καλεί να αφήσω το βλέμμα του Πληροφορικού και να δω με τα μάτια του δασκάλου. Τέκνα των 2, οι απόψεις μου.. (προσαρμοσμένο από τον πρόλογο του βιβλίου "Το μακρόν Φυσική προ του βραχέως διδάσκω" του Ανδρέα Κασσέτα)

P.Tsiotakis


Εγώ σε πιστεύω γιατί είσαι καλός μου φίλος, global moderator και Λαρισαίος

sogruokyl

Παράθεση από: Τσιωτάκης Παναγιώτης στις 19 Μαΐου 2006, 11:28:28 ΠΜ

Ο ανηψούλης μου από την Τενεούπολη με ρώτησε αν ο παρακάτω αλγόριθμος (για τον πολ/σμό αλά ρωσικά) είναι σωστός (δεν τον σκέφτηκε μόνος του):

   Δεδομένα // Μ1, Μ2 //
   P ← 0
   Για Ε από Μ2 μέχρι 0 με_βήμα Κ
      Αν Ε mod 2 = 1 τότε
           P ← P + M1
      Τέλος_αν
      M1 ← M1*2
      K ← M2 div 2
   Τέλος_επανάληψης
   Αποτελέσματα // P //

Ο γιατρός μου είπε οτι ήμουν πολύ τυχερός που τη γλύτωσα και πως πρέπει να προσέχω πολύ στο εξής. Σε επόμενη παρόμοια...συγκίνηση μπορεί να μην είμαι τόσο τυχερός. Δεν είναι και πολύ συνηθισμένες τέτοιες κρίσεις στα 29...

Με εκτίμηση,



Φίλε Παναγιώτη,
Καταλαβαίνω τη λογική του αλγόριθμου, αλλά αν δεν κάνω λάθος, δε δουλεύει...
Καταρχήν, φαντάζομαι ότι εννοούσες "με_βήμα -Κ"
Επίσης, φαντάζομαι ότι εννοούσες "K <-- E div 2" και όχι "K <-- M2 div 2"
Αλλά και πάλι αν αφαιρεί το Κ συνεχώς, στην περίπτωση που το Ε είναι περιττός δε δουλεύει...
Πρέπει να αφαιρεί το Κ+1... (και "μέχρι 1")

Έσπασα το κεφάλι μου να δω μήπως δεν έχω καταλάβει τη λογική σου και εννοείς κάτι διαφορετικό
από αυτό που κατάλαβα... Άν μπορείς εσύ ή κάποιος άλλος παρακαλώ απαντήστε μου, ευχαριστώ
εκ των προτέρων!

Αν έχω δίκιο τότε διορθωμένο πρέπει να είναι έτσι:

Δεδομένα // Μ1, Μ2 //
P ← 0
Για Ε από Μ2 μέχρι 1 με_βήμα -Κ
   Αν Ε mod 2 = 1 τότε
      P ← P + M1
      K ← Ε div 2 + 1
   Αλλιώς
      K ← Ε div 2
   Τέλος_αν
   M1 ← M1*2
Τέλος_επανάληψης
Αποτελέσματα // P //

(Το δοκίμασα στη Γλωσσομάθεια και δουλεύει, απλά πρέπει να δωθεί αρχική τιμή στο Κ)

Φαντάζομαι οτι συμφωνείς πως είναι απαράδεκτο να αλλάζει η τιμή του μετρητή (του i ή εδώ του Ε)
μέσα στην επανάληψη. ʼραγε δεν είναι άσχημο να αλλάζει τιμή το βήμα (εδώ το Κ);

P.Tsiotakis

Φίλε Λυκούργε,

Ακριβώς όπως επισημαίνεις:

Η αρχική τιμή, η τελική, το βήμα και η τιμή του μετρητή δεν πρέπει ΠΟΤΕ να αλλάζουν τιμή εντός του βρόχου (τετράδιο μαθητή). Χιλιοειπωμένο και χιλιοσχολιασμένο.

Κι αυτό γιατί η δομή Για που είναι φτιαγμένη για να επιλύει προβλήματα με γνωστό πλήθος επαναλήψεων τα διαχειρίζεται η ίδια. Απο κει και πέρα αν θέλουμε κάτι άλλο στον αλγόριθμο μπορούμε απλά να χρησιμοποιήσουμε μια απο τις Όσο και Μέχρις_ότου.



Το έχω πει περίπου απο το 2003 που συμμετέχω σε αυτό το φορουμ: το μεγάλο πρόβλημα δεν είναι το διδακτικό πακέτο ή κάτι άλλο, αλλά η εμμονή ημών των καθηγητών να εντάσσουμε τις προγραμματιστικές μας γνώσεις (διαφορετικές ο κάθε ένας) σε αυτό το μάθημα αγνοώντας τις ειδικές συνθήκες που το διέπουν, αλλά και τους στόχους που καλείται να εκπληρώσει...
Και μερικές φορές ψάχνουμε το περίεργο, το ακραίο για εξάσκηση, για να εντυπωσιάσουμε ή για άλλους λόγους..  :'(

xazlag

Καλήμερα!
Στον πολ/σμο αλα ρώσικα, για τον 2ο αριθμό που διαιρείται με το 2, οι εντολές  Μ2<--Α_Μ(Μ2/2) και
Μ2<--Μ2div 2 είναι ισοδύναμες;
Ευχαριστώ

P.Tsiotakis

Ναι, είναι το ίδιο

όπως και αυτό που χρησιμοποιεί το σχολικό

Μ2 <-- [Μ2/2], που εξηγεί οτι οι αγκύλες εκφράζουν το ακέραιο μέρος

Απλά στο σχολικό βιβλίο, οι τελεστές div, mod παρουσιάζονται στο κεφάλαιο 7 και όχι στο 2!
Θεωρεί βέβαια το βιβλίο καθηγητή (όχι βάσιμα πάντα), πως η ύλη διδάσκεται σπειροειδώς...

nikolasmer

Παράθεση από: Παναγιώτης Τσιωτάκης στις 19 Μαΐου 2006, 11:28:28 ΠΜ
Ο ανηψούλης μου από την Τενεούπολη με ρώτησε αν ο παρακάτω αλγόριθμος (για τον πολ/σμό αλά ρωσικά) είναι σωστός (δεν τον σκέφτηκε μόνος του):

   Δεδομένα // Μ1, Μ2 //
   P ← 0
   Για Ε από Μ2 μέχρι 0 με_βήμα Κ
      Αν Ε mod 2 = 1 τότε
           P ← P + M1
      Τέλος_αν
      M1 ← M1*2
      K ← M2 div 2
   Τέλος_επανάληψης
   Αποτελέσματα // P //

Ο γιατρός μου είπε οτι ήμουν πολύ τυχερός που τη γλύτωσα και πως πρέπει να προσέχω πολύ στο εξής. Σε επόμενη παρόμοια...συγκίνηση μπορεί να μην είμαι τόσο τυχερός. Δεν είναι και πολύ συνηθισμένες τέτοιες κρίσεις στα 29...

Με εκτίμηση,
Το Ε είναι δεσμευμένο :P :P :P
Μερεντίτης Νικόλαος
Πληροφορικός

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

Παράθεση από: xazlag στις 13 Ιαν 2008, 10:54:50 ΠΜ
Καλήμερα!
Στον πολ/σμο αλα ρώσικα, για τον 2ο αριθμό που διαιρείται με το 2, οι εντολές  Μ2<--Α_Μ(Μ2/2) και
Μ2<--Μ2div 2 είναι ισοδύναμες;
Ευχαριστώ

αν ενας αριθμος ειναι ακεραιος εστω χ αυτος ο αριθμος τοτε ισχυει x div2=Α_Μ(χ/2).αν δεν ειναι ακεραιος τοτε
η ισοτητα δεν ισχυει καθως το div χρησιμοποιειται μονο για ακεραιους.πχ 5/2=2.5 αρα A_Μ(2.5)=2 και 5div2=2

Καρκαμάνης Γεώργιος

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

petrosp13

Μα ο πολλαπλασιασμός αλά ρωσικά αναφέρεται μόνο σε ακεραίους, άρα είναι δεκτό και το Α_Μ σαν υλοποίηση σε ΓΛΩΣΣΑ
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

Σάκης Δημόπουλος


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

#21

προγραμμα σε Γλωσσα πολλαπλασιασμου αλλα ρωσικα χωρις συντελεστη * και χωρις Αν


ΠΡΟΓΡΑΜΜΑ πολσμος_αλα_ρωσικα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, β
  ΠΡΑΓΜΑΤΙΚΕΣ: αθρ
ΑΡΧΗ

  αθρ <- 0
  ΔΙΑΒΑΣΕ α, β
  ΟΣΟ α >= 1 και β<>0 ΕΠΑΝΑΛΑΒΕ  !0^0 δεν οριζεται και υπαρχει πιθανοτητα αν δεν βαλω τη δευτερη συνθηκη να προκυψει αυτο μεσα στην επαναληψη

    αθρ <- αθρ + β^(α mod 2) - (1 - α mod 2)
    α <- α div 2
    β <- β + β
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ Α_Μ(αθρ)         !για να φαινεται χωρις τα μηδενικα δεκαδικα,ως ακεραιος


ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


2η ΕΚΔΟΧΗ  που λαμβανει υποψιν και αρνητικους αριθμους με τους ιδιους περιορισμους που εχω παραπανω(χωρις *,ΑΝ):


ΠΡΟΓΡΑΜΜΑ πολσμος_αλα_ρωσικα
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: α, β
  ΠΡΑΓΜΑΤΙΚΕΣ: αθρ, χ
ΑΡΧΗ

  αθρ <- 0
  ΔΙΑΒΑΣΕ α, β
  χ <- Α_Τ(α) + Α_Τ(β)
  χ <- Α_Τ(α + β) - χ + 1
             !αν α*β>=0 το χ ειναι 1 αλλιως ειναι αρνητικο(αποδεικνυεται ευκολα)
  α <- Α_Τ(α)
  β <- Α_Τ(β)
  ΟΣΟ α >= 1 ΚΑΙ β <> 0 ΕΠΑΝΑΛΑΒΕ!0^0 δεν οριζεται και υπαρχει πιθανοτητα αν δεν βαλω τη δευτερη συνθηκη να προκυψει αυτο μεσα στην επαναληψη

    αθρ <- αθρ + β^(α mod 2) - (1 - α mod 2)
    α <- α div 2
    β <- β + β
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
       !το div χρησιμοποειται με ακεραιους για αυτο χρησιμοποιω τη συναρτηση Α_Μ
  ΓΡΑΨΕ (Α_Μ(αθρ)) div (Α_Μ(χ) div Α_Μ(Α_Τ(χ)))


ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ