ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Κ. Δεμέστιχας Εργαστήριο Πληροφορικής Γεωπονικό Πανεπιστήμιο Αθηνών Επικοινωνία μέσω e-mail: cdemest@aua.gr, cdemest@cn.ntua.gr Διαφάνειες: Καθ. Νικόλαος Λορέντζος
7. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2
Αλγόριθμοι 3
Αλγόριθμος Πεπερασμένη ακολουθία ενεργειών που, αν εκτελεσθούν πεπερασμένο το πλήθος φορές, επιτυγχάνουν το επιθυμητό αποτέλεσμα. Παραδείγματα - Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση - Εύρεση Μέγιστου Κοινού Διαιρέτη - Ελάχιστου Κοινού Πολλαπλάσιου Αλγοριθμικότητα στην καθημερινή πρακτική; 4
Λογικό Διάγραμμα (Διάγραμμα Ροής) Διάγραμμα περιγραφής μιας ακολουθίας εντολών Σχήμα Συμβολισμός Αρχή/Τέλος Λογικού Διαγράμματος Εκτέλεση μιας ή περισσοτέρων εντολών απόδοσης τιμών Ανάγνωση δεδομένων (ή και εκτύπωση αποτελεσμάτων) Εκτύπωση αποτελεσμάτων Έλεγχος ικανοποίησης συνθήκης Ροή Λογικού Διαγράμματος Σύνδεσμος Λογικού Διαγράμματος 5
Λογικό Διάγραμμα ή Διάγραμμα Ροής ΑΡΧΗ Β sum = 0 Β7 Τύπωσε sum Β2 k = 0 ΤΕΛΟΣ Β3 Διάβασε x Β4 Β5 Β6 NAI k = k + sum = sum + x k < 4 ΟΧΙ Φυσικό πρόβλημα Να διαβασθούν 4 αριθμοί, να υπολογισθεί το άθροισμά τους και να εκτυπωθεί. 6
Λογικό Διάγραμμα ή Διάγραμμα Ροής ΑΡΧΗ Β sum = 0 Β7 Τύπωσε sum Β2 Β3 Β4 Β5 Β6 NAI k = 0 Διάβασε x k = k + sum = sum + x k < 4 ΟΧΙ ΤΕΛΟΣ Εντολές σε μια Γλώσσα Προγραμματισμού. sum = 0 2. k = 0 3. read x 4. k = k + 5. sum = sum + x 6. if k < 4 go to 3 7. write sum 7
Λογικό Διάγραμμα (Συμπλήρωμα) Επαναληπτική Εντολή μετρητής = τιμή τιμή2 (Βήμα β) εντολές 8
Λογικό Διάγραμμα ή Διάγραμμα Ροής ΑΡΧΗ B B2 B3 B4 B5 sum = 0 k = 4 (Βήμα ) Διάβασε x sum = sum + x Τύπωσε sum ΤΕΛΟΣ Εντολές σε μια Γλώσσα Προγραμματισμού. sum = 0 2a. for k = to 4 step 3. read x 4. sum = sum + x 2b. next k 5. write sum 9
Λογικό Διάγραμμα αλλά όχι αλγόριθμος!!! ΑΡΧΗ Β sum = 0 Β7 Τύπωσε sum Β2 Β3 k = 0 Διάβασε x ΤΕΛΟΣ Β4 Β5 k = k + sum = sum + x Β6NAI k > - ΟΧΙ 0
Γλώσσες Προγραμματισμού
Κατηγορίες Γλωσσών. Φυσικές Γλώσσες επικοινωνίας μεταξύ των ανθρώπων Ελληνική, Αγγλική, Γαλλική 2. Προγραμματισμού Τεχνητές γλώσσες για την περιγραφή αλγορίθμων (σύνταξη προγραμμάτων) που μπορούν να εκτελεσθούν από Η/Υ. 2
Κατηγορίες Γλωσσών Προγραμματισμού Α. Χαμηλού Επιπέδου Α. Μηχανής ( η γενιά, ΓΓ) Α2. Συμβολικές ή Μνημονικές (2 η γενιά, Γ2Γ) Β. Υψηλού Επιπέδου (3 η γενιά, Γ3Γ) (εξειδικευμένες ανάλογα με το είδος της εφαρμογής) Basic, Pascal, Fortran, Java, C, C++, Γ. Πολύ Υψηλού Επιπέδου (4 η γενιά, Γ4Γ) SQL, QUEL, QBE, 3
0 2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 Α. Γλώσσα Μηχανής (ΓΓ) 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 4
Α. Γλώσσα Μηχανής (ΓΓ) Μια γλώσσα για κάθε τύπο Η/Υ Αρνητικά Δύσκολος προγραμματισμός, για λίγους Η/Υ διαφορετικών κατασκευαστών, με διαφορετική γλώσσα μηχανής Εξάρτηση από τον κατασκευαστή του Η/Υ Με αγορά Η/Υ άλλου κατασκευαστή, - εκμάθηση της νέας γλώσσας μηχανής και - επανασύνταξη των προγραμμάτων στη νέα γλώσσα Γλώσσα χαμηλού επιπέδου 5
Α2. Συμβολική ή Μνημονική Γλώσσα (Γ2Γ) Κώδικας σε Συμβολική Γλώσσα ADD SUB MULT DIV 0 B R R 5 C E Κώδικας σε Γλώσσα Μηχανής 0 5 6 7 3 ΤΕΛΕΣΤΗΣ Α ΟΡΟΣ 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 6
R4 F MULT R3 R3 E DIV D R2 R ADD A R C MULT B X R6 R6 5 0 SUB R5 R5 R4 ADD R2 Α2. Συμβολική ή Μνημονική Γλώσσα (Γ2Γ) 7
Α2. Συμβολική ή Μνημονική Γλώσσα (Γ2Γ) Μια συμβολική γλώσσα για κάθε γλώσσα μηχανής Θετικά Ευκολότερος προγραμματισμός, σε σχέση με εκείνον σε γλώσσα μηχανής Αρνητικά Δύσκολος προγραμματισμός, για λίγους Η/Υ διαφορετικών κατασκευαστών, με διαφορετική συμβολική γλώσσα Εξάρτηση από τον κατασκευαστή του Η/Υ Με αγορά Η/Υ άλλου κατασκευαστή, - εκμάθηση της νέας γλώσσας μηχανής και - επανασύνταξη των προγραμμάτων στη νέα γλώσσα Γλώσσα χαμηλού επιπέδου 8
Β. Γλώσσα Υψηλού Επιπέδου (Γ3Γ) a = 2 b = 3 c = 2 d = 6 e = 2 f = 4 x = a + b * c + d / e * f 5 y = 2*(x-ln(x)) write(x) write(y) 9
Β. Γλώσσα Υψηλού Επιπέδου (Γ3Γ) Θετικά Πολύ ευκολότερος προγραμματισμός, για πολλούς Απεξάρτηση από τον κατασκευαστή του Η/Υ (απεριόριστα πολλές γλώσσες) Αρνητικά Πολλές εντολές για τη διαχείριση αρχείων 20
Γ. Γλώσσα Πολύ Υψηλού Επιπέδου (Γ4Γ) SELECT am, onoma, epon, posot*timi AS eispraxi FROM PARAG WHERE eidos = ΠΟ (Άντληση δεδομένων από ένα αρχείο) SELECT eponimia, onoma FROM BIOM, FARMAKO WHERE BIOM.KFB = FARMAKO.KBF (Άντληση δεδομένων από δυο αρχεία) Θετικά Εύκολη διαχείριση αρχείων, με απλές εντολές Αρνητικά Δεν υποκαθιστά τις Γ3Γ. 2
Γ2Γ έναντι ΓΓ Σε κάθε εντολή μιας Γ2Γ αντιστοιχεί τουλάχιστον μια εντολή σε ΓΓ. 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 MULT ADD DIV MULT ADD SUB 0 B C R A R R2 D E R3 R3 F R4 R2 R4 R5 R5 5 R6 R6 22 X
Γ3Γ έναντι Γ2Γ Εντολές a = 2 b = 3 c = 2 d = 6 e = 2 f = 4 x = a + b * c + d / e * f - 5 Στοιχειώδεις Εντολές a = 2 b = 3 c = 2 d = 6 e = 2 f = 4 r = b * c r2 = a + r r3 = d / e r4 = r3 * f r5 = r2 + r4 r6 = r5 5 x = r6 23
Γ3Γ έναντι Γ2Γ Έκφραση σε Γ3Γ: x = a + b * c + d / e * f - 5 και αντίστοιχος κώδικας σε Γ2Γ r = b * c r2 = a + r r3 = d / e B MULT C R A ADD R R2 D DIV E r5 = r2 + r4 r6 = r5-5 x = r6 ADD SUB 0 R2 R4 R5 R5 5 R6 R6 X r4 = r3 * f R3 R3 MULT F Σε κάθε εντολή μιας Γ3Γ αντιστοιχούν πολλές εντολές σε Γ2Γ. R4 24
Γ4Γ έναντι Γ3Γ SELECT eponimia, onoma FROM BIOM, Farmako WHERE BIOM.KFB = Farmako.KBF Σε κάθε εντολή μιας Γ4Γ αντιστοιχούν πάρα πολλές εντολές σε Γ3Γ. 25
0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 Β. Γλώσσα Υψηλού Επιπέδου (Γ3Γ) x = a + b * c + d / e * f - 5 MULT ADD DIV MULT ADD SUB 0 B C R A R R2 D E R3 R3 F R4 R2 R4 R5 R5 5 R6 R6 X 26
Γενιές Γλωσσών Προγραμματισμού (σύνοψη) Γλώσσα ης Γενιάς: Γλώσσα Μηχανής (χαμηλού επιπέδου) 0 0 0 0 0 0 0... 0 0 Γλώσσα 2 ης Γενιάς: Συμβολική Γλώσσα (χαμηλού επιπέδου) ADD 26 Γλώσσα 3 ης Γενιάς: Γλώσσα Υψηλού επιπέδου x = a + b * c + d / e * f - 5 Γλώσσα 4 ης Γενιάς: Γλώσσα Πολύ Υψηλού Επιπέδου SELECT Eponimia, Onoma FROM BIOM AS B, FARMAKO AS F WHERE B. KFB = F.KFB AND Morphi = Σκόνη 27
Μεταφραστικά Προγράμματα 28
Γλώσσα Μηχανής (ΓΓ) Η μόνη γλώσσα που είναι κατανοητή από τον Η/Υ. Εντολές σ αυτή τη γλώσσα εκτελούνται από τον Η/Υ... εφόσον είναι σωστές. Λοιπές Γλώσσες Προγραμματισμού Εντολές που έχουν γραφεί σε οποιαδήποτε άλλη γλώσσα προγραμματισμού - πρέπει να μεταφρασθούν σε εντολές σε γλώσσα μηχανής - οι οποίες μπορούν ακολούθως να εκτελεσθούν από τον Η/Υ. 29
Μετάφραση από Γ2Γ σε ΓΓ B MULT C R A ADD R R2 D DIV E R3 R3 MULT F R4 R2 ADD R4 R5 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 Συμβολομεταφραστής (Assembler) Μεταφράζει από Γ2Γ σε ΓΓ. Διαγιγνώσκει συντακτικά (μεταφραστικά) λάθη. 30
Μετάφραση από Γ3Γ σε ΓΓ a = 2 b = 3 c = 2 d = 6 e = 2 f = 4 x = a + b * c + d / e * f - 5 Πηγαίος κώδικας (source code) 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 00 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 Αντικείμενος κώδικας (object code) ή Εκτελέσιμος κώδικας (executable code) Μεταφραστής Μεταφράζει από Γ3Γ σε ΓΓ. Διαγιγνώσκει συντακτικά (μεταφραστικά) λάθη. 3
Μετάφραση από Γ4Γ σε ΓΓ SELECT eponimia, onoma FROM BIOM, Farmako WHERE BIOM.KFB = Farmako.KBF 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 0 0 0 0 00 0 0 0... 0 0 0 0 0 0 0 0 0 0 0... 0 0 Προμεταφραστής: Μεταφράζει από Γ4Γ σε Γ3Γ. Μεταφραστής: Μεταφράζει από Γ3Γ σε ΓΓ. Διαγιγνώσκονται συντακτικά (μεταφραστικά) λάθη. 32
Μεταφραστικά Προγράμματα (σύνοψη) Πρόγραμμα σε Γλώσσα 4 ης Γενιάς Προμεταφραστής Πρόγραμμα σε Γλώσσα 3 ης Γενιάς Μεταφραστής Πρόγραμμα σε Γλώσσα 2 ης Γενιάς Συμβολομεταφραστής Πρόγραμμα σε Γλώσσα ης Γενιάς 33
Είδη Μεταφραστικών Προγραμάτων Μεταγλωττιστής (compiler) Διερμηνευτής (Interpreter) 34
Μεταγλωττιστής (Compiler) ΑΡΧΗ Β Μεταφράζει μόνο μια φορά, όλες τις εντολές του πηγαίου προγράμματος. Ακολούθως, ο Η/Υ μπορεί να εκτελέσει το αντικείμενο πρόγραμμα. Β4 ΟΧΙ Β2 Β3 Άρα:. Μεταφράζονται και εντολές που ενδεχόμενα δεν θα εκτελεσθούν. ΝΑΙ ΤΕΛΟΣ Β5 2. Εντοπίζονται τα συντακτικά λάθη οποιασδήποτε εντολής, ανεξάρτητα αν η εντολή αυτή θα εκτελεσθεί ή όχι. Συγκρίνατε: Μετάφραση βιβλίου 35
Διερμηνευτής (Interpreter) ΑΡΧΗ Β Μεταφράζει κάθε φορά μόνο μια εντολή σε αντικείμενο κώδικα και ακολούθως ο Η/Υ εκτελεί τη μεταφρασμένη εντολή. Β4 ΟΧΙ ΝΑΙ ΤΕΛΟΣ Β2 Β3 Β5 Άρα:. Κάποιες εντολές ενδέχεται να μεταφρασθούν πολλές φορές. 2. Το πρόγραμμα ενδέχεται να ολοκληρωθεί χωρίς πρόβλημα, μολονότι εντολές, που δεν εκτελέσθηκαν, είχαν συντακτικά λάθη. 3. Η εκτέλεση του προγράμματος διακόπτεται απότομα, αν η εντολή που πρέπει να εκτελεσθεί έχει Συγκρίνατε: Διερμηνέας συντακτικό λάθος. 36
Σύγκριση μεταξύ Μεταγλωττισμένου και Διερμηνευμένου Προγράμματος; 37
Λάθη Προγραμματισμού 38
Λάθη Προγραμματισμού Συντακτικά ή Μεταφραστικά: Κάποια εντολή δεν έχει γραφεί σωστά. π.χ. y = x*(x+3 αντί του σωστού y = x*(x+3). Διαπιστώνεται στο στάδιο της μετάφρασης. Λογικά: Δεν έχουμε δώσει τις σωστές εντολές. π.χ. y = x - 3 ενώ έπρεπε να γράψουμε y = x + 3. Διαπιστώνεται από το γεγονός ότι παίρνουμε λανθασμένα αποτελέσματα. Εκτέλεσης: Επιχειρείται η εκτέλεση απαγορευμένης πράξης. π.χ. z = 0; y = x/z Διαπιστώνεται από την απότομη διακοπή της εκτέλεσης του προγράμματος και εμφανίζεται ένα μήνυμα λάθους. 39
Επίδειξη Γλωσσών Προγραμματισμού 40
Λογικό Διάγραμμα (Διάγραμμα Ροής) ΑΡΧΗ B B2 B3 B4 B5 sum = 0 k = 4 (Βήμα ) Διάβασε x sum = sum + x Τύπωσε sum ΤΕΛΟΣ Εντολές σε μια Γλώσσα Προγραμματισμού. sum = 0 2a. for k = to 4 step 3. read x 4. sum = sum + x 2b. next k 5. write sum 4
Πρόγραμμα σε Γλώσσα Basic (Γ3Γ) Εντολές σε μια Γλώσσα Προγραμματισμού sum = 0 for k = to 4 step read x sum sum + x next k write sum Εντολές σε Γλώσσα Visual Basic Private Sub Command_Click() sum = 0 For k = To 4 Step x = InputBox("ΔΩΣΕ ΑΡΙΘΜΟ: ") sum = sum + x Next k Print Print "ΤΕΛΙΚΟ ΑΘΡΟΙΣΜΑ: " & sum End Sub 42
Φυσικό Πρόβλημα Έχομε ένα αρχείο, το PARAG.TXT, το οποίο περιέχει τα εξής στοιχεία δενδροκαλλιεργητών: - Αριθμό Μητρώου, - Επώνυμο, - Όνομα, - Είδος προϊόντος που καλλιεργεί: Πορτοκάλια (ΠΟ), Μανταρίνια (ΜΑ) ή Λεμόνια (ΛΕ). - Ποσότητα προϊόντος που πούλησε, - Τιμή μονάδας πώλησης. Να γραφεί πρόγραμμα το οποίο διαβάζει τα παραπάνω δεδομένα από το PARAG.TXT και για κάθε δενδροκαλλιεργητή πορτοκαλιών (i) υπολογίζει το ποσόν που εισέπραξε από την πώληση του προϊόντος του, (ii) εκτυπώνει σε ένα αρχείο εξόδου τον Αριθμό Μητρώου, Όνομα και Επώνυμό του, καθώς και το ποσόν που εισέπραξε από την πώληση του προϊόντος του. Διαχείριση Αρχείων σε Basic (Γ3Γ) 43
Διαχείριση Αρχείων σε Basic (Γ3Γ) Αρχεία Περιεχόμενο Αρχείου Εισόδου (PARAG.TXT), ΑΒΡΑΜΙΔΗΣ, ΑΒΡΑΑΜ, ΠΟ, 000,.00 2, ΒΑΣΙΛΕΙΟΥ, ΒΑΣΙΛΕΙΟΣ, ΠΟ, 4000, 0.50 3, ΔΗΜΗΤΡΙΟΥ,ΔΗΜΗΤΡΙΟΣ, ΛΕ, 6000, 0.50 4, ΓΕΩΡΓΙΟΥ, ΓΕΩΡΓΙΟΣ, ΜΑ, 6000, 0.25 5, ΘΕΟΔΩΡΟΥ, ΘΕΟΔΩΡΟΣ, ΠΟ, 0000, 0.50 6, ΙΩΑΝΝΟΥ, ΙΩΑΝΝΗΣ, ΜΑ, 6000,.00 7, ΝΙΚΟΛΑΟΥ, ΝΙΚΟΛΑΟΣ, ΠΟ, 7000,.00 8, ΠΕΤΡΙΔΗΣ, ΠΕΤΡΟΣ, ΛΕ, 6000, 0.50 Αναμενόμενο Περιεχόμενο Αρχείου Εξόδου (EISPR.TXT), ΑΒΡΑΑΜ, ΑΒΡΑΜΙΔΗΣ, 000 2, ΒΑΣΙΛΕΙΟΣ, ΒΑΣΙΛΕΙΟΥ, 2000 5, ΘΕΟΔΩΡΟΣ, ΘΕΟΔΩΡΟΥ, 5000 7, ΝΙΚΟΛΑΟΣ, ΝΙΚΟΛΑΟΥ, 7000 44
Διαχείριση Αρχείων σε Basic (Γ3Γ) Πρόγραμμα σε Basic Private Sub Command_Click() Open " parag.txt" For Input As # Open "eispr.txt" For Output As #2 Do While Not (EOF()) Input #, am, epon, onoma, eidos, posot, timi If eidos = ΠΟ then eispraxi = posot * timi Print #2, am & ",", onoma & ",", epon & ",", eispraxi End If Loop Close # Close #2 End Sub 45
Διαχείριση Αρχείων σε SQL (Γ4Γ) SELECT am, onoma, epon, posot*timi AS eispraxi FROM PARAG WHERE eidos = ΠΟ 46