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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

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

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

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

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

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

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

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

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

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

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

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

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

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

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

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

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

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

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

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

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

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

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

Εξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή

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

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

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

7. Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

5 &6. Τύποι δεδομένων, τελεστές και

Transcript:

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής Εφαρμογών (npet@chania.teicrete.gr) Τέταρτη (4 η ) τρίωρη διάλεξη. Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/courses/el106 Εξάμηνο: Χειμερινό 2017-18

Μορφοποίηση εισόδου /εξόδου Συναρτήσεις: printf() - Προβάλλει πληροφορίες στην οθόνη. scanf() - Εισάγει δεδομένα από το πληκτρολόγιο και εκχωρεί αυτά τα δεδομένα σε μία ή περισσότερες μεταβλητές. Τόσο για την εμφάνιση όσο και για την εισαγωγή δεδομένων χρησιμοποιούνται κωδικοί διαμόρφωσης. Οι συχνότερα χρησιμοποιούμενοι είναι οι παρακάτω: %d στο δεκαδικό (decimal) %o στο οκταδικό (octal) για ακέραιους %x στο δεκαεξαδικό (hexadecimal) %f για πραγματικούς %c για χαρακτήρες %s για συμβολοσειρές (strings) 2

Εντολή εμφάνισης στην οθόνη Η σύνταξη της εντολής printf είναι: printf("δήλωση φόρμας", έκφραση1, έκφραση2,...); όπου: η δήλωση φόρμας ορίζει το πως θα μορφοποιηθεί η εκτύπωση, και το τι θα τυπώνεται στην πρότυπη έξοδο (standard output). H δήλωση φόρμας ορίζει, επίσης, με την συνδρομή των κωδικών διαμόρφωσης, πως θα μετατραπούν οι τιμές από τη εσωτερική δυαδική μορφή του Η/Υ στην επιθυμητή μορφή της εκτύπωσης. 3

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.000000 4

Κι άλλοι κωδικοί διαμόρφωσης {για την printf() %e Εμφάνιση πραγματικού σε εκθετική μορφή (ή επιστημονική) %f Εμφάνιση πραγματικού σε δεκαδική μορφή με 6 δεκαδικά ψηφία δεξιά της υποδιαστολής %g Εμφάνιση πραγματικού σε εκθετική ή σε δεκαδική μορφή ανάλογα με το μέγεθός του Συμπληρωματικά με τα παραπάνω, η γενική μορφή είναι : %π.δκ όπου π δηλώνει τον ελάχιστο αριθμό «χαρακτήρων» προς εμφάνιση (μαζί με την υποδιαστολή), δ δηλώνει τον αριθμό δεκαδικών ψηφίων δεξιά της υποδιαστολής, και Κ είναι ένα από e, f ή g. %md Εμφάνιση ακεραίου σε τουλάχιστον m θέσεις ψηφίων %% Εμφάνιση του ίδιου του % 5

main() { int i = 40; float x = 839.21; Παράδειγμα printf("12345678901234567890123456789012345678%%9\n"); printf(" %d %5d %-5d %5.3d \n", i, i, i, i); printf("\n"); printf(" %10.3f %10.3e %10g \n", x, x, x, x); return; 12345678901234567890123456789012345678%9 40 40 40 040 839.210 8.392e+002 839.21 -------------------------------- Press any key to continue... Εμφάνιση % 6

Εντολή εισαγωγής δεδομένων από το πληκτρολόγιο Η σύνταξη της εντολής scanf είναι: scanf("δήλωση φόρμας", έκφραση1, έκφραση2,...); όπου: η δήλωση φόρμας ορίζει - με την βοήθεια των κωδικών διαμόρφωσης - το πως θα ερμηνεύονται τα δεδομένα που εισάγονται από το πληκτρολόγιο, το οποίο αποτελεί την πρότυπη είσοδο (standard input). Στην συνέχεια οι εκφράσεις πρέπει να δείχνουν τις θέσεις της μνήμης RAM που θα αποθηκευθούν τα δεδομένα (δηλαδή τις διευθύνσεις των θέσεων). 7

Παράδειγμα #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); Τελεστής διεύθυνσης (διαφορά από την printf) Εάν ο χρήστης εισάγει 1, -20,.3, -4.0e3 τότε η παραπάνω εντολή εισόδου θα διαβάσει και θα αναθέσει στη μεταβλητή i τον αριθμό 1, στη j το -20, στη x το 0.3, και στη y το -4000.0 8

Οδηγία για την εισαγωγή δεδομένων Συνιστάται, για λόγους ευκολίας στην ανεύρεση σφαλμάτων, να χρησιμοποιείται ένα ζευγάρι printf() scanf() για κάθε δεδομένο που πρέπει να εισάγει ο χρήστης καθοδηγώντας τον κατάλληλα, πχ: #include <stdio.h> main() { int ak; double x; char ch; printf("δώστε έναν ακέραιο : "); scanf("%d", &ak); printf("δώστε έναν πραγματικό : "); scanf("%f", &x); printf("δώστε ένα χαρακτήρα : "); scanf("%c", &ch);... 9

Η συνάρτηση main() Η συνάρτηση main() είναι μία ειδική συνάρτηση που πρέπει να έχει ορισθεί σε κάθε αυτόνομο πρόγραμμα γραμμένο σε C. Η main() είναι η πρώτη συνάρτηση που καλείται σε ένα πρόγραμμα σε C. Η κλήση γίνεται αυτόματα από το λειτουργικό σύστημα όταν το πρόγραμμα αρχίζει να εκτελείται («να τρέχει»). Η συνάρτηση main() μπορεί να επιστρέφει, ή να μην επιστρέφει κάποιο αποτέλεσμα. 10

Σχόλια (comments) Ένα καλό πρόγραμμα δεν αρκεί να είναι μόνο συντακτικά σωστό, γρήγορο, και συμβατό με τις απαιτήσεις του χρήστη, αλλά και σωστά τεκμηριωμένο με σχόλια. Τα σχόλια στη C ορίζονται ανάμεσα στα σύμβολα /* και */ π.χ. /* This is a comment in C */ Τα σχόλια δεν μεταφράζονται από τον compiler ο οποίος τα θεωρεί σαν κενούς χαρακτήρες Δεν επιτρέπονται τα ένθετα σχόλια εκτός αν έχει γίνει η κατάλληλη ρύθμιση. Σχόλια γραμμής: στη C++ ή στη Java αρχίζουν με // και τελειώνουν με το πέρας της γραμμής. Κάποιοι μεταγλωττιστές της C το επιτρέπουν, αλλά αν σας ενδιαφέρει η φορητότητα να χρησιμοποιείτε μόνο /* και */ Προσθέστε σχόλια μόνο σε προτάσεις ή συναρτήσεις οι οποίες δεν έχουν προφανή σημασία. Βασική αρχή είναι να έχουμε ένα ευπαρουσίαστο και εύκολο να διαβαστεί πρόγραμμα (διευκολύνει τη συντήρησή του) π.χ. /*************************************************** * Name: maintry.c * * Author: Giannis Papadakis * * Purpose: Translate Celsius degrees to Fahrenheit * * Date/Version: 15/08/2017 v2.3 * ***************************************************/ 11

Αν το αποτέλεσμα ενός προγράμματος είναι το παρακάτω, ποιο είναι το πρόγραμμα; 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!! 12

Θα μπορούσε να είναι το ακόλουθο: #include <stdio.h> #include <stdlib.h> main() { int a, b, g; /* Εισαγωγή του πρώτου αριθμού */ printf("enter a number between 1 and 100 : "); scanf("%d", &a); /* Εισαγωγή του δεύτερου αριθμού */ printf("enter another number between 1 and 100 : "); scanf("%d", &b); /* Υπολογισμός και εμφάνιση του γινομένου */ g = a * b; printf("%d times %d = %d \n", a,b, g); system("pause"); return 0; 13

Παράδειγμα: εμβαδόν τριγώνου (1) #include <stdio.h> main() { float height, base, area; height = 10.2; /* χωρίς εισαγωγή δεδομένων */ base = 3.6; /* από το πληκτρολόγιο */ printf("the height of the triangle is: %f\n", height); printf("the base of the triangle is: %f\n", base); area = (height * base)/2; printf("the area of the triangle is %f\n", area); return 0; 14

Παράδειγμα: εμβαδόν τριγώνου (2) #include <stdio.h> main() { float height, base, area; /* με εισαγωγή δεδομένων */ printf("enter the height of the triangle : "); scanf("%f", &height); printf("\n"); printf("enter the base of the triangle : "); scanf("%f", &base); printf("\n"); printf("the height of the triangle is: %f\n", height); printf("the base of the triangle is: %f\n", base); area = (height * base)/2; printf("the area of the triangle is %f\n", area); return 0; 15

Παράδειγμα: εμβαδόν κύκλου /* Υπολογισμός εμβαδού κύκλου δίνοντας την ακτίνα */ #include <stdio.h> #define PI 3.14159265359 main() { int r; /* ακτίνα */ double emv; /* εμβαδόν */ printf("δώσε ακτίνα : "); scanf ("%d", &r); emv = PI*r*r; printf("κύκλος με ακτίνα %d έχει εμβαδό %f\n", r, emv); system("pause"); return 0; 16

Παράδειγμα: Αντιστοιχία θερμοκρασιών (όχι καλό) #include <stdio.h> /* Τύπωσε τους βαθμούς σε κλίμακα Κελσίου και Φαρενάιτ. */ /* γνωρίζοντας τον τύπο: celcius = (5/9) (fahr 32) */ #define FAHR1 0 #define FAHR2 20 #define FAHR3 40 #define FAHR4 60 main() { int celcius1, celcius2, celcius3, celcius4; celcius1 = 5 * (FAHR1-32) / 9; printf("%d\t%d\n", FAHR1, celcius1); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius2 = 5 * (FAHR2-32) / 9; printf("%d\t%d\n", FAHR2, celcius2); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius3 = 5 * (FAHR3-32) / 9; printf("%d\t%d\n", FAHR3, celcius3); /* Τύπωσε ακέραιο, tab, ακέραιο */ celcius4 = 5 * (FAHR4-32) / 9; printf("%d\t%d\n", FAHR4, celcius4); /* Τύπωσε ακέραιο, tab, ακέραιο */ Το αποτέλεσμα θα είναι: 0-17 20-6 40 4 60 15 Προβλήματα: α) η τιμή celsius δεν είναι αναγκαστικά ακέραια! β) τι θα κάναμε αν είχαμε πολύ περισσότερες τιμές να αντιστοιχίσουμε; 17

Παράδειγμα: Αντιστοιχία θερμοκρασιών (βελτιωμένο) /* δημιουργία και εμφάνιση πίνακα αντιστοιχίας θερμοκρασιών Fahrenheit-Celsius από το 0 μέχρι το 500, ανά 20, γνωρίζοντας ότι C= (5/9) (F-32) */ #include <stdio.h> main() { int fahr; float celsius; int lower=0,upper= 500, step = 20; fahr=lower; printf("\n FAHRENHEIT CELSIUS "); printf("\n-----------------------------"); while(fahr <= upper) { celsius = (float)5/9*(fahr-32); printf("\n%6d\t\t%10.2f",fahr,celsius); fahr += step; printf("\n"); system ("PAUSE"); return 0; Το αποτέλεσμα θα είναι: FAHRENHEIT CELSIUS ----------------------------- 0-17.78 20-6.67 40 4.44 60 15.56 80 26.67 100 37.78 120 48.89 140 60.00 160 71.11 180 82.22 200 93.33 220 104.44 240 115.56...... 480 248.89 500 260.00 Πιέστε ένα πλήκτρο για συνέχεια... 18

Παράδειγμα με while και if else (1) Εκφώνηση: Να γίνει ένα πρόγραμμα το οποίο να ζητάει από το πληκτρολόγιο τον βαθμό που πήρε κάποιος φοιτητής σε κάποιο μάθημα και αν είναι μεγαλύτερος από το πέντε ή τουλάχιστον ίσος με το πέντε να επιστρέφει στην οθόνη το μήνυμα «Πέρασες», διαφορετικά να εμφανίζει στην οθόνη το μήνυμα «Απορρίφθηκες». Σε περίπτωση που ο βαθμός είναι εκτός ορίων (δηλαδή, είτε είναι μικρότερος του μηδενός, είτε είναι μεγαλύτερος του δέκα) να εμφανίζει το κατάλληλο μήνυμα λάθους και στην συνέχεια να ξαναζητάει τον βαθμό μέχρι να λάβει κάποιον βαθμό εντός ορίων, οπότε και θα συνεχίσει την εκτέλεση του προγράμματος. 19

Παράδειγμα με while και if else (2) Λύση: main() { int v; printf("δώστε βαθμό : "); scanf("%d", &v); while (v<0 v>10) { printf("βαθμός εκτός ορίων!\n\nξαναδώστε βαθμό : "); scanf("%d", &v); if (v>=5) printf("πέρασες.\n\n"); else printf("απορρίφθηκες.\n\n"); system("pause"); return 0; 20

Εντολή επανάληψης for Συντάσσεται ως εξής: for ( αρχικοποίηση ; συνθήκη ή ; βήμα μεταβολής ) μετρητή εντολή; παράσταση μετρητή 21

Το παράδειγμα αντιστοίχισης θερμοκρασιών ξανά με for #include <stdio.h> #define LOWER 0 #define UPPER 500 #define STEP 20 main() { int fahr; float celsius; printf("\n FAHRENHEIT CELSIUS "); printf("\n-----------------------------"); for(farh=lower; fahr<=upper; farh+=step) { celsius=(float)5/9 *(fahr-32); printf("\n %5d\t\t%9.2f ",fahr,celsius); 22

Υπολογισμός των εκφράσεων Μία έκφραση είναι οτιδήποτε που υπολογίζεται σε μία αριθμητική τιμή. Η απλούστερη έκφραση της C αποτελείται από ένα απλό στοιχείο: Μία κυριολεκτική σταθερά, μία μεταβλητή ή συμβολική σταθερά. Μία κυριολεκτική σταθερά έχει τη δική της τιμή. Μία συμβολική σταθερά έχει την τιμή που της έχει δοθεί όταν δημιουργήθηκε, π.χ. με #define. Mία μεταβλητή έχει την τρέχουσα τιμή που της εκχωρήθηκε τελευταία από το πρόγραμμα. 23

Σύνθετες εκφράσεις Οι σύνθετες εκφράσεις αποτελούνται από απλές εκφράσεις συνδεδεμένες με τελεστές. 2+8; x=a+10; x=6+(y=4+5); x = 2+3 ; x = 2 + 3 ; Γενικά, ο μεταγλωττιστής δε λαμβάνει υπ όψη του κενά διαστήματα (spaces), στηλογνώμονες (tabs) και κενές γραμμές εκτός και αν αποτελούν τμήμα συμβολοσειρών κυριολεκτικών σταθερών (ορμαθοί - ακολουθίες χαρακτήρων = strings) (μεταξύ " "). 24

Μοναδιαίοι τελεστές μεταβολής κατά ένα ++x, --y, z++, w--, Πρόσθεση ή αφαίρεση της μονάδας από τον τελεστέο, ισοδύναμες των x=x+1, y=y-1. Δηλαδή αύξηση ή μείωση του τελεστέου κατά ένα. Χρησιμοποιούνται με μεταβλητές, όχι με σταθερές. 25

Μοναδιαίοι Τελεστές Οι δύο μοναδιαίοι τελεστές μπορούν να τοποθετηθούν πριν από τον τελεστέο (μορφή προθέματος) ή μετά από τον τελεστέο (μορφή επιθέματος) και δεν είναι ισοδύναμοι. Όταν χρησιμοποιούνται σε προθεματική μορφή, οι τελεστές αύξησης και μείωσης τροποποιούν τον τελεστέο τους πριν χρησιμοποιηθεί. Όταν χρησιμοποιούνται σε επιθεματική μορφή, οι τελεστές αύξησης και μείωσης τροποποιούν τον τελεστέο τους αφού χρησιμοποιηθεί. 26

Διαφοροποίηση μοναδιαίων τελεστών Παράδειγμα: x = 10; y = x++; Η τιμή της x θα είναι 11 και της y θα είναι 10. Χρησιμοποιούμε και μετά αυξάνουμε. Παράδειγμα: x = 10; y = ++x; Η τιμή της x θα είναι 11 και της y θα είναι 11. Αυξάνουμε και μετά χρησιμοποιούμε. 27

Παράδειγμα #include <stdio.h> main() { int a, b; a = b = 5; /* Αρχικοποιεί τις μεταβλητές a και b ίσες με 5 και ύστερα τις εμφανίζει μειώνοντάς τις κατά ένα σε κάθε επανάληψη. Για την a χρησιμοποιείται η επιθεματική μορφή ενώ για την b χρησιμοποιείται η προθεματική μορφή του τελεστή αύξησης κατά ένα (++) */ printf("%d printf("%d printf("%d printf("%d printf("%d return 0; %d\n", a--, --b); %d\n", a--, --b); %d\n", a--, --b); %d\n", a--, --b); %d\n", a--, --b); Αποτέλεσμα: 5 4 4 3 3 2 2 1 1 0 ------------------------ Press any key to... 28