32
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης ([email protected] ) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2016-17 Τρίτη (3 η ) τρίωρη διάλεξη.

Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης ([email protected])

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης

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

Δρ. Μηχ. Νικόλαος Πετράκης([email protected])

Ιστοσελίδα Μαθήματος:

https://eclass.chania.teicrete.gr/

Εξάμηνο: Εαρινό 2016-17

Τρίτη (3η) τρίωρη διάλεξη.

Page 2: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Συμβολικές Σταθερές• Μία συμβολική σταθερά είναι μία σταθερά που

αναπαρίσταται από ένα όνομα.• Μία συμβολική σταθερά δεν μπορεί να μεταβληθεί.

• Για την δήλωση μίας σταθεράς χρησιμοποιούμε το #defineπ.χ.

#define PI 3.14159

• Χωρίς ίσον και χωρίς ερωτηματικό στο τέλος!• Προτείνεται η χρήση κεφαλαίων χαρακτήρων για να

ξεχωρίζουν εύκολα από τις μεταβλητές.• Οι εντολές define μπορούν να τοποθετούνται οπουδήποτε

στον πηγαίο κώδικα αλλά είναι σε ισχύ μόνο για το τμήμα τουπηγαίου κώδικα που ακολουθεί μετά τη define.

• Οι προγραμματιστές πιο συχνά ομαδοποιούν τις define στηναρχή της main() ή του κάθε αρχείου.

2

Page 3: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Αναπαράσταση των σταθερών στην CΣταθερά απαρίθμησης (enumeration constant)

Σύνταξη:enum [ <type_tag> ] { <constant_name> [ = <value> ], … }[var_list];

Παραδείγματα:

enum boolean {NO, YES} ;

enum months {JAN=1, FEB, MAR,…} ;

(αλλιώς θα ήταν JAN=0)

3

Page 4: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Μεταβλητές• Μεταβλητή (variable) είναι η θέση αποθήκευσης

δεδομένων η οποία μπορεί να δέχεται τιμές κατάτη διάρκεια της εκτέλεσης του προγράμματος.

• Στη C οι μεταβλητές πρέπει:1. Να έχουν δηλωθεί σε κάποια εντολή δήλωσης,

συνήθως στην αρχή ενός αρχείου πηγαίουκώδικα, ή στην αρχή μιας συνάρτησης

2. Να έχουν συγκεκριμένο τύπο δεδομένων3. Να έχουν αρχική τιμή πριν χρησιμοποιηθούν

για πρώτη φορά4. Τα δεδομένα (οι τιμές) που αποθηκεύονται στη

μεταβλητή πρέπει να είναι του ίδιου ήσυμβατού τύπου με αυτόν της μεταβλητής

4

Page 5: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Δηλώσεις μεταβλητών• Για να δηλώσουμε μια μεταβλητή πρέπει πρώτα να ορίσουμε τον

τύπο και μετά το όνομα της μεταβλητής, π.χ.:

short int a; /* δήλωση μεταβλητής τύπου μικρού ακεραίου */

int i, k, l; /* δήλωση 3 ακέραιων μεταβλητών */

char c, line[100]; /* δήλωση χαρακτήρα και πίνακα χα/ρων */

float periferia, emvadon; /* δήλωση πραγματικών */

char cp=a; char esc = \\; int k=0; /* με αρχική τιμή */

int m = MX + 5;

float eps = 1.0e-5; /* δήλωση πραγματικού απλής ακρίβειας */

double e = 2.7; /* δήλωση πραγματικού διπλής ακρίβειας */

float inch = 2.54; ή float inch = 254e-2;

long double pi = 314159265359e-11; /* εκτεταμένης ακρίβειας */5

Page 6: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Ονόματα μεταβλητών• Τα ονόματα των μεταβλητών σ’ ένα πρόγραμμα C

πρέπει να αρχίζουν με γράμμα και μπορούν ναπεριέχουν αλφαριθμητικούς χαρακτήρες, δηλαδή:

γράμματα, ψηφία και το σύμβολο underscore (_).

• Δεν μπορούν να περιέχουν ειδικούς χαρακτήρεςόπως: #, &, *, ., +, -, /, (, {, κλπ.

• Τα ονόματα count και Count αντιστοιχούν σεδιαφορετικές μεταβλητές (διαχωρισμός πεζών-κεφαλαίων).

• Υπάρχουν συγκεκριμένα ονόματα τα οποίααναφέρονται σε λέξεις κλειδιά της C τα οποία δενμπορούν να χρησιμοποιηθούν ως ονόματαμεταβλητών.

6

Page 7: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Λέξεις κλειδιά (δεσμευμένες λέξεις) που δεν μπορούν να χρησιμοποιηθούν ως ονόματα μεταβλητών

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

7

Page 8: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Καλές πρακτικές ονομασίας μεταβλητών

• Χρήση μικρών χαρακτήρων (όχι κεφαλαίων)

• Αποφυγή χρήσης μικρών και κεφαλαίων για δύο διαφορετικές μεταβλητές π.χ. one και ONE

• Χρήση μνημονικών ονομάτων που είναι περιγραφικά, π.χ. interestRate αντί ir

• Κατανοητή σύνταξη για πολύπλοκα ονόματα π.χ. interestRate, ή interest_rate αντίinterestrate

8

Page 9: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Χρήση του const για μεταβλητές που δεν αλλάζουν τιμή!

• O δεύτερος τρόπος δήλωσης μιας συμβολικής σταθεράς είναι με τη λέξη κλειδί const.

• Μία μεταβλητή const δεν μπορεί να τροποποιηθεί κατά τη διάρκεια του προγράμματος, δέχεται μόνο αρχική τιμή τη στιγμή της δήλωσής της.

Π.χ.

const int count = 100;

const float PI = 3.14159265;9

Page 10: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Τελεστές

• Ένας τελεστής είναι ένα σύμβολο που οδηγεί την C να εκτελέσει κάποια λειτουργία, σε ένα ή περισσότερους τελεστέους.

• Τελεστές εκχώρησης (=), τελεστές αριθμητικοί, τελεστές σχεσιακοί, τελεστές λογικοί.

• H C έχει δύο μοναδιαίους (unary) αριθμητικούς τελεστές (επιδέχονται έναν τελεστέο) και 5 δυαδικούς (binary) αριθμητικούς τελεστές(απαιτούν δύο τελεστέους).

10

Page 11: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Αριθμητικοί Τελεστές(+) Πρόσθεση (δυαδικός τελεστής – binary operator),

και έκφραση θετικού προσήμου (μοναδιαίος τελεστής– unary operator)

(-) Αφαίρεση (δυαδικός τελεστής – binary operator), και έκφραση αρνητικού προσήμου (μοναδιαίος τελεστής– unary operator)

(*) Πολλαπλασιασμός (δυαδικός τελεστής – binary operator)

(/) Διαίρεση (δυαδικός τελεστής – binary operator)

(%) Υπόλοιπο διαίρεσης (για ακέραιους τύπους μόνο -(δυαδικός τελεστής – binary operator)

11

Page 12: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Παραδείγματα

10/3 δίνει 3

10%3 δίνει 1

10%2 δίνει 0

10+2 δίνει 12

10*2-2 δίνει 18

10/0 δεν ορίζεται (διαίρεση με 0)

10%0 δεν ορίζεται (υπόλοιπο διαίρεσης με 0)

6/2+4 δίνει 7

-10+2 δίνει -8

10/2 + -10/3 = (10/2) + ((-10)/3) δίνει 2

12

Page 13: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Σχεσιακοί Τελεστές (1)• Οι σχεσιακοί ή συσχετιστικοί τελεστές

χρησιμοποιούνται για να συγκρίνουν εκφράσεις.

• Ο υπολογισμός μίας έκφρασης που περιέχει ένα σχεσιακό τελεστή δίνει αποτέλεσμα είτε αληθές (μη μηδενικό) είτε ψευδές (μηδέν).

• == (Ίσον), > (Μεγαλύτερο από), < (Μικρότερο από), >= (Μεγαλύτερο ή ίσο), <= (Μικρότερο ή ίσο), != (Διάφορο)

• ΠΡΟΣΟΧΗ: Το = είναι ο τελεστής εκχώρησης, ενώ το == είναι ο σχεσιακός τελεστής.

13

Page 14: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Σχεσιακοί Τελεστές (2)

• Οι σχεσιακοί τελεστές θέτουν ερωτήσεις όπως:

«Είναι η x μεγαλύτερη από το 100;»,

«Είναι η y ίση με 0;».

Π.χ.:

5 == 1, Είναι το 5 ίσο με το 1; (ψευδές)

5>1, Είναι το 5 μεγαλύτερο του 1; (αληθές)

5 != 1, Είναι το 5 διαφορετικό από το 1; (αληθές)

(5+10) == (3*5), Είναι το (5+10) ίσο με το (3*5); (αληθές)

14

Page 15: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Σχεσιακοί Τελεστές

• Οι αριθμητικοί τελεστές έχουν υψηλότερη προτεραιότητα από τους σχεσιακούς τελεστές

Π.χ. η συνθήκη:

(x+2>y)

είναι ισοδύναμη με την

((x+2)>y)

• Η σειρά προτεραιότητας των σχεσιακών τελεστών είναι < <= > >= != ==

Π.χ. το: x == y>z είναι ίδιο με το: x == (y>z)15

Page 16: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Λογικοί Τελεστές

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

• Τελεστής σύζευξης && (λογικό και, and)

• Τελεστής διάζευξης || (λογικό ή, or)

• Τελεστής άρνησης ! (λογικό όχι, not)

Το && έχει μεγαλύτερη προτεραιότητα από το ||ενώ το ! είναι μοναδιαίος τελεστής.

Υπολογίζονται από τα αριστερά προς τα δεξιά όταν είναι πάνω από δύο με ίδια προτεραιότητα.

16

Page 17: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Τελεστές πράξεων ανά μπιτ

• Εφαρμόζονται μόνο σε ακέραιους τελεστέους.

& σύζευξη (and)

| διάζευξη (or)

^ αποκλειστική διάζευξη (xor)

<< ολίσθηση αριστερά (shift left)

>> ολίσθηση δεξιά (shift right)

~ συμπλήρωμα ως προς ένα (1’s complement)

Μόνο το ~ είναι μοναδιαίος τελεστής ενώ όλοι οι υπόλοιποι είναι δυαδικοί.

17

Page 18: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Τελεστής αντικατάστασης (Εντολή ανάθεσης)

• Οι μεταβλητές λαμβάνουν τιμές με συγκεκριμένη εντολή ανάθεσης

• Η εντολή είναι της μορφής:

μεταβλητή = έκφραση

όπου η έκφραση μπορεί να είναι μια σταθερή τιμή, μια λογική ή αριθμητική πράξη, το αποτέλεσμα κλήσης μιας συνάρτησης κλπ.

• Η έκφραση θα πρέπει να παράγει ένα αποτέλεσμα που να είναι συμβατό με τον τύπο της μεταβλητής

18

Page 19: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Συγκεντρωτικά οι τελεστές της C (1)

Αριθμητικοί τελεστές:

+ -

* / % + -

Συσχετιστικοί τελεστές:

> >= < <= == !=

Λογικοί τελεστές:

&& || !19

Page 20: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Συγκεντρωτικά οι τελεστές της C (2)

Τελεστές πράξεων ανά bit (bitwise):

& | ^ << >> ~

Τελεστές αντικατάστασης:

= += -= *= /= %=

<<= >>= ^= &= |=

π.χ. x= y+z; x = a*5 + b/c + 12.75/(d-8); i=i+5; μπορεί να γραφεί ως: i+=5;

j=j*(k+7); μπορεί να γραφεί ως: j*=(k+7); 20

Page 21: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Το πρώτο μου πρόγραμμα

/* my first C program */

#include <stdio.h>

void main()

{

printf ("Hello World");

}

21

Page 22: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

/* my first C program */

#include <stdio.h>

void main()

{

printf(“Hello World!”);

}

• Αυτή η πρόταση οδηγεί τον υπολογιστή να εμφανίσει το μήνυμα Hello World! στην οθόνη.

Εντολή εισαγωγής βιβλιοθήκης για

χρήση συναρτήσεων είσοδου/έξοδου

Βιβλιοθήκη

Η αρχική συνάρτηση main

Η συνάρτηση printf που έχει ορισθεί στη

βιβλιοθήκη stdio και επιτρέπει την

εμφάνιση στην οθόνη (standard output)

Τύπος

Επιστροφής

της main

Εντολή

Προ-επεξεργασίας

Σχόλια

22

Page 23: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Μορφοποίηση εισόδου /εξόδου

Συναρτήσεις • printf() - Προβάλλει πληροφορίες στην οθόνη.

• scanf() - Εισάγει δεδομένα από το πληκτρολόγιο και εκχωρεί αυτά τα δεδομένα σε μία ή περισσότερες μεταβλητές.

Κωδικοί διαμόρφωσης

%d %5d %o %x

%f %8.2f %.3f

%s %c

%%23

Page 24: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Εντολή εμφάνισης στην οθόνη

• Η σύνταξη της εντολής printf είναι

printf (“δήλωση φόρμας”, έκφραση1, έκφραση2 ...);

όπου:

Η δήλωση φόρμας ορίζει το πως θα μορφοποιηθεί ηεκτύπωση, και το τι θα τυπώνεται στην πρότυπη έξοδο(standard output).

H δήλωση φόρμας ορίζει, επίσης, με την συνδρομή τωνκωδικών διαμόρφωσης, πως θα μετατραπούν οι τιμές από τηεσωτερική δυαδική μορφή του Η/Υ στην επιθυμητή μορφήτης εκτύπωσης.

24

Page 25: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Παράδειγμαmain()

{

int i, j;

float x, y;

i = 10;

j = 20;

x = 43.2892;

y = 5527.0;

printf( “ i = %d, j = %d, x = %f, y = %f\n” , i, j, x, y);

}

Δήλωση φόρμας

Εμφάνιση ως ακεραίου στο

δεκαδικό σύστημα αρίθμησης

Εμφάνιση ως πραγματικός

Οι μεταβλητές για εκτύπωση

Αποτέλεσμα εκτύπωσης : i = 10, j = 20, x = 43.289200, y = 5527.00000025

Page 26: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Εντολή εισαγωγής δεδομένων από το πληκτρολόγιο

• Η σύνταξη της εντολής scanf είναι

scanf (“δήλωση φόρμας”, έκφραση1, έκφραση2 ...);

όπου:

Η δήλωση φόρμας ορίζει - με την βοήθεια των κωδικώνδιαμόρφωσης - το πως θα ερμηνεύονται τα δεδομένα πουεισάγονται από το πληκτρολόγιο το οποίο αποτελεί τηνπρότυπη είσοδο (standard input).

Στην συνέχεια οι εκφράσεις πρέπει να δείχνουν τις θέσειςτης μνήμης RAM που θα αποθηκευθούν τα δεδομένα(δηλαδή τις διευθύνσεις των θέσεων)

26

Page 27: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Παράδειγμα #include <stdio.h>

main()

{

int i, j;

float x, y;

scanf("%d%d%f%f", &i, &j, &x, &y);

printf("%d %d %f %g", i, j, x, y);

}

Εάν ο χρήστης εισάγει 1, -20, .3, -4.0e3 τότε η παραπάνω εντολή εισόδου θα

διαβάσει και θα αναθέσει στη μεταβλητή i τον αριθμό 1, στη j το -20, στη x το

0.3, και στη y το -4000.0

Διαφορά από το

printf

27

Page 28: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Η συνάρτηση main()

• Η συνάρτηση main είναι μία ειδική συνάρτηση που πρέπει να έχει ορισθεί σε κάθε C πρόγραμμα.

• Η συνάρτηση main είναι η πρώτη συνάρτηση που καλείται σε ένα C πρόγραμμα. Η κλήση γίνεται αυτόματα από το λειτουργικό σύστημα όταν το πρόγραμμα αρχίζει να «τρέχει».

• Η συνάρτηση main μπορεί να επιστρέφει, ή να μην επιστρέφει κάποιο αποτέλεσμα.

28

Page 29: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Σχόλια (comments)• Ένα καλό πρόγραμμα δεν είναι μόνο συντακτικά σωστό, γρήγορο, και συμβατό με

τις απαιτήσεις του χρήστη, αλλά και τεκμηριωμένο με σχόλια.• Τα σχόλια δεν μεταφράζονται από τον compiler ο οποίος τα θεωρεί σαν κενούς

χαρακτήρες• Τα σχόλια στη C ορίζονται ανάμεσα στα σύμβολα /* και */ π.χ.

/* this is a comment in C */• Δεν επιτρέπονται τα ένθετα σχόλια εκτός αν έχει γίνει η κατάλληλη ρύθμιση.

• Σχόλια γραμμής: στη C++ ή στη Java αρχίζουν με // και τελειώνουν με το πέρας της γραμμής. Κάποιοι μεταγλωττιστές της C το επιτρέπουν, αλλά αν σας ενδιαφέρει η μεταφορά να χρησιμοποιείτε /* και */

• Προσθέστε σχόλια μόνο σε προτάσεις ή συναρτήσεις οι οποίες δεν έχουν προφανή σημασία.

• Βασική αρχή είναι να έχουμε ένα ευπαρουσίαστο και εύκολο να διαβαστεί πρόγραμμα (διευκολύνει τη συντήρησή του) π.χ.

/************************************************************* Name: main.c ** Author: John Smith ** Purpose: Translate Celsius degrees to Fahrenheit ** Date/Version: 12/12/02 v1.1 *************************************************************/ 29

Page 30: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Αν το αποτέλεσμα ενός προγράμματος είναι το παρακάτω, ποιο είναι το πρόγραμμα;

Enter a number between 1 and 100 : 35

Enter another number between 1 and 100 : 23

35 times 23 = 805

Press any key to continue!!

30

Page 31: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Εντολή επανάληψης while

Συντάσσεται ως εξής:

while (παράσταση ή συνθήκη)

εντολή;

31

Page 32: Προγραμματισμός Η/Υ (ΤΛ2007 ) · 2017. 3. 16. · Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ͙ Μηχ͙ Νικόλαος Πεʐράκης (npet@chania.teicrete.gr)

Παράδειγμα με “while…”

/* Πρόγραμμα που εμφανίζει το άθροισμα των 100

πρώτων φυσικών αριθμών, δηλαδή: 1+2+3+…+100 */

main()

{ int i, ath=0; /* i -> μετρητής, ath -> άθροισμα */

i=1; /* αρχικοποίηση μετρητή */

while (i<=100)

{ ath = ath + i; /* ή ath += i; */

i = i + 1;

}

printf(“Το άθροισμα είναι %d\n”, ath);

}

32