If you can t make it, you don t know it.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "If you can t make it, you don t know it."

Transcript

1

2 If you can t make it, you don t know it.

3 Γιατί προγραµµατισµό ; Αποµυθοποίηση του υπολογιστή. Γνωριµία µε έναν κατ εξοχήν αναλυτικό τρόπο σκέψης και επίλυσης προβληµάτων. υνατότητα επίλυσης ιδίων προβληµάτων Αντικατάσταση της ερώτησης «υπάρχει έτοιµο πρόγραµµα που να λύνει αυτό το πρόβληµα ;» από την ερώτηση «πως λύνεται αυτό το πρόβληµα ;».

4 Γιατί C ; Με τον τρόπο που θα χρησιµοποιηθεί στο µάθηµα, ουσιαστικά δεν θα είναι C [τα χαρακτηριστικά της γλώσσας που την κάνουν προσφιλή στους προγραµµατιστές (όπως η συµπαγής και περιεκτική έκφραση) δεν θα τονιστούν]. είναι µια απλή γλώσσα προγραµµατισµού µε ελάχιστες ενσωµατωµένες εντολές (αλλά πολλούς τελεστές).

5 Γιατί C ; Με τον τρόπο που θα χρησιµοποιηθεί στο µάθηµα, ουσιαστικά δεν θα είναι C [τα χαρακτηριστικά της γλώσσας που την κάνουν προσφιλή στους προγραµµατιστές (όπως η συµπαγής και περιεκτική έκφραση) δεν θα τονιστούν]. Στο επίπεδο που θα χρησιµοποιηθεί θα είναι µια απλή γλώσσα προγραµµατισµού µε ελάχιστες ενσωµατωµένες εντολές (αλλά πολλούς τελεστές).

6 Γιατί C ; Με τον τρόπο που θα χρησιµοποιηθεί στο µάθηµα, ουσιαστικά δεν θα είναι C [τα χαρακτηριστικά της γλώσσας που την κάνουν προσφιλή στους προγραµµατιστές (όπως η συµπαγής και περιεκτική έκφραση) δεν θα τονιστούν]. Στο επίπεδο που θα χρησιµοποιηθεί θα είναι µια απλή γλώσσα προγραµµατισµού µε ελάχιστες ενσωµατωµένες εντολές (αλλά πολλούς τελεστές). Πόσο απλή ;

7 Γιατί C ; Εντολές Συναρτήσεις εισόδου/εξόδου Τύποι µεταβλητών for while if και if-else printf() scanf() int float char

8 Γιατί C ; Μεταγλωττιστές για C (και µάλιστα δωρεάν) υπάρχουν για το σύνολο των υπολογιστικών συστηµάτων που κατά πάσα πιθανότητα θα συναντήσετε (υπάρχουν δωρεάν µεταγλωττιστές ακόµα και για υπολογιστικά συστήµατα που ουσιαστικά στερούνται λειτουργικού συστήµατος, δείτε για παράδειγµα

9 Τι δεν θα µάθετε για τη C εν θα µάθετε τόσα ώστε να µπορείτε να γράψετε ένα πρόγραµµα 2000 γραµµών (?). εν θα µάθετε τόσα ώστε να µπορείτε να διαβάσετε οποιοδήποτε πρόγραµµα γραµµένο από έµπειρους χρήστες της γλώσσας.

10 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n");

11 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n"); Είναι βλακώδες.

12 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n"); Είναι βλακώδες, αλλά

13 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n"); Επικεφαλίδα προγράµµατος : για όλες µας τις εφαρµογές θα είναι η ίδια : #include <stdio.h> #include <math.h>

14 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n"); Το κυρίως µέρος του προγράµµατος. Η εκτέλεση των εντολών αρχίζει πάντα από τη (συνάρτηση) main() η οποία περιλαµβάνει ο,τι περιέχεται ανάµεσα στο και το

15 Το πρώτο πρόγραµµα σε C #include <stdio.h> main() printf("hello world.\n"); Το καθ αυτό πρόγραµµα που στην συγκεκριµένη περίπτωση περιέχει µόνο µια εντολή [η οποία δεν είναι εντολή (της C) αλλά κλήση µιας συνάρτησης (µε το όνοµα printf) η οποία τυπώνει το όρισµα της (το Hello world) στην καθιερωµένη έξοδο].

16 Τι καταλαβαίνει ένας C υπολογιστής από?

17 Τι καταλαβαίνει ένας C υπολογιστής από? Τίποτα. (ούτε λέξη) Ένα πρόγραµµα σε C είναι για τον υπολογιστή τόσο κατανοητό όσο και ένα που λάβατε, ή ένας κατάλογος για ψώνια από το supermarket.

18 Τι καταλαβαίνει ένας C υπολογιστής από? Ανάµεσα σε εσάς (που γράφετε ένα πρόγραµµα σε µια υψηλού επιπέδου γλώσσα προγραµµατισµού) και το µηχάνηµα (το όποιο µπορεί µόνο να εκτελέσει ένα µικρό σύνολο από απλοϊκές εντολές) παρεµβάλλεται ένα άλλο πρόγραµµα, Ο µεταγλωττιστής της C (C compiler) ο οποίος µε βάση το πρόγραµµα που φτιάξατε, δηµιουργεί ένα καινούργιο αρχείο το οποίο περιέχει το ίδιο πρόγραµµα αλλά γραµµένο σε µια γλώσσα τόσο χαµηλού επιπέδου ώστε να είναι άµεσα εκτελέσιµη από τον υπολογιστή σας.

19 Τι καταλαβαίνει ένας C υπολογιστής από? cc myprogram.c ή gcc myprogram.c

20 Τι καταλαβαίνει ένας C υπολογιστής από? cc myprogram.c ή gcc myprogram.c Με βάση το πρόγραµµα σας (που βρίσκεται στο αρχείο myprogram.c), o compiler (cc ή gcc) δηµιουργεί στον τρέχοντα κατάλογο ένα καινούργιο αρχείο (όχι απλού κειµένου) µε το όνοµα a.out το οποίο µπορείτε να εκτελέσετε µε την εντολή./a.out ή και απλά a.out

21 Τι καταλαβαίνει ένας C υπολογιστής από? ` h 0 & &Φ` ψ &Ζ l ψ $ ψ 0 hί³ `&Φ` ψ ƒ ` $ Z$ z (% 0 h $Ζap&µ ψ % 8%&Ζ ψ $ l ψ $ ψ$ *ΐ$ ƒ D έ µ % θ (% ψ Σ$ $ Θ ΐ $B Ρ$A l αƒά ` ά Τ % ` \$ ) ƒτ `! ψ ' % ψ % ά' $ ψ 4 th$ I u % ά (A Π$ P ƒ ά Π Θ θ ΐ Τ ³ % % ( <$ 8 4$ 0$ 0, ψ $ % d p # ΐ ίµ P' ΐ z % ΐ % ΦΎ p 'ήt 1&χFΤ! % ΐΘ%! + h # 0H* h %$ µ % ` l ψ $ $ %) &1 ΐ ΐ % " * ƒ DΤ$ ά Η R!B C %J ` % ƒ $c ƒ qƒτ H ψ ƒ h!& p h Τ ƒ ` c d L ψ h!& 0H* h Τƒ ` U d P ψ!& d T ψ!& a P hc TP` 0H*& ώ 0H* ƒ b, " *, b 0 "H* < 0 b BP*Q@ b " * ƒ $ 4 ` ( b "H* 8 b " *P y&1 v 8 t ` H d d Pίµ PίΎ pί xί³ `ί Xί² $ D 8 l h 0, 4! *H! ι8! (!$ µ x!$ µ p t $!$!ξ d$ Ένα πρόγραµµα σε C είναι ακατανόητο για τον υπολογιστή. Ένα πρόγραµµα κατανοητό από τον υπολογιστή είναι ακατανόητο για (τους συνηθισµένους) ανθρώπους.

22 C Πως θα µάθετε? Μέσω της επίλυσης πραγµατικών προβληµάτων τα οποία από τη φύση τους να απαιτούν τόσους υπολογισµούς ώστε η χρήση υπολογιστικών µηχανών να είναι αναγκαία.

23 C Πως θα µάθετε? Μέσω της επίλυσης πραγµατικών προβληµάτων τα οποία από τη φύση τους να απαιτούν τόσους υπολογισµούς ώστε η χρήση υπολογιστικών µηχανών να είναι αναγκαία. 1ο πρόβληµα : Η µέθοδος Bradford

24 Η µέθοδος Bradford : Είναι µια φασµατοσκοπική µέθοδος προσδιορισµού πρωτεϊνικής συγκέντρωσης. Στηρίζεται στην αλλαγή του χρώµατος µιας χρωστικής (Coomassie Blue G) όταν υπάρχουν µόρια πρωτείνης στο διάλυµα. Για τη χρήση της µεθόδου κατασκευάζεται πρότυπη καµπύλη µε τη βοήθεια πρωτεϊνικών διαλυµάτων γνωστής συγκέντρωσης : για το κάθε ένα από αυτά µετράµε την οπτική πυκνότητα (στα 595nm).

25 Η µέθοδος Bradford : Για χαµηλές πρωτεϊνικές συγκεντρώσεις τα σηµεία της πρότυπης καµπύλης αναµένεται να ανήκουν σε µια ευθεία γραµµή.

26 Η µέθοδος Bradford : Για χαµηλές πρωτεϊνικές συγκεντρώσεις τα σηµεία της πρότυπης καµπύλης αναµένεται να ανήκουν σε µια ευθεία γραµµή. Αλλά εάν στα αλήθεια κάνετε το πείραµα, είναι σχεδόν βέβαιο ότι τα σηµεία δεν θα ανήκουν σε µια ευθεία.

27 Η µέθοδος Bradford : Για χαµηλές πρωτεϊνικές συγκεντρώσεις τα σηµεία της πρότυπης καµπύλης αναµένεται να ανήκουν σε µια ευθεία γραµµή. Αλλά εάν στα αλήθεια κάνετε το πείραµα, είναι σχεδόν βέβαιο ότι τα σηµεία δεν θα ανήκουν σε µια ευθεία. Σφάλµατα µετρήσεων

28 Η µέθοδος Bradford :

29 Η µέθοδος Bradford : Ποια είναι (πως υπολογίζουµε) την πρότυπη ευθεία ;

30 Η µέθοδος Bradford : Λύση : η µέθοδος των ελαχίστων τετραγώνων (least squares method) Υπέθεσε ότι τα σφάλµατα στις τιµές της πρωτεϊνικής συγκέντρωσης στα πρότυπα διαλύµατα είναι τόσο µικρές ώστε να µπορούν να θεωρηθούν αµελητέες. Υπέθεσε ότι όλες οι µετρούµενες τιµές οπτικής πυκνότητας έχουν παρόµοιες τιµές σφαλµάτων.

31 Η µέθοδος Bradford : Λύση : η µέθοδος των ελαχίστων τετραγώνων (least squares method) Η ευθεία που θέλουµε είναι αυτή για την οποία το άθροισµα των τετραγώνων των διαφορών ανάµεσα στις παρατηρούµενες και υπολογιζόµενες τιµές της οπτικής πυκνότητας των διαλυµάτων ελαχιστοποιείται.

32 Η µέθοδος Bradford : ηλαδή : Έστω µια ευθεία µε εξίσωση y=ax+b όπου το x είναι η πρωτεϊνική συγκέντρωση των πρότυπων διαλυµάτων και y είναι η µετρούµενη οπτική πυκνότητα. Για κάθε τιµή του x µπορούµε να βρούµε την τιµή του y που θα περιµέναµε εάν όντως αυτή η εξίσωση ίσχυε. Συνεπώς για κάθε τέτοια ευθεία, µπορούµε να υπολογίσουµε τις διαφορές ανάµεσα στις παρατηρούµενες και τις υπολογιζόµενες τιµές των y για όλα τα x.

33 Η µέθοδος Bradford :

34 Η µέθοδος Bradford :

35 Η µέθοδος Bradford :

36 Η µέθοδος Bradford :

37 Η µέθοδος Bradford :

38 Η µέθοδος Bradford : In mathematics you don't understand things. You just get used to them. Johann von Neumann

39 Η µέθοδος Bradford : ιάβασε τα δεδοµένα x i, y i (Ν ζεύγη τιµών). Υπολόγισε τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2. Υπολόγισε τα a και b.

40 Η µέθοδος Bradford : ιάβασε τα δεδοµένα x i, y i (Ν ζεύγη τιµών). Υπολόγισε τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2. Υπολόγισε τα a και b. εν κωδικοποιείται.

41 Η µέθοδος Bradford : ιάβασε τα δεδοµένα x i, y i (Ν ζεύγη τιµών). Υπολόγισε τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2. Υπολόγισε τα a και b. εν κωδικοποιείται. Τι σηµαίνει «διάβασε» ; Τι µορφή έχουν τα δεδοµένα (πως τα «διάβασα», που και πως τα τοποθέτησα, πώς να τα ανακτήσω για να τα χρησιµοποιήσω ;).

42 Η µέθοδος Bradford : ιάβασε τα δεδοµένα x i, y i (Ν ζεύγη τιµών). Υπολόγισε τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2. Υπολόγισε τα a και b. εν κωδικοποιείται. Τι σηµαίνει «υπολόγισε το άθροισµα» και, χειρότερα, τι είναι αυτά τα «Σ» ;

43 Η µέθοδος Bradford : ιάβασε τα δεδοµένα x i, y i (Ν ζεύγη τιµών). Υπολόγισε τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2. Υπολόγισε τα a και b. Σχεδόν κωδικοποιείται

44 Υπολόγισε τα a και b : Υποθέστε ότι έχουµε την δυνατότητα να ορίσουµε ονόµατα µεταβλητών (που θα χρησιµοποιήσουµε στο πρόγραµµα µας), οι οποίες να µπορούν να αποθηκεύσουν (µε περιορισµένη ακρίβεια) την τιµή ενός ρητού αριθµού. Υποθέστε ότι έχουµε την δυνατότητα να ορίσουµε ονόµατα µεταβλητών (που θα χρησιµοποιήσουµε στο πρόγραµµα µας), οι οποίες να µπορούν να αποθηκεύσουν (µε ακρίβεια) την τιµή ενός ακέραιου αριθµού.

45 Υπολόγισε τα a και b : Εάν έχουµε ορίσει τέσσερις µεταβλητές ρητού τύπου µε ονόµατα Sx, Sy, Sxy, Sx2, οι οποίες να περιέχουν τις τιµές των αθροισµάτων Σx, Σy, Σxy, και Σx 2, και µια µεταβλητή ακεραίου τύπου (µε το όνοµα points) που να περιέχει το Ν (δηλ. τον αριθµό των σηµείων), τότε το µόνο που µας λείπει είναι να ορίσουµε δυο νέες µεταβλητές (µε ονόµατα a και b) και να τους αναθέσουµε τιµές µε απλές αριθµητικές πράξεις.

46 Υπολόγισε τα a και b : #include <stdio.h> #include <math.h> main() float float a, b; int Sxy, Sx, Sy, Sx2; points; Υπολογισµός των Sxy, Sx, Sy, Sx2 a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx *Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx));

47 Υπολόγισε τα a και b : #include <stdio.h> #include <math.h> main() float float a, b; int Sxy, Sx, Sy, Sx2; points; Υπολογισµός των Sxy, Sx, Sy, Sx2 a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx *Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx));

48 Υπολόγισε τα a και b : #include <stdio.h> #include <math.h> main() float float a, b; int Sxy, Sx, Sy, Sx2; points; Υπολογισµός των Sxy, Sx, Sy, Sx2 a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx *Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx));

49 Υπολόγισε τα αθροίσµατα : Για να µπορέσουµε να υπολογίσουµε τα αθροίσµατα θα πρέπει να έχουµε πρόσβαση στα δεδοµένα (τα Ν ζεύγη x i, y i ). Υποθέστε ότι έχουµε την δυνατότητα να ορίσουµε πίνακες καθορισµένων διαστάσεων (που θα χρησιµοποιήσουµε στο πρόγραµµα µας), οι οποίοι να µπορούν να αποθηκεύσουν (µε περιορισµένη ακρίβεια) τιµές ρητών αριθµών.

50 Υπολόγισε τα αθροίσµατα : #include <stdio.h> #include <math.h> main() int float float float index1; x[1000]; y[1000]; test[100][2]; x[0] = 132.3; x[1] = ; x[999] = ; index1 = 355; y[index1] = ; test[34][1] = ;

51 Υπολόγισε τα αθροίσµατα : #include <stdio.h> #include <math.h> main() int float float float index1; x[1000]; y[1000]; test[100][2]; x[0] = 132.3; x[1] = ; x[999] = ; index1 = 355; y[index1] = ; test[34][1] = ; Προφανώς, αυτός ο τρόπος εισαγωγής δεδοµένων δεν χρησιµοποιείται στην πράξη (γιατί κάθε φορά που θα άλλαζαν τα δεδοµένα θα έπρεπε να ξαναγράψουµε το πρόγραµµα).

52 Υπολόγισε τα αθροίσµατα : Εάν λοιπόν τα δεδοµένα είναι διαθέσιµα µε αυτή τη µορφή, τότε είµαστε σε θέση να γίνουµε πιο σαφής σε σχέση µε το τι θέλουµε να κάνουµε. Για παράδειγµα, ο υπολογισµός του Σx i, θα µπορούσε να περιλαµβάνει τα εξής βήµατα : Ξεκινάµε µε αρχική τιµή αθροίσµατος Sx=0. Για κάθε ζεύγος τιµών που έχουµε (από το πρώτο µέχρι το Ν-οστό) κάνουµε τα εξής : Πρόσθεσε την τιµή του x i (που ανήκει στο i ζεύγος τιµών) στην τρέχουσα τιµή του Sx.

53 Υπολόγισε τα αθροίσµατα : Εάν λοιπόν τα δεδοµένα είναι διαθέσιµα µε αυτή τη µορφή, τότε είµαστε σε θέση να γίνουµε πιο σαφής σε σχέση µε το τι θέλουµε να κάνουµε. Για παράδειγµα, ο υπολογισµός του Σx i, θα µπορούσε να περιλαµβάνει τα εξής βήµατα : Ξεκινάµε µε αρχική τιµή αθροίσµατος Sx=0. Για κάθε ζεύγος τιµών που έχουµε (από το πρώτο µέχρι το Ν-οστό) κάνουµε τα εξής : Πρόσθεσε την τιµή του x i (που ανήκει στο i ζεύγος τιµών) στην τρέχουσα τιµή του Sx.

54 Η εντολή for : for ( i=0 ; i < points ; i=i+1 ) ΕΝΤΟΛΕΣ... ώσε στην µεταβλητή i την τιµή i=0 και εάν i<points άρχισε να εκτελείς τις εντολές που βρίσκονται ανάµεσα στις δυο αγκύλες και. Αφού εκτελεστούν όλες οι εντολές που βρίσκονται µέσα στις αγκύλες, αύξησε την τιµή του i κατά µια µονάδα. Εάν i<points τότε άρχισε να εκτελείς πάλι τις εντολές ανάµεσα στις αγκύλες (χρησιµοποιώντας, βέβαια, την καινούργια τιµή του i). Εάν i>=points τότε συνέχισε µε τις εντολές που βρίσκονται µετά το ζεύγος των αγκυλών.

55 Η εντολή for : for ( i=0 ; i < points ; i++ ) ΕΝΤΟΛΕΣ... ώσε στην µεταβλητή i την τιµή i=0 και εάν i<points άρχισε να εκτελείς τις εντολές που βρίσκονται ανάµεσα στις δυο αγκύλες και. Αφού εκτελεστούν όλες οι εντολές που βρίσκονται µέσα στις αγκύλες, αύξησε την τιµή του i κατά µια µονάδα. Εάν i<points τότε άρχισε να εκτελείς πάλι τις εντολές ανάµεσα στις αγκύλες (χρησιµοποιώντας, βέβαια, την καινούργια τιµή του i). Εάν i>=points τότε συνέχισε µε τις εντολές που βρίσκονται µετά το ζεύγος των αγκυλών.

56 Η εντολή for : float x; for ( x=0.0 ; x < 5.0 ; x=x+1.0 ) ΕΝΤΟΛΕΣ... Όλες οι εντολές που βρίσκονται ανάµεσα στις αγκύλες θα εκτελεστούν πέντε φορές, κάθε φορά µε διαφορετική τιµή της (ρητού τύπου) µεταβλητής x (τιµές του x : 0.0, 1.0, 2.0, 3.0 και 4.0).

57 Η εντολή for : float x; for ( x=0.0 ; x <= 5.0 ; x += 1.0 ) ΕΝΤΟΛΕΣ... Όλες οι εντολές που βρίσκονται ανάµεσα στις αγκύλες θα εκτελεστούν έξι φορές, κάθε φορά µε διαφορετική τιµή της µεταβλητής x (τιµές του x : 0.0, 1.0, 2.0, 3.0, 4.0 και 5.0).

58 Υπολόγισε τα αθροίσµατα : Εάν λοιπόν τα δεδοµένα είναι διαθέσιµα µε αυτή τη µορφή, τότε είµαστε σε θέση να γίνουµε πιο σαφής σε σχέση µε το τι θέλουµε να κάνουµε. Για παράδειγµα, ο υπολογισµός του Σx i, θα µπορούσε να περιλαµβάνει τα εξής βήµατα : Ξεκινάµε µε αρχική τιµή αθροίσµατος Sx=0. Για κάθε ζεύγος τιµών που έχουµε (από το πρώτο µέχρι το Ν-οστό) κάνουµε τα εξής : Πρόσθεσε την τιµή του x i (που ανήκει στο i ζεύγος τιµών) στην τρέχουσα τιµή του Sx.

59 Υπολόγισε τα αθροίσµατα : float float int Sx; x[1000]; points; int i; Sx = 0.0; for ( i=0 ; i < points ; i = i + 1 ) Sx = Sx + x[i];

60 Υπολόγισε τα αθροίσµατα : float float int Sx; x[1000]; points; int i; Sx = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i];

61 Υπολόγισε τα αθροίσµατα : float float int Sx; x[1000]; points; int i; Sx = 0.0; for ( i=0 ; i < points ; i++ ) Sx += x[i];

62 Υπολόγισε τα αθροίσµατα : float x[5000]; float y[5000]; int points; float Sxy, Sx, Sy, Sx2; int i; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i];

63 Πόσο κοντά είµαστε ; Έχει πολύ ακόµα ;

64 #include <stdio.h> #include <math.h> main() float float int float float float a, b; int i; x[5000]; y[5000]; points; val1, val2; Sxy, Sx, Sy, Sx2; points = 0; while ( scanf("%f %f", &val1, &val2) == 2 ) x[points] = val1; y[points] = val2; points++; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx * Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx)); printf(" %f %f\n", a, b );

65 #include <stdio.h> #include <math.h> main() float float int float float float a, b; int i; x[5000]; y[5000]; points; val1, val2; Sxy, Sx, Sy, Sx2; points = 0; while ( scanf("%f %f", &val1, &val2) == 2 ) x[points] = val1; y[points] = val2; points++; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx * Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx)); printf(" %f %f\n", a, b );

66 Μιλώντας στον κόσµο : η συνάρτηση printf() Η printf() παρέχει την δυνατότητα σε ένα πρόγραµµα να τυπώσει µια ακολουθία χαρακτήρων στην καθιερωµένη έξοδο (standard output), η οποία απουσία επανακαθορισµού είναι το τερµατικό (ενώ µέσω των > και µπορεί είναι ένα αρχείο ή η είσοδος ενός άλλου προγράµµατος). Το πλήρες συντακτικό της printf() είναι διαθέσιµο µέσω της εντολής (από το unix shell) man printf. Εµείς θα χρησιµοποιήσουµε µόνο ένα υποσύνολο αυτού.

67 Μιλώντας στον κόσµο : η συνάρτηση printf() printf(" Hello world\n"); Hello world int a; a = 3123; printf("the value of a is %d \n", a ); The value of a is 3123

68 Μιλώντας στον κόσµο : η συνάρτηση printf() float x; x = ; printf("the value of x is %f \n", x ); The value of x is

69 Μιλώντας στον κόσµο : η συνάρτηση printf() int r; float x; x = 34.05; r = 95; printf("the values are %d and %f \n", r, x ); The values are 95 and 34.05

70 Μιλώντας στον κόσµο : η συνάρτηση printf() printf("the values are %d and %f \n", r, x ); printf("the values are %d and %f \n", r, x ); printf("the values are %d and %f \n", r, x );

71 Υπολογισµός αθροισµάτων float x[5000]; float y[5000]; int points; float Sxy, Sx, Sy, Sx2; int i; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i];

72 αλλά τι γίνεται εάν έχουµε µόνο ένα σηµείο ; float x[5000]; float y[5000]; int points; float Sxy, Sx, Sy, Sx2; int i; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i];

73 Η εντολή if : if ( points < 2 ) ΕΝΤΟΛΕΣ... Εάν η τιµή της µεταβλητής points είναι µικρότερη από το 2 τότε άρχισε να εκτελείς τις εντολές ανάµεσα στις αγκύλες που ακολουθούν την εντολή if. Αφού τις εκτελέσεις, συνέχισε κανονικά µε την εκτέλεση του υπόλοιπου προγράµµατος. Εάν η τιµή της µεταβλητής points είναι µεγαλύτερη ή ίση του 2, αγνόησε (µην εκτελείς) όσες εντολές είναι ανάµεσα στις αγκύλες που ακολουθούν την εντολή if.

74 Το ζεύγος εντολών if-else : if ( points < 2 ) else ΕΝΤΟΛΕΣ... ΕΝΤΟΛΕΣ... Εάν η τιµή της µεταβλητής points είναι µικρότερη από το 2 τότε άρχισε να εκτελείς τις εντολές ανάµεσα στις αγκύλες που ακολουθούν την εντολή if. Αφού τις εκτελέσεις, αγνόησε (µην εκτελείς) την εντολή else και όλες τις εντολές που περιέχονται ανάµεσα στο ζεύγος των αγκυλών που την ακολουθούν.

75 Το ζεύγος εντολών if-else : if ( points < 2 ) else ΕΝΤΟΛΕΣ... ΕΝΤΟΛΕΣ... Εάν η τιµή της µεταβλητής points είναι µεγαλύτερη ή ίση του 2, αγνόησε (µην εκτελείς) όσες εντολές είναι ανάµεσα στις αγκύλες που ακολουθούν την εντολή if αλλά εκτέλεσε όλες τις εντολές που περιέχονται ανάµεσα στο ζεύγος των αγκυλών που ακολουθούν την εντολή else.

76 αλλά τι γίνεται εάν έχουµε µόνο ένα σηµείο ; float x[5000]; float y[5000]; int points; float Sxy, Sx, Sy, Sx2; int i; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i];

77 αλλά τι γίνεται εάν έχουµε µόνο ένα σηµείο ; float x[5000]; float y[5000]; int points; float Sxy, Sx, Sy, Sx2; int i; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; if ( points < 2) printf( Nonsense\n ); exit( 1 );

78

79 Που είµαστε ; Τύποι : Εντολές : Συναρτήσεις : int float if - else for printf()

80 Που είµαστε ; Τύποι : Εντολές : Συναρτήσεις : int float if - else for printf()

81 Η εντολή for : for ( i=0 ; i < points ; i=i+1 ) ΕΝΤΟΛΕΣ... for ( i=0 ; i < points ; i++ ) printf( The value of i is %d\n, i);

82 Η εντολή for : float x; for ( x=0.0 ; x <= 5.0 ; x += 1.0 ) ΕΝΤΟΛΕΣ...

83 Ένθετες for : float x; int d; for ( x=0.0 ; x <= 5.0 ; x += 1.0 ) for ( d=0 ; d < 10 ; d++ ) ΕΝΤΟΛΕΣ...

84 Ένθετες for : float x; int d; for ( x=0.0 ; x <= 5.0 ; x += 1.0 ) for ( d=0 ; d < 10 ; d++ ) printf( %f %d\n, x, d );

85 Ένθετες for : int x; int d; for ( x=0 ; x < 3 ; x++ ) for ( d=x ; d < 3 ; d++ ) printf( %d %d\n, x, d );

86 Ένθετες for : #include <stdio.h> #include <math.h> main() float x; float y; for ( x=0.0 ; x <= 5.0 ; x += 0.10 ) for ( y=0.0 ; y <= 3.14 ; y += ) printf( %f %f %f\n, x, y, sqrt(x)*sin(y) );

87 Ένθετες for : #include <stdio.h> #include <math.h> main() float x; float y; for ( x=5.0 ; x >= 0.0 ; x -= 0.10 ) for ( y=0.0 ; y <= 3.14 ; y += ) printf( %f %f %f\n, x, y, sqrt(x)*sin(y) );

88 Η συνάρτηση printf() : printf(" Hello world\n"); Hello world int a; a = 3123; printf("the value of a is %d \n", a ); The value of a is 3123

89 Η συνάρτηση printf() : float x; x = ; printf("the value of x is %f \n", x ); The value of x is

90 Η συνάρτηση printf() : int r; float x; x = 34.05; r = 95; printf("the values are %d and %f \n", r, x ); The values are 95 and 34.05

91 Η εντολή if : if ( points < 2 ) ΕΝΤΟΛΕΣ...

92 Το ζεύγος εντολών if-else : if ( points < 2 ) ΕΝΤΟΛΕΣ... else ΕΝΤΟΛΕΣ...

93 Συνδεδεµένες if-else : ΕΑΝ η τιµή της µεταβλητής i είναι ίση µε 1 : τύπωσε Η τιµή της i είναι 1, ΑΛΛΙΩΣ, ΕΑΝ η τιµή της µεταβλητής i είναι ίση µε 2 : τύπωσε Η τιµή της i είναι 2, ΑΛΛΙΩΣ, ΕΑΝ η τιµή της µεταβλητής i είναι ίση µε 3 : τύπωσε Η τιµή της i είναι 3, ΑΛΛΙΩΣ, ΕΑΝ η τιµή της µεταβλητής i είναι µικρότερη από 1 : τύπωσε Η τιµή της i είναι < 1, ΑΛΛΙΩΣ, τύπωσε Η τιµή της i είναι µεγαλύτερη από 3

94 Συνδεδεµένες if-else : if ( i == 1 ) printf( The value of i is 1\n ); else if ( i == 2 ) printf( The value of i is 2\n ); else if ( i == 3 ) printf( The value of i is 3\n ); else if ( i < 1 ) printf( The value of i is less than 1\n ); else printf( The value of i is greater than 3\n );

95 Συνδεδεµένες if-else : if ( i == 1 ) printf( The value of i is 1\n ); else if ( i == 2 ) printf( The value of i is 2\n ); else if ( i == 3 ) printf( The value of i is 3\n ); else if ( i < 1 ) printf( The value of i is less than 1\n ); else printf( The value of i is greater than 3\n ); Πολυκλαδικές αποφάσεις.

96 Συνδεδεµένες if-else και πώς να γίνουν όλα λάθος : if ( a > b ) if ( b > c ) max = a; else if ( b > c ) max = b; else max = c;

97 Συνδεδεµένες if-else και πώς να γίνουν όλα λάθος : if ( a > b ) else if ( b > c ) max = a; if ( b > c ) else max = b; max = c; Απουσία αγκυλών, ένα else συνδέεται µε την πλησιέστερη εντολή if (από αυτές που προηγούνται).

98 Συνδεδεµένες if-else και πώς να γίνουν όλα λάθος : if ( a > b ) else if ( b > c ) max = a; if ( b > c ) max = b; else max = c;

99 Συνδεδεµένες if-else και πώς να γίνουν όλα λάθος : if ( a > b ) if ( b > c ) max = a; else if ( b > c ) max = b; else Χρησιµοποιείτε αγκύλες : Κάνουν το πρόγραµµα (και τις προθέσεις σας) πολύ πιο ευανάγνωστες. max = c;

100 if και λογικοί τελεστές : Εάν :a > b και b > c τότε if ( a > b && b > c ) ΕΝΤΟΛΕΣ... Εάν : a > b ή a > c τότε if ( a > b a > c ) ΕΝΤΟΛΕΣ...

101 if και λογικοί τελεστές : Εάν :(a ίσο µε b) και b > c τότε if ( (a == b) && (b > c) ) ΕΝΤΟΛΕΣ... Εάν : a > b ή (a διάφορο του c) τότε... if ( (a > b) (a!= c) ) ΕΝΤΟΛΕΣ...

102 if και λογικοί τελεστές : Εάν το : (a ίσο µε b) και b > c είναι ψευδές τότε if (!(a == b && b > c) ) ΕΝΤΟΛΕΣ...

103 if και λογικοί τελεστές : Εάν το : (a ίσο µε b) και b > c είναι ψευδές τότε if (!( (a == b) && (b > c) ) ) ΕΝΤΟΛΕΣ...

104 Επανάληψη τελεστών : d++; Αύξησε κατά µια µονάδα την τιµή της µεταβλητής d f += 5.0; Αύξησε κατά 5.0 την τιµή της µεταβλητής f f += q; f -= q; f /= q; f *= q; && Αύξησε την τιµή της µεταβλητής f κατά q Μείωσε την τιµή της µεταβλητής f κατά q Η καινούργια τιµή της f είναι η παλιά τιµή της f διαιρεµένη µε το q Η καινούργια τιµή της f είναι η παλιά τιµή της f πολλαπλασιασµένη µε το q Λογικό ΚΑΙ (AND) Λογικό Ή (OR)! Λογικό OXI (ΝΟΤ) == Έλεγχος ισότητας (ενώ το απλό = για ανάθεση τιµής)!= Έλεγχος ανισότητας

105 #include <stdio.h> #include <math.h> main() float float int float float float a, b; int i; x[5000]; y[5000]; points; val1, val2; Sxy, Sx, Sy, Sx2; Τι µας είχε µείνει από το πρόγραµµα για τη µέθοδο Bradford? points = 0; while ( scanf("%f %f", &val1, &val2) == 2 ) x[points] = val1; y[points] = val2; points++; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx * Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx)); printf(" %f %f\n", a, b );

106 Η εντολή while : while ( i <= 10 ) ΕΝΤΟΛΕΣ... Εάν η τιµή της µεταβλητής i είναι µεγαλύτερη του10, αγνόησε (µην εκτελείς) όσες εντολές είναι ανάµεσα στις αγκύλες που ακολουθούν την εντολή while. Αλλιώς Όσο η τιµή της µεταβλητής i είναι µικρότερη ή ίση του 10, συνέχισε να εκτελείς επαναληπτικά τις εντολές που περιέχονται ανάµεσα στο ζεύγος των αγκυλών (µέχρις ότου η συνθήκη i <= 10 να είναι ψευδής).

107 Η εντολή while : #include <stdio.h> main() int i; i = 0; while ( i <= 10 ) printf( The value of i is %d\n, i ); i++;

108 Η συνάρτηση scanf() : Είναι το ανάλογο της printf() αλλά αντί να µετατρέπει και να τυπώνει στην καθιερωµένη έξοδο, διαβάζει και µετατρέπει από την καθιερωµένη είσοδο.

109 Η συνάρτηση scanf() : scanf( %f %f %d, &x, &y, &i); ιάβασε χαρακτήρες από την καθιερωµένη είσοδο και µετέτρεψε την ακολουθία χαρακτήρων σε τρεις αριθµούς : τους δυο πρώτους σε τύπο float, τον τελευταίο σε τύπο int. Τοποθέτησε τις τιµές αυτές στις µεταβλητές µε τα ονόµατα x, y και i (οι οποίες θα πρέπει να είχαν δηλωθεί ως float, float και int).

110 Η συνάρτηση scanf() : scanf( %f %f %d, &x, &y, &i); x y i

111 Η συνάρτηση scanf() : Η scanf() επιστρέφει (στο πρόγραµµα που την κάλεσε) µια τιµή η οποία είναι ίση µε τον αριθµό των στοιχείων εισόδου που µετέτρεψε και αποθήκευσε µε επιτυχία ή µια ειδική τιµή (που συµβολίζεται µε το EOF) εάν έφτασε στο τέλος του αρχείου (End Of File).

112 Η συνάρτηση scanf() : Η scanf() επιστρέφει (στο πρόγραµµα που την κάλεσε) µια τιµή η οποία είναι ίση µε τον αριθµό των στοιχείων εισόδου που µετέτρεψε και αποθήκευσε µε επιτυχία ή µια ειδική τιµή (που συµβολίζεται µε το EOF) εάν έφτασε στο τέλος του αρχείου (End Of File). Και εάν δεν είναι αρχείο αλλά το τερµατικό ; <CONTROL-D>

113 Η συνάρτηση scanf() : scanf( %f %f %d, &x, &y, &i); Η παρουσία των «&» πριν από τα ονόµατα των µεταβλητών στις οποίες θέλουµε να αναθέσουµε τιµές είναι αναγκαία (και η απουσία τους, ένα από τα συχνότερα συντακτικά σφάλµατα).

114 Η συνάρτηση scanf() : #include <stdio.h> #include <math.h> main() float float int sum; val; how_many; how_many = 0; sum = 0.0; while( scanf("%f", &val)!= EOF ) sum += val; how_many++; printf("the average value is %f\n", (sum / how_many));

115 Η συνάρτηση scanf() : #include <stdio.h> #include <math.h> main() float float int how_many = 0; sum = 0.0; sum; val; how_many; while( scanf("%f", &val)!= EOF ) sum += val; how_many++; Με αυτή τη µορφή της while επιτυγχάνονται ταυτόχρονα 1. Η κλήση της scanf() για την ανάγνωση του επόµενου αριθµού. 2. Ο έλεγχος της επιστρεφόµενης [από την scanf()] τιµής. printf("the average value is %f\n", (sum / how_many));

116 Η συνάρτηση scanf() : how_many = 0; sum = 0.0; from_scanf = scanf("%f", &val); while( from_scanf!= EOF ) sum += val; how_many++; from_scanf = scanf("%f", &val);

117 Η συνάρτηση scanf() : #include <stdio.h> #include <math.h> main() float sum; float val; int how_many; how_many = 0; sum = 0.0; while( scanf("%f", &val) == 1 ) sum += val; how_many++; printf("the average value is %f\n", (sum / how_many));

118 Η συνάρτηση scanf() : #include <stdio.h> #include <math.h> main() float sum; float val; int how_many; Σηµειώστε ότι το πρόγραµµα σε αυτή τη µορφή είναι καθ όλα έτοιµο για µια παταγώδη αποτυχία εάν η είσοδος δεν µας δώσει ούτε ένα αριθµό how_many = 0; sum = 0.0; while( scanf("%f", &val) == 1 ) sum += val; how_many++; printf("the average value is %f\n", (sum / how_many));

119 Το πρόγραµµα για τη µέθοδο Bradford

120 #include <stdio.h> #include <math.h> main() float float int float float float a, b; int i; x[5000]; y[5000]; points; val1, val2; Sxy, Sx, Sy, Sx2; points = 0; while ( scanf("%f %f", &val1, &val2) == 2 ) x[points] = val1; y[points] = val2; points++; Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx * Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx)); printf(" %f %f\n", a, b );

121 Επικεφαλίδα και δηλώσεις : #include <stdio.h> #include <math.h> main() float float int float float float a, b; int i; x[5000]; y[5000]; points; val1, val2; Sxy, Sx, Sy, Sx2;

122 Εισαγωγή και αποθήκευση των δεδοµένων : points = 0; while ( scanf("%f %f", &val1, &val2) == 2 ) x[points] = val1; y[points] = val2; points++;

123 Επεξεργασία και έξοδος : Sxy = 0.0; Sx = 0.0; Sy = 0.0; Sx2 = 0.0; for ( i=0 ; i < points ; i++ ) Sx = Sx + x[i]; Sy = Sy + y[i]; Sx2 += x[i]*x[i]; Sxy += x[i]*y[i]; a = (points * Sxy - Sx * Sy) / (points * Sx2 - Sx * Sx); b = ((Sy * Sx2)-(Sxy * Sx)) / ((points * Sx2)-(Sx * Sx)); printf(" %f %f\n", a, b );

124 Άλλα παραδείγµατα

125 ιάβασε τους συντελεστές a και b της εξίσωσης f(x)=ax+b και υπολόγισε και τύπωσε την τιµή της f(x) για όλες τις τιµές του x από 0.0 έως

126 #include <stdio.h> #include <math.h> main() float a, b; float x, y; int value_from_scanf; value_from_scanf = scanf("%f %f", &a, &b); if ( value_from_scanf!=2 ) printf("error. Expecting two numbers...\n"); exit(1); for ( x=0.0 ; x < ; x += 1.0 ) y = a*x + b; printf(" %f %f\n", x, y);

127 #include <stdio.h> #include <math.h> main() float a, b; float x; if ( scanf("%f %f", &a, &b)!=2 ) printf("error. Expecting two numbers...\n"); exit(1); for ( x=0.0 ; x < ; x += 1.0 ) printf(" %+15.5f %+15.5f\n", x, (a*x+b));

128 #include <stdio.h> #include <math.h> main() value_from_scanf = scanf("%f %f", &a, &b); if ( value_from_scanf!=2 ) float a, b; float x; if ( scanf("%f %f", &a, &b)!=2 ) printf("error. Expecting two numbers...\n"); exit(1); for ( x=0.0 ; x < ; x += 1.0 ) printf(" %+15.5f %+15.5f\n", x, (a*x+b));

129 #include <stdio.h> #include <math.h> main() float a, b; float x; if ( scanf("%f %f", &a, &b)!=2 ) printf("error. Expecting two numbers...\n"); exit(1); y = a*x + b; printf(" %f %f\n", x, y); for ( x=0.0 ; x < ; x += 1.0 ) printf(" %+15.5f %+15.5f\n", x, (a*x+b));

130 #include <stdio.h> #include <math.h> main() float a, b; float x; if ( scanf("%f %f", &a, &b)!=2 ) printf("error. Expecting two numbers...\n"); exit(1); for ( x=0.0 ; x < ; x += 1.0 ) printf(" %+15.5f %+15.5f\n", x, (a*x+b)); Τι είναι αυτό το ανάµεσα στο % και το f ;

131 printf(" %f %f\n", x, y);

132 printf(" %+15.5f %+15.5f\n", x, y);

133 printf(" %+15.5f %+15.5f\n", x, y);

134 ιάβασε τους συντελεστές µιας εξίσωσης 5ου βαθµού και υπολόγισε και τύπωσε την τιµή της f(x) για όλες τις τιµές του x από έως +50.0

135 #include <stdio.h> #include <math.h> main() float a, b, c, d, e, f; float x, y; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); for ( x= ; x <= 50.0 ; x += 0.50 ) y = a*x*x*x*x*x + b*x*x*x*x + c*x*x*x + d*x*x + e*x +f; printf(" %+15.5f %+15.5f\n", x, y);

136 #include <stdio.h> #include <math.h> main() float a, b, c, d, e, f; float x, y; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); for ( x= ; x <= 50.0 ; x += 0.50 ) y = a*x*x*x*x*x + b*x*x*x*x + c*x*x*x + d*x*x + e*x +f; printf(" %+15.5f %+15.5f\n", x, y);

137 #include <stdio.h> #include <math.h> #define LIMIT 50.0 #define STEP 0.50 main() float a, b, c, d, e, f; float x, y; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); for ( x= -LIMIT ; x <= LIMIT ; x += STEP ) y = a*x*x*x*x*x + b*x*x*x*x + c*x*x*x + d*x*x + e*x +f; printf(" %+15.5f %+15.5f\n", x, y);

138 #include <stdio.h> #include <math.h> #define LIMIT 50.0 #define STEP 0.50 main() float a, b, c, d, e, f; float x, y; Τα LIMIT και STEP δεν είναι µεταβλητές του προγράµµατος. Είναι συµβολικά ονόµατα για αριθµητικές σταθερές που χρησιµοποιούνται από το πρόγραµµα. printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); for ( x= -LIMIT ; x <= LIMIT ; x += STEP ) y = a*x*x*x*x*x + b*x*x*x*x + c*x*x*x + d*x*x + e*x +f; printf(" %+15.5f %+15.5f\n", x, y);

139 Που είµαστε ; Τύποι : Εντολές : Συναρτήσεις : int float if - else for while printf() scanf()

140 Τι µας λείπει ; Εντολές Συναρτήσεις εισόδου/εξόδου Τύποι µεταβλητών for while if και if-else printf() scanf() int float char

141 Aλλά πριν από αυτό

142 Συναρτήσεις : Οι συναρτήσεις είναι (για τα πλαίσια αυτού του µαθήµατος) αυτόνοµα και αυτοδύναµα κοµµάτια κώδικα τα οποία εκτελούν µια καλά καθορισµένη διαδικασία (υπολογισµό). Για την ενεργοποίηση των συναρτήσεων (δηλ. για την εκτέλεση των υπολογισµών που κωδικοποιούν) αρκεί η αναφορά του ονόµατος τους µαζί µε τις τυχόν παραµέτρους που απαιτούνται.

143 Συναρτήσεις : Παραδείγµατα συναρτήσεων που έχετε ήδη συναντήσει : printf() : sqrt() : scanf() : Μορφοποίηση και εκτύπωση στην καθιερωµένη έξοδο. Υπολογισµός της τετραγωνικής ρίζας. Ανάγνωση και µετατροπή της καθιερωµένης εισόδου.

144 Παράδειγµα για την χρήση συναρτήσεων : ιάβασε τους συντελεστές µιας εξίσωσης 5ου βαθµού και για κάθε τιµή x που ορίζει ο χρήστης υπολόγισε και τύπωσε την τιµή της f(x).

145 Enter values for a,b,c,d,e,f : Now enter values for x. Finish with <CTRL-D> x=1 y= x=1.1 y= x=0 y= x=12.2 y=

146 #include <stdio.h> #include <math.h> float poly_5th(); main() float a, b, c, d, e, f; float x; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

147 #include <stdio.h> #include <math.h> float main() poly_5th(); float a, b, c, d, e, f; float x; ήλωση του ονόµατος της συνάρτησης και του τύπου (float) της τιµής που επιστρέφει. printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

148 #include <stdio.h> #include <math.h> float main() poly_5th(); float a, b, c, d, e, f; float x; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; Κλήση της συνάρτησης µε παραµέτρους τις τιµές των x, a, b, c, d, e, f. result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

149 #include <stdio.h> #include <math.h> float poly_5th(); main() float a, b, c, d, e, f; float x; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; Αυτή καθ αυτή η συνάρτηση result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

150 #include <stdio.h> #include <math.h> float main() poly_5th(); float a, b, c, d, e, f; float x; η οποία είναι εκτός των ορίων της main() printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

151 Το όνοµα της συνάρτησης float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

152 Οτύπος της αριθµητικής τιµής που επιστρέφει. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

153 Τα ονόµατα των µεταβλητών µέσω των οποίων η συνάρτηση θα µπορεί να χρησιµοποιεί τις τιµές που της δόθηκαν [κατά την κλήση της από το main()]. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

154 Τα ονόµατα των µεταβλητών µέσω των οποίων η συνάρτηση θα µπορεί να χρησιµοποιεί τις τιµές που της δόθηκαν [κατά την κλήση της από το main()]. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result ); Οι µεταβλητές αυτές είναι γνωστές µόνο στη συνάρτηση (και όχι στο υπόλοιπο πρόγραµµα ή άλλες συναρτήσεις). Τα ίδια ονόµατα µεταβλητών µπορούν να χρησιµοποιούνται και αλλού χωρίς να υπάρχει µεταξύ τους αλληλεπίδραση.

155 Τα ονόµατα των µεταβλητών µέσω των οποίων η συνάρτηση θα µπορεί να χρησιµοποιεί τις τιµές που της δόθηκαν [κατά την κλήση της από το main()]. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result ); Αυτό που δίδεται στη συνάρτηση (κατά την κλήση της) είναι ένα αντίγραφο των τιµών των µεταβλητών και όχι οι µεταβλητές αυτές καθ αυτές. Για αυτό το λόγο, η συνάρτηση δεν µπορεί να τροποποιήσει τις τιµές των µεταβλητών που χρησιµοποιεί το τµήµα του προγράµµατος που την κάλεσε.

156 Τα ονόµατα των µεταβλητών µέσω των οποίων η συνάρτηση θα µπορεί να χρησιµοποιεί τις τιµές που της δόθηκαν [κατά την κλήση της από το main()]. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result ); Αυτό που δίδεται στη συνάρτηση (κατά την κλήση της) είναι ένα αντίγραφο των τιµών των µεταβλητών και όχι οι µεταβλητές αυτές καθ αυτές. Για αυτό το λόγο, η συνάρτηση δεν µπορεί να τροποποιήσει τις τιµές των µεταβλητών που χρησιµοποιεί το τµήµα του προγράµµατος που την κάλεσε. ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ scanf() KAI TO NOHMA ΤΩΝ «&»

157 Οι τύποι των τιµών των µεταβλητών που δόθηκαν στη συνάρτηση κατά την κλήση της. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

158 ήλωση µιας µεταβλητής (µε το όνοµα result), τύπου κινητής υποδιαστολής. Και αυτή η δήλωση έχει µόνο τοπική εµβέλεια (υφίσταται µόνο για αυτή τη συνάρτηση). float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

159 Ανάθεση τιµής στη µεταβλητή result χρησιµοποιώντας τις τιµές των µεταβλητών που δόθηκαν στη συνάρτηση. float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

160 float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result ); Τέλος της κλήσης της συνάρτησης. Η επιστρεφόµενη τιµή είναι ίση µε την τιµή της µεταβλητής result.

161 #include <stdio.h> #include <math.h> float poly_5th(); main() float a, b, c, d, e, f; float x; Μπορούµε να κάνουµε το πρόγραµµα πιο συµπαγές ; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; float result; result = A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F; return( result );

162 #include <stdio.h> #include <math.h> float poly_5th(); main() float a, b, c, d, e, f; float x; printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\nx=", poly_5th(x,a,b,c,d,e,f) ); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; return( A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F);

163 #include <stdio.h> #include <math.h> float main() poly_5th(); float a, b, c, d, e, f; float x; printf("y=%17.4f\n", poly_5th(x,a,b,c,d,e,f) ); printf("x="); printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\nx=", poly_5th(x,a,b,c,d,e,f) ); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; return( A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F);

164 #include <stdio.h> #include <math.h> float main() poly_5th(); float a, b, c, d, e, f; float x; float result; result = A*x*x*x*x*x +B*x*x*x*x +C*x*x*x +D*x*x +E*x +F; return( result ); printf("enter values for a,b,c,d,e,f : "); if ( scanf("%f %f %f %f %f %f", &a, &b, &c, &d, &e, &f)!=6 ) printf("error. Expecting six numbers...\n"); exit(1); printf("now enter values for x. Finish with <CTRL-D>\n"); printf("x="); while( scanf("%f", &x) == 1 ) printf("y=%17.4f\nx=", poly_5th(x,a,b,c,d,e,f) ); float poly_5th( x, A, B, C, D, E, F) float x, A, B, C, D, E, F; return( A*x*x*x*x*x + B*x*x*x*x + C*x*x*x + D*x*x + E*x +F);

165 Τι µας λείπει ; Εντολές Συναρτήσεις εισόδου/εξόδου Τύποι µεταβλητών for while if και if-else printf() scanf() int float char

166

167 Τι µας λείπει ; Εντολές Συναρτήσεις εισόδου/εξόδου Τύποι µεταβλητών for while if και if-else printf() scanf() int float char

168 Τι καταλαβαίνει ένας υπολογιστής από χαρακτήρες; Τίποτα. (ούτε γράµµα)

169 εν καταλαβαίνει C, εν καταλαβαίνει χαρακτήρες, Τι (επιτέλους) καταλαβαίνει ; Αριθµούς.

170 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us 32 sp 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z ~ 127 del ASCII (American Standard Code for Information Interchange)

171 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us 32 sp 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z ~ 127 del ASCII (American Standard Code for Information Interchange)

172 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς 0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel 8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si 16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb 24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us 32 sp 33! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * , / : 59 ; 60 < 61 = 62 > 63? 65 A 66 B 67 C 68 D 69 E 70 F 71 G 72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z ~ 127 del ASCII (American Standard Code for Information Interchange)

173 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς Οι κώδικες που καθορίζουν την αντιστοιχία ανάµεσα στους χαρακτήρες µίας (φυσικής) γλώσσας και τους αριθµούς (που χρησιµοποιούνται από τους υπολογιστές για την αντιπροσώπευση των χαρακτήρων) είναι γνωστοί ως (character) encoding sets. Ο κώδικας ASCII είναι από τους ευρύτερα διαδεδοµένους αλλά καλύπτει τους χαρακτήρες που χρησιµοποιούνται από ένα µικρό µόνο σύνολο φυσικών γλωσσών (Αγγλικά, Ινδονησιακά, Σουαχίλη, κλπ). Άλλα encodings περιλαµβάνονται στα διάφορα ISO-8859, όπως το ISO που καλύπτει και την Ελληνική, ή το ISO που καλύπτει την Κελτική, κοκ.

174 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς Αυτή η ισοδυναµία χαρακτήρων και αριθµών (δηλαδή το encoding) λύνει µόνο ένα µικρό τµήµα του προβλήµατος της χρήσης χαρακτήρων από τον υπολογιστή. Για παράδειγµα, η απλή πληκτρολόγηση ενός χαρακτήρα και η εµφάνιση του στο τερµατικό σας περιλαµβάνει : Ανίχνευση του πλήκτρου που πιέστηκε. Αντιστοίχηση του πλήκτρου αυτού (µε βάση το encoding και τη γνώση του τύπου του πληκτρολογίου) στον αριθµητικό κωδικό κάποιου χαρακτήρα. Για παράδειγµα, το πλήκτρο v, θα πρέπει στα Αγγλικά (ISO ) να παράγει το χαρακτήρα «v» (µε κωδικό 118), ενώ στα Ελληνικά (ISO ) θα πρέπει να παράγει το «ω» (µε κωδικό 249).

175 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς Μετατροπή του κωδικού του χαρακτήρα (και µε βάση την εκάστοτε χρησιµοποιούµενη γραµµατοσειρά) σε µια γραφική παράσταση της µορφής του χαρακτήρα, η οποία είναι και αυτό που βλέπετε τελικά στην οθόνη του τερµατικού σας.

176 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς Μετατροπή του κωδικού του χαρακτήρα (και µε βάση την εκάστοτε χρησιµοποιούµενη γραµµατοσειρά) σε µια γραφική παράσταση της µορφής του χαρακτήρα, η οποία είναι και αυτό που βλέπετε τελικά στην οθόνη του τερµατικού σας. π.χ. Αναπαράσταση του αριθµού 1 σε ένα bitmapped terminal :

177 Λύση : αντιστοιχούµε τους χαρακτήρες σε αριθµούς Με αυτό τον τρόπο ερµηνεύεται και η εµφάνιση ακατανόητων συµβόλων (αντί για Ελληνικού κειµένου) σε µερικές περιπτώσεις. Εάν το encoding είναι Ελληνικό αλλά η τρέχουσα γραµµατοσειρά είναι Λατινικού τύπου, τότε (για παράδειγµα), αντί για το Ελληνικό «ω», αυτό που θα εµφανιστεί στην οθόνη θα είναι ο χαρακτήρας του Λατινικού encoding (συνήθως ISO ) που αντιστοιχεί στον κωδικό του «ω», δηλαδή ο χαρακτήρας «ű».

178 Και µε τη C τι σχέση έχουν όλα αυτά ; Όταν κάνουµε εισαγωγή ή εξαγωγή χαρακτήρων (και ακολουθιών χαρακτήρων) από ένα πρόγραµµα, αυτό που λαµβάνουµε (και στέλνουµε) είναι ο κωδικός των διάφορων χαρακτήρων. Το σε τι αντιστοιχούν (για το χρήστη του προγράµµατος) αυτοί οι χαρακτήρες εξαρτάται από το τρέχων encoding και γραµµατοσειρά. Για παράδειγµα, οι ακολουθίες χαρακτήρων hello world! και ηελλο ωορλδ! διαφέρουν µόνο στη χρησιµοποιούµενη γραµµατοσειρά (αλλά έχουν ίδιους κωδικούς),

179 Και µε τη C τι σχέση έχουν όλα αυτά ; ενώ οι ακολουθίες χαρακτήρων hello world! και ηελλο ςορλδ! διαφέρουν µόνο στο encoding (αλλά µοιράζονται την ίδια γραµµατοσειρά)

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #4 κυριολεκτικά & μετατροπή τύπων 1 Σπύρος Λάλης Κυριολεκτικά (literals) Συχνά θέλουμε να αρχικοποιήσουμε μεταβλητές του προγράμματος με μια συγκεκριμένη τιμή υπάρχει επίσης η

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 5: Κυριολεκτικά Συνδυασμοί / Μετατροπές Τύπων Αριθμητική Χαρακτήρων Κυριολεκτικά (literals) 2 Κάποιες μεταβλητές του προγράμματος πρέπει συνήθως να αρχικοποιηθούν με συγκεκριμένη

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης

Κεφάλαιο 1. Συστήματα αρίθμησης και αναπαράστασης Κεφάλαιο 1 Συστήματα αρίθμησης και αναπαράστασης 1.1 Εισαγωγή Οι υπολογιστές αναπαριστούν όλα τα είδη πληροφορίας ως δυαδικά δεδομένα. Έτσι, για την ευκολότερη και ταχύτερη επεξεργασία των διαφόρων πληροφοριών,

Διαβάστε περισσότερα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές Δρ. Γιώργος Λαμπρινίδης amprinidis@pharm.uoa.gr 1 Αριθμητικοί Τελεστές + πρόσθεση - αφαίρεση * πολλαπλασιασμός / διαίρεση Προσοχή! Διαίρεση

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C Σκοπός της Άσκησης ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραµµατισµού C: τη δοµή των προγραµµάτων της,

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

Διαβάστε περισσότερα

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

Διαβάστε περισσότερα

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.1-8.3 Πίνακες Ι ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα µιλήσουµε για την δοµή δεδοµένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. ήλωση Πίνακα 3. Αρχικοποίηση

Διαβάστε περισσότερα

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

Διαβάστε περισσότερα

ιαδικαστικός Προγραμματισμός

ιαδικαστικός Προγραμματισμός ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ιαδικαστικός Προγραμματισμός Α Εξάμηνο Μάθημα 3 ο : Εντολές ελέγχου > επανάληψη Στόχοι μαθήματος Να μάθετε τις λεπτομέρειες των εντολών while και for και τις περιπτώσεις

Διαβάστε περισσότερα

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Πέμπτη (5 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/

Διαβάστε περισσότερα

Διαδικαστικός Προγραμματισμός

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 3: Εντολές ελέγχου επανάληψη Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

Διαβάστε περισσότερα

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟ ΟΣ: ΣΕΠΤΕΜΒΡΙΟΥ 6 Ι ΑΣΚΩΝ: Ε. ΚΟΦΙ ΗΣ Όλα τα ερωτήµατα είναι ισοδύναµα. Καλή επιτυχία! ΘΕΜΑ ο a) Βρείτε την αναπαράσταση

Διαβάστε περισσότερα

Ψηφιακά Συστήματα. 2. Κώδικες

Ψηφιακά Συστήματα. 2. Κώδικες Ψηφιακά Συστήματα 2. Κώδικες Βιβλιογραφία 1. Φανουράκης Κ., Πάτσης Γ., Τσακιρίδης Ο., Θεωρία και Ασκήσεις Ψηφιακών Ηλεκτρονικών, ΜΑΡΙΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΕΠΕ, 2016. [59382199] 2. Floyd Thomas L., Ψηφιακά ηλεκτρονικά,

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ (Κεφάλαιο 2.7 και 12) Αρχεία στην C ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουµε δεδοµένα από ένα πρόγραµµα, πρέπει να χρησιµοποιήσουµε την ευτερεύουσα

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 11 Πίνακες Ι Πίνακες (Arrays) Σε αυτή την ενότητα

Διαβάστε περισσότερα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β 1. (10 μον.) Απαντήστε σωστό ή λάθος στις παρακάτω ερωτήσεις (αʹ) _2togo είναι έγκυρο όνομα μεταβλητής (βʹ) Αν p είναι δείκτης στο πρώτο στοιχείο

Διαβάστε περισσότερα

8. Συνθήκες ελέγχου, λογικοί τελεστές

8. Συνθήκες ελέγχου, λογικοί τελεστές Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 8. Συνθήκες ελέγχου, λογικοί τελεστές Ιωάννης Κατάκης Σήμερα o Λογικές παραστάσεις Σχεσιακοί τελεστές Λογικοί τελεστές o if -else o switch Λογικές παραστάσεις

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2 Είσοδος / Έξοδος Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συνάρτηση εξόδου printf Συνάρτηση εισόδου scanf Βιβλίο µαθήµατος: Chapter 2,, Sec. 3 & 6 ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-1 Είσοδος

Διαβάστε περισσότερα

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 3ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΕΚΤΥΠΩΣΗ ΚΕΙΜΕΝΟΥ Ένα κείμενο μπορεί να εκχωρηθεί ως τιμή μιας μεταβλητής

Διαβάστε περισσότερα

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16) Κεφάλαιο 8.1-8.3 Πίνακες Ι (Διάλεξη 16) 15-1 Πίνακες (Arrays) Σε αυτή την ενότητα θα μιλήσουμε για την δομή δεδομένων Πίνακας: 1. Εισαγωγή & Σύνταξη 2. Δήλωση Πίνακα 3. Αρχικοποίηση Πίνακα 4. Πρόσβαση

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Βασικές Αρχές Προγραμματισμού

Βασικές Αρχές Προγραμματισμού Βασικές Αρχές Προγραμματισμού Κεφάλαιο 2 ΗγλώσσαC Ιστορική Αναδρομή ΗανάπτυξητηςC ξεκίνησε το 1972 στα εργαστήρια Bell από τον Dennis Ritchie με σκοπό την ανάπτυξη ενός λειτουργικού συστήματος για τον

Διαβάστε περισσότερα

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου (Διάλεξη 7) 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράμματα πρέπει να πάρουμε κάποια δεδομένα και να δώσουμε αποτέλεσμα Συνάρτηση εισόδου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση

Διαβάστε περισσότερα

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου (Διάλεξη 7) 1 Είσοδος/Έξοδος Σε σχεδόν όλα τα προγράμματα πρέπει να πάρουμε κάποια δεδομένα και να δώσουμε αποτέλεσμα Συνάρτηση εισόδου

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

Διαβάστε περισσότερα

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Κύκλος Ανάπτυξης Προγράµµατος 1. Συγγραφή και Μεταγλώττιση ενός προγράµµατος 2. Εκτέλεση του προγράµµατος

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Παρατηρήσεις

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8) Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις (Διάλεξη 8) 8-1 Τι θα δούμε σήμερα Η εντολή if else Η εντολή if else ιf - -else H εντολή switch Λογικές παραστάσεις Σχεσιακοί

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Συναρτήσεις. Εισαγωγή

Συναρτήσεις. Εισαγωγή Συναρτήσεις Εισαγωγή Η χρήση συναρτήσεων στα προγράμματα της γλώσσας C είναι πολύ σημαντική καθώς μας επιτρέπει τη διάσπαση ενός προβλήματος σε μικρότερα υποπροβλήματα τα οποία μπορούμε να επιλύσουμε πιο

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 1ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΓΙΑΤΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ; Στα μαθηματικά και στη φυσική συχνά έχουμε

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συναρτήσεις Εξωτερικές µεταβλητές Κανόνες εµβέλειας ιάρκεια µεταβλητών Αρχικοποίηση

Διαβάστε περισσότερα

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

Διαβάστε περισσότερα

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

Διαβάστε περισσότερα

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 11-1 Μη- οµηµένος Προγραµµατισµός Το πρόγραµµα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δοµή). Όλη η λειτουργικότητα

Διαβάστε περισσότερα

Κεφάλαιο : Επαναλήψεις (for, do-while)

Κεφάλαιο : Επαναλήψεις (for, do-while) Κεφάλαιο 5.4-5.11: Επαναλήψεις (for, do-while) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήµερα while(){ τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές Παραδείγµατα Σήµερα for(){ Η εντολές break/continue;

Διαβάστε περισσότερα

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

Διαβάστε περισσότερα