Τώρα είναι Κυρ 10 Νοέμ 2024 10:21 pm

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




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 2 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
ΔημοσίευσηΔημοσιεύτηκε: Δευτ 19 Ιαν 2009 05:38 pm 
Χωρίς σύνδεση

Εγγραφή: Τετ 24 Δεκ 2008 01:34 pm
Δημοσιεύσεις: 2
Λοιπον, η ασκηση ειναι η εξης : Μια κινητη μοναδα αιμοδοσιας καταχωρει τις φιαλες αιματος που λαμβανει καθε μερα. Για καθε φιαλη καταχωρει την ομαδα αιματος (Α, Ο, ΑΒ, Β) και την ποσοτητα της φιαλης. Να κατασκεθασετε αλγοριθμο που θα καταχωρει σε πινακα Φ[3000] την ομαδα αιματος καθε φιαλης και σε πινακα Π[3000] την ποσοτητα αιματος καθε φιαλης. Στη συνεχεια να ζητα την ομαδα αιματος ενος ληπτη, την ποσοτητα που χρειαζεται και να εμφανιζει τη διαθεσιμη ποσοτητα αιματος και αν αυτη επαρκει. Οι ληπτες μπορουν να δεχθουν αιμα συμφωνα με το παρακατω "πινακα" :p :
ομαδα αιματος / δεκτες ομαδες
Α / Α, Ο
Β / Β, Ο
ΑΒ / Α, Ο, ΑΒ, Β
Ο / Ο
Κατι τελευταιο, θα ηθελα να με βοηθισετε σε κατι ακομα... εστω οτι σε μια ασκηση εχουμε ως δεδομενο εναν πινακα, πως τον δηλωνουμε στον αλγορυθμο η στο προγραμμα????
please απαντηστε μου :)


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
ΔημοσίευσηΔημοσιεύτηκε: Τρί 20 Ιαν 2009 08:42 pm 
Χωρίς σύνδεση

Εγγραφή: Παρ 30 Μάιος 2008 09:46 pm
Δημοσιεύσεις: 49
Ελπίζω να σου κάνει. Διορθώσεις, προτάσεις κ.λπ. όπως πάντα δεκτά. :)
Syntax: [ Download ] [ Hide ]
ΠΡΟΓΡΑΜΜΑ ΚΙΝΗΤΗ_ΜΟΝΑΔΑ_ΑΙΜΟΔΟΣΙΑΣ
ΣΤΑΘΕΡΕΣ
   Ν=3000                                       !   |ΔΕΚΤΕΣ ΟΜΑΔΕΣ
ΜΕΤΑΒΛΗΤΕΣ                                      !   |Α|Β|ΑΒ|0
  ΑΚΕΡΑΙΕΣ: Ι, Ξ, Ψ                             !Α  |1|0| 0|1
  ΧΑΡΑΚΤΗΡΕΣ: Φ[Ν], ΑΓ[4], ΖΟ                   !Β  |0|1| 0|1
  ΛΟΓΙΚΕΣ: ΣΟ[4, 4]                             !ΑΒ |1|1| 1|1
  ΠΡΑΓΜΑΤΙΚΕΣ: Π[Ν], ΥΠ, ΖΠ, Υ1, Υ2, Υ3, Υ4     !0  |0|0| 0|1
ΑΡΧΗ
  ΑΓ[1] <-- 'Α'
  ΑΓ[2] <-- 'Β'
  ΑΓ[3] <-- 'ΑΒ'
  ΑΓ[4] <-- '0'
  ΣΟ[1, 1] <-- ΑΛΗΘΗΣ
  ΣΟ[1, 2] <-- ΨΕΥΔΗΣ
  ΣΟ[1, 3] <-- ΨΕΥΔΗΣ
  ΣΟ[1, 4] <-- ΑΛΗΘΗΣ
  ΣΟ[2, 1] <-- ΨΕΥΔΗΣ
  ΣΟ[2, 2] <-- ΑΛΗΘΗΣ
  ΣΟ[2, 3] <-- ΨΕΥΔΗΣ
  ΣΟ[2, 4] <-- ΑΛΗΘΗΣ
  ΣΟ[3, 1] <-- ΑΛΗΘΗΣ
  ΣΟ[3, 2] <-- ΑΛΗΘΗΣ
  ΣΟ[3, 3] <-- ΑΛΗΘΗΣ
  ΣΟ[3, 4] <-- ΑΛΗΘΗΣ
  ΣΟ[4, 1] <-- ΨΕΥΔΗΣ
  ΣΟ[4, 2] <-- ΨΕΥΔΗΣ
  ΣΟ[4, 3] <-- ΨΕΥΔΗΣ
  ΣΟ[4, 4] <-- ΑΛΗΘΗΣ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'ΟΙ ΟΜΑΔΕΣ ΔΕΧΟΝΤΑΙ ΤΑ ΕΞΙΣ:'
    ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 4
      ΓΡΑΨΕ_ ΑΓ[Ι], ':'
      ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 4
        ΑΝ ΣΟ[Ι, Ξ] = ΑΛΗΘΗΣ ΤΟΤΕ
          ΓΡΑΨΕ_ ΑΓ[Ξ]
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Θέλετε να αλλάξετε κάτι ?'
    ΓΡΑΨΕ '1 για ΝΑΙ'
    ΓΡΑΨΕ '2 για ΟΧΙ'
    ΔΙΑΒΑΣΕ Ι
    ΑΝ Ι <> 1 ΚΑΙ Ι <> 2 ΤΟΤΕ
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Παρακαλώ επιλέξτε ένα από τα παραπάνω πληκτρολογώντας τον αριθμό πριν από την επιλογή σας.'
        ΔΙΑΒΑΣΕ Ι
      ΜΕΧΡΙΣ_ΟΤΟΥ Ι=1 Ή Ι =2
    ΤΕΛΟΣ_ΑΝ
    ΑΝ Ι = 1 ΤΟΤΕ
      ΓΡΑΨΕ 'Παρακαλώ πληκτρολογείται:'
      ΓΡΑΨΕ '1 για ΝΑΙ'
      ΓΡΑΨΕ '2 για ΟΧΙ'
      ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 4
        ΓΡΑΨΕ 'Αν ο ασθενής έχει ομάδα αίματος', ΑΓ[Ι], 'δέχεται:'
        ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ 4
          ΓΡΑΨΕ_ ΑΓ[Ξ], '?'
          ΔΙΑΒΑΣΕ Ψ
          ΑΝ Ψ <> 1 ΚΑΙ Ψ <> 2 ΤΟΤΕ
            ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
              ΓΡΑΨΕ 'Παρακαλώ επιλέξτε ένα από τα παραπάνω πληκτρολογώντας τον αριθμό πριν από την επιλογή σας.'
              ΔΙΑΒΑΣΕ Ψ
            ΜΕΧΡΙΣ_ΟΤΟΥ Ψ=1 Ή Ψ=2
          ΤΕΛΟΣ_ΑΝ
          ΑΝ Ψ=1 ΤΟΤΕ
            ΣΟ[Ι, Ξ] <-- ΑΛΗΘΗΣ
          ΑΛΛΙΩΣ
            ΣΟ[Ι, Ξ] <-- ΨΕΥΔΗΣ
          ΤΕΛΟΣ_ΑΝ
        ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
      ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΤΕΛΟΣ_ΑΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Ι=2
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΓΡΑΨΕ_ 'παρακαλώ πληκτρολογήστε τον τύπο αίματος του φιαλιδίου νούμερο', Ι, ':'
    ΔΙΑΒΑΣΕ Φ[Ι]
    ΑΝ Φ[Ι] <> ΑΓ[1] ΚΑΙ Φ[Ι] <> ΑΓ[2] ΚΑΙ Φ[Ι] <> ΑΓ[3] ΚΑΙ Φ[Ι] <> ΑΓ[4] ΤΟΤΕ
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Παρακαλώ εισάγετε έναν έγκυρο τύπο αίματος (οι επιτρεπόμενοι είναι:', ΑΓ[1], ΑΓ[2], ΑΓ[3], ΑΓ[4], ')'
        ΔΙΑΒΑΣΕ Φ[Ι]
      ΜΕΧΡΙΣ_ΟΤΟΥ Φ[Ι] = ΑΓ[1] Ή Φ[Ι] = ΑΓ[2] Ή Φ[Ι]= ΑΓ[3] Ή Φ[Ι]= ΑΓ[4]
    ΤΕΛΟΣ_ΑΝ
    ΓΡΑΨΕ_ 'Παρακαλώ πληκτρολογήστε την ποσότητα αίματος του φιαλιδίου'
    ΔΙΑΒΑΣΕ Π[Ι]
    ΑΝ Π[Ι] <= 0 ΤΟΤΕ
      ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
        ΓΡΑΨΕ 'Η ποσότητα πρέπει να είναι μεγαλύτερη του 0, παρακαλώ ξανα πληκτρολογήστε την.'
        ΔΙΑΒΑΣΕ Π[Ι]
      ΜΕΧΡΙΣ_ΟΤΟΥ Π[Ι] > 0
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Θέλετε να αλλάξετε κάποια καταχώρηση ?'
  ΓΡΑΨΕ '1.ΝΑΙ'
  ΓΡΑΨΕ '2.ΟΧΙ'
  ΔΙΑΒΑΣΕ Ι
  ΑΝ Ι <> 1 ΚΑΙ Ι <> 2 ΤΟΤΕ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Παρακαλώ επιλέξτε ένα από τα παραπάνω πληκτρολογώντας τον αριθμό πριν από την επιλογή σας.'
      ΔΙΑΒΑΣΕ Ι
    ΜΕΧΡΙΣ_ΟΤΟΥ Ι=1 Ή Ι=2
  ΤΕΛΟΣ_ΑΝ
  ΑΝ Ι = 1 ΤΟΤΕ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Παρακαλώ πληκτρολογήστε τον αριθμό φιαλιδίου. 0 για συνέχεια στο πρόγραμμα.'
      ΔΙΑΒΑΣΕ Ι
      ΑΝ Ι >Ν Ή Ι <0 ΤΟΤΕ
        ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
          ΓΡΑΨΕ 'Πρέπει να είναι μικρότερο του', Ν, 'και μεγαλύτερο ή ίσο του 0'
          ΔΙΑΒΑΣΕ Ι
        ΜΕΧΡΙΣ_ΟΤΟΥ Ι >=0 ΚΑΙ Ι<Ν
      ΤΕΛΟΣ_ΑΝ
      ΑΝ Ι <> 0 ΤΟΤΕ
        ΓΡΑΨΕ_ 'παρακαλώ πληκτρολογήστε τον τύπο αίματος του φιαλιδίου νούμερο', Ι, ':'
        ΔΙΑΒΑΣΕ Φ[Ι]
        ΑΝ Φ[Ι] <> ΑΓ[1] ΚΑΙ Φ[Ι] <> ΑΓ[2] ΚΑΙ Φ[Ι] <> ΑΓ[3] ΚΑΙ Φ[Ι] <> ΑΓ[4] ΤΟΤΕ
          ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΡΑΨΕ 'Παρακαλώ εισάγετε έναν έγκυρο τύπο αίματος (οι επιτρεπόμενοι είναι:', ΑΓ[1], ΑΓ[2], ΑΓ[3], ΑΓ[4], ')'
            ΔΙΑΒΑΣΕ Φ[Ι]
          ΜΕΧΡΙΣ_ΟΤΟΥ Φ[Ι] = ΑΓ[1] Ή Φ[Ι] = ΑΓ[2] Ή Φ[Ι]= ΑΓ[3] Ή Φ[Ι]= ΑΓ[4]
          ΓΡΑΨΕ_ 'Παρακαλώ πληκτρολογήστε την ποσότητα αίματος του φιαλιδίου'
          ΔΙΑΒΑΣΕ Π[Ι]
        ΤΕΛΟΣ_ΑΝ
        ΑΝ Π[Ι] <= 0 ΤΟΤΕ
          ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
            ΓΡΑΨΕ 'Η ποσότητα πρέπει να είναι μεγαλύτερη του 0, παρακαλώ ξανα πληκτρολογήστε την.'
            ΔΙΑΒΑΣΕ Π[Ι]
          ΜΕΧΡΙΣ_ΟΤΟΥ Π[Ι] > 0
        ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΑΝ
    ΜΕΧΡΙΣ_ΟΤΟΥ Ι=0
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ 'Παρακαλώ πληκτρολογήστε την ομάδα αίματος του λήπτη.'
  ΔΙΑΒΑΣΕ ΖΟ
  ΑΝ ΖΟ <> ΑΓ[1] ΚΑΙ ΖΟ <> ΑΓ[2] ΚΑΙ ΖΟ <> ΑΓ[3] ΚΑΙ ΖΟ <> ΑΓ[4] ΤΟΤΕ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Παρακαλώ εισάγετε έναν έγκυρο τύπο αίματος (οι επιτρεπόμενοι είναι:', ΑΓ[1], ΑΓ[2], ΑΓ[3], ΑΓ[4], ')'
      ΔΙΑΒΑΣΕ ΖΟ
    ΜΕΧΡΙΣ_ΟΤΟΥ ΖΟ = ΑΓ[1] Ή ΖΟ = ΑΓ[2] Ή ΖΟ= ΑΓ[3] Ή ΖΟ= ΑΓ[4]
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ 'Παρακαλώ εισάγετε την ποσότητα αίματος που χριάζετε.'
  ΔΙΑΒΑΣΕ ΖΠ
  ΑΝ ΖΠ <= 0 ΤΟΤΕ
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Η ποσότητα αίματος που χρειάζεται ο λήπτης πρέπει να είναι μεγαλύτερη του 0.'
      ΔΙΑΒΑΣΕ ΖΠ
    ΜΕΧΡΙΣ_ΟΤΟΥ ΖΠ > 0
  ΤΕΛΟΣ_ΑΝ
  Υ1 <-- 0
  Υ2 <-- 0
  Υ3 <-- 0
  Υ4 <-- 0
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΑΝ Φ[Ι] = ΑΓ[1] ΤΟΤΕ
      Υ1 <-- Υ1+Π[Ι]
    ΑΛΛΙΩΣ_ΑΝ Φ[Ι] = ΑΓ[2] ΤΟΤΕ
      Υ2 <-- Υ2+Π[Ι]
    ΑΛΛΙΩΣ_ΑΝ Φ[Ι] = ΑΓ[3] ΤΟΤΕ
      Υ3 <-- Υ3+Π[Ι]
    ΑΛΛΙΩΣ_ΑΝ Φ[Ι] = ΑΓ[4] ΤΟΤΕ
      Υ4 <-- Υ4+Π[Ι]
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 4
    ΑΝ ΖΟ=ΑΓ[Ι] ΤΟΤΕ
      Ψ <-- Ι
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Διαθέσιμες ποσότητες αίματος:'
  ΓΡΑΨΕ_ 'Ομάδα', ΑΓ[1], ':', Υ1
  ΑΝ ΣΟ[Ψ, 1]=ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'συμβατό'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'μη συμβατό'
    Υ1 <-- 0
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ_ 'Ομάδα', ΑΓ[2], ':', Υ2
  ΑΝ ΣΟ[Ψ, 2]=ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'συμβατό'
    Υ1 <-- Υ1 +Υ2
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'μη συμβατό'
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ_ 'Ομάδα', ΑΓ[3], ':', Υ3
  ΑΝ ΣΟ[Ψ, 3]=ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'συμβατό'
    Υ1 <-- Υ1+Υ3
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'μη συμβατό'
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ_ 'Ομάδα', ΑΓ[4], ':', Υ4
  ΑΝ ΣΟ[Ψ, 4]=ΑΛΗΘΗΣ ΤΟΤΕ
    ΓΡΑΨΕ 'συμβατό'
    Υ1 <-- Υ1+Υ4
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'μη συμβατό'
  ΤΕΛΟΣ_ΑΝ
  ΓΡΑΨΕ 'Διαθέσιμη ποσότητα αίματος:', Υ1
  ΑΝ Υ1 >= ΖΠ ΤΟΤΕ
    ΓΡΑΨΕ 'Υπάρχει αρκετό αίμα συμβατό με τον λήπτη.'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ 'Δεν υπάρχει αρκετό αίμα συμβατό με τον λήπτη.'
  ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ


Παράθεση:
σε μια ασκηση εχουμε ως δεδομενο εναν πινακα, πως τον δηλωνουμε στον αλγορυθμο η στο προγραμμα????

Δεν είμαι σίγουρος ότι αυτό ζητάς αλλά: (έστω πίνακας ΠΙΝΑΚΑΣ[Ν, Μ] )
Syntax: [ Download ] [ Hide ]
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν
  ΓΙΑ Ξ ΑΠΟ 1 ΜΕΧΡΙ Μ
  ΔΙΑΒΑΣΕ ΠΙΝΑΚΑΣ[Ι, Ξ]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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


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

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


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

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


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

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