Τώρα είναι Πέμ 26 Δεκ 2024 10:20 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 3 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Εύρεση μεσαίου αριθμού
ΔημοσίευσηΔημοσιεύτηκε: Σάβ 05 Νοέμ 2011 09:33 am 
Χωρίς σύνδεση

Εγγραφή: Σάβ 05 Νοέμ 2011 09:31 am
Δημοσιεύσεις: 1
Να αναπτυχθεί αλγόριθμος που θα διαβάζει τρεις άνισους πραγματικούς αριθμούς, θα υπολογίζει και θα εμφανίζει τη διάμεσό τους, δηλαδή τον "μεσαίο" από αυτούς.
Αν για παράδειγμα δοθούν οι αριθμοί 1 , 2 και 3 με οποιαδήποτε σειρά (1,2,3 ή 1,3,2 ή 2,1,3 ή 2,3,1 ή 3,1,2 ή 3,2,1) ο αλγόριθμος θα πρέπει να εμφανίζει ως αποτέλεσμα τον αριθμό 2.
Πρόκληση. Μπορεί να λυθεί με τη χρήση δύο μόνο απλών αν και χωρίς καμία λογική πράξη (και – ή – όχι).


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης: Re: Εύρεση μεσαίου αριθμού
ΔημοσίευσηΔημοσιεύτηκε: Παρ 11 Νοέμ 2011 12:38 am 
Χωρίς σύνδεση

Εγγραφή: Παρ 30 Μάιος 2008 09:46 pm
Δημοσιεύσεις: 49
Πολύ ωραίο προβληματάκι !!! :)

spoiler :
Μια λύση (με την προϋπόθεση ότι δεν εμφανίζονται προβλήματα υπερχείλισης (overflow) ή λόγω στρογγυλοποίησης ) :

Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΠΡΟΒ_ΔΙΑΜΕΣΟΣ
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: Α, Β, Γ, ΔΙΑΜΕΣΟΣ
ΑΡΧΗ      
  ΓΡΑΨΕ 'Δώσε 3 αριθμούς :'
  ΔΙΑΒΑΣΕ Α, Β, Γ  
  ΔΙΑΜΕΣΟΣ <-- Α
!Αν α < β < γ => (α < β ΚΑΙ β < γ) => ( (β-α) > 0 ΚΑΙ (γ-β) > 0 ) => (β-α)*(γ-β) > 0 => (α-β)*(γ-β) < 0
!Ομοίως αν γ < β < α => (α-β)*(γ-β) < 0
  ΑΝ (Α-Β)*(Γ-Β) < 0 ΤΟΤΕ
    ΔΙΑΜΕΣΟΣ <-- Β
  ΤΕΛΟΣ_ΑΝ
!Ομοίως αν β < γ < α ή α < γ < β => (α-γ)*(β-γ) < 0
  ΑΝ (Α-Γ)*(Β-Γ) < 0 ΤΟΤΕ
    ΔΙΑΜΕΣΟΣ <-- Γ
  ΤΕΛΟΣ_ΑΝ
!Για κάθε άλλη περίπτωση έχουμε επιλέξει το Α από την αρχή
  ΓΡΑΨΕ 'Διάμεσος : ', ΔΙΑΜΕΣΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

_________________
"Δύο πράγματα είναι ατελείωτα (άπειρα), το σύμπαν και η ανθρώπινη βλακεία, για το 1ο δεν είμαι σίγουρος." Einstein
"Τα πάντα ρει" (Τα πάντα ρέουν/αλλάζουν) Ηράκλειτος
"Μη μου τους κύκλους τάραττε" Αρχιμήδης


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
 Θέμα δημοσίευσης: Re: Εύρεση μεσαίου αριθμού
ΔημοσίευσηΔημοσιεύτηκε: Παρ 25 Νοέμ 2011 02:29 am 
Χωρίς σύνδεση

Εγγραφή: Παρ 25 Νοέμ 2011 02:25 am
Δημοσιεύσεις: 1
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ  Ενδιαμέσες_τιμες
ΜΕΤΑΒΛΗΤΕΣ
  ΠΡΑΓΜΑΤΙΚΕΣ: x,y,z,max,min,mid
ΑΡΧΗ
  ΔΙΑΒΑΣΕ x,y,z
  min <-- x
  max <-- x
  mid <-- x
  ΑΝ y<min  ΤΟΤΕ
    min <-- y
  ΤΕΛΟΣ_ΑΝ
  ΑΝ z<min  ΤΟΤΕ
    min <-- z
  ΤΕΛΟΣ_ΑΝ
  ΑΝ y>max  ΤΟΤΕ
    max <-- y
  ΤΕΛΟΣ_ΑΝ
  ΑΝ z>max  ΤΟΤΕ
    max <-- z
  ΤΕΛΟΣ_ΑΝ
  ΑΝ x<>max και x<>min  ΤΟΤΕ
    mid <-- x
  ΑΛΛΙΩΣ_ΑΝ y<>max και y<>mid ΤΟΤΕ
    mid <-- y
  ΑΛΛΙΩΣ
    mid <-- z
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ mid
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 3 Δημοσιεύσεις ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 3 επισκέπτες


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: