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

Γενικό Λύκειο => Γ΄ Λυκείου => Δομή επανάληψης => Μήνυμα ξεκίνησε από: P.Tsiotakis στις 19 Μάι 2006, 11:28:28 πμ

Τίτλος: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: P.Tsiotakis στις 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...

Με εκτίμηση,

Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: nekis στις 19 Μάι 2006, 11:45:00 πμ
:) :) :)
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Vangelis στις 19 Μάι 2006, 11:58:21 μμ
Ποιός τον έγραψε αυτόν βρε παιδιά!!!
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: gpapargi στις 10 Ιαν 2007, 11:15:43 πμ
Σε αντιπαράθεση των παραπάνω περιγράφω μια λύση μαθήτριας που είδα πρόσφατα
Αφού περιέγραψα στα παιδιά τη διαδικασία και κάναμε έναν πολλαπλασιασμό με το χέρι για να δούμε τα βήματα, τους είπα να υλοποιήσουν τον αλγόριθμο σε ψευδογλώσσα.
Είχα τη χαρά να δω μια μαθήτρια να συλλαμβάνει έναν από τους πιο ωραίους αλγορίθμους.

Δεδομένα //χ, ψ//
γινόμενο < - 0
Αρχή_επανάληψης
  γινόμενο < - γινόμενο + χ * (ψ mod2)   ! Τι σκέφτηκε το άτομο!!!
  χ < - 2* χ
  ψ < - ψ div 2
Μέχρις_ότου ψ = 0
Εμφάνισε γινόμενο
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: EleniK στις 10 Ιαν 2007, 11:43:40 πμ
Είστε τυχεροί!!!
Μακάρι να είχα και εγώ τετοιες συγκινήσεις έστω και στα 31 πιστεύω να το άντεχα. :-)
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: P.Tsiotakis στις 10 Ιαν 2007, 03:37:52 μμ

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

Ελένη, εσύ έχεις το Φοίβο, μη σκιάζεσαι  :o
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Sergio στις 10 Ιαν 2007, 04:00:38 μμ
Παναγιώτη,

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

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

Βάλε τη να τη δούνε όλοι να ... θαυμάσουν  :)
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: EleniK στις 10 Ιαν 2007, 11:52:32 μμ
Τελικά έτσι θα καταλήξω. Στην ανάγκη του Φοίβου αν καταργηθεί η ΑΕΠΠ.  ;D
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Sergio στις 14 Ιαν 2007, 12:14:22 πμ
Επειδή ο Παναγιώτης είναι μάλλον πολύ ... μετριόφρων για να απαντήσει στην "πρόσκληση", θα μου επιτρέψει να την "ανεβάσω" εγώ την άσκηση. 

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

Ιδού λοιπόν:

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

Κώδικας: Text
  1. Αλγόριθμος Ασκηση
  2.   Διάβασε x, n
  3.   m &#8592; n
  4.   z &#8592; x
  5.   αποτέλεσμα &#8592; 1
  6.   Όσο m > 0 επανάλαβε
  7.     Όσο (m mod 2 = 0) επανάλαβε
  8.     m &#8592; m div 2
  9.     z &#8592; z * z
  10.     Τέλος_επανάληψης
  11.     m &#8592; m - 1
  12.     αποτέλεσμα &#8592; αποτέλεσμα * z
  13.   Τέλος_επανάληψης
  14.   Εκτύπωσε αποτέλεσμα
  15. Τέλος Ασκηση
  16.  

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

Ας τον εξετάσει επομένως (και ας τον "βαφτίσει") ο καθένας μόνος του  ;)
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: P.Tsiotakis στις 14 Ιαν 2007, 05:57:52 μμ

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

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

Με εκτίμηση, Παναγιώτης
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Sergio στις 14 Ιαν 2007, 09:03:25 μμ
Τώρα αν πω:

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

θα πείσω κανένα;; :-[
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: P.Tsiotakis στις 15 Ιαν 2007, 05:06:39 μμ

Εγώ σε πιστεύω γιατί είσαι καλός μου φίλος, global moderator και Λαρισαίος
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: sogruokyl στις 09 Ιαν 2008, 03:39:34 πμ

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

   Δεδομένα // Μ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 στις 09 Ιαν 2008, 01:39:03 μμ
Φίλε Λυκούργε,

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

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

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


Το έχω πει περίπου απο το 2003 που συμμετέχω σε αυτό το φορουμ: το μεγάλο πρόβλημα δεν είναι το διδακτικό πακέτο ή κάτι άλλο, αλλά η εμμονή ημών των καθηγητών να εντάσσουμε τις προγραμματιστικές μας γνώσεις (διαφορετικές ο κάθε ένας) σε αυτό το μάθημα αγνοώντας τις ειδικές συνθήκες που το διέπουν, αλλά και τους στόχους που καλείται να εκπληρώσει...
Και μερικές φορές ψάχνουμε το περίεργο, το ακραίο για εξάσκηση, για να εντυπωσιάσουμε ή για άλλους λόγους..  :'(
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: xazlag στις 13 Ιαν 2008, 10:54:50 πμ
Καλήμερα!
Στον πολ/σμο αλα ρώσικα, για τον 2ο αριθμό που διαιρείται με το 2, οι εντολές  Μ2<--Α_Μ(Μ2/2) και
Μ2<--Μ2div 2 είναι ισοδύναμες;
Ευχαριστώ
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: P.Tsiotakis στις 13 Ιαν 2008, 01:35:28 μμ
Ναι, είναι το ίδιο

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

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

Απλά στο σχολικό βιβλίο, οι τελεστές div, mod παρουσιάζονται στο κεφάλαιο 7 και όχι στο 2!
Θεωρεί βέβαια το βιβλίο καθηγητή (όχι βάσιμα πάντα), πως η ύλη διδάσκεται σπειροειδώς...
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: nikolasmer στις 14 Οκτ 2015, 01:34:43 μμ
Ο ανηψούλης μου από την Τενεούπολη με ρώτησε αν ο παρακάτω αλγόριθμος (για τον πολ/σμό αλά ρωσικά) είναι σωστός (δεν τον σκέφτηκε μόνος του):

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

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

Με εκτίμηση,
Το Ε είναι δεσμευμένο :P :P :P
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Κωστας τζιαννης στις 04 Μάι 2017, 09:20:41 πμ
Καλήμερα!
Στον πολ/σμο αλα ρώσικα, για τον 2ο αριθμό που διαιρείται με το 2, οι εντολές  Μ2<--Α_Μ(Μ2/2) και
Μ2<--Μ2div 2 είναι ισοδύναμες;
Ευχαριστώ

αν ενας αριθμος ειναι ακεραιος εστω χ αυτος ο αριθμος τοτε ισχυει x div2=Α_Μ(χ/2).αν δεν ειναι ακεραιος τοτε
η ισοτητα δεν ισχυει καθως το div χρησιμοποιειται μονο για ακεραιους.πχ 5/2=2.5 αρα A_Μ(2.5)=2 και 5div2=2
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Καρκαμάνης Γεώργιος στις 04 Μάι 2017, 10:40:45 πμ
Να μη ξεχνάμε ότι αναφερόμαστε σε αλγόριθμο που το τρόπος γραφής δεν είναι τόσο αυστηρός. Προφανώς αν υλοποιηθεί σε ΓΛΩΣΣΑ θα υπάρχουν κάποιοι περιορισμοί ως προς τον τύπο των μεταβλητών που θα εφαρμόζεται ο πολλαπλασιασμός αλα ρωσικά ή ορισμένες δυσκολίες θα αντιμετωπιστούν με άλλον τρόπο (όπως αναφέρθηκε με το ΑΜ).
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: petrosp13 στις 04 Μάι 2017, 10:51:56 πμ
Μα ο πολλαπλασιασμός αλά ρωσικά αναφέρεται μόνο σε ακεραίους, άρα είναι δεκτό και το Α_Μ σαν υλοποίηση σε ΓΛΩΣΣΑ
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Σάκης Δημόπουλος στις 26 Σεπ 2019, 10:32:51 πμ
https://www.youtube.com/watch?v=5LlHaoqBfbk&t=
Τίτλος: Απ: Πολλαπλασιασμός αλά ρωσικά ??
Αποστολή από: Κωστας τζιαννης στις 06 Οκτ 2019, 03:33:05 πμ

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


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

  αθρ <- 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 Α_Μ(Α_Τ(χ)))


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