Υλοποίηση. Εκτέλεση: Doste tin apostasi se metra: H apostasi se intses einai

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

Σημειώσεις για πρόοδο στο εργαστήριο

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

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

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

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

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

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

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

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

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

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

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

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

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

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

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ

Εντολές ελέγχου ροής if, for, while, do-while

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

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

Προγραμματισμό για ΗΜΥ

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

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

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

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

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

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

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

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

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

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

Γλώσσα Προγραμματισμού C

Δομημένος Προγραμματισμός

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

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

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

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

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

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

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Διάλεξη 5η: Εντολές Επανάληψης

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

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

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

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

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

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

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

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

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

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

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

Δομές ελέγχου & επανάληψης

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

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

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

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

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

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

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

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

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

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

Transcript:

Υλοποίηση #include <stdio.h> main() float m, i;/* Intses */ printf("doste tin apostasi se metra:\n"); scanf("%f",&m); i = m* 39.3700787; printf("h apostasi se intses einai %10.5f \n",i); Εκτέλεση: Doste tin apostasi se metra: 4.442 H apostasi se intses einai 174.88189

Εκτέλεση: Doste ta miki twn 2 pleurwn: 4.32 2.23 To emvadon einai = 9.63360 H perimetros einai = 13.10000 Υλοποίηση #include <stdio.h> main() float a, b, e, p; printf("\ndoste ta miki twn 2 pleurwn:"); scanf("%f%f",&a, &b); e = a * b; p = 2 * (a + b); printf("\nto emvadon einai = %10.5f", e); printf("\nh perimetros einai = %10.5f", p);

Υλοποίηση με ορίσματα ακεραίους #include <stdio.h> /*Ektypose ton pinaka twn thermokrasiwn Fahrenheit-Celsius gia Fahrenheit = 0, 20, 40,..., 300*/ main() int fahr, celsius; int lower, upper, step; /*Orismos twn metavlitwn*/ lower=0; upper=300; step=20;

Υλοποίηση με ορίσματα ακεραίους ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ /*Arxikopoiisi tis fahr*/ fahr = lower; /*Ektuposi epikefalidas*/ printf("fahrenheit\tcelsius\n"); while(fahr<=upper) /*Metatropi apo Fahrenheit se Celsius*/ celsius = 5*(fahr-32)/9; /*Ektuposi pinaka*/ printf("%d\t\t%d\n", fahr, celsius); fahr += step; Fahrenheit Celsius 0-17 20-6 40 4 60 15 80 26 100 37 120 48 140 60 160 71 180 82 200 93 220 104 240 115 260 126 280 137 300 148

Υλοποίηση με ορίσματα πραγματικούς #include <stdio.h> /*Ektypose ton pinaka twn thermokrasiwn Fahrenheit-Celsius gia Fahrenheit = 0, 20, 40,..., 300*/ main() float fahr, celsius; int lower, upper, step; /*Orismos twn metavlitwn*/ lower=0; upper=300; step=20; /*Arxikopoiisi tis fahr*/ fahr = lower;

Υλοποίηση με ορίσματα πραγματικούς ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ /*Ektuposi epikefalidas*/ printf("fahrenheit\tcelsius\n"); while(fahr<=upper) /*Metatropi apo Fahrenheit se Celsius*/ celsius = 5.0/9.0*(fahr-32.0); /*Ektuposi pinaka*/ printf("%5.2f\t\t%5.2f\n", fahr, celsius); fahr += step; Fahrenheit Celsius 0.00-17.78 20.00-6.67 40.00 4.44 60.00 15.56 80.00 26.67 100.00 37.78 120.00 48.89 140.00 60.00 160.00 71.11 180.00 82.22 200.00 93.33 220.00 104.44 240.00 115.56 260.00 126.67 280.00 137.78 300.00 148.89

Υλοποίηση με χρήση βρόχου επανάληψης for #include <stdio.h> /*Ektypose ton pinaka twn thermokrasiwn Fahrenheit-Celsius gia Fahrenheit = 0, 20, 40,..., 300*/ main() float fahr, celsius; int lower, upper, step; /*Orismos twn metavlitwn*/ lower=0; upper=300; step=20;

Υλοποίηση με χρήση βρόχου επανάληψης for ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ /*Arxikopoiisi tis fahr*/ fahr = lower; /*Ektuposi epikefalidas*/ printf("fahrenheit\tcelsius\n"); for (fahr=0;fahr<=upper;fahr+=step) /*Metatropi kai pinaka*/ printf("%5.2f\t\t%5.2f\n", fahr, 5.0/9.0*(fahr-32.0)); Fahrenheit Celsius 0.00-17.78 20.00-6.67 40.00 4.44 60.00 15.56 80.00 26.67 100.00 37.78 120.00 48.89 140.00 60.00 160.00 71.11 180.00 82.22 200.00 93.33 220.00 104.44 240.00 115.56 260.00 126.67 280.00 137.78 300.00 148.89

Πίνακες αληθείας λογικών τελεστών

Συσχετιστικοί Τελεστές x==y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx=y ΔΙΑΦΟΡΕΤΙΚΑ 0 x!=y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx<>y ΔΙΑΦΟΡΕΤΙΚΑ 0 x>y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx>y ΔΙΑΦΟΡΕΤΙΚΑ 0 x>=y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx>=y ΔΙΑΦΟΡΕΤΙΚΑ 0 x<y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx<y ΔΙΑΦΟΡΕΤΙΚΑ 0 x<=y ΕΠΙΣΤΡΕΦΕΙ 1 ΑΝx<=y ΔΙΑΦΟΡΕΤΙΚΑ 0

Λογικοί Τελεστές x&&y ΕΠΙΣΤΡΕΦΕΙ ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ x AND y x y ΕΠΙΣΤΡΕΦΕΙ ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ x OR y!x ΕΠΙΣΤΡΕΦΕΙ ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΤΗΣ NOT(x )

Τελεστές πράξεων με bit Χ>>Υ ΟΛΙΣΘΗΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΤΟΥ X KATA Y ΘΕΣΕΙΣ ΠΡΟΣ ΤΑ ΔΕΞΙΑ Π.χ. x= 1011, y=3 TOTE x>>3 = 0001 Χ<<Υ ΟΛΙΣΘΗΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΤΟΥ X KATA Y ΘΕΣΕΙΣ ΠΡΟΣ ΤΑ AΡΙΣΤΕΡΑ Π.χ. x= 1011, y=2 TOTE x<<y = 1100 Χ^Υ ΛΟΓΙΚΟ XOR ΣΕ ΚAΘΕ ΒΙΤ Π.χ. x= 1011, y=0110 TOTE x^y = 1101 ~ Χ ΣΥΜΠΛΗΡΩΜΑ ΩΣ ΠΡΟΣ 1 Π.χ. x= 1011, ~ x =0100 Χ&Υ ΛΟΓΙΚΟ AND ΣΕ ΚAΘΕ ΒΙΤ Π.χ. x= 1011, y=0110 TOTE x&y = 0010 Χ Υ ΛΟΓΙΚΟ OR ΣΕ ΚAΘΕ ΒΙΤ Π.χ. x= 1011, y=0110 TOTE x y = 1111

Τελεστής Συνθήκης? Z=(A>B)?A:B ; ΣΗΜΑΙΝΕΙ : If (A>B) Z=A; else Z=B;

Τελεστής sizeof Η C έχει έναν εσωτερικό τελεστή, τον sizeof, που δίνει το μέγεθος κάποιων ορισμάτων σε bytes. Αυτό θα το δούμε καλύτερα μ ένα παράδειγμα: sizeof (int) = 2 sizeof (char) = 1 sizeof (long) = 4 sizeof (double) = 8

Προτεραιότητα τελεστών

Προτεραιότητα τελεστών Στη C μπορεί σε μια παράσταση να συνυπάρχουν αριθμητικοί και λογικοί τελεστές. Όσο πιο πάνω είναι μία ομάδα τελεστών, τόσο μεγαλύτερη προτεραιότητα έχει έναντι μιας άλλης ομάδας, π.χ. η ομάδα πολλαπλασιασμός/διαίρεση/υπόλοιπο έχει μεγαλύτερη προτεραιότητα από την ομάδα πρόσθεση/αφαίρεση. Ο προηγούμενος πίνακας δείχνει την προτεραιότητα των τελεστών αλλά και τη φορά εκτέλεσης τους στην περίπτωση που υπάρχουν πολλοί με την ίδια προτεραιότητα. Οι τελεστές ανάμεσα σε δύο έντονες οριζόντιες γραμμές έχουν την ίδια προτεραιότητα. Π.χ. ο πολλαπλασιασμός, η διαίρεση, και το υπόλοιπο (%) έχουν την ίδια προτεραιότητα.

Μετατροπή τύπων - Μετατροπή τύπου γίνεται όταν μια τιμή τύπου x πρέπει να γίνει συμβατή με μεγέθη τύπου y - Aν ένα από τα ορίσματα μιας πράξης που θέλει ορίσματα ίδιου τύπου, είναι long double, double, float, long, unsigned, int (με αυτή τη σειρά) τότε και το άλλο όρισμα προάγεται στον ίδιο τύπο -Μετατροπές γίνονται και όταν μια τιμή ανατίθεται σε μεταβλητή μικρότερου μεγέθους οπότε χάνεται μέρος των δεδομένων (τα πιο σημαντικά ψηφία). Παράδειγμα: int i=256; (o i καταλαμβάνει 2 bytes, άρα αναπαρίσταται ως 0000 0001 0000 0000, το οποίο γράφεται σε δεκαεξαδική μορφή ως 0x0100) char c; c=i; (o c καταλαμβάνει 1 byte) (ο c γίνεται ίσος με τα 8 λιγότερο σημαντικά ψηφία του i δηλαδή c=0x00) i=c; (To i γίνεται ίσο με c, δηλαδή 0) - Για όλες τις δυνατές μετατροπές τύπων της C θα πρέπει να ανατρέξετε στο εγχειρίδιο.

Μετατροπή τύπων με casting Μετατροπές τύπων μπορεί να γίνουν και από τον προγραμματιστή με casting (με void μπορεί να αγνοηθεί η τιμή που επιστρέφει μια συνάρτηση) double d=(double)10/3; /* d is 3.33 */ double d=10/3; /* d is 3.0 */ (void) foo(); /* ignorereturn value */

α) getchar( ) και putchar( ): Η συνάρτηση getchar() δεν έχει όρισμα. Παίρνει ένα χαρακτήρα από το πληκτρολόγιο και τον μεταφέρει στο πρόγραμμα που πρόκειται να εκτελεστεί. Η συνάρτηση αυτή χρειάζεται <Enter> για να πάρει τον χαρακτήρα. Η συνάρτηση putchar() δέχεται ένα όρισμα. Παίρνει ένα χαρακτήρα από το πρόγραμμα που εκτελείται και τον εμφανίζει στην οθόνη. Π.χ. το παρακάτω πρόγραμμα δέχεται ένα χρακτήρα και οθόνη. #include <stdio.h> main() char ch; ch=getchar(); putchar(ch); Οι συναρτήσεις εισόδου/εξόδου απλού χαρακτήρα τον εκτυπώνει στην

Οι συναρτήσεις εισόδου/εξόδου απλού χαρακτήρα α) getch ( ) και getche( ): -Οι συναρτήσεις αυτές δεν έχουν ορίσματα -Επιστρέφουν τον χαρακτήρα που διαβάζουν χωρίς να χρειάζεται <Enter> για να πάρουν τον χαρακτήρα -Η συνάρτηση getch() δεν εμφανίζει τον χαρακτήρα στην οθόνη - Η συνάρτηση getche() εμφανίζει τον χαρακτήρα στην οθόνη

Διεύθυνση Μεταβλητής Διεύθυνση μιας μεταβλητής είναι η διεύθυνση του πρώτου byte των θέσεων μνήμης που δεσμεύει η μεταβλητή. Μέγεθος μιας μεταβλητής είναι ο αριθμός των byte που δεσμεύει αυτή η μεταβλητή και καθορίζεται από τον τύπο της. Ο τελεστής & επιστρέφει ένα ακέραιο αριθμό, ο οποίος προσδιορίζει τη διεύθυνση μιας μεταβλητής.

Μεταβλητές τύπου αλφαριθμητικού Eνα αλφαριθμητικό ορίζεται στη C σαν ένα σύνολο χαρακτήρων μέσα σε διπλά εισαγωγικά "". Στη μνήμη ένα string αποθηκεύεται σε συνεχόμενες θέσεις μνήμης (μία για κάθε χαρακτήρα) ξεκινώντας από μια συγκεκριμένη διεύθυνση. Ο μεταγλωττιστής της C τοποθετεί ένα τερματικό χαρακτήρα \0 στο τέλος κάθε συνόλου χαρακτήρων. Ο χαρακτήρας αυτός σηματοδοτεί το τέλος της συμβολοσειράς.

Σταθερές Μπορούμε να δηλώσουμε μεταβλητές στις οποίες να δώσουμε αρχική τιμή χωρίς όμως να μπορούμε να μεταβάλλουμε το περιεχόμενο τους: const int a=8; const float c=4.6; Δηλώνουμε δυο μεταβλητές μόνο για ανάγνωση a και c, με αρχικές τιμές 8 και 4.6 αντίστοιχα. Στις μεταβλητές αυτές δεν επιτρέπεται να αναθέσουμε αργότερα άλλες τιμές. Η χρήση τέτοιου είδους μεταβλητών είναι πολύ περιορισμένη.

Ένα ακόμη πιο σύνθετο πρόγραμμα #include <stdio.h> main() int a,b,meg; float mo; printf("dose 2 diaforetikous akeraious:"); scanf("%d %d",&a,&b); /*YPOLOGISMOI KAI EKTYPOSEIS*/ if (a>b) meg=a; if (b>a) meg=b; mo=(a+b)/2.0; printf("\n\no megaluteros einai:%d",meg); printf("\n\no mesos oros einai:%5.1f",mo);

Ένα ακόμη πιο σύνθετο πρόγραμμα ΕΚΤΕΛΕΣΗ Dose 2 diaforetikous akeraious:13 19 O megaluteros einai:19 O mesos oros einai: 16.0

Δομές ελέγχου τύπου if...else Η εντολή if συντάσσεται με 3 τρόπους: α) ως απλή πρόταση if β) ως συνδυασμός if-else γ) ως συνδυασμός if- else if α) Η απλή πρόταση if Η μορφή της εντολής if είναι σχετικά απλή: περιέχει μια έκφραση σχέσης και αν η έκφραση σχέσης είναι αληθής, τότε εκτελούνται οι εντολές που προβλέπονται στην περίπτωση που η εντολή if είναι αληθής. Εάν η έκφραση σχέσης είναι ψευδής, τότε οι εντολές αυτές δεν εκτελούνται.

Δομές ελέγχου τύπου if...else Η εντολή if (συνθήκη) εντολές.. ονομάζεται εντολή block if. Αν η λογική έκφραση είναι αληθής, οι εντολές ανάμεσα στα άγκιστρα θα εκτελεστούν όλες διαδοχικά με τη σειρά με την οποία έχουν συγγραφεί. Σε διαφορετική περίπτωση ολόκληρη η ομάδα εντολών αγνοείται.

Δομές ελέγχου τύπου if...else β) Ο συνδυασμός if-else Η σύνταξη της εντολής φαίνεται στις παρακάτω μορφές: If (συνθήκη)... Εκτελέσιμη εντολή 1α Εκτελέσιμη εντολή 1β... else... Εκτελέσιμη εντολή 2α Εκτελέσιμη εντολή 2β...

Δομές ελέγχου τύπου if...else Οι εκτελέσιμες εντολές 1α, 1β,...είναι τμήματα μιας ομάδας εντολών που εκτελούνται όταν η έκφραση είναι αληθής, ενώ οι εκτελέσιμες εντολές 2α, 2β,... είναι τμήματα μιας ομάδας εντολών που εκτελούνται όταν η έκφραση είναι ψευδής. Έτσι εάν η έκφραση είναι ψευδής, ο έλεγχος μεταβιβάζεται στη δεύτερη ομάδα.

Δομές ελέγχου τύπου if...else γ) Ο συνδυασμός if... else if Η δομή ελέγχου if else if μεταβιβάζει τον έλεγχο του προγράμματος βήμα προς βήμα μέσα απο μια σειρά ομάδων εντολών. Ο έλεγχος σταματά στην έκφραση σχέσης που είναι αληθής και εκτελεί την ομάδα εντολών που βρίσκεται εκεί. Αφότου εκτελεστεί η ομάδα εντολών ο έλεγχος μεταβένει στο τέλος της δομής ελέγχου. Η μορφή της δομή ελέγχου if else if είναι η ακόλουθη:

Δομές ελέγχου τύπου if...else if (έκφραση σχέσης 1) ομάδα εντολών 1 else if(έκφραση σχέσης 2) ομάδα εντολών 2 else if(έκφραση σχέσης n) ομάδα εντολών n else Τελική ομάδα εντολών

Το ίδιο με χρήση του if... else #include <stdio.h> main() int a,b,meg; float mo; printf("dose 2 diaforetikous akeraious:"); scanf("%d %d",&a,&b); /*YPOLOGISMOI KAI EKTYPOSEIS*/ if (a>b) meg=a; else meg=b; mo=(a+b)/2.0; printf("\n\no megaluteros einai:%d",meg); printf("\n\no mesos oros einai:%5.1f",mo);

Δομή ελέγχου switch... case Η πρόταση switch-case ελέγχει αν η τιμή μιας ακεραίας παράστασης ισούται με συγκεκριμένες σταθερές ( και μόνο σταθερές). Το συντακτικό της είναι το εξής: switch (έκφραση σχέσης 1) case σταθερά 1 : εντολή 1α εντολή 1β... break; case σταθερά 2 : εντολή 2α εντολή 2β.... break;

Δομή ελέγχου switch... case case σταθερά 3 : εντολή 3α εντολή 3β.... break; default: εντολές break;

Παράδειγμα της switch #include <stdio.h> main() int imera; printf("doste imera tis evdomadas (1-7), 1 gia Deutera kai 7 gia Kuriaki:"); scanf("%d",&imera); switch (imera) case 1: printf("\ndeutera");break; case 2: printf("\ntriti");break; case 3: printf("\ntetarti");break; case 4: printf("\npempti");break; case 5: printf("\nparaskeui");break; case 6: printf("\nsavvato");break; case 7: printf("\nkuriaki");break; default: printf("\nlathos");break;

Switch-παρατηρήσεις H πρόταση switch-case ελέγχει αν η τιμή μιας ακεραίας παράστασης ισούται με συγκεκριμένες σταθερές. Ανάλογα με τη σταθερά με την οποία ισούται η παράσταση, εκτελούνται οι προτάσεις από την case της συγκεκριμένης σταθεράς μέχρι την break. Οι προτάσεις κάτω από την default εκτελούνται μόνο όταν η παράσταση δεν ισούται με κάποια από τις σταθερές των προτάσεων case. H χρήση της default είναι προαιρετική. Εάν δεν βρεθεί κανένα ταίριασμα και δεν υπάρχει default, δεν εκτελείται τίποτα.

Switch-παρατηρήσεις switch (παράσταση) case σταθερά1: πρόταση; case σταθερά2: πρόταση;... break; default: πρόταση; break; Όταν βρεθεί ένα ταίριασμα, εκτελούνται οι προτάσεις που σχετίζονται με αυτή τη περίπτωση-case, μέχρι να συναντηθεί μια break. H εντολή break μεταφέρει τον έλεγχο του προγράμματος στην πρόταση αμέσως μετά την switch. Αν επιλεχθεί ως τιμή της παράστασης η σταθερά1 θα εκτελεσθούν οι προτάσεις αυτής αλλά και της σταθεράς2 αφού δεν υπάρχει break στο τέλος της σταθεράς1.

Εντολή while H εντολή while εκτελείται μια πρόταση ή ένα σύνολο προτάσεων όσο μια λογική παράσταση είναι αληθής. while (συνθήκη) πρόταση; while (συνθήκη) πρόταση; πρόταση; Συνθήκη είναι η συνθήκη ελέγχου που χρησιμοποιείται προκειμένου να προσδιοριστεί αν ο βρόχος θα πρέπει να συνεχίσει για ένα ακόμα κύκλο O έλεγχος της συνθήκης γίνεται πάντα στην αρχή του βρόχου επανάληψης

Παράδειγμα της while #include <stdio.h> main() int a; a=0; while (a<10) printf("o broxos ekteleitai %d fora \n",a+1); ++a; printf("teleiose i ektelesi tou broxou \n\n");

Εκτέλεση O broxos ekteleitai 1 fora O broxos ekteleitai 2 fora O broxos ekteleitai 3 fora O broxos ekteleitai 4 fora O broxos ekteleitai 5 fora O broxos ekteleitai 6 fora O broxos ekteleitai 7 fora O broxos ekteleitai 8 fora O broxos ekteleitai 9 fora O broxos ekteleitai 10 fora Teleiose i ektelesi tou broxou

H επαναληπτική εντολή do-while Ο βρόχος do επαναλαμβάνει την εντολή ή τις εντολές του όσο η λογική παράσταση είναι αληθής. Σταματά την επανάληψη όταν η έκφραση γίνει ψευδής. Συντάσσεται ως εξής: do πρόταση; while (συνθήκη); do πρόταση; πρόταση; while (συνθήκη); Συνθήκη είναι η συνθήκη ελέγχου που χρησιμοποιείται προκειμένου να προσδιοριστεί αν ο βρόχος θα πρέπει να συνεχίσει για ένα ακόμα κύκλο O έλεγχος της συνθήκης γίνεται πάντα στo τέλος του βρόχου επανάληψης, επομένως ο βρόχος θα εκτελεστεί τουλάχιστον 1 φορά

H επαναληπτική εντολή for Χρησιμοποιεί ένα μετρητή επαναλήψεων. -Ο μετρητής αυτός αρχικοποιείται πριν την 1 η επανάληψη του βρόχου σύμφωνα με την εκτελέσιμη πρόταση 1. -Ο μετρητής αυξάνεται μετά από κάθε επανάληψη του βρόχου σύμφωνα με την εκτελέσιμη πρόταση 2. -Ο βρόχος επανάληψης εκτελείται μόνο αν ικανοποιείται η λογική παράσταση. Συντάσσεται ως εξής: Απλή μορφή: for (εκτελέσιμη_πρόταση1; λογική παράσταση; εκτελέσιμη πρόταση2) πρόταση ; Σύνθετη μορφή: for (εκτελέσιμη_πρόταση1; λογική παράσταση; εκτελέσιμη πρόταση2) πρόταση ; πρόταση ;...

Οι εντολές break - continue Γενικά, οι προτάσεις break και continue χρησιμοποιούνται γιά την παράκαμψη δομών ελέγχου. Η πρόταση break εφαρμόζεται σε δομές επαναλήψεων και αποφάσεων και έχει ως αποτέλεσμα την συνέχεια της εκτέλεσης του προγράμματος στη πρώτη πρόταση μετά το τέλος της δομής. Η πρόταση continue εφαρμόζεται σε δομές επαναλήψεων και έχει ως αποτέλεσμα την συνέχεια της εκτέλεσης από την επόμενη επανάληψη.

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

Γενικευμένο Παράδειγμα #include <stdlib.h> #include <stdio.h> void itob(int n, char s[], int b); void reverse(char s[]); main(void) char buffer[50], calc; int i, akeraios; do printf("thelete na sunexisete? Y/N \n"); scanf ("%c",&calc); if ((calc=='n') (calc=='n')) break; printf("dose enan akeraio: \n"); scanf ("%10d",&akeraios);

Γενικευμένο Παράδειγμα if ( akeraios >= 0 && akeraios <= 32767 ) for ( i = 2; i <= 16; ++i ) itob(akeraios, buffer, i); printf("decimal %d in base %-2d : %s\n", akeraios, i, buffer); else printf("cannot perform the calculation \n"); while(1);

Γενικευμένο Παράδειγμα void itob(int n, char s[], int b) static char digits[] = "0123456789ABCDEF"; int i=0; do s[i++] = digits[n % b]; while ((n /= b) > 0); s[i] = '\0'; reverse(s);

Γενικευμένο Παράδειγμα void reverse(char s[]) int c, i, j; for ( i = 0, j = strlen(s)-1; i < j; i++, j--) c = s[i]; s[i] = s[j]; s[j] = c;

Εκτέλεση Dose enan akeraio: 1345 Decimal 1345 in base 2 : 10101000001 Decimal 1345 in base 3 : 1211211 Decimal 1345 in base 4 : 111001 Decimal 1345 in base 5 : 20340 Decimal 1345 in base 6 : 10121 Decimal 1345 in base 7 : 3631 Decimal 1345 in base 8 : 2501 Decimal 1345 in base 9 : 1754 Decimal 1345 in base 10 : 1345 Decimal 1345 in base 11 : 1013 Decimal 1345 in base 12 : 941 Decimal 1345 in base 13 : 7C6 Decimal 1345 in base 14 : 6C1 Decimal 1345 in base 15 : 5EA Decimal 1345 in base 16 : 541

Eντολή goto / NA AΠΟΦΕΥΓΕΤΑΙ!!! Η εντολή goto μεταφέρει τον έλεγχο σε μια ετικέτα. Μια ετικέτα (label) είναι ένα έγκυρο όνομα το οποίο ακολουθείται από άνω-κάτω τελεία (:).

Eντολή goto / NA AΠΟΦΕΥΓΕΤΑΙ!!! #include <stdio.h> main() char calc='y'; int a, sum=0; arxi: printf("thelete nasunexisete; \n"); scanf ("%c", &calc); if (calc=='y') printf("doste enan akeraio arithmo: \n"); scanf ("%d",&a); sum=sum+a; printf("to trexon athroisma einai to %d \n",sum); goto arxi;

Η έννοια του Μετρητή Πόσες φορές πρέπει να διπλασιαστεί ένας ακέραιος με αρχική τιμή 1 για να ξεπεράσει το 100; #include <stdio.h> main() int i=0, a=1; while (a<=100) a=2*a; i++; printf("prepei na diplasiasoume %d fores to a me arxiki timi 1 gia na xeperasei to 100", i);

Η έννοια του Αθροιστή Υπολογίστε το άθροισμα S=1+4+7+...+100 #include <stdio.h> main() int i=1; long s=0; do s+=i; i+=3; while (i<=100); printf("to athroisma S=1+4+7+...+100einai %d", s);

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

Υλοποίηση #include <stdio.h> main() /* Dilwseis metavlitwn */ int a; int meg=0, mik, p=0, s=0; float mo; /* Epanalipsi */ do printf("\n Eisagogi thetikou akeraiou (0 gia telos):"); scanf("%d", &a); if (mik<=0) mik=a;

Υλοποίηση if (a>0) /* An dothike akeraios arithmos */ p++; s+=a; if (meg<a) meg=a; if (mik>a) mik=a; while (a>0);

Υλοποίηση if (p>0) mo = (float) s / p; printf("\n Plithos:%10d", p); printf("\n Athroisma:%10d",s); printf("\n Megaluteros:%10d",meg); printf("\n Mikroteros:%10d",mik); printf("\n Mesos Oros:%.2f",mo); else printf("\ndendothike kanenas arithmos");

Η βιβλιοθήκη math.h

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Ορισμός-Δήλωση πίνακα Πίνακας (array) είναι ένα σύνολο μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται για να διευκολύνει την αποθήκευση και την επεξεργασία μεγάλων ποσοτήτων δεδομένων που έχουν σχέση μεταξύ τους. Για παράδειγμα, ένας πίνακας μπορεί να περιλαμβάνει μια λίστα από αριθμούς, όπως τις βαθμολογίες που έχετε συγκεντρώσει σε όλα τα μαθήματα κάθε εξάμηνου. Όλοι οι αριθμοί στο παραπάνω παράδειγμα αντιπροσωπεύουν βαθμολογίες μαθημάτων και για αυτό το λόγο είναι ίδιου τύπου.

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Δήλωση: Τύπος δεδομένων όνομα_πίνακα[n]; Εισαγωγή: for (i=0; i<n; i++) printf( \nεισαγωγή %d στοιχείου:, i); scanf( %x, &όνομα_πίνακα[i]); Εκτύπωση: for (i=0; i<n; i++) printf( \n %d στοιχείο: %x, i, όνομα_πίνακα[i]);

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Να γραφεί πρόγραμμα στο οποίο αφού εισάγονται 2 μονοδιάστατοι πίνακες 10 στοιχείων ο καθένας να υπολογίζεται ο πίνακας άθροισμα και να εκτυπώνεται.

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ #include <stdio.h> #define N 10 main() /* Dilwseis metavlitwn */ int a[n], b[n], x[n]; int i; /* Eisagwgi stoixeiwn */ for (i=0; i<n; i++) printf("\neisagwgitou %d stoixeiou toy pinakaa:", i); scanf("%d", &a[i]); for (i=0; i<n; i++) printf("\neisagwgitou %d stoixeiou toy pinakab:", i); scanf("%d", &b[i]);

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ /* Ypologismos Athroismatos */ for (i=0; i<n; i++) x[i] = a[i] + b[i]; /* Ektupwsi apotelesmatos */ for (i=0; i<n; i++) printf("\n Stoixeio %d = %d", i, x[i]);

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σε έναν μονοδιάστατο πίνακα Ν στοιχείων να ευρεθεί το μέγιστο (ή ελάχιστο) στοιχείο του καθώς και η θέση στην οποία βρέθηκε.

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ #include <stdio.h> #define N 10 main() /* Dilwseis metavlitwn */ int p[n]; int meg, thesi, i; /* Eisagwgi stoixeiwn */ for (i=0; i<n; i++) printf("\neisagwgitou %d stoixeiou toy pinakap:", i); scanf("%d", &p[i]);

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ /* Arxikes times */ thesi= 0; meg = p[thesi]; for (i = 1; i < N; i++) if (meg < p[i]) meg = p[ i ]; thesi= i; /* Ektupwseis */ printf("\n\nthesi megistou stoixeiou =%5d", thesi); printf("\n\nmegisto stoixeio=%10d\n", p[thesi] );

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Πίνακες n γραμμών και m στηλών πλήθος στοιχείων= n x m. Κάθε στοιχείο δίνεται από τις συντεταγμένες της θέσης του, δηλ. aij σημαίνει ότι βρίσκεται στην i γραμμή και j στήλη. Μπορούν να θεωρηθούν σαν ένωση m μονοδιάστατων πινάκων n στοιχείων ο καθένας.

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Δήλωση: Τύπος δεδομένων όνομα_πίνακα[n][μ]; Εισαγωγή: for (i=0; i<n; i++) for (j=0; j<μ; j++) printf( \nεισαγωγή %d-%d στοιχείου:, i, j); scanf( %x, &όνομα_πίνακα[i][j]); Εκτύπωση: for (i=0; i<n;i++) printf( \n ); /* Αλλαγή γραμμής */ for (j=0; j<μ; j++) printf( %x, όνομα_πίνακα[i][j]);

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Να γίνει πρόγραμμα το οποίο να προσθέτει δύο δεδομένους πίνακες 5x3και στην συνέχεια να εκτυπώνει τον πίνακα αποτέλεσμα.

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ #include <stdio.h> #define N 5/* Arithmos grammwn */ #definem 3/* Arithmos sthlwn */ main() /* Dilwseis metavlitwn */ int a[n][m], b[n][m], x[n][m]; int i, j ; for (i=0; i<n; i++) for (j=0; j<m; j++) printf("\neisagwgitoy %d-%d stoixeiou toy pinaka A:", i,j); scanf("%d", &a[i][j]);

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ for (i=0; i<n; i++) for (j=0; j<m; j++) printf("\neisagwgitoy %d-%d stoixeiou toy pinaka B:", i,j); scanf("%d", &b[i][j]); /* Ypologismos toy athroismatos */ for (i=0; i<n; i++) for (j=0; j<m; j++) x[i][j] = a[i][j] + b[i][j];

ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ /* Ektupwsi toy apotelesmatos */ for (i=0; i<n; i++) printf("\n"); for (j=0; j<m; j++) printf("%10d", x[i][j]);