ενισχυτική διδασκαλία

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
(READ – WRITE) ΚΑΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (INTEGER,REAL,CHAR)
Advertisements

Προγραμματισμός PASCAL
Κεφάλαιο Τμηματικός προγραμματισμός
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
Εντολές Διακλάδωσης ή Εντολές Υπό Συνθήκη
Πίνακες.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Παράδειγμα 2: Κινηματογράφοι Να γραφεί πρόγραμμα το οποίο:
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Διαφάνειες παρουσίασης #5
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δομές Διακλάδωσης.
ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)
Παράδειγμα 5: Θερμοκρασίες
Παράδειγμα 1: Κόστος Υπολογιστών Το πρόγραμμα υπολογίζει το συνολικό κόστος παραγγελιών υπολογιστών.Το πρόγραμμα διαβάζει από το πληκτρολόγιο την ποσότητα.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος ε
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
Γενική μορφή προγράμματος Pascal
Σχεδίαση αλγορίθμων (2ο μέρος)
Ολυμπιάδα Πληροφορικής
Προγραμματισμός PASCAL
Διαφάνειες παρουσίασης #3
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΓΛΩΣΣΑΣ PASCAL ΠΑΡΟΥΣΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΤΙΣ ΤΡΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 10 – Υποπρογράμματα
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
Διαφάνειες παρουσίασης Ορθότητα (συνέχεια) Τακτικοί τύποι και τύποι υποπεριοχής Πίνακες.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 4-1 Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Αναδρομικές συναρτήσεις Ισοζυγισμός Παρενθέσεων.
Οι εντολές επανάληψης Σε πολλά προβλήματα απαιτείται η επανάληψη ενός συνόλου ενεργειών προκειμένου να λυθεί το πρόβλημα. Θα αναφέρουμε δύο χαρακτηριστικά.
Υποπίνακες REAL A(10) A(1:9:2)=7 τότε θα έχουμε A(1)=A(3)=A(5)=A(7)=A(9)=7 A(3:)=7 τότε θα έχουμε A(3)=…=A(10)=7 A(:5)=7 τότε θα έχουμε A(1)=A(2)=A(3)=A(4)=A(5)=7.
2) Aν δανειστούμε ένα ποσό Α με επιτόκιο Τ=Ε% και υποχρεωθούμε να το ξεχρεώσουμε σε Ν χρόνια, τότε το ποσό της μηνιαίας δόσης Μ θα δίνεται από τον τύπο.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Αναδρομικές Συναρτήσεις Σύνταξη: RECURSIVE type FUNCTION name1 (variables) RESULT (name2) IMPLICIT NONE Τμήμα δηλώσεων Εκτελέσιμες εντολές END FUNCTION.
1 Προγραμματισμός Ι Ενότητα 6 : Υποπρογράμματα III Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
1 Προγραμματισμός Ι Ενότητα 11 : Ασκήσεις Επανάληψης Α’ Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Καθηγητής Νίκος Λορέντζος Προγραμματισμός & Εφαρμογές Υπολογιστών Κωδικός Μαθήματος: 2890 Κωδικός Διαφανειών: MKT130 Γεωπονικό Πανεπιστήμιο Αθηνών Τμήμα.
1 Προγραμματισμός Ι Ενότητα 7 : Πίνακες I Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Εφαρμογές Υπολογιστών
Ενότητα 12 : Ασκήσεις Επανάληψης Β’ Αλέξανδρος Τζάλλας
Ενισχυτική διδασκαλία
ΠΑΡΑΜΕΤΡΟΙ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ Τυπικές Παράμετροι Πραγματικές Παράμετροι
Γενικές Διαδικασίες.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ενισχυτική διδασκαλία
Ενότητα 5 : Υποπρογράμματα II Αλέξανδρος Τζάλλας
for (παράσταση_1; παράσταση_2; παράσταση_3)
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Ενισχυτική διδασκαλία
ΣΥΝΑΡΤΗΣΕΙΣ (Functions)
Η Γλώσσα Pascal Υποπρογράμματα
Επανάληψη.
Δομημένος Προγραμματισμός - Κεφάλαιο 4 - Ανάπτυξη αλγορίθμων
Κεφάλαιο 7 10/11/2018 Ξένιος Αντωνιάδης.
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

ενισχυτική διδασκαλία Ενότητα 3: «Εισαγωγή στην Αλγοριθμική και στον Προγραμματισμό: loops, subroutines, tables» Χ. Σκουρλάς cskourlas@teiath.gr   2015-16

Επαναλήψεις - Loops, Διαδικασίες - procedures, Συναρτήσεις - functions, Αναδρομή - recursion, Πίνακες - tables Στην ενότητα αυτή θα επαναλάβουμε τις εντολές επανάληψης (loops). Θα μελετήσουμε τα υποπρογράμματα: διαδικασίες, συναρτήσεις Θα δούμε παραδείγματα αναδρομής. Θα μελετήσουμε πίνακες. Χ. Σκουρλάς

Παραδείγματα χρήσης εντολών επανάληψης for, while, repeat

Υπολογίστε το άθροισμα 1+2+3+...+10 χρησιμοποιώντας εντολή for. program upologismos_athroismatos(input, output); var i, N, athroisma: integer; begin N:=10; athroisma:=0; i:=1; for i:= 1 to N do athroisma:= athroisma+i; writeln('athroisma=1+2+3+4+5+ 6+7+8+9+10=', athroisma); readln; end.

Υπολογίστε το άθροισμα 1+2+3+...+10 χρησιμοποιώντας εντολή while. program upologismos_athroismatos(input, output); var i, N, athroisma: integer; begin N:= 10; athroisma:=0; i:=1; while i<=N do athroisma:= athroisma +i; i:= i+1; end; writeln('athroisma=1+2+3+4+5+6+7+ 8+9+10=', athroisma); readln; end.

Υπολογίστε το άθροισμα 1+2+3+...+10 χρησιμοποιώντας εντολή repeat. program upologismos_athroismatos(input, output); var i, N, athroisma: integer; begin N:=10; athroisma:=0; i:=1; repeat athroisma:= athroisma+i; i:= i+1 until i>N; writeln('athroisma=1+2+3+4+5+ 6+7+8+9+10=', athroisma); readln; end.

Αποτελέσματα εκτέλεσης του προγράμματος Τo πρόγραμμα διαβάζει τον αριθμό Ν, χρησιμοποιεί εντολή repeat και υπολογίζει το άθροισμα 1+2+3+...+Ν. program upologismos_athroismatos(input, output); var i, N, athroisma: integer; begin writeln('dwse plhthos diadoxikwn akeraiwn pou tha prostheseis'); readln(N); if (N<1) or (N>10) then writeln('dwse swsta to plhthos') else athroisma:=0; i:=1; repeat athroisma:= athroisma+i; i:= i+1; until i>N; writeln('athroisma =', athroisma); end; readln; End. Αποτελέσματα εκτέλεσης του προγράμματος dwse plhthos diadoxikwn akeraiwn pou tha prostheseis 5 15 (επειδή 1+2+3+4+5=15)

Ακολουθούν παραδείγματα προγραμμάτων που χρησιμοποιούν while, repeat. program upologismos_athroismatos(input, output); var arithmos, athroisma: integer; begin writeln('to programma tha diavazei kai tha prosthetei arithmous'); writeln('dwse arithmo <10 kai >0'); writeln('gia na stamathsei dwse arithmo pou den anhkei sto diasthma [1, 10)'); readln(arithmos); while (arithmos>=1) and (arithmos<10) do athroisma := athroisma+arithmos; writeln('dwse arithmo < 10 kai > 1'); readln(arithmos) end; writeln('athroisma =', athroisma); readln; end. Το πρόγραμμα διαβάζει και προσθέτει αριθμούς μεγαλύτερους από 0 και μικρότερους από 10. Για να σταματήσει το πρόγραμμα πληκτρολογείς είτε αριθμό αρνητικό ή 0 ή αριθμό μεγαλύτερο του 9.

program upologismos_athroismatos(input, output); var arithmos, athroisma: integer; begin writeln('to programma tha diavazei kai tha prosthetei arithmous'); repeat writeln('dwse arithmo < 10 kai > 1'); athroisma := athroisma+arithmos; readln(arithmos); writeln('arithmos=', arithmos); until(arithmos<1)or(arithmos>=10); writeln('athroisma =', athroisma); readln; end. Το πρόγραμμα διαβάζει και προσθέτει αριθμούς μεγαλύτερους από 0 και μικρότερους από 10. Για να σταματήσει το πρόγραμμα πληκτρολογείς είτε αριθμό αρνητικό ή 0 ή αριθμό μεγαλύτερο του 9.

Διαφορά for, while, repeat for i:= 1 to 5 do begin εντολές end;

program diavazw_zeugh(input, output); var i, arithmos1, arithmos2: integer; begin for i:= 1 to 5 do writeln('Dwse 2 akeraious aritmous.'); readln(arithmos1, arithmos2); writeln('oi arithmoi pou edwses einai: ', arithmos1,' , ', arithmos2); end; readln end.

Αλλιώς χρησιμοποίησε while ή repeat. Τότε θα χρειαστείς μία συνθήκη πχ το πρόγραμμα θα σταματάει αν δώσουμε αριθμό 0 μέσα στο ζεύγος. Να πως διαμορφώνονται οι εντολές while, repeat: while (arithmos1 > 0) and (arithmos2 > 0) do begin εντολές end;   repeat until (arithmos1 = 0) or (arithmos2 = 0); Ακολουθούν τα δύο προγράμματα. Παρατήρησε ότι πριν από το while χρειάζεται να διαβάσεις το πρώτο ζευγάρι αριθμών ενώ στο repeat δε χρειάζεται!

program diavazw_zeugh(input, output); var arithmos1, arithmos2: integer; begin writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden to programma tha stamathsei'); readln(arithmos1, arithmos2); while (arithmos1 > 0) and (arithmos2 > 0) do writeln('oi arithmoi pou edwses einai: ', arithmos1,' , ', arithmos2); end; readln end.

program diavazw_zeugh(input, output); var arithmos1, arithmos2: integer; begin repeat writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden to programma tha stamathsei'); readln(arithmos1, arithmos2); writeln('oi arithmoi pou edwses einai: ', arithmos1,' , ', arithmos2) until (arithmos1 = 0) or (arithmos2 = 0); readln end.

Υποπρογράμματα: Διαδικασίες και συναρτήσεις Ένα υποπρόγραμμα είναι μία ομάδα εντολών που όλες μαζί κάνουν μία συγκεκριμένη εργασία. Το υποπρόγραμμα είναι τμήμα του προγράμματος και έχει όνομα, αρχή, τέλος. Όταν θέλουμε να εκτελέσουμε τις εντολές του υποπρογράμματος το καλούμε με το όνομά του μέσα από το κύριο πρόγραμμα.

Τα υποπρογράμματα χωρίζονται σε διαδικασίες (procedures) και συναρτήσεις (functions): function athroisma_duo_akeraiwn(a1, a2: integer): integer; begin athroisma_akeraiwn:= a1+a2; end; procedure hello; writeln('Eimaste sti diadikasia'); writeln('Hello world!'); procedure vres_min(a1, a2: integer; var elaxisto: integer); if a1 > a2 then elaxisto:=a2 else elaxisto:=a1;

Παραδείγματα χρήσης διαδικασιών, συναρτήσεων

α) Διαδικασίες χωρίς παραμέτρους (parameters) Οι διαδικασίες χωρίς παραμέτρους καλούνται από το κύριο πρόγραμμα μόνο με το όνομά τους. Δες και το παρακάτω παράδειγμα.

program greetings(input, output); procedure hello; begin writeln('Eimaste sti diadikasia'); writeln('Hello world!'); end; writeln('Eimaste sto kurio programma'); writeln('Kaloume th diadikasia gia na grapsoume to minima '); hello; writeln('Xanagurisame sto kurio programma'); readln; end. Τα αποτελέσματα εκτέλεσης του προγράμματος Eimaste sto kurio programma Kaloume th diadikasia gia na grapsoume to minima Eimaste sti diadikasia Hello world! Xanagurisame sto kurio programma

Οι μεταβλητές του κύριου προγράμματος λέγονται καθολικές (global) επειδή μπορούμε να τις χρησιμοποιήσουμε και στο πρόγραμμα και στα υποπρογράμματα. Δηλαδή μία καθολική μεταβλητή μπορεί να την αλλάξει και το κύριο πρόγραμμα και τα υποπρογράμματα. Η i είναι καθολική μεταβλητή. program greetings(input, output); var i: integer; procedure hello; begin writeln('Eimaste sti diadikasia'); writeln('i=', i); writeln('Hello world!'); end; writeln('Eimaste sto kurio programma'); i:= 10; writeln('Kaloume th diadikasia gia na grapsoume i=10 kai Hello world!'); hello; writeln('Xanagurisame sto kurio programma'); readln; end. Τα αποτελέσματα εκτέλεσης του προγράμματος Eimaste sto kurio programma Kaloume th diadikasia gia na grapsoume i=10 kai Hello world! Eimaste sti diadikasia i=10 Hello world! Xanagurisame sto kurio programma

Τι κάνει το παρακάτω πρόγραμμα; program kurio_programma(input, output); var x, y: integer; procedure diadikasia_ipologismwn; begin writeln('Eimaste sti diadikasia'); x:=y+10; y:=x+y; writeln('x=', x, ' y=', y); end; writeln('Eimaste sto kurio programma'); x:= 10; y:= 20; writeln('Kaloume th diadikasia '); diadikasia_ipologismwn; writeln('Xanagurisame sto kurio programma'); readln; end. Τα αποτελέσματα εκτέλεσης του προγράμματος Eimaste sto kurio programma x= 10 y= 20 Kaloume th diadikasia Eimaste sti diadikasia x= 30 y= 50 Xanagurisame sto kurio programma

Τα αποτελέσματα εκτέλεσης του προγράμματος Dwse vathmous mathimatwn 3 7 10 5 Mesos oros = 6.000...0Ε+000 (δηλαδή = 6) program vathmologia(input, output); var i, athroisma, vathmos: integer; mesos: real; procedure mesos_oros; begin athroisma:=0; writeln('Dwse vathmous mathimatwn'); for i:= 1 to 5 do readln(vathmos); athroisma := athroisma+vathmos; end; mesos:= athroisma/5; mesos_oros; writeln('Mesos oros = ', mesos); readln; end.

Τοπικές μεταβλητές (local variables) είναι οι μεταβλητές του υποπρογράμματος. Τις μεταβλητές αυτές δεν τις βλέπει το κύριο πρόγραμμα. Επομένως, οι τιμές των μεταβλητών αυτών αλλάζουν μόνο στο υποπρόγραμμα.

program mesos_oros_vathmologias(input, output); var am: integer; mesos: real; procedure mesos_oros; var i, athroisma, vathmos: integer; begin athroisma:=0; writeln('Dwse vathmous mathimatwn'); for i:= 1 to 5 do readln(vathmos); athroisma := athroisma+vathmos; end; mesos:= athroisma/5; writeln('Grapse AM spoudasth.'); readln(am); writeln('AM=',am); mesos_oros; writeln('Mesos oros = ', mesos); readln; end. Ο σπουδαστής γράφει τον αριθμό μητρώου του (ΑΜ) και μετά βαθμούς πέντε μαθημάτων του. Το πρόγραμμα υπολογίζει το μέσο όρο των μαθημάτων.

program mesos_oros_vathmologia(input, output); var am: integer; mesos: real; procedure mesos_oros; var i, athroisma, vathmos: integer; begin athroisma:=0; writeln('Dwse vathmous mathimatwn'); for i:= 1 to 5 do readln(vathmos); athroisma := athroisma+vathmos; end; mesos:= athroisma/5; writeln('To programma tha stamathsei an dwseis AM=99999.'); writeln('Grapse AM spoudasth.'); readln(am); while am <> 99999 do writeln('AM=',am); mesos_oros; writeln('Mesos oros = ', mesos); readln end. Το πρόγραμμα διαβάζει κάθε φορά αριθμό μητρώο (ΑΜ) σπουδαστή και μετά βαθμούς πέντε μαθημάτων του. Το πρόγραμμα υπολογίζει το μέσο όρο των μαθημάτων. Μετά διαβάζει το επόμενο ΑΜ και συνεχίζει μέχρι να δώσουμε σαν αριθμό μητρώου 99999.

β) Παράμετροι τιμής (value parameters) Το κύριο πρόγραμμα όταν καλεί το υποπρόγραμμα του δίνει τιμές. Το υποπρόγραμμα χρησιμοποιεί τις τιμές για να εκτελέσει κάποιες εργασίες πχ υπολογισμούς, εκτυπώσεις. Το υποπρόγραμμα δεν επιστρέφει τιμές στο πρόγραμμα.

program mesos_oros_vathmologia(input, output); var am: integer; mesos: real; procedure mesos_oros(kwdikos_spoudasth:integer); var i, athroisma, vathmos: integer; begin athroisma:=0; writeln('Dwse vathmous mathimatwn'); for i:= 1 to 5 do readln(vathmos); athroisma := athroisma+vathmos; end; mesos:= athroisma/5; writeln('AM=', kwdikos_spoudasth); writeln('To programma tha stamathsei an dwseis AM=99999.'); writeln('Grapse AM spoudasth.'); readln(am); while am <> 99999 do mesos_oros(am); writeln('Mesos oros = ', mesos); readln end.

γ) Παράμετροι μεταβλητών (variable parameters) Το κύριο πρόγραμμα όταν καλεί το υποπρόγραμμα του δίνει τα ονόματα καθολικών μεταβλητών που ήδη έχουν τιμή. Το υποπρόγραμμα αποθηκεύει τις τιμές που παίρνει σε δικές του τοπικές μεταβλητές για να εκτελέσει κάποιες εργασίες πχ υπολογισμούς, εκτυπώσεις. Το υποπρόγραμμα επιστρέφει τις τιμές που υπολόγισε στο κύριο πρόγραμμα. Διαφορά των περιπτώσεων β) και γ) για την κλήση υποπρογράμματος από το κύριο. Στην περίπτωση κλήσης με τιμές το υποπρόγραμμα τις αξιοποιεί για να κάνει πράξεις χωρίς να επιστρέψει κάτι στο κύριο πρόγραμμα. Στην περίπτωση που καλείται το υποπρόγραμμα και του «περνάμε» μεταβλητές τότε το υποπρόγραμμα μπορεί να χρησιμοποιήσει τις τιμές, να κάνει υπολογισμούς και στη συνέχεια να στείλει τις τιμές που υπολόγισε στο κύριο πρόγραμμα.

program mesos_oros_vathmologia(input, output); var arithmos1, arithmos2, phliko, ypoloipo: integer; procedure ypologismos(arit1, arit2:integer); begin phliko:= arit1 div arit2; ypoloipo:= arit1 mod arit2; end; writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden i atnhtikos to programma tha stamathsei'); readln(arithmos1, arithmos2); while (arithmos1 > 0) and (arithmos2 > 0)do ypologismos(arithmos1, arithmos2); writeln('ypoloipo = ', ypoloipo); writeln('phliko = ', phliko); readln end. Να γράψετε ένα πρόγραμμα που θα διαβάζει ζευγάρια θετικών ακέραιων αριθμών. Το πρόγραμμα θα καλεί μία διαδικασία (procedure) που θα υπολογίζει το υπόλοιπο και το πηλίκο της διαίρεσης των 2 αριθμών. Το πρόγραμμα θα σταματά αν δώσουμε μηδέν ή αρνητικό αριθμό.

Γράψτε πρόγραμμα που θα διαβάζει ζευγάρια δύο αριθμών Γράψτε πρόγραμμα που θα διαβάζει ζευγάρια δύο αριθμών. Το πρόγραμμα θα διαβάζει το ζευγάρι αριθμών και θα «αποθηκεύει» τους δύο αριθμούς του ζευγαριού σε δύο μεταβλητές με όνομα arithmos1, arithmos2. Μετά θα καλεί μία procedure που θα κάνει εναλλαγή των τιμών των μεταβλητών. Στη συνέχεια θα τυπώνει τις τιμές των μεταβλητών στο τετράγωνο. Το πρόγραμμα θα ρωτάει αν θέλουμε να συνεχίσουμε και αν ναι θα συνεχίζει να διαβάζει κ.λπ.   program antallagh(input, output); var arithmos1, arithmos2: integer; ch: char; procedure antallagh_timwn(var arit1, arit2:integer); var temp: integer; begin temp:= arit1; arit1:= arit2; arit2:= temp; arit1:= arit1*arit1; arit2:= arit2*arit2; end; repeat writeln('Dwse 2 akeraious aritmous.'); readln(arithmos1, arithmos2); antallagh_timwn(arithmos1, arithmos2); writeln('arithmos1 = ', arithmos1); writeln('arithmos2 = ', arithmos2); writeln('tha synexiseis; Y/N'); readln(ch) until (ch='N') or (ch= 'n'); readln end.

Συναρτήσεις (functions) Η συνάρτηση είναι ένα πρόγραμμα το οποίο καλείται από το κύριο πρόγραμμα για να κάνει κάποιους υπολογισμούς. Στο τέλος, επιστρέφει μία τιμή στο πρόγραμμα.

Υπολογισμός αθροίσματος ζευγαριών αριθμών program ypologismos_athroismatos_2_thetikwn(input, output); var arit1, arit2, athroisma: integer; function athroisma_akeraiwn(a1, a2: integer): integer; begin athroisma_akeraiwn:= a1+a2; end; writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden i atnhtikos to programma tha stamathsei'); readln(arit1, arit2); while (arit1 > 0) and (arit2 > 0)do athroisma:= athroisma_akeraiwn(arit1, arit2); writeln('athroisma = ', athroisma); readln end.

Υπολογισμός μέσου όρου ζευγαριών αριθμών program ypologismos_mesou_orou_2_thetikwn(input, output); var arit1, arit2: integer; mesos: real; function mesos_oros_akeraiwn(a1, a2: integer): real; begin mesos_oros_akeraiwn:= a1+a2/2; end; writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden i atnhtikos to programma tha stamathsei'); readln(arit1, arit2); while (arit1 > 0) and (arit2 > 0)do mesos:= mesos_oros_akeraiwn(arit1, arit2); writeln('mesos oros = ', mesos); readln end.   Το ίδιο πρόγραμμα μπορεί να καλέσει, μία ή πολλές φορές, μια ή πολλές διαδικασίες ή συναρτήσεις.

program programma_me_function_kai_procedure(input, output); var arit1, arit2, min, max: integer; function vres_max(a1, a2: integer): integer; begin if a1 > a2 then vres_max:=a1 else vres_max:=a2; end; procedure vres_min(a1, a2: integer; var elaxisto: integer); elaxisto:=a2 elaxisto:=a1; writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden i atnhtikos to programma tha stamathsei'); readln(arit1, arit2); min:=0; while (arit1 > 0) and (arit2 > 0)do max:= vres_max(arit1, arit2); vres_min(arit1, arit2, min); writeln('elaxisto = ', min, ' megisto = ', max); readln end.   Να γράψετε ένα πρόγραμμα που θα διαβάζει ζευγάρια θετικών ακεραίων. Στη συνέχεια θα χρησιμοποιεί μία συνάρτηση για να βρεί τον μεγαλύτερο από αυτούς. Μετά θα χρησιμοποιεί μία διαδικασία για να βρεί το μικρότερο από αυτούς.

begin writeln('Dwse 2 akeraious aritmous.'); writeln('An kapoios einai mhden i atnhtikos to programma tha stamathsei'); readln(arit1, arit2); min:=0; max:=0; while (arit1 > 0) and (arit2 > 0)do vres_min_max(arit1, arit2, max, min); end; readln end. program programma_me_function_kai_procedure(input, output); var arit1, arit2, min, max: integer; function vres_max(a1, a2: integer): integer; begin if a1 > a2 then vres_max:=a1 else vres_max:=a2; end; procedure vres_min(a1, a2: integer; var elaxisto: integer); elaxisto:=a2 elaxisto:=a1; procedure vres_min_max(n1, n2, megisto, elax: integer); writeln('vriskesai stin procedure vres_min_max'); megisto:= vres_max(n1, n2); vres_min(n1, n2, elax); writeln('kalesses function & procedure kai sou gyrisan times'); writeln('megisto = ', megisto,' elaxisto = ', elax);

Αναδρομικές διαδικασίες και συναρτήσεις program paradeigma_anadromis(input, output); var a: integer; procedure antistrofi_arithmou(n: integer); begin write(n:3); If n < a then antistrofi_arithmou (n+1); end; repeat writeln('Dwse thetiko akeraio'); writeln('An dwseis mhden i atnhtiko to programma tha stamathsei'); readln(a); until a>=1; antistrofi_arithmou(1); readln end. Dwse thetiko akeraio An dwseis mhden i atnhtiko to programma tha stamathsei 7 1 2 3 4 5 6 7 7 6 5 4 3 2 1

Να δούμε πως εκτελείται ακριβώς η αναδρομική διαδικασία Να δούμε πως εκτελείται ακριβώς η αναδρομική διαδικασία. Έστω ότι θα δώσουμε α=3 και περιμένουμε να δείξει: 123321. Το πρόγραμμα με την εντολή antistrofi_arithmou(1); καλεί την αναδρομική διαδικασία.

program ypologismos_paragontikou(input, output); var n, p: integer; Υπολογισμός Ν!=1*2*3*...Ν  program ypologismos_paragontikou(input, output); var n, p: integer; ch: char; function paragontiko(k: integer): integer; begin If k = 0 then paragontiko:= 1 else paragontiko:= k*paragontiko(k-1); end; repeat writeln('Dwse mh arnhtiko akeraio mikrotero h iso tou 10'); readln(n); until (n >= 0) and (n <= 10); p:= paragontiko(n); writeln(n, '!=', p); writeln('Thes na synexiseis; Y/N'); readln(ch); until (ch='N') or (ch='n'); readln end.

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

program mesos_oros_5_mathimatwn(input, output); Παραδείγματα χρήσης Πινάκων: Να γραφτεί πρόγραμμα που θα διαβάζει τους βαθμούς του σπουδαστή σε πέντε μαθήματα και θα εμφανίζει το μέσο όρο.   program mesos_oros_5_mathimatwn(input, output); var a: array[1..5] of real; k: integer; sum, mesos: real; begin writeln('Dwse vathmous 5 mathimatwn'); sum:=0.0; for k:=1 to 5 do readln(a[k]); sum:= sum+a[k]; end; mesos:= sum/5; writeln('a[', k, ']=', a[k]); writeln('athroisma=', sum, ' mesos oros=', mesos); readln end. Dwse vathmous 5 mathimatwn 1 2 3 4 5 α[1]=1.000000000000000E+000 α[2]=2.000000000000000E+000 α[3]=3.000000000000000E+000 α[4]=4.000000000000000E+000 α[5]=5.000000000000000E+000 αthroisma=1.500000000000000E+001 mesos oros=3.000000000000000E+000

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

Να γραφτεί πρόγραμμα που θα διαβάζει τα αντίστοιχα στοιχεία δύο πινάκων, θα τα προσθέτει και θα βάζει το αποτέλεσμα σε τρίτο πίνακα. Όλοι οι πίνακες είναι μονοδιάστατοι και έχουν πέντε στοιχεία.  program prosthesh_pinakwn(input, output); var a, b, c: array[1..5] of real; k: integer; begin writeln('Dwse stoixeia prwtou pinaka'); for k:=1 to 5 do readln(a[k]); end; writeln('Dwse stoixeia defterou pinaka'); readln(b[k]); writeln('ypologizw ta stoixeia tou tritou pinaka'); c[k]:=a[k]+b[k]; writeln('deixnw ta stoixeia'); writeln('c[', k, ']=', a[k], '+', b[k], '=', c[k]); readln end.

Ερωτήσεις