Προς το περιεχόμενο

ALGORITHM


olga

Προτεινόμενες αναρτήσεις

Δημοσ.

Αλγόριθμος με τη μορφή ψευδοκώδικα, με χρήση Αμυντικού Προγραμματισμού για τη σχέση που πρέπει να έχουν τα Ν και Μ, που κάνει αναζήτηση ενός αλφαριθμητικού μέσα σε ένα άλλο και το τέλος κάθε αλφαριθμητικού σημειώνεται με τον χαρακτήρα ‘\0’.

Ο αλγόριθμος θα πρέπει να ελέγχει αν το K2 βρίσκεται μέσα στο K1 ή όχι και να εκτυπώνει το κατάλληλο μήνυμα («BRETHIKE» ή «DEN BRETHIKE») αντίστοιχα. Αν το στοιχείο βρεθεί, να δίνεται και η θέση του K1 στην οποία αρχίζει το K2.

Στον αλγόριθμό θεωρούμαι ότι έχουμε έτοιμα δύο αλφαριθμητικά K1 και K2 που είναι ήδη αποθηκευμένα σε δύο αντίστοιχους πίνακες χαρακτήρων, όπου το μέγιστο μήκος του K1 είναι Ν χαρακτήρες, ενώ το μέγιστο μήκος του K2 είναι Μ χαρακτήρες.

 

Μπορεί να μου πει κάποιος αν η απάντηση μου είναι σωστή;;;;

Δημοσ.

ΠΡΟΓΡΑΜΜΑ ALFAR

 

ΜΕΤΑΒΛΗΤΕΣ

ΧΑΡΑΚΤΗΡΕΣ: Α, Β

 

ΑΡΧΗ

 

Α := 'ΔΟΚΙΜΑΣΤΙΚΟ ΑΛΦΑΡΙΘΜΗΤΙΚΟ'

Β := 'ΑΛΦ'

 

ΓΡΑΨΕ 'Θέση: ', Θέση_Αλφαριθμητικού(Α, Β)

 

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

 

!------------------------------------------------

 

ΣΥΝΑΡΤΗΣΗ Θέση_Αλφαριθμητικού(K1, K2): ΑΚΕΡΑΙΑ

 

ΜΕΤΑΒΛΗΤΕΣ

ΧΑΡΑΚΤΗΡΕΣ: K1, K2

ΑΚΕΡΑΙΕΣ: μ1, μ2, i, j

ΛΟΓΙΚΕΣ: βρέθηκε

 

ΑΡΧΗ

 

μ1 := ΜΗΚΟΣ_ΧΑΡ(K1)

μ2 := ΜΗΚΟΣ_ΧΑΡ(K2)

 

βρέθηκε := ΨΕΥΔΗΣ

i := 0

 

ΟΣΟ (i<=μ1-μ2) ΚΑΙ (βρέθηκε=ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ

 

j := 1

 

ΟΣΟ (j<=μ2) ΚΑΙ (K1[j+i]=K2[j]) ΕΠΑΝΑΛΑΒΕ

j := j+1

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 

ΑΝ j=μ2+1 ΤΟΤΕ

βρέθηκε := ΑΛΗΘΗΣ

ΤΕΛΟΣ_ΑΝ

 

i := i+1

 

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

 

ΑΝ βρέθηκε=ΑΛΗΘΗΣ ΤΟΤΕ

Θέση_Αλφαριθμητικού := i

ΑΛΛΙΩΣ

Θέση_Αλφαριθμητικού := 0

ΤΕΛΟΣ_ΑΝ

 

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Δημοσ.

Με ένα πρώτο έλεγχο βλέπω πως η απάντηση σου είναι σωστή.

Έλεγξε ειδικότερα τις περιπτώσεις: α) Κάποια ή και οι δύο συμβολοσειρές είναι κενές και β)Η συμβολοσειρά Κ1 έχει μικρότερο μήκος από τη συμβολοσειρά Κ2, αν βέβαια αυτές οι περιπτώσεις δεν αποκλείονται εξαρχής.

Δημοσ.

τι εννοείς δηλαδή;; που πρέπει να συμπεριλάβω τις περιπτώσεις αυτές;;

 

ευχαριστώ για τη βοήθειά σου....

Δημοσ.

Εάν θέλεις, σε περίπτωση που κάποια (ή και οι δύο) από τις συμβολοσειρές είναι κενή, να αποτυγχάνει πάντα η εύρεση, μετά το

>
μ1 := ΜΗΚΟΣ_ΧΑΡ(K1) 
μ2 := ΜΗΚΟΣ_ΧΑΡ(K2) 

 

πρόσθεσε το:

>
ΑΝ μ1=0 ή μ2=0 ΤΟΤΕ
  βρέθηκε:=ΨΕΥΔΗΣ
ΑΛΛΙΩΣ
  βρέθηκε := ΨΕΥΔΗΣ 
  i := 0 

  ΟΣΟ (i<=μ1-μ2) ΚΑΙ (βρέθηκε=ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ 

  j := 1 

  ΟΣΟ (j<=μ2) ΚΑΙ (K1[j+i]=K2[j]) ΕΠΑΝΑΛΑΒΕ 
  j := j+1 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


  ΑΝ j=μ2+1 ΤΟΤΕ 
     βρέθηκε := ΑΛΗΘΗΣ 
  ΤΕΛΟΣ_ΑΝ 

  i := i+1 

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΑΝ

ΑΝ βρέθηκε=ΑΛΗΘΗΣ ΤΟΤΕ 
Θέση_Αλφαριθμητικού := i 
ΑΛΛΙΩΣ 
Θέση_Αλφαριθμητικού := 0 
ΤΕΛΟΣ_ΑΝ 

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...