Άσκήσεις υποπρογράμματα

Ξεκίνησε από ptsiotakis, 19 Φεβ 2004, 12:51:49 ΠΜ

« προηγούμενο - επόμενο »

P.Tsiotakis

Ασκήσεις υποπρογράμματα μιας και δεν υπάρχουν και πολλές

P.Tsiotakis

#1
Τα [glοssa] tags δουλεύουν Άλκη?
[glossa]
! http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_3.htm άσκηση 5
! Να γράψετε πρόγραμμα που να δέχεται έναν ακέραιο τριψήφιο αριθμό
! και να επιστρέφει τον αντίστοιχο δυαδικό αριθμό
ΠΡΟΓΡΑΜΜΑ  Μετατροπή
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : i, αριθμός, ΠΙΝΑΚΑΣ[10], στοιχεία
  ΛΟΓΙΚΕΣ: εκτίμηση
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ "Παρακαλώ δώστε έναν τριψήφιο αριθμό"
    ΔΙΑΒΑΣΕ αριθμός
    εκτίμηση <-- Έλεγχος_Τριψήφιος (αριθμός)
  ΜΕΧΡΙΣ_ΟΤΟΥ  εκτίμηση = ΑΛΗΘΗΣ

  ΚΑΛΕΣΕ  Δεκαδικός_σε_Δυαδικό (αριθμός, ΠΙΝΑΚΑΣ, στοιχεία)

  ΓΡΑΨΕ "Ακολουθεί ο αντίστοιχος δυαδικός αριθμός "
  ΓΡΑΨΕ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ στοιχεία
    ΓΡΑΨΕ ΠΙΝΑΚΑΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!============================================================
ΔΙΑΔΙΚΑΣΙΑ Δεκαδικός_σε_Δυαδικό (αριθμός, ΠΙΝΑΚΑΣ, ψηφία)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : αριθμός, temp_αριθμός, i, ΠΙΝΑΚΑΣ[10], temp_ΠΙΝΑΚΑΣ[10], ψηφία
ΑΡΧΗ
  temp_αριθμός <-- αριθμός
  ψηφία <-- 0
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ψηφία <-- ψηφία + 1
    temp_ΠΙΝΑΚΑΣ[ψηφία] <-- temp_αριθμός MOD 2
    temp_αριθμός <-- temp_αριθμός DIV 2
  ΜΕΧΡΙΣ_ΟΤΟΥ (temp_αριθμός = 0)
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ ψηφία                   !  αντιστροφή πίνακα
    ΠΙΝΑΚΑΣ <-- temp_ΠΙΝΑΚΑΣ[ψηφία + 1 - i]
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!============================================================
! Τροποποίηση της http://users.kor.sch.gr/ptsiotakis/aepp/aepp_ask/ch10/aepp_ask10_1.htm άσκηση 9
ΣΥΝΑΡΤΗΣΗ Έλεγχος_Τριψήφιος (αριθμός): ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
  ΛΟΓΙΚΕΣ: εκτίμηση
  ΑΚΕΡΑΙΕΣ : αριθμός
  ΠΡΑΓΜΑΤΙΚΕΣ : χιλιάδες
ΑΡΧΗ
  χιλιάδες <-- αριθμός DIV 100
  ΑΝ (χιλιάδες >= 1) ΚΑΙ (χιλιάδες <= 9) ΤΟΤΕ
    εκτίμηση <-- ΑΛΗΘΗΣ
  ΑΛΛΙΩΣ
    εκτίμηση <-- ΨΕΥΔΗΣ
  ΤΕΛΟΣ_ΑΝ
  Έλεγχος_Τριψήφιος <-- εκτίμηση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
[/glossa]
Αν χρειάζονται περαιτέρω σχόλια για το πρόγραμμα είμαι διαθέσιμος  :)

alkisg

#2
Ναι, δουλεύουν κανονικά, μάλιστα τα έβαλα και στο post σου. Όταν θέλετε αυτόματο χρωματισμό κώδικα γράφετε [glοssa]Εδώ μπαίνει ο κώδικας[/glοssa] και δεν επιλέγετε το [ ] Τσεκάρετε εδώ αν θα χρησιμοποιήσετε κώδικα (ή δεν συμπαθείτε τον Smiley).

(Λεπτομέρεια: τα [glοssa] που γράφω παραπάνω τα έγραψα επίτηδες λάθος με ελληνικό όμικρον (glΟssa) αντί του σωστού αγγλικού γιατί αλλιώς δεν θα εμφανιζόταν τα tags αλλά θα εμφανιζόταν μόνο ο χρωματισμένος κώδικας: [glossa]Εδώ μπαίνει ο κώδικας[/glossa]

Ηλίας Πούλης

#3
 :furious3:
Πρόγραμμα με πρακτορείο εισιτηρίων (Η πληρης εκφώνηση δεν είναι ετοιμη). Αν βρείτε πρόβλημα στείλτε το στην ipoulis@sch.gr. Τρέχει σε γλώσσα

Ηλίας Πούλης

[glossa]
ΠΡΟΓΡΑΜΜΑ ΠΡΑΚΤΟΡΕΙΟ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ΚΟΣ,ΣΕ,ΘΕ,ΑΠ1,ΣΥΝΟΛΟ,ΚΟΣ_ΕΙΣ,ΣΥΝ_ΕΙΣ,ΚΟΣ_ΙΧ,ΣΥΝ_ΙΧ
  ΑΚΕΡΑΙΕΣ: ΚΟΣ_ΜΟΤΟ,ΣΥΝ_ΜΟΤΟ,ΚΟΣ_ΦΟ,ΣΥΝ_ΦΟ
  ΧΑΡΑΚΤΗΡΕΣ: Σ1,Σ2
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
       !ΕΙΧΑ ΞΕΧΑΣΕΙ ΤΗΝ ΑΡΧΙΚΟΠΟΙΗΣΗ => ΛΑΘΟΣ ΚΑΤΑ ΤΗΝ ΕΚΤΕΛΕΣΗ
    ΚΟΣ_ΕΙΣ <-- 0
    ΣΥΝ_ΕΙΣ <-- 0
    ΚΟΣ_ΙΧ <-- 0
    ΣΥΝ_ΙΧ <-- 0
    ΚΟΣ_ΜΟΤΟ <-- 0
    ΣΥΝ_ΜΟΤΟ <-- 0
    ΚΟΣ_ΦΟ <-- 0
    ΣΥΝ_ΦΟ <-- 0
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΚΑΛΕΣΕ ΜΕΝΟΥ1
      ΔΙΑΒΑΣΕ ΑΠ1
      ΕΠΙΛΕΞΕ ΑΠ1
        ΠΕΡΙΠΤΩΣΗ 1
          ΚΑΛΕΣΕ ΚΟΣΤΟΣ_ΕΙΣ(ΚΟΣ,ΣΕ,ΘΕ)
          ΚΟΣ_ΕΙΣ <-- ΚΟΣ_ΕΙΣ+ΚΟΣ
          ΣΥΝ_ΕΙΣ <-- ΣΥΝ_ΕΙΣ+ΣΕ
        ΠΕΡΙΠΤΩΣΗ 2,3,4
          ΚΟΣ <-- ΚΟΣΤΟΣ_ΟΧ(ΑΠ1)
          ΑΝ ΑΠ1=2 ΤΟΤΕ
            ΚΟΣ_ΙΧ <-- ΚΟΣ_ΙΧ+ΚΟΣ
            ΣΥΝ_ΙΧ <-- ΣΥΝ_ΙΧ+1
          ΑΛΛΙΩΣ_ΑΝ ΑΠ1=3 ΤΟΤΕ
            ΚΟΣ_ΜΟΤΟ <-- ΚΟΣ_ΜΟΤΟ+ΚΟΣ
            ΣΥΝ_ΜΟΤΟ <-- ΣΥΝ_ΜΟΤΟ+1
          ΑΛΛΙΩΣ_ΑΝ ΑΠ1=4 ΤΟΤΕ
            ΚΟΣ_ΦΟ <-- ΚΟΣ_ΦΟ+ΚΟΣ
            ΣΥΝ_ΦΟ <-- ΣΥΝ_ΦΟ+1
          ΤΕΛΟΣ_ΑΝ
      ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
      ΓΡΑΨΕ 'ΘΕΣ ΚΑΙ ΑΛΛΗ ΣΥΝΑΛΛΑΓΗ ΓΙΑ ΤΗΝ ΙΔΙΑ ΚΡΑΤΗΣΗ;;'
      ΚΑΛΕΣΕ ΔΙΑΒΑΠ(Σ1)
    ΜΕΧΡΙΣ_ΟΤΟΥ Σ1='Ο'
    ΣΥΝΟΛΟ <-- ΚΟΣ_ΕΙΣ+ΚΟΣ_ΙΧ+ΚΟΣ_ΜΟΤΟ+ΚΟΣ_ΦΟ
    ΓΡΑΨΕ 'ΓΙΑ ',ΣΥΝ_ΕΙΣ,' ΕΙΣΙΤΗΡΙΟ/Α    : ',ΚΟΣ_ΕΙΣ,' Euro'
    ΓΡΑΨΕ 'ΓΙΑ ',ΣΥΝ_ΙΧ,' ΑΥΤΟΚΙΝΗΤΟ/Α   : ',ΚΟΣ_ΙΧ,' Euro'
    ΓΡΑΨΕ 'ΓΙΑ ',ΣΥΝ_ΜΟΤΟ,' ΜΟΤΟΣΥΚΛΕΤΑ/ΕΣ : ',ΚΟΣ_ΜΟΤΟ,' Euro'
    ΓΡΑΨΕ 'ΓΙΑ ',ΣΥΝ_ΦΟ,' ΦΟΡΤΗΓΟ/Α : ',ΚΟΣ_ΦΟ,' Euro'
    ΓΡΑΨΕ 'ΤΟ ΣΥΝΟΛΟ ΕΙΝΑΙ : ',ΣΥΝΟΛΟ,' Euro'
    ΓΡΑΨΕ 'ΘΕΣ ΝΕΑ ΣΥΝΑΛΛΑΓΗ ΓΙΑ ΑΛΛΗ ΚΡΑΤΗΣΗ;;'
    ΚΑΛΕΣΕ ΔΙΑΒΑΠ(Σ2)
  ΜΕΧΡΙΣ_ΟΤΟΥ Σ2='Ο'
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΔΙΑΔΙΚΑΣΙΑ ΜΕΝΟΥ1
ΑΡΧΗ
  ΓΡΑΨΕ 'ΔΩΣΕ ΤΗΝ ΕΠΙΛΟΓΗ ΣΟΥ'
  ΓΡΑΨΕ '1. ΓΙΑ ΕΙΣΙΤΗΡΙΑ'
  ΓΡΑΨΕ '2. ΓΙΑ ΑΥΤΟΚΙΝΗΤΑ'
  ΓΡΑΨΕ '3. ΓΙΑ ΜΟΤΟΣΥΚΛΕΤΑ'
  ΓΡΑΨΕ '4. ΓΙΑ ΦΟΡΤΗΓΟ'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΜΕΝΟΥ2
ΑΡΧΗ
  ΓΡΑΨΕ 'ΔΩΣΕ ΤΗΝ ΕΠΙΛΟΓΗ ΤΗΣ ΘΕΣΗΣ'
  ΓΡΑΨΕ '1. ΓΙΑ Α ΘΕΣΗ'
  ΓΡΑΨΕ '2. ΓΙΑ Γ ΘΕΣΗ'
  ΓΡΑΨΕ '3. ΓΙΑ ΚΑΜΠΙΝΑ'
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΚΟΣΤΟΣ_ΕΙΣ(Κ,Σ,Θ)
ΣΤΑΘΕΡΕΣ
  ΑΘ=35
  ΓΘ=25
  ΚΑ=65
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:Θ,Σ,Κ
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΚΑΛΕΣΕ ΜΕΝΟΥ2
! Θ= Η ΘΕΣΗ ΠΟΥ ΕΠΙΛΕΓΕΙ
    ΔΙΑΒΑΣΕ Θ
! Σ= Ο ΑΡΙΘΜΟΣ ΤΩΝ ΑΤΟΜΩΝ
    ΓΡΑΨΕ 'ΔΩΣΕ ΑΡΙΘΜΟ ΑΤΟΜΩΝ'
    ΚΑΛΕΣΕ ΔΙΑΒΘ(Σ)
    ΕΠΙΛΕΞΕ Θ
      ΠΕΡΙΠΤΩΣΗ 1
        Κ <-- Σ*ΑΘ
      ΠΕΡΙΠΤΩΣΗ 2
        Κ <-- Σ*ΓΘ
      ΠΕΡΙΠΤΩΣΗ 3
        Κ <-- Σ*ΚΑ
      ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ
        ΓΡΑΨΕ 'ΛΑΘΟΣ ΕΠΙΛΟΓΗΣ, ΞΑΝΑΔΩΣΕ'
    ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
  ΜΕΧΡΙΣ_ΟΤΟΥ Θ > 0 ΚΑΙ Θ < 4
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΒΘ(Χ)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:Χ
ΑΡΧΗ
  ΓΡΑΨΕ 'ΔΩΣΕ ΘΕΤΙΚΟ ΑΡΙΘΜΟ'
  ΔΙΑΒΑΣΕ Χ
  ΟΣΟ Χ < 0 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'ΕΔΩΣΕΣ ΑΡΝΗΤΙΚΟ, ΞΑΝΑΔΩΣΕ'
    ΔΙΑΒΑΣΕ Χ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ

ΣΥΝΑΡΤΗΣΗ ΚΟΣΤΟΣ_ΟΧ(Α):ΑΚΕΡΑΙΑ
ΣΤΑΘΕΡΕΣ
  ΑΥ=75
  ΜΟ=30
  ΦΟ=150
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: Α,Κ
ΑΡΧΗ
  Κ <-- 0
  ΑΝ Α=2 ΤΟΤΕ
    Κ <-- ΑΥ
  ΑΛΛΙΩΣ_ΑΝ Α=3 ΤΟΤΕ
    Κ <-- ΜΟ
  ΑΛΛΙΩΣ_ΑΝ Α=4 ΤΟΤΕ
    Κ <-- ΦΟ
  ΤΕΛΟΣ_ΑΝ
  ΚΟΣΤΟΣ_ΟΧ <-- Κ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΒΑΠ(ΣΥΝΕΧΕΙΑ)
ΜΕΤΑΒΛΗΤΕΣ
  ΧΑΡΑΚΤΗΡΕΣ: ΣΥΝΕΧΕΙΑ
ΑΡΧΗ
  ΓΡΑΨΕ 'ΓΙΑ ΝΑΙ ΠΑΤΗΣΕ Ν -- ΓΙΑ ΟΧΙ ΠΑΤΗΣΕ Ο'
  ΔΙΑΒΑΣΕ ΣΥΝΕΧΕΙΑ
  ΟΣΟ ΣΥΝΕΧΕΙΑ <> 'Ν' ΚΑΙ ΣΥΝΕΧΕΙΑ <> 'Ο' ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ 'ΕΙΠΑΜΕ ΡΕ!! ΓΙΑ ΝΑΙ ΠΑΤΗΣΕ Ν -- ΓΙΑ ΟΧΙ ΠΑΤΗΣΕ Ο'
    ΔΙΑΒΑΣΕ ΣΥΝΕΧΕΙΑ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
[/glossa]


Ηλία πήρα πρωτοβουλία και διόρθωσα τα λάθη, σβήνοντας το επόμενο μήνυμά σου - Τσιωτάκης Παναγιώτης

P.Tsiotakis

Αγαπητέ Ηλία,

ενδιαφέρον το πρόγραμμα, θα το μελετήσω πιο διεξοδικά προσεχώς. Μπορείς να αφιερώσεις 3 λεπτά να δημιουργήσεις ένα account στο forum για μεγαλύτερη οργάνωση. Όλοι περιμένουμε περισσότερη συμμετοχή από όλους...

Με εκτίμηση,

P.Tsiotakis

Άσκηση 10.6.4 δικτυακού κόμβου : Να διαβαστεί αριθμός εντός του διαστήματος [1, 10] και να υπολογιστεί η παράσταση:

S = (a+1)^2/1! + (a+2)^2/2! + ... + (a+a)^2/a!


[glossa]

ΠΡΟΓΡΑΜΜΑ Υπολογισμός_Παράστασης
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: μετρητής, κάτω_όριο, άνω_όριο, Α, αριθμητής, παρονομαστής, παράγοντας
  ΠΡΑΓΜΑΤΙΚΕΣ: άθροισμα
ΑΡΧΗ
  κάτω_όριο <-- 0
  άνω_όριο <-- 10
  ΚΑΛΕΣΕ Επιτρεπτή_Τιμή (Α, κάτω_όριο, άνω_όριο)!  έλεγχος δεδομένων με διαδικασία
  άθροισμα <-- 0
  ΓΙΑ μετρητής ΑΠΟ 1 ΜΕΧΡΙ Α
    παράγοντας <-- Α + μετρητής
    αριθμητής <-- Εις_το_Τετράγωνο (παράγοντας)
    παρονομαστής <-- Παραγοντικό (μετρητής)
    άθροισμα <-- άθροισμα + αριθμητής / παρονομαστής
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ 'Η παράσταση είναι ', άθροισμα
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
!==================================================================
ΔΙΑΔΙΚΑΣΙΑ Επιτρεπτή_Τιμή (αριθμός, όριο_κάτω, όριο_άνω)
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : αριθμός, όριο_κάτω, όριο_άνω, εκτίμηση
ΑΡΧΗ
  ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ 'Δώστε έναν αριθμό στο διάστημα [', όριο_κάτω, ', ',  όριο_άνω, ']'
    ΔΙΑΒΑΣΕ εκτίμηση
  ΜΕΧΡΙΣ_ΟΤΟΥ (εκτίμηση >= όριο_κάτω) ΚΑΙ (εκτίμηση <= όριο_άνω)
  αριθμός <-- εκτίμηση
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
!==================================================================
ΣΥΝΑΡΤΗΣΗ Παραγοντικό (αριθμός):    ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ : αριθμός, εκτίμηση, i
ΑΡΧΗ
  ΑΝ (αριθμός < 0) ΤΟΤΕ
    εκτίμηση <-- -1!   Η  τιμή -1 θα ερμηνευτεί ως λάθος δεδομένο εισόδου
  ΑΛΛΙΩΣ
    εκτίμηση <-- 1
    ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ αριθμός
         εκτίμηση <-- εκτίμηση * i
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΑΝ
  Παραγοντικό <-- εκτίμηση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!==================================================================
ΣΥΝΑΡΤΗΣΗ Εις_το_Τετράγωνο (Χ): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ:  Χ, εκτίμηση
ΑΡΧΗ
  εκτίμηση <-- Α_Μ (Χ^2)
  Εις_το_Τετράγωνο <-- εκτίμηση
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ

[/glossa]

Με εκτίμηση,  :whip: