Αρχική ΑΕΠΠ - Δομές Δεδομένων Λειτουργικά Συστήματα Δίκτυα Υπολογιστών ΙΙ Βάσεις Δεδομένων Παιδαγωγικά - Διδακτική

Βασικές Έννοιες

Μεταβλητή - Έκφραση Δομή Ακολουθίας Δομή Επιλογής Δομή Επανάληψης

Αναπαράσταση Αλγορίθμων

Διάγραμμα Ροής

Πίνακας Τιμών

Πίνακες

Μονοδιάστατοι Δισδιάστατοι Πολυδιάστατοι Αναζήτηση Ταξινόμηση Στοίβα Ουρά

Υποπρογράμματα

Συναρτήσεις Διαδικασίες Σχετικά με τις παράμετρους

Δυναμικές Δομές

Λίστες Δέντρα Γράφοι

 Ιστορικό Πρόσφατες αλλαγές Εκτύπωση Αναζήτηση

Ιστορικό: DataStructures.Functions-Exercises

Απόκρυψη μικρών αλλαγών - Αλλαγές περιεχομένου

29-04-2008 (10:27) από Άρης -
Αλλαγή σειρών 3-4 από:
Να γράψετε συνάρτηση η οποία θα δέχεται τρεις αριθμούς και θα επιστρέφει την τιμή του μικρούτερου. Με ποια εντολή μπορεί να κληθεί η συνάρτηση από το πρόγραμμα;
σε:
Να γράψετε συνάρτηση η οποία θα δέχεται τρεις αριθμούς και θα επιστρέφει την τιμή του μικρότερου. Με ποια εντολή μπορεί να κληθεί η συνάρτηση από το πρόγραμμα;
25-04-2008 (12:58) από 194.63.239.168 -
Αλλαγή σειράς 265 από:
v(t)=1/c int_0^t i(t)dt
σε:
v(t)=1/C int_0^t i(t)dt
Αλλαγή σειρών 268-278 από:
Το @@v@@ είναι σε @@Volts@@ και το @@t@@ πάλι η χρονική περίοδος σε @@sec@@. Αν η χωρητικότητα του πυκνωτή είναι @@5F (C=5)@@, υπολογίστε το @@v@@ για τις χρονικές στιγμές @@t=1, 2, 3, 4, 5@@.
σε:
Το @@v@@ είναι σε @@Volts@@ και το @@t@@ πάλι η χρονική περίοδος σε @@sec@@. Αν η χωρητικότητα του πυκνωτή είναι @@5F (C=5)@@, υπολογίστε το @@v@@ για τις χρονικές στιγμές @@t=1, 2, 3, 4, 5@@.

----

Η περιφέρεια @@C@@ μιας έλλειψης με κύριο άξονα @@2a@@ και δευτερεύοντα άξονα @@2b@@ δίνεται από τον τύπο

(:eqn :) [=
C=4a int_0^(pi/2) sqrt(1-(a^2-b^2)/(a^2)) * sin^2Phi dPhi
=]

Έστω μία αίθουσα ελλειψοειδούς μορφής με @@a=20m, b=10m@@ και ύψος και ύψος @@h=5m@@. Βρείτε την συνολική περιοχή @@A=hC@@ του τοιχώματος της αίθουσας.
25-04-2008 (12:48) από 194.63.239.168 -
Πρόσθεση σειράς 249:
Αλλαγή σειρών 252-268 από:
Μία πλάστιγγα (ζυγαριά μεγάλου βάρους) ζυγίζει οχήματα σε έναν τελωνειακό σταθμό. Αν το βάρος του οχήματος είναι μέχρι 2000 κιλά, το όχημα περνάει τον έλεγχο χωρίς επιβάρυνση. Αν το βάρος είναι μεταξύ 2000 και 3000 κιλών, τότε προστίθεται επιβάρυνση 10 λεπτά ανά κιλό άνω των 2000. Αν το βάρος του οχήματος ξεπερνά τα 3000 κιλά, τότε η επιβάρυνση είναι 15 λεπτά ανά κιλό άνω των 3000. Γράψτε πρόγραμμα, το οποίο θα υπολογίζει τη συνολική επιβάρυνση για Ν οχήματα (όπου Ν θετικός ακέραιος που δίνει ο χρήστης). Για τον υπολογισμό της επιβάρυνσης του κάθε οχήματος χρησιμοποιήστε συνάρτηση.
σε:
Μία πλάστιγγα (ζυγαριά μεγάλου βάρους) ζυγίζει οχήματα σε έναν τελωνειακό σταθμό. Αν το βάρος του οχήματος είναι μέχρι 2000 κιλά, το όχημα περνάει τον έλεγχο χωρίς επιβάρυνση. Αν το βάρος είναι μεταξύ 2000 και 3000 κιλών, τότε προστίθεται επιβάρυνση 10 λεπτά ανά κιλό άνω των 2000. Αν το βάρος του οχήματος ξεπερνά τα 3000 κιλά, τότε η επιβάρυνση είναι 15 λεπτά ανά κιλό άνω των 3000. Γράψτε πρόγραμμα, το οποίο θα υπολογίζει τη συνολική επιβάρυνση για Ν οχήματα (όπου Ν θετικός ακέραιος που δίνει ο χρήστης). Για τον υπολογισμό της επιβάρυνσης του κάθε οχήματος χρησιμοποιήστε συνάρτηση.

! Ασκήσεις με Ολοκληρώματα

Το ρεύμα i που διέρχεται από έναν πυκνωτή δίνεται από τον τύπο

(:eqn :) [=
i(t)=10*sin^2(t/pi)
=]

To @@i@@ είναι σε @@Ampers@@ και το @@t@@ η χρονική περίοδος σε @@sec@@. Η τάση κατά μήκος του πυκνωτή δίνεται από τον τύπο

(:eqn :) [=
v(t)=1/c int_0^t i(t)dt
=]

Το @@v@@ είναι σε @@Volts@@ και το @@t@@ πάλι η χρονική περίοδος σε @@sec@@. Αν η χωρητικότητα του πυκνωτή είναι @@5F (C=5)@@, υπολογίστε το @@v@@ για τις χρονικές στιγμές @@t=1, 2, 3, 4, 5@@.
21-04-2008 (19:26) από Άρης -
Αλλαγή σειρών 223-231 από:
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ||
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ||
σε:
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ______ ||
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ______ ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ______ ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ______ ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ______ ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ______ ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ______ ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ______ ||
09-04-2008 (21:25) από 194.63.237.22 -
Πρόσθεση σειράς 31:
|| border=1 width=15%
09-04-2008 (16:51) από 194.63.239.168 -
Πρόσθεση σειρών 13-36:
! Καλλιέργεια Βακτηριδίων

Ο αριθμός των βακτηριδίων σε μία καλλιέργεια μπορεί να εκτιμηθεί από τον τύπο
>>center<<
(:eqn height=100px:) [=
Ne^(kt)
=]
>><<
όπου @@Ν@@ ο αρχικός αριθμός βακτηριδίων, @@k@@ ένας σταθερός αριθμός ανάπτυξης και @@t@@ μία χρονική στιγμή. Γράψτε μια συνάρτηση που να υπολογίζει τον αριθμό των βακτηριδίων που υπάρχουν σε μια χρονική στιγμή @@t@@ για δεδομένες τιμές των @@N@@ και @@k@@.

! Μετατροπή Αλφαβητικού Βαθμού σε Αριθμητικό Βαθμό

Γράψτε μία συνάρτηση η οποία να επιστρέφει ακέραια τιμή, να δέχεται έναν αλφαβητικό βαθμό και να επιστρέφει την αντίστοιχη αριθμητική τιμή, όπου @@A=4, B=3, C=2, D=1@@ και @@F=0@@. Για κάθε άλλο γράμμα θα επιστρέφει @@-1@@.

! Μετατροπή Αριθμητικής Κλίμακας σε Αλφαβητικό Βαθμό

Γράψτε μια συνάρτηση η οποία να αναθέτει έναν αλφαβητικό βαθμό σε μία ακέραια βαθμολογία χρησιμοποιώντας την παρακάτω κλίμακα:

|| 90-100|| A ||
|| 80-99|| B ||
|| 70-79|| C ||
|| 60-69|| D ||
|| 0-59|| F ||
27-02-2008 (20:26) από Aris -
Αλλαγή σειρών 148-151 από:
! Μετατροπή Τμήματος Προγράμματος σε Συνάρτηση

Δίνεται το παρακάτω πρόγραμμα. Να βρείτε ποια τμήματα μπορούν να γίνουν συνάρτηση. Υλοποιήστε τις συναρτήσεις και τροποποιήστε το πρόγραμμα ώστε να τις χρησιμοποιεί.
σε:
! Συγχώνευση Προγράμματος και Συνάρτησης

Δίνονται το πρόγραμμα και το υποπρόγραμμα παρακάτω. Να φτιάξετε ένα πρόγραμμα το οποίο θα έχει το ίδιο αποτέλεσμα το οποίο όμως δεν θα χρησιμοποιεί συνάρτηση.
Αλλαγή σειρών 153-155 από:
ΠΡΟΓΡΑΜΜΑ ΛΙΣΤΑ_LIFO
ΣΤΑΘΕΡΕΣ
SIZE=100
σε:
ΠΡΟΓΡΑΜΜΑ
Αλλαγή σειρών 155-156 από:
ΑΚΕΡΑΙΕΣ: LIST[SIZE], TOP, I, ΤΙΜΗ, ΕΠΙΛΟΓΗ
σε:
ΑΚΕΡΑΙΕΣ: Π, Υ
Αλλαγή σειρών 157-171 από:
TOP <- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "1. ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΣΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "2. ΕΞΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΑΠΟ ΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "3. ΕΜΦΑΝΙΣΗ ΛΙΣΤΑΣ"
ΓΡΑΨΕ "0. ΕΞΟΔΟΣ"
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΕΠΙΛΟΓΗ
ΑΝ ΕΠΙΛΟΓΗ<0 Ή ΕΠΙΛΟΓΗ>3 ΤΟΤΕ
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ>=0 Ή ΕΠΙΛΟΓΗ<=3

ΕΠΙΛΕΞΕ ΕΠΙΛΟΓΗ
σε:
ΔΙΑΒΑΣΕ Π, Υ
ΟΣΟ ΟΡΙΟ(Π, Υ)>0 ΕΠΑΝΑΛΑΒΕ
ΕΠΙΛΕΞΕ ΟΡΙΟ(Π, Υ)
ΠΕΡΙΠΤΩΣΗ 3
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΩΝ ΠΙΕΣΗΣ ΚΑΙ ΥΨΟΥΣ!"
ΠΕΡΙΠΤΩΣΗ 2
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΠΙΕΣΗΣ!"
Αλλαγή σειρών 165-183 από:
ΓΡΑΨΕ "ΔΩΣΕ ΤΙΜΗ:"
ΔΙΑΒΑΣΕ ΤΙΜΗ
ΑΝ TOP < SIZE ΤΟΤΕ
TOP <- TOP+1
LIST[TOP] <- ΤΙΜΗ
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΓΕΜΑΤΗ ΛΙΣΤΑ!"
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ 2
ΑΝ TOP > 1 ΤΟΤΕ
ΓΡΑΨΕ LIST[TOP]
TOP <- TOP-1
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΑΔΕΙΑ ΛΙΣΤΑ!"
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ 3
ΓΙΑ Ι ΑΠΟ TOP ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
ΓΡΑΨΕ LIST[I]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
σε:
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΥΨΟΥΣ!"
Αλλαγή σειρών 167-169 από:
ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ=0
σε:
ΔΙΑΒΑΣΕ Π, Υ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "ΕΝΤΟΣ ΟΡΙΩΝ ΑΣΦΑΛΕΙΑΣ"
Αλλαγή σειρών 171-178 από:
@]

! Συγχώνευση Προγράμματος και Συνάρτησης

Δίνονται το πρόγραμμα και το υποπρόγραμμα παρακάτω. Να φτιάξετε ένα πρόγραμμα το οποίο θα έχει το ίδιο αποτέλεσμα το οποίο όμως δεν θα χρησιμοποιεί συνάρτηση.

(:source lang=glossa linenum :) [@
ΠΡΟΓΡΑΜΜΑ
σε:

ΣΥΝΑΡΤΗΣΗ ΟΡΙΟ(Χ, Υ) : ΑΚΕΡΑΙΑ
Αλλαγή σειράς 174 από:
ΑΚΕΡΑΙΕΣ: Π, Υ
σε:
ΑΚΕΡΑΙΕΣ: Χ, Υ
Διαγραφή σειρών 175-193:
ΔΙΑΒΑΣΕ Π, Υ
ΟΣΟ ΟΡΙΟ(Π, Υ)>0 ΕΠΑΝΑΛΑΒΕ
ΕΠΙΛΕΞΕ ΟΡΙΟ(Π. Υ)
ΠΕΡΙΠΤΩΣΗ 3
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΩΝ ΠΙΕΣΗΣ ΚΑΙ ΥΨΟΥΣ!"
ΠΕΡΙΠΤΩΣΗ 2
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΠΙΕΣΗΣ!"
ΠΕΡΙΠΤΩΣΗ 1
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΥΨΟΥΣ!"
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΔΙΑΒΑΣΕ Π, Υ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "ΕΝΤΟΣ ΟΡΙΩΝ ΑΣΦΑΛΕΙΑΣ"
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΟΡΙΟ(Χ, Υ) : ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: Χ, Υ
ΑΡΧΗ
18-02-2008 (17:49) από Aris -
Πρόσθεση σειράς 160:
TOP <- 1
18-02-2008 (13:36) από Aris -
Διαγραφή σειρών 202-208:
! Αποτελέσματα Εκτέλεσης Προγράμματος με Υποπρόγραμμα

Να εκτελέσετε το παρακάτω πρόγραμμα για τις τιμές του πίνακα. Τι θα εκτυπωθεί για κάθε μία από τις τιμές;

||! Z ||! Y ||! Z ||! P ||
|| 0 || 0 || 0 || ||
Αλλαγή σειράς 204 από:
ΠΡΟΓΡΑΜΜΑ ΓΕΝΝΗΤΡΙΑ_ΑΡΤΙΑΣ_ΙΣΟΤΙΜΙΑΣ
σε:
ΠΡΟΓΡΑΜΜΑ
Αλλαγή σειράς 206 από:
ΛΟΓΙΚΕΣ: Χ, Υ, Ζ, Ρ
σε:
ΑΚΕΡΑΙΕΣ: Π, Υ
Αλλαγή σειρών 208-210 από:
ΔΙΑΒΑΣΕ Χ, Υ, Ζ
Ρ <- XOR(X, XOR(Y, Z))
ΓΡΑΨΕ Ρ
σε:
ΔΙΑΒΑΣΕ Π, Υ
ΟΣΟ ΟΡΙΟ(Π, Υ)>0 ΕΠΑΝΑΛΑΒΕ
ΕΠΙΛΕΞΕ ΟΡΙΟ(Π. Υ)
ΠΕΡΙΠΤΩΣΗ 3
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΩΝ ΠΙΕΣΗΣ ΚΑΙ ΥΨΟΥΣ!"
ΠΕΡΙΠΤΩΣΗ 2
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΠΙΕΣΗΣ!"
ΠΕΡΙΠΤΩΣΗ 1
ΓΡΑΨΕ "ΥΠΕΡΒΑΣΗ ΟΡΙΟΥ ΥΨΟΥΣ!"
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΔΙΑΒΑΣΕ Π, Υ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "ΕΝΤΟΣ ΟΡΙΩΝ ΑΣΦΑΛΕΙΑΣ"
Αλλαγή σειράς 223 από:
ΣΥΝΑΡΤΗΣΗ XOR(Α, Β): ΛΟΓΙΚΗ
σε:
ΣΥΝΑΡΤΗΣΗ ΟΡΙΟ(Χ, Υ) : ΑΚΕΡΑΙΑ
Αλλαγή σειράς 225 από:
ΛΟΓΙΚΕΣ: Α, Β
σε:
ΑΚΕΡΑΙΕΣ: Χ, Υ
Αλλαγή σειρών 227-239 από:
XOR <- (Α ΚΑΙ ΟΧΙ(Β)) Ή (ΟΧΙ(Α) ΚΑΙ Β))
σε:
ΑΝ Χ > 10 ΤΟΤΕ
ΑΝ Υ > 200 ΤΟΤΕ
ΟΡΙΟ <- 3
ΑΛΛΙΩΣ
ΟΡΙΟ <- 2
ΤΕΛΟΣ_ΑΝ
ΑΛΛΙΩΣ
ΑΝ Υ > 200 ΤΟΤΕ
ΟΡΙΟ <- 1
ΑΛΛΙΩΣ
ΟΡΙΟ <- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΑΝ
Πρόσθεση σειρών 242-274:

! Αποτελέσματα Εκτέλεσης Προγράμματος με Υποπρόγραμμα

Να εκτελέσετε το παρακάτω πρόγραμμα για τις τιμές του πίνακα. Τι θα εκτυπωθεί για κάθε μία από τις τιμές; Συμπληρώστε το στη στήλη Ρ.

|| border=1 width=30%
||! X ||! Y ||! Z ||! P ||
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ||
|| ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ||
|| ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΨΕΥΔΗΣ || ||
|| ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ΑΛΗΘΗΣ || ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΨΕΥΔΗΣ || ||
|| ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ΑΛΗΘΗΣ || ||

(:source lang=glossa linenum :) [@
ΠΡΟΓΡΑΜΜΑ ΓΕΝΝΗΤΡΙΑ_ΑΡΤΙΑΣ_ΙΣΟΤΙΜΙΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΛΟΓΙΚΕΣ: Χ, Υ, Ζ, Ρ
ΑΡΧΗ
ΔΙΑΒΑΣΕ Χ, Υ, Ζ
Ρ <- XOR(X, XOR(Y, Z))
ΓΡΑΨΕ Ρ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ XOR(Α, Β): ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΛΟΓΙΚΕΣ: Α, Β
ΑΡΧΗ
XOR <- (Α ΚΑΙ ΟΧΙ(Β)) Ή (ΟΧΙ(Α) ΚΑΙ Β))
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
@]
18-02-2008 (13:14) από Aris -
Πρόσθεση σειρών 207-210:
||! Z ||! Y ||! Z ||! P ||
|| 0 || 0 || 0 || ||

(:source lang=glossa linenum :) [@
Αλλαγή σειράς 226 από:
σε:
@]
18-02-2008 (13:01) από Aris -
Πρόσθεση σειρών 207-222:
ΠΡΟΓΡΑΜΜΑ ΓΕΝΝΗΤΡΙΑ_ΑΡΤΙΑΣ_ΙΣΟΤΙΜΙΑΣ
ΜΕΤΑΒΛΗΤΕΣ
ΛΟΓΙΚΕΣ: Χ, Υ, Ζ, Ρ
ΑΡΧΗ
ΔΙΑΒΑΣΕ Χ, Υ, Ζ
Ρ <- XOR(X, XOR(Y, Z))
ΓΡΑΨΕ Ρ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ XOR(Α, Β): ΛΟΓΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΛΟΓΙΚΕΣ: Α, Β
ΑΡΧΗ
XOR <- (Α ΚΑΙ ΟΧΙ(Β)) Ή (ΟΧΙ(Α) ΚΑΙ Β))
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
18-02-2008 (12:42) από Aris -
Πρόσθεση σειρών 1-12:
! Εύρεση Ελαχίστου Τριών Αριθμών

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

! Όγκος Κύβου

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

! Υπολογισμός Ημερών Από την Αρχή του Έτους

Να γράψετε συνάρτηση η οποία θα δέχεται ημέρα, μήνα και έτος και θα επιστρέφει τον αριθμό των ημερών από την 1η του έτους.
Διαγραφή σειράς 198:
Πρόσθεση σειρών 206-209:

! Υπολογισμός Τιμής

Μία πλάστιγγα (ζυγαριά μεγάλου βάρους) ζυγίζει οχήματα σε έναν τελωνειακό σταθμό. Αν το βάρος του οχήματος είναι μέχρι 2000 κιλά, το όχημα περνάει τον έλεγχο χωρίς επιβάρυνση. Αν το βάρος είναι μεταξύ 2000 και 3000 κιλών, τότε προστίθεται επιβάρυνση 10 λεπτά ανά κιλό άνω των 2000. Αν το βάρος του οχήματος ξεπερνά τα 3000 κιλά, τότε η επιβάρυνση είναι 15 λεπτά ανά κιλό άνω των 3000. Γράψτε πρόγραμμα, το οποίο θα υπολογίζει τη συνολική επιβάρυνση για Ν οχήματα (όπου Ν θετικός ακέραιος που δίνει ο χρήστης). Για τον υπολογισμό της επιβάρυνσης του κάθε οχήματος χρησιμοποιήστε συνάρτηση.
17-02-2008 (20:57) από Aris -
Αλλαγή σειρών 149-153 από:
ΓΡΑΨΕ "1. ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΣΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "2. ΕΞΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΑΠΟ ΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "3. ΕΜΦΑΝΙΣΗ ΛΙΣΤΑΣ"
ΓΡΑΨΕ "0. ΕΞΟΔΟΣ"
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
σε:
ΓΡΑΨΕ "1. ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΣΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "2. ΕΞΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΑΠΟ ΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "3. ΕΜΦΑΝΙΣΗ ΛΙΣΤΑΣ"
ΓΡΑΨΕ "0. ΕΞΟΔΟΣ"
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
Πρόσθεση σειρών 190-194:
Δίνονται το πρόγραμμα και το υποπρόγραμμα παρακάτω. Να φτιάξετε ένα πρόγραμμα το οποίο θα έχει το ίδιο αποτέλεσμα το οποίο όμως δεν θα χρησιμοποιεί συνάρτηση.

! Αποτελέσματα Εκτέλεσης Προγράμματος με Υποπρόγραμμα

Να εκτελέσετε το παρακάτω πρόγραμμα για τις τιμές του πίνακα. Τι θα εκτυπωθεί για κάθε μία από τις τιμές;
17-02-2008 (20:47) από Aris -
Πρόσθεση σειρών 142-143:
ΣΤΑΘΕΡΕΣ
SIZE=100
Αλλαγή σειρών 145-146 από:

σε:
ΑΚΕΡΑΙΕΣ: LIST[SIZE], TOP, I, ΤΙΜΗ, ΕΠΙΛΟΓΗ
17-02-2008 (20:37) από Aris -
Αλλαγή σειρών 140-141 από:

σε:
(:source lang=glossa linenum :) [@
ΠΡΟΓΡΑΜΜΑ ΛΙΣΤΑ_LIFO
ΜΕΤΑΒΛΗΤΕΣ


ΑΡΧΗ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "1. ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΣΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "2. ΕΞΑΓΩΓΗ ΣΤΟΙΧΕΙΟΥ ΑΠΟ ΤΗ ΛΙΣΤΑ"
ΓΡΑΨΕ "3. ΕΜΦΑΝΙΣΗ ΛΙΣΤΑΣ"
ΓΡΑΨΕ "0. ΕΞΟΔΟΣ"
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΔΙΑΒΑΣΕ ΕΠΙΛΟΓΗ
ΑΝ ΕΠΙΛΟΓΗ<0 Ή ΕΠΙΛΟΓΗ>3 ΤΟΤΕ
ΓΡΑΨΕ "ΔΩΣΤΕ ΕΠΙΛΟΓΗ (0-3):"
ΤΕΛΟΣ_ΑΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ>=0 Ή ΕΠΙΛΟΓΗ<=3

ΕΠΙΛΕΞΕ ΕΠΙΛΟΓΗ
ΠΕΡΙΠΤΩΣΗ 1
ΓΡΑΨΕ "ΔΩΣΕ ΤΙΜΗ:"
ΔΙΑΒΑΣΕ ΤΙΜΗ
ΑΝ TOP < SIZE ΤΟΤΕ
TOP <- TOP+1
LIST[TOP] <- ΤΙΜΗ
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΓΕΜΑΤΗ ΛΙΣΤΑ!"
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ 2
ΑΝ TOP > 1 ΤΟΤΕ
ΓΡΑΨΕ LIST[TOP]
TOP <- TOP-1
ΑΛΛΙΩΣ
ΓΡΑΨΕ "ΑΔΕΙΑ ΛΙΣΤΑ!"
ΤΕΛΟΣ_ΑΝ
ΠΕΡΙΠΤΩΣΗ 3
ΓΙΑ Ι ΑΠΟ TOP ΜΕΧΡΙ 1 ΜΕ_ΒΗΜΑ -1
ΓΡΑΨΕ LIST[I]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΙΛΟΓΩΝ
ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠΙΛΟΓΗ=0
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
@]

17-02-2008 (20:21) από Aris -
Αλλαγή σειρών 134-143 από:
>><<
σε:
>><<

! Μετατροπή Τμήματος Προγράμματος σε Συνάρτηση

Δίνεται το παρακάτω πρόγραμμα. Να βρείτε ποια τμήματα μπορούν να γίνουν συνάρτηση. Υλοποιήστε τις συναρτήσεις και τροποποιήστε το πρόγραμμα ώστε να τις χρησιμοποιεί.



! Συγχώνευση Προγράμματος και Συνάρτησης
16-02-2008 (20:02) από Aris -
Αλλαγή σειράς 81 από:
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
σε:
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Αλλαγή σειράς 128 από:
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
σε:
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
16-02-2008 (20:01) από Aris -
Αλλαγή σειράς 128 από:
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
σε:
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
16-02-2008 (20:00) από Aris -
Αλλαγή σειρών 103-106 από:
ΑΝ OFFSET < N

! Υπάρχουν κάποιες περιπτώσεις για τις οποίες δε μπορεί να γίνει αναζήτηση:
ΑΝ Μ > Ν ΤΟΤΕ
σε:
ΑΝ OFFSET < N TOTE
I <- OFFSET
ΑΛΛΙΩΣ
Ι <- Ν
ΤΕΛΟΣ_ΑΝ

! Η σύγκριση μπορεί να γίνει αν Μ < Ν
ΑΝ Μ < Ν ΤΟΤΕ
Δ <- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Α[Ι] = Κ[Δ] ΤΟΤΕ
Δ <- Δ + 1
ΑΛΛΙΩΣ ! Δεν υπάρχει ταίριασμα.
Δ <- 1 ! Ξεκινάμε πάλι από το πρώτο γράμμα της λέξης.
ΤΕΛΟΣ_ΑΝ
Ι <- Ι + 1
ΜΕΧΡΙΣ_ΟΤΟΥ (Δ > Μ) Ή (Ι > Ν)
ΑΝ Δ > Μ ΤΟΤΕ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- Ι - Μ
ΑΛΛΙΩΣ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- 0
ΤΕΛΟΣ_ΑΝ ! Α[Ι] = Κ[Δ]
ΑΛΛΙΩΣ
Αλλαγή σειρών 127-143 από:

Ι <- 1
Δ <- 1
ΑΝ OFFSET < N
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Α[Ι] = Κ[Δ] ΤΟΤΕ
Δ <- Δ + 1
ΑΛΛΙΩΣ ! Δεν υπάρχει ταίριασμα.
Δ <- 1 ! Ξεκινάμε πάλι από το πρώτο γράμμα της λέξης.
ΤΕΛΟΣ_ΑΝ
Ι <- Ι + 1
ΜΕΧΡΙΣ_ΟΤΟΥ (Δ > Μ) Ή (Ι > Ν)
ΑΝ Δ > Μ ΤΟΤΕ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- Ι - Μ
ΑΛΛΙΩΣ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- 0
ΤΕΛΟΣ_ΑΝ
σε:
ΤΕΛΟΣ_ΑΝ ! Μ < Ν
16-02-2008 (19:55) από Aris -
Αλλαγή σειρών 101-108 από:
! OFFSET, η θέση στον πίνακα Α από όπου θα ξεκινήσει η αναζήτηση
σε:
! OFFSET, η θέση στον πίνακα Α από όπου θα ξεκινήσει η αναζήτηση

ΑΝ OFFSET < N

! Υπάρχουν κάποιες περιπτώσεις για τις οποίες δε μπορεί να γίνει αναζήτηση:
ΑΝ Μ > Ν ΤΟΤΕ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- 0
Αλλαγή σειρών 110-111 από:
Δ <- 1
σε:
Δ <- 1
ΑΝ OFFSET < N
Αλλαγή σειράς 119 από:
ΜΕΧΡΙΣ_ΟΤΟΥ (Δ > Μ) Η (Ι > Ν)
σε:
ΜΕΧΡΙΣ_ΟΤΟΥ (Δ > Μ) Ή (Ι > Ν)
16-02-2008 (19:50) από Aris -
Πρόσθεση σειρών 87-122:
>><<

! Αναζήτηση Στοιχείων Πίνακα σε Άλλον Πίνακα

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

(:toggle div=array_search init=hide lshow='Εμφάνιση Απάντησης' lhide='Απόκρυψη Απάντησης':)
>>id=array_search<<
(:source lang=glossa linenum:) [@
ΣΥΝΑΡΤΗΣΗ ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ(Α, Ν, Κ, Μ, OFFSET): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Α[100], Κ[10]
ΑΚΕΡΑΙΕΣ: Ν, Μ, Ι, Δ, OFFSET
! Ν το πλήθος των στοιχείων του Α και Μ του Κ
! OFFSET, η θέση στον πίνακα Α από όπου θα ξεκινήσει η αναζήτηση
Ι <- 1
Δ <- 1
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Α[Ι] = Κ[Δ] ΤΟΤΕ
Δ <- Δ + 1
ΑΛΛΙΩΣ ! Δεν υπάρχει ταίριασμα.
Δ <- 1 ! Ξεκινάμε πάλι από το πρώτο γράμμα της λέξης.
ΤΕΛΟΣ_ΑΝ
Ι <- Ι + 1
ΜΕΧΡΙΣ_ΟΤΟΥ (Δ > Μ) Η (Ι > Ν)
ΑΝ Δ > Μ ΤΟΤΕ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- Ι - Μ
ΑΛΛΙΩΣ
ΣΥΓΚΡΙΣΗ_ΠΙΝΑΚΑ <- 0
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
@]

Ο αλγόριθμος ολοκληρώνεται όταν τελειώσει ο πίνακας @@Α (I > N)@@ ή όταν τελειώσει ο πίνακας @@Σ (Δ > Μ)@@. Το @@Δ@@ μπορεί να ξεπεράσει το @@Μ@@ μόνο αν έχουν γίνει επιτυχώς συγκρίσεις για όλα τα στοιχεία του πίνακα. Αυτό σημαίνει ότι τα στοιχεία του Σ περιέχονται στον Α. Επίσης, το Ι ξεπερνάει το Ν μόνο αν τελειώσουν όλα τα στοιχεία του Α.

Όταν τελειώσει ο βρόχος @@ΜΕΧΡΙΣ_ΟΤΟΥ@@ θα πρέπει να επιστρέψουμε τη θέση στην οποία υπάρχει ταίριασμα. Αυτό γίνεται συγκρίνοντας το Δ με το Μ, το οποίο αν Δ > Μ δηλώνει επιτυχή αναζήτηση και η θέση είναι στο Ι-Μ. Διαφορετικά επιστρέφουμε το 0 ως ένδειξη αποτυχίας.
16-02-2008 (19:23) από Aris -
Πρόσθεση σειρών 7-8:
Εκτός από τον πίνακα στις παραμέτρους θα πρέπει να έχουμε και το πλήθος των στοιχείων. Η παράμετρος αυτή είναι ακέραια.
Αλλαγή σειρών 22-25 από:
>><<

!! Παρατηρήσεις
σε:
Αλλαγή σειρών 28-29 από:
σε:
>><<
Αλλαγή σειρών 57-87 από:
Να γράψετε συνάρτηση η οποία να αναζητεί σε έναν πίνακα ένα στοιχείο και να επιστρέφει την θέση στην οποία εμφανίζεται.
σε:
Να γράψετε συνάρτηση η οποία να αναζητεί σε έναν πίνακα ένα στοιχείο και να επιστρέφει την θέση στην οποία εμφανίζεται.

(:toggle div=brute_force init=hide lshow='Εμφάνιση Απάντησης' lhide='Απόκρυψη Απάντησης':)
>>id=brute_force<<
(:source lang=glossa linenum:) [@
ΣΥΝΑΡΤΗΣΗ ΑΝΑΖΗΤΗΣΗ(Τ, Ν, ΚΕΥ): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Τ[100], ΚΕΥ
ΑΚΕΡΑΙΕΣ: Ν, Ι
ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ
ΑΡΧΗ
ΒΡΕΘΗΚΕ <- ΨΕΥΔΗΣ
Ι <- 1
ΟΣΟ (Ι <= Ν) ΚΑΙ (ΒΡΕΘΗΚΕ = ΨΕΥΔΗΣ) ΕΠΑΝΑΛΑΒΕ
ΑΝ ΚΕΥ = Τ[Ι] ΤΟΤΕ
ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
ΑΛΛΙΩΣ
Ι <- Ι + 1
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ ΒΡΕΘΗΚΕ = ΑΛΗΘΗΣ
ΑΝΑΖΗΤΗΣΗ <- Ι
ΑΛΛΙΩΣ
ΑΝΑΖΗΤΗΣΗ <- 0
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
@]

Ο πίνακας θεωρούμε ότι έχει πραγματικές τιμές, το ίδιο και το στοιχείο που αναζητούμε (ΚΕΥ). Η αναζήτηση γίνεται μέχρι να βρεθεί το πρώτο στοιχείο που ισούται με το ΚΕΥ. Η μεταβλητή ΒΡΕΘΗΚΕ χρησιμοποιείται γι' αυτό το σκοπό.

Τελειώνοντας ο βρόχος ΟΣΟ, αν το ΚΕΥ έχει βρεθεί, η μεταβλητή Ι έχει τη θέση αυτή. Διαφορετικά επιστρέφει την τιμή 0 η οποία δεν είναι έγκυρος δείκτης θέσης πίνακα και μπορεί να χρησιμοποιηθεί για να υποδείξει ανεπιτυχή αναζήτηση.
>><<
16-02-2008 (19:03) από Aris -
Πρόσθεση σειρών 29-57:

! Εύρεση Ελαχίστου Στοιχείου Πίνακα

Να γράψετε συνάρτηση η οποία να επιστρέφει το ελάχιστο στοιχείο ενός πίνακα.

(:toggle div=array_min init=hide lshow='Εμφάνιση Απάντησης' lhide='Απόκρυψη Απάντησης':)
>>id=array_min<<
(:source lang=glossa linenum:) [@
ΣΥΝΑΡΤΗΣΗ ΜΙΝ(Τ, Ν): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Τ[100], Ι
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
ΜΙΝ <- Τ[1]
ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 100
ΑΝ Τ[Ι] < ΜΙΝ ΤΟΤΕ
ΜΙΝ <- Τ[Ι]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
@]

Παρατηρήστε ότι το όνομα της συνάρτησης μπορεί να χρησιμοποιηθεί σε οποιοδήποτε σημείο σαν μια οποιαδήποτε μεταβλητή.\\
Η συνάρτηση μπορεί πολύ εύκολα να τροποποιηθεί για να επιστρέφει το μεγαλύτερο.
>><<

! Αναζήτηση Στοιχείου σε Πίνακα

Να γράψετε συνάρτηση η οποία να αναζητεί σε έναν πίνακα ένα στοιχείο και να επιστρέφει την θέση στην οποία εμφανίζεται.
16-02-2008 (18:52) από Aris -
Πρόσθεση σειρών 1-28:
! Άθροισμα Στοιχείων Πίνακα

Να γράψετε συνάρτηση η οποία να υπολογίζει το άθροισμα των στοιχείων ενός πίνακα ο οποίος θα δίνεται ως παράμετρος. Τι άλλο χρειάζεται ως παράμετρο η συνάρτηση;

(:toggle div=array_sum init=hide lshow='Εμφάνιση Απάντησης' lhide='Απόκρυψη Απάντησης':)
>>id=array_sum<<
(:source lang=glossa linenum:) [@
ΣΥΝΑΡΤΗΣΗ ΑΘΡΟΙΣΜΑ(Τ, Ν): ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΠΡΑΓΜΑΤΙΚΕΣ: Τ[100], Ι, Σ
ΑΚΕΡΑΙΕΣ: Ν
ΑΡΧΗ
Σ <- 0
ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100
Σ <- Σ + Τ[Ι]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΘΡΟΙΣΜΑ <- Σ
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
@]
>><<

!! Παρατηρήσεις

Η παραπάνω συνάρτηση πολύ εύκολα μπορεί να τροποποιηθεί ώστε να επιστρέφει τον μέσο όρο ή άλλο στατιστικό μέγεθος. Για το μέσο όρο χρειάζεται η αλλαγή της γραμμής 10 ως εξής.

->@@ΜΟ_ΠΙΝΑΚΑ <- Σ / Ν@@

Όπου @@ΜΟ_ΠΙΝΑΚΑ@@ το όνομα της συνάρτησης.

Τελευταία ενημέρωση: 29-04-2008 (10:27)

Copyright 2008 - Άρης Φεργάδης