Αποστολέας Θέμα: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή  (Αναγνώστηκε 1989 φορές)

gergerman

  • Θαμώνας
  • ***
  • Μηνύματα: 27
Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« στις: 20 Φεβ 2020, 05:36:59 μμ »
Στην άσκηση 9, σελ. 120, ερώτημα3, τι θέλει να πει ο ποιητής;  Να γίνουν αυτά που ζητάει για τις ημερομηνίες του πίνακα που βρίσκονται εντός των 2 ημερομηνιών που διαβάζονται;
Μήπως μπορεί κάποιος να ανεβάσει κάποια λύση;

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #1 στις: 20 Φεβ 2020, 07:18:17 μμ »
Προφανώς. (συμπεριλαμβανομένων και αυτών των ημερομηνιών αν υπάρχουν). Λύνεται με Όσο για να εκμεταλλευτούμε και το γεγονός ότι οι πίνακες είναι ταξινομημένοι. Προχωράμε μέχρι να βρούμε στους πίνακες ημερομηνία >= από την 1η ημερομηνία. Στη συνέχεια  κάνουμε αυτά που ζητάει και προχωράμε μέχρι να βρούμε ημερομηνία > από τη 2η ημερομηνία ή όταν εξαντλήσουμε τον πίνακα, οπότε σταματάμε. Όταν μπορέσω  θα ανεβάσω τη λύση.
« Τελευταία τροποποίηση: 20 Φεβ 2020, 11:02:18 μμ από ολγα »

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #2 στις: 20 Φεβ 2020, 10:26:52 μμ »
sum<-0
ΔΙΑΒΑΣΕ η1, μ1
ΔΙΑΒΑΣΕ η2, μ2
ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ_ΗΜΕΡΟΜΗΝΙΑΣ (η1,μ1,η2,μ2)
flag <- ΨΕΥΔΗΣ
ι <- 1
ΟΣΟ flag = ΨΕΥΔΗΣ ΚΑΙ i <= 500 ΕΠΑΝΑΛΑΒΕ
    ΑΝ μ1 > Μήνα [ι] Η μ1 = Μήνα[ι]ΚΑΙ η1 > Ημέρα[ι] ΤΟΤΕ
          i <- i + 1
    ΑΛΛΙΩΣ
         ΑΝ μ2 > Μήνα[ι] Η μ2 = Μήνα[ι] ΚΑΙ η2 >= Ημέρα[ι] ΤΟΤΕ
              ΓΡΑΨΕ Περιγραφή[ι],Kόστος[ι]
              sum<sum+Kόστος[ι]
              ι <-ι + 1
         ΑΛΛΙΩΣ
              flag <- ΑΛΗΘΗΣ
        ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ sum

eleniletta

  • Νέος
  • *
  • Μηνύματα: 4
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #3 στις: 24 Φεβ 2020, 10:03:58 μμ »
Συνάδελφοι καλησπέρα,
τι γίνεται στην περίπτωση όπου ο μήνας αλλάζει και συνεπώς η 2η τιμή της ημέρας ενδέχεται να είναι μικρότερη της 1ης; Ή θεωρούμε ότι δεν υπάρχει τέτοια περίπτωση ως παραδοχή γιατί νομίζω ότι γίνεται ιδιαίτερα περίπλοκο μετά;

Ευχαριστώ

Επίσης έχει ασχοληθεί κάποιος με την επόμενη άσκηση ( σελ 121);

Ελένη

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #4 στις: 24 Φεβ 2020, 11:00:09 μμ »
Για την άσκηση 10/121 (οδηγίες μελέτης), εδώ μια δική μου λύση:
Κώδικας: Javascript
  1. ΠΡΟΓΡΑΜΜΑ οδμελ121_10
  2. ΣΤΑΘΕΡΕΣ
  3.   Μ = 500
  4. ΜΕΤΑΒΛΗΤΕΣ
  5.   ΑΚΕΡΑΙΕΣ: επιλογή, ν, θ
  6.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
  7. ΑΡΧΗ
  8.   ν <- 0
  9.   ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
  10.     ΓΡΑΨΕ '1.Εισαγωγή νέου συνδρομητή'
  11.     ΓΡΑΨΕ '2.Διαγραφή συνδρομητή'
  12.     ΓΡΑΨΕ '3.Διόρθωση δεδομένων συνδρομητή'
  13.     ΓΡΑΨΕ '4.Αναζήτηση συνδρομητή'
  14.     ΓΡΑΨΕ '5.Εμφάνιση Τηλεφωνικού Καταλόγου'
  15.     ΓΡΑΨΕ '6.Έξοδος'
  16.     ΔΙΑΒΑΣΕ επιλογή
  17.     ΑΝ επιλογή = 1 ΤΟΤΕ
  18.       ΚΑΛΕΣΕ εισαγωγή(ΤΚ, ν)
  19.     ΑΛΛΙΩΣ_ΑΝ επιλογή = 2 ΤΟΤΕ
  20.       ΚΑΛΕΣΕ διαγραφή(ΤΚ, ν)
  21.     ΑΛΛΙΩΣ_ΑΝ επιλογή = 3 ΤΟΤΕ
  22.       ΚΑΛΕΣΕ διόρθωση(ΤΚ, ν)
  23.     ΑΛΛΙΩΣ_ΑΝ επιλογή = 4 ΤΟΤΕ
  24.       ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
  25.     ΑΛΛΙΩΣ_ΑΝ επιλογή = 5 ΤΟΤΕ
  26.       ΚΑΛΕΣΕ εμφάνιση(ΤΚ, ν)
  27.     ΑΛΛΙΩΣ_ΑΝ επιλογή = 6 ΤΟΤΕ
  28.       ΓΡΑΨΕ 'τερματισμός προγράματος...'
  29.     ΤΕΛΟΣ_ΑΝ
  30.   ΜΕΧΡΙΣ_ΟΤΟΥ επιλογή = 6
  31. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
  32. !=================================================       1
  33. ΔΙΑΔΙΚΑΣΙΑ εισαγωγή(ΤΚ, ν)
  34. ΣΤΑΘΕΡΕΣ
  35.   Μ = 500
  36. ΜΕΤΑΒΛΗΤΕΣ
  37.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], α, β, γ
  38.   ΑΚΕΡΑΙΕΣ: ν, ι, ξ
  39. ΑΡΧΗ
  40.   ΑΝ ν < Μ ΤΟΤΕ
  41.     ΓΡΑΨΕ 'Δώσε όνομα, διεύθυνση, τηλέφωνο'
  42.     ΔΙΑΒΑΣΕ α, β, γ
  43.  
  44.     ν <- ν + 1
  45.     ΤΚ[ν, 1] <- α
  46.     ΤΚ[ν, 2] <- β
  47.     ΤΚ[ν, 3] <- γ
  48.  ! bubblesort
  49.     ΓΙΑ ι ΑΠΟ 2 ΜΕΧΡΙ ν
  50.       ΓΙΑ ξ ΑΠΟ ν ΜΕΧΡΙ ι ΜΕ_ΒΗΜΑ -1
  51.         ΑΝ ΤΚ[ξ, 1] < ΤΚ[ξ - 1, 1] ΤΟΤΕ
  52.           ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 1], ΤΚ[ξ - 1, 1])
  53.           ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 2], ΤΚ[ξ - 1, 2])
  54.           ΚΑΛΕΣΕ αντι(ΤΚ[ξ, 3], ΤΚ[ξ - 1, 3])
  55.         ΤΕΛΟΣ_ΑΝ
  56.       ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  57.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  58.   ΑΛΛΙΩΣ
  59.     ΓΡΑΨΕ 'πίνακας ήδη γεμάτος'
  60.   ΤΕΛΟΣ_ΑΝ
  61. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
  62. !=================================================       2
  63. ΔΙΑΔΙΚΑΣΙΑ διαγραφή (ΤΚ, ν)
  64. ΣΤΑΘΕΡΕΣ
  65.   Μ = 500
  66. ΜΕΤΑΒΛΗΤΕΣ
  67.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
  68.   ΑΚΕΡΑΙΕΣ: ν, ι, θ
  69. ΑΡΧΗ
  70.  
  71.   ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
  72.   ΑΝ θ = 0 ΤΟΤΕ
  73.     ΓΡΑΨΕ 'δεν βρέθηκε ο συνδρομητής'
  74.   ΑΛΛΙΩΣ
  75.     ΤΚ[θ, 1] <- " "
  76.     ΤΚ[θ, 2] <- " "
  77.     ΤΚ[θ, 3] <- " "
  78.     ΓΙΑ ι ΑΠΟ θ ΜΕΧΡΙ ν - 1
  79.       ΚΑΛΕΣΕ αντι(ΤΚ[ι, 1], ΤΚ[ι + 1, 1])
  80.       ΚΑΛΕΣΕ αντι(ΤΚ[ι, 2], ΤΚ[ι + 1, 2])
  81.       ΚΑΛΕΣΕ αντι(ΤΚ[ι, 3], ΤΚ[ι + 1, 3])
  82.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  83.     ν <- ν - 1
  84.   ΤΕΛΟΣ_ΑΝ
  85. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
  86. !=================================================       3
  87. ΔΙΑΔΙΚΑΣΙΑ διόρθωση (ΤΚ, ν)
  88. ΣΤΑΘΕΡΕΣ
  89.   Μ = 500
  90. ΜΕΤΑΒΛΗΤΕΣ
  91.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], α, β, γ
  92.   ΑΚΕΡΑΙΕΣ: ν, επιλογή, θ
  93. ΑΡΧΗ
  94.   ΓΡΑΨΕ 'Δώσε όνομα ή τηλέφωνο προς διόρθωση'
  95.   ΚΑΛΕΣΕ αναζήτηση(ΤΚ, ν, θ)
  96.   ΑΝ θ = 0 ΤΟΤΕ
  97.     ΓΡΑΨΕ 'δεν βρέθηκε ο συνδρομητής'
  98.   ΑΛΛΙΩΣ
  99.     ΓΡΑΨΕ 'δώσε τα νέα στοιχεία: όνομα, διεύθυνση, τηλέφωνο'
  100.     ΔΙΑΒΑΣΕ α, β, γ
  101.     ΤΚ[θ, 1] <- α
  102.     ΤΚ[θ, 2] <- β
  103.     ΤΚ[θ, 3] <- γ
  104.   ΤΕΛΟΣ_ΑΝ
  105. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
  106. !=================================================       4
  107. ΔΙΑΔΙΚΑΣΙΑ αναζήτηση(ΤΚ, ν, θ)
  108. ΣΤΑΘΕΡΕΣ
  109.   Μ = 500
  110. ΜΕΤΑΒΛΗΤΕΣ
  111.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3], κλειδί
  112.   ΑΚΕΡΑΙΕΣ: ν, επιλογή, αρχ, τελ, μέση, θ
  113.   ΛΟΓΙΚΕΣ: φλαγ
  114. ΑΡΧΗ
  115.   ΓΡΑΨΕ 'Τι θέλετε να δώσετε; 1 για όνομα, 3 για τηλέφωνο'
  116.   ΔΙΑΒΑΣΕ επιλογή
  117.   ΔΙΑΒΑΣΕ κλειδί
  118.  
  119.   αρχ <- 1
  120.   τελ <- ν
  121.   φλαγ <- ΨΕΥΔΗΣ
  122.   θ <- 0
  123.   ΟΣΟ φλαγ = ΨΕΥΔΗΣ ΚΑΙ αρχ <= τελ ΕΠΑΝΑΛΑΒΕ
  124.     μέση <- (αρχ + τελ) div 2
  125.     ΑΝ ΤΚ[μέση, επιλογή] = κλειδί ΤΟΤΕ
  126.       φλαγ <- ΑΛΗΘΗΣ
  127.       θ <- μέση
  128.     ΑΛΛΙΩΣ_ΑΝ ΤΚ[μέση, επιλογή] < κλειδί ΤΟΤΕ
  129.       αρχ <- μέση + 1
  130.     ΑΛΛΙΩΣ
  131.       τελ <- μέση - 1
  132.     ΤΕΛΟΣ_ΑΝ
  133.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  134. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
  135. !=================================================       5
  136. ΔΙΑΔΙΚΑΣΙΑ εμφάνιση(ΤΚ, ν)
  137. ΣΤΑΘΕΡΕΣ
  138.   Μ = 500
  139. ΜΕΤΑΒΛΗΤΕΣ
  140.   ΧΑΡΑΚΤΗΡΕΣ: ΤΚ[Μ, 3]
  141.   ΑΚΕΡΑΙΕΣ: ν, ι, ξ
  142. ΑΡΧΗ
  143.   ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ ν
  144.     ΓΙΑ ξ ΑΠΟ 1 ΜΕΧΡΙ 3
  145.       ΓΡΑΨΕ ΤΚ[ι, ξ]
  146.     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  147.   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  148. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
  149. !=================================================       Ε
  150. ΔΙΑΔΙΚΑΣΙΑ αντι(x, y)
  151. ΜΕΤΑΒΛΗΤΕΣ
  152.   ΧΑΡΑΚΤΗΡΕΣ: x, y, temp
  153.   ΑΚΕΡΑΙΕΣ: ω
  154. ΑΡΧΗ
  155.   temp <- x
  156.   x <- y
  157.   y <- temp
  158. ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Σημειωτέον ότι η λύση αυτή είναι μάλλον σε πειραγμένη/βελτιωμένη εκφώνηση, αν θυμάμαι καλά του Θ. Δρίβα:
Παράθεση
Να γραφεί πρόγραμμα σε «ΓΛΩΣΣΑ» το οποίο να διαχειρίζεται πίνακα Τηλεφωνικού Καταλόγου 500 γραμμών, με 1η στήλη το Ονοματεπώνυμο, 2η στήλη την Διεύθυνση και 3η στήλη το Τηλέφωνο. Η διαχείριση γίνεται βάση του παρακάτω Μενού επιλογών:
1. Εισαγωγή νέου συνδρομητή  (αρχικά ο πίνακας είναι άδειος. Η εισαγωγή κάθε νέου συνδρομητή, γίνεται με διαδοχικές κλήσεις της συγκεκριμένης διαδικασίας. Η διαδικασία δέχεται και επιστρέφει τον πίνακα του καταλόγου και ένα δείκτη ν που δείχνει μέχρι ποια γραμμή έχει στοιχεία ο κατάλογος.)
2. Διαγραφή συνδρομητή  (Θα πρέπει η διαδικασία που καλείται, να διαβάζει ένα όνομα συνδρομητή ή το τηλέφωνό του, να γίνεται αναζήτηση, καλώντας την διαδικασία 4 και στη συνέχεια να διαγράφεται η συγκεκριμένη γραμμή συνδρομητή και να γεμίζει τα κενά που δημιουργούνται μετατοπίζοντας όλα τα επόμενα στοιχεία μια γραμμή πάνω στον πίνακα. Οι τιμές που περισσεύουν στο τέλος του πίνακα να γεμίζουν με κενά (πάλι δέχεται και επιστρέφει ΚΑΤ,ν))
3. Διόρθωση δεδομένων συνδρομητή (η διαδικασία θα διαβάζει όνομα ή τηλέφωνο και θα τα αναζητάει καλώντας την διαδικασία 4. Στη συνέχεια θα διαβάζει και τα 3 στοιχεία (όνομα, διεύθυνση, τηλέφωνο) και θα αντικαθιστά τα παλιά και θα επιστρέφει τον πίνακα.) (πάλι δέχεται και επιστρέφει ΚΑΤ,ν)
4. Αναζήτηση συνδρομητή (Με Όνομα ή Τηλέφωνο) (Η διαδικασία δέχεται τον πίνακα ΚΑΤ, τον δείκτη ν και διαβάζει όνομα ή τηλέφωνο μετά από ερώτηση: “Τι θέλετε να δώσετε; 1 για όνομα, 2 για τηλέφωνο” κάνει αναζήτηση και επιστρέφει τη θέση της γραμμής στην οποία υπάρχουν τα στοιχεία.)
5. Εμφάνιση Τηλεφωνικού Καταλόγου  (θα εμφανίζει απλά όλα τα στοιχεία του τηλεφωνικού καταλόγου)
6. Έξοδος
ΕΠΙΛΟΓΗ: ___
Η κάθε επιλογή αποτελεί ξεχωριστό υποπρόγραμμα.
Στην περίπτωση που έχει γεμίσει ο πίνακας να εμφανίζεται κατάλληλο μήνυμα

Εναλλακτικά, υπάρχουν διαθέσιμες και οι λύσεις του Παναγιώτη:
https://alkisg.mysch.gr/steki/index.php?topic=7987.msg88076#msg88076

Συνάδελφοι καλησπέρα,
τι γίνεται στην περίπτωση όπου ο μήνας αλλάζει και συνεπώς η 2η τιμή της ημέρας ενδέχεται να είναι μικρότερη της 1ης; Ή θεωρούμε ότι δεν υπάρχει τέτοια περίπτωση ως παραδοχή γιατί νομίζω ότι γίνεται ιδιαίτερα περίπλοκο μετά;
Σε ποιο ακριβώς αναφέρεσαι, όταν λες ότι ο μήνας αλλάζει; Στο 2ο ή στο 3ο ερώτημα;

Αν σε βοηθάει, ρίξε μια ματιά και εδώ:
https://alkisg.mysch.gr/steki/index.php?topic=7010.msg88974#msg88974
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 507
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #5 στις: 24 Φεβ 2020, 11:10:37 μμ »
Αν η διαγραφή γίνεται με ολίσθηση γραμμών, τότε και η εισαγωγή να γίνεται με τον ίδιο τρόπο. Έτσι δεν χρειάζεται αλγόριθμος ταξινόμησης όπως της φυσαλίδας. Κάθε φορά έχουμε ταξινομημένο πίνακα και μια νέα εισαγωγή. Αναζητούμε τη θέση της νέας γραμμές με σειριακό τρόπο (η με δυαδική αναζήτηση, αλλά είναι δύσκολο να γραφτεί), και κάνουμε ολίσθηση για να παρεμβληθεί η νέα εισαγωγή.

eleniletta

  • Νέος
  • *
  • Μηνύματα: 4
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #6 στις: 25 Φεβ 2020, 06:49:44 πμ »
Εννοώ την περίπτωση όπου δοθεί διάστημα ημερομηνιών π.χ. 20-4 έως 5-5. Εδώ δεν είναι λανθασμένη η περίπτωση η2<η1 για να γίνει η αντιμετάθεση

Ευχαριστώ

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #7 στις: 25 Φεβ 2020, 09:57:47 πμ »
Η αντιμετάθεση της ταξινόμησης, θα γίνει σε στυλ
"Αν μήνας1 > μήνας2 Τότε
   αντιμετάθεσε
Αλλιώς_Αν μήνας1 = μήνας2 Τότε
   ΑΝ ημέρα1 > ημέρα2 Τότε
        αντιμετάθεσε"

Δηλαδή ασχολείσαι με τις ημέρες, αφού πρώτα έχεις ασχοληθεί με τους μήνες, και εφόσον έτυχε ίδιος μήνας σε δύο ημερομηνίες.
Δεν σε ενδιαφέρει το η2<η1, παρά μόνο αν μήνας2=μήνας1.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

eleniletta

  • Νέος
  • *
  • Μηνύματα: 4
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #8 στις: 25 Φεβ 2020, 01:07:10 μμ »
Ευχαριστώ συνάδελφε, τελικά δηλαδή αν μια δοθείσα ημερομηνία είναι φαινομενικά σωστή, εμείς τις αντιμεταθέτουμε σε λανθασμένη για να τηρείται το η1<η2.

Ευχαριστώ και πάλι

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #9 στις: 25 Φεβ 2020, 01:40:15 μμ »
Δεν είμαι σίγουρος τι εννοείς "φαινομενικά σωστή και λάθος" ημερομηνία.
Οι μήνες και οι ημέρες αποθηκεύονται σε παράλληλους πίνακες. Αυτό σημαίνει, ότι για κάθε ι, τα περιεχόμενα Μ[ι] και H[ι] σου δίνουν τον μήνα και την ημέρα, κάθε ημερομηνίας που έδωσε ο χρήστης. Θέλει προσοχή πως διαβάζεις τους πίνακες, να γίνει σωστά η εισαγωγή. Σε αυτό το σημείο (του ποια μορφή έχει η ημερομηνία που εισάγει ο χρήστης) η εκφώνηση είναι ασαφής, όπως μπορείς να διαπιστώσεις από τις παλιότερες κουβέντες.

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

Ελπίζω μάλλον να βοήθησα παρά να σε μπέρδεψα χειρότερα.  :angel: Είναι μια τυπική περίπτωση ταξινόμησης σε παράλληλους πίνακες, όπου λαμβάνουμε υπόψιν την περίπτωση "ισοβαθμίας" στον πίνακα βάσει του οποίου ταξινομούμε. Δες και τη λύση στις λύσεις του Παναγιώτη, που παρέθεσα νωρίτερα ("πρόγραμμα δαπάνες").
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK

eleniletta

  • Νέος
  • *
  • Μηνύματα: 4
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #10 στις: 25 Φεβ 2020, 10:01:08 μμ »
ευχαριστώ θερμά! Και βέβαια βοήθησες.

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #11 στις: 26 Φεβ 2020, 03:59:52 μμ »
Η αντιμετάθεση της ταξινόμησης, θα γίνει σε στυλ
"Αν μήνας1 > μήνας2 Τότε
   αντιμετάθεσε
Αλλιώς_Αν μήνας1 = μήνας2 Τότε
   ΑΝ ημέρα1 > ημέρα2 Τότε
        αντιμετάθεσε"

ή (το ίδιο) πιο σύντομα:

Αν μήνας1 > μήνας2 ή μήνας1 = μήνας2 και ημέρα1 > ημέρα2 Τότε
        αντιμετάθεσε

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #12 στις: 26 Φεβ 2020, 04:03:45 μμ »
Για την άσκηση 10/121 (οδηγίες μελέτης), εδώ μια δική μου λύση:

Μήπως θα βόλευε γι'αυτή ένα καινούριο θέμα γιατί εδώ μιλάμε για την άσκηση 9;

ολγα

  • Βετεράνος
  • ****
  • Μηνύματα: 86
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #13 στις: 26 Φεβ 2020, 06:00:08 μμ »
Για την άσκηση 10/121 (οδηγίες μελέτης), εδώ μια δική μου λύση:
Αν επιτρέπεται δυο παρατηρήσεις:

1. μια βελτίωση για τη ΔΙΑΔΙΚΑΣΙΑ εισαγωγή(ΤΚ, ν)
 
Αν θέλουμε ο πίνακας να είναι ταξινομημένος (δεν απαιτείται από την εκφώνηση του βιβλίου, αλλά έστω ότι έτσι θέλουμε) αυτό που θα έπρεπε να κάνει η "εισαγωγή" θα ήταν να εισάγει το νέο συνδρομητή στη σωστή γραμμή του ταξινομημένου πίνακα μεταφέροντας τους συνδρομητές που πρέπει (αυτούς με όνομα μεγαλύτερο του ονόματος του συνδρομητή που θέλουμε να εισάγουμε) μία γραμμή προς τα κάτω (με σκεπτικό παρόμοιο με αυτό της ταξινόμησης ευθείας εισαγωγής) Αυτό έχει πολυπλοκότητα Ο(ν) και λύνεται με ένα ΟΣΟ.
Διαφορετικά έχουμε Ο(ν2)

2.Στη ΔΙΑΔΙΚΑΣΙΑ αναζήτηση(ΤΚ, ν, θ)
Δε μπορεί να γίνει δυαδική αναζήτηση στα τηλέφωνα γιατί δεν είναι ταξινομημένα.
« Τελευταία τροποποίηση: 26 Φεβ 2020, 06:10:35 μμ από ολγα »

bugman

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 507
  • The Bug Eater
    • Πληροφορική Προγραμματισμός
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #14 στις: 26 Φεβ 2020, 08:14:43 μμ »
Με ενα δεύτερο πίνακα, θα κρατούσαμε μια δεύτερη ταξινόμηση στα τηλέφωνα.

akalest0s

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 247
Απ: Άσκηση 9, σελ. 120, οδηγίες μελέτη μαθητή
« Απάντηση #15 στις: 27 Φεβ 2020, 02:00:01 μμ »
Αν επιτρέπεται δυο παρατηρήσεις:

1. μια βελτίωση για τη ΔΙΑΔΙΚΑΣΙΑ εισαγωγή(ΤΚ, ν)
 
Αν θέλουμε ο πίνακας να είναι ταξινομημένος (δεν απαιτείται από την εκφώνηση του βιβλίου, αλλά έστω ότι έτσι θέλουμε) αυτό που θα έπρεπε να κάνει η "εισαγωγή" θα ήταν να εισάγει το νέο συνδρομητή στη σωστή γραμμή του ταξινομημένου πίνακα μεταφέροντας τους συνδρομητές που πρέπει (αυτούς με όνομα μεγαλύτερο του ονόματος του συνδρομητή που θέλουμε να εισάγουμε) μία γραμμή προς τα κάτω (με σκεπτικό παρόμοιο με αυτό της ταξινόμησης ευθείας εισαγωγής) Αυτό έχει πολυπλοκότητα Ο(ν) και λύνεται με ένα ΟΣΟ.
Διαφορετικά έχουμε Ο(ν2)

2.Στη ΔΙΑΔΙΚΑΣΙΑ αναζήτηση(ΤΚ, ν, θ)
Δε μπορεί να γίνει δυαδική αναζήτηση στα τηλέφωνα γιατί δεν είναι ταξινομημένα.
1. Σύμφωνοι, αν και η πολυπλοκότητα είναι εκτός.
2. Προφανώς ήταν δική μου απροσεξία. Κάνεις μια σειριακή και οκ.
"Abstraction is not the first stage, but the last stage, in a mathematical development." MK
"I don't want to write about a high level thing, unless I fully understand about a low level thing" DK