Δυαδική αναζήτηση αριθμού

Ο υπολογιστής ζητά από το χρήστη έναν αριθμό 1-500 και εμφανίζει πόσες προσπάθειες έκανε για να τον βρει.

ΠΡΟΓΡΑΜΜΑ ΑΣΚ1
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: χ, π[500], ι, πλ
ΑΡΧΗ
  ΚΑΛΕΣΕ διαβασμα(χ) 
  ΚΑΛΕΣΕ γεμισμα(π) 
  ΚΑΛΕΣΕ ψαξιμο(π, χ, πλ) 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ διαβασμα(χ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: χ
ΑΡΧΗ
  ΔΙΑΒΑΣΕ χ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ 

ΔΙΑΔΙΚΑΣΙΑ γεμισμα(π) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[500], ι
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 500
    π[ι] <- ι
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ψαξιμο(π, χ, πλ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[500], χ, πλ, ψ, αρ, τελ
  ΧΑΡΑΚΤΗΡΕΣ: απ
ΑΡΧΗ
  πλ <- 0
  αρ <- 1
  τελ <- 500
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ψ <- ((αρ + τελ) div 2) 
        πλ <- πλ + 1
    ΑΝ χ = ψ ΤΟΤΕ
      ΓΡΑΨΕ "εψαξα ", πλ, " φορες για να βρω το ", χ
    ΑΛΛΙΩΣ_ΑΝ χ > ψ ΤΟΤΕ
      αρ <- ψ
    ΑΛΛΙΩΣ
      τελ <- ψ
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ χ = ψ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ




Ο υπολογιστής προσπαθεί να μαντέψει τον αριθμό και εμφανίζει πόσες προσπάθειες έκανε για να τον βρει.

ΠΡΟΓΡΑΜΜΑ ΑΣΚ1
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: χ, π[500], ι, πλ
ΑΡΧΗ
  ΚΑΛΕΣΕ διαβασμα
  ΚΑΛΕΣΕ γεμισμα(π) 
  ΚΑΛΕΣΕ ψαξιμο(π, χ, πλ) 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ διαβασμα
ΑΡΧΗ
  ΓΡΑΨΕ "σκεψου εναν αριθμο"
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ 

ΔΙΑΔΙΚΑΣΙΑ γεμισμα(π) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[500], ι
ΑΡΧΗ
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ 500
    π[ι] <- ι
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ψαξιμο(π, χ, πλ) 
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: π[500], χ, πλ, ψ, αρ, τελ
  ΧΑΡΑΚΤΗΡΕΣ: απ
ΑΡΧΗ
  πλ <- 0
  αρ <- 1
  τελ <- 500
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ψ <- ((αρ + τελ) div 2) 
    ΓΡΑΨΕ "ειναι μεγαλυτερο, ισο ή μικροτερο? ", ψ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΔΙΑΒΑΣΕ απ
    ΜΕΧΡΙΣ_ΟΤΟΥ απ = "=" Η απ = ">" Η απ = "<"
    πλ <- πλ + 1
    ΑΝ απ = "=" ΤΟΤΕ
      ΓΡΑΨΕ "εψαξα ", πλ, " φορες"
    ΑΛΛΙΩΣ_ΑΝ απ = ">" ΤΟΤΕ
      αρ <- ψ
    ΑΛΛΙΩΣ
      τελ <- ψ
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ απ = "="
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ


Αλλαγή μεγέθους γραμματοσειράς
Αντίθεση