σημειώσεις θεωρίας 1

12
1. Εμθάνιζη μηνςμάηυν ζηην οθόνη Ας δούμε ένα παράδειγμα προγράμμαηος C++ o Παπάδειγμα 1 : #include <iostream.h> void main(void) { int age = 29; cout << "my age is " << age << " years old" << endl; } Αλαιύνληαο ην πξόγξακκα έρνπκε ηα παξαθάησ #include <iostream.h> νδεγεί ην κεηαγισηηηζηή (compiler) λα βξεη ηα πξόηππα γηα ηηο ζπλαξηήζεηο πνπ ρξεζηκνπνηνύληαη. Τν πξόηππν εδώ είλαη ην <iostream.h>. void main(void) όλνκα ηεο θύξηαο ζπλάξηεζεο { } αγθύιεο πνπ νξίδνπλ ην ζώκα ηεο ζπλάξηεζεο int age εληνιή δήισζεο age = 29 εληνιή αλάζεζεο cout << "Η ειηθία κνπ είλαη " << age << " ρξνλώλ" << endl; εληνιή ζπλάξηεζεο. Τν παξαπάλω πξόγξακκα παξάδεηγκα 1 εκθαλίδεη ζηελ νζόλε ην εμήο κήλπκα: «my age is 29 years old» o Παπάδειγμα 2 #include <iostream.h> #include <iomanip.h> void main(void) { cout << "This is line one\nThis is line two"<<endl; cout<<1001<< endl; cout << "My favorite number is" << 1001<< endl; cout << "My favorite number is" << setw(4) << 1001 << endl; cout << "My favorite number is" << setw(6) << 1001 << endl; } Όηαλ εθηειείηαη ην παξάδεηγκα 2 εκθαλίδνληαη ζηελ νζόλε ηα παξαθάηω This is line one This is line two My favorite number is1001 My favorite number is1001 My favorite number is 1001 Η ζπλάξηεζε « cout » εκθαλίδεη ζηελ νζόλε κελύκαηα θαη ρξεζηκνπνηεί σο πξόηππν ην <iostream.h>. Μέζα ζηα “ ” εηζάγνπκε ηα αιθαξηζκεηηθά πνπ ζέινπκε λα εκθαλίζνπκε. Η ζπλάξηεζε setw( ) νξίδεη ην πεδίν εκθάληζεο θαη ρξεζηκνπνηεί σο πξόηππν ην <iomanip.h>

Transcript of σημειώσεις θεωρίας 1

Page 1: σημειώσεις θεωρίας 1

1. Εμθάνιζη μηνςμάηυν ζηην οθόνη

Ας δούμε ένα παράδειγμα προγράμμαηος C++ o Παπάδειγμα 1 :

#include <iostream.h>

void main(void)

{

int age = 29;

cout << "my age is " << age << " years old" << endl;

}

Αλαιύνληαο ην πξόγξακκα έρνπκε ηα παξαθάησ

#include <iostream.h> ⇒ νδεγεί ην κεηαγισηηηζηή (compiler) λα βξεη ηα πξόηππα γηα

ηηο ζπλαξηήζεηο πνπ ρξεζηκνπνηνύληαη. Τν πξόηππν εδώ είλαη ην <iostream.h>.

void main(void) ⇒ όλνκα ηεο θύξηαο ζπλάξηεζεο { } ⇒ αγθύιεο πνπ νξίδνπλ ην

ζώκα ηεο ζπλάξηεζεο

int age ⇒ εληνιή δήισζεο age = 29 ⇒ εληνιή αλάζεζεο

cout << "Η ειηθία κνπ είλαη " << age << " ρξνλώλ" << endl; ⇒ εληνιή ζπλάξηεζεο.

Τν παξαπάλω πξόγξακκα παξάδεηγκα 1 εκθαλίδεη ζηελ νζόλε ην εμήο κήλπκα: «my age is 29

years old»

o Παπάδειγμα 2

#include <iostream.h>

#include <iomanip.h>

void main(void)

{

cout << "This is line one\nThis is line two"<<endl;

cout<<1001<< endl;

cout << "My favorite number is" << 1001<< endl;

cout << "My favorite number is" << setw(4) << 1001 << endl;

cout << "My favorite number is" << setw(6) << 1001 << endl;

}

Όηαλ εθηειείηαη ην παξάδεηγκα 2 εκθαλίδνληαη ζηελ νζόλε ηα παξαθάηω

This is line one

This is line two

My favorite number is1001

My favorite number is1001

My favorite number is 1001

Η ζπλάξηεζε « cout » εκθαλίδεη ζηελ νζόλε κελύκαηα θαη ρξεζηκνπνηεί σο πξόηππν ην

<iostream.h>.

Μέζα ζηα “ ” εηζάγνπκε ηα αιθαξηζκεηηθά πνπ ζέινπκε λα εκθαλίζνπκε.

Η ζπλάξηεζε setw( ) νξίδεη ην πεδίν εκθάληζεο θαη ρξεζηκνπνηεί σο πξόηππν ην <iomanip.h>

Page 2: σημειώσεις θεωρίας 1

Ο ραξαθηήξαο „\n‟ αιιάδεη γξακκή. Τν ίδην θάλεη θαη ην „endl‟.

2. Χαπακηήπερ πος ελέγσοςν ηη θέζη ηος κέπζοπα

Χαρακτήρας Σκοπός

\b Πηγαίνει ηον κέρζορα ένα διάζηημα πίζω

\n Νέα γραμμή

\t Μεηακινεί ηον κέρζορα ένα διάζηημα οριζόνηια

\v Μεηακινεί ηον κέρζορα ένα διάζηημα κάθεηα

Endl Αλλάζει γραμμή

3. Αποθήκεςζη πληποθοπιών ζε μεηαβληηέρ

Σηε C++ ρξεζηκνπνηείηαη ε αθόινπζε κνξθή:

Τύπορ_Μεηαβληηήρ Όνομα_Μεηαβληηήρ

Οη κεηαβιεηέο έρνπλ ηελ παξαθάησ κνξθή:

Τύπορ Τιμέρ πος αποθηκεύονηαι

char -128 έσο 127, γξάκκαηα ηνπ αιθαβήηνπ

int -32768 έσο 32767, αθέξαηνη αξηζκνί

unsigned 0 έσο 65535

long -2147483648 έσο 2147483647, θπζηθνί

αξηζκνί

float -3.4*1038 έσο 3.4*1038

double -1.7*10308 έσο 1.7*10308

o Παπάδειγμα 3

#include <iostream.h>

void main(void)

{

int age = 32;

float salary = 25000.75;

long distance_to_the_moon = 238857;

cout << "The employee is " << age << " years old" << endl;

cout << "The employee makes $" << salary << endl;

cout << "The moon is " << distance_to_the_moon << " miles from the earth" << endl;

}

Σηελ νζόλε εκθαλίδνληαη ηα εμήο:

The employee is 32 years old

The employee makes $25000.75

The moon is 238857 miles from the ear

Page 3: σημειώσεις θεωρίας 1

4. Ανάγνυζη δεδομένυν από ηο πληκηπολόγιο\

Η ζπλάξηεζε πνπ ρξεζηκνπνηείηαη είλαη ε παξαθάησ: cin >> κεηαβιεηή

#include <iostream.h>

void main(void)

{

char letter; // Tν γξάκκα δηαβάδεηαη από ην πιεθηξνιόγην

int number; // Ο αξηζκόο δηαβάδεηαη από ην πιεθηξνιόγην

long value; // Ο κεγάινο αξηζκόο δηαβάδεηαη από ην πιεθηξνιόγην

cout << "Type any character and press Enter: ";

cin >> letter;

cout << "The letter typed was " << letter << endl;

cout << "Type your favorite number and press Enter: ";

cin >> number;

cout << "Your favorite number is " << number << endl;

cout << "Type a large number and press Enter: ";

cin >> value;

cout << "The number you typed was " << value << endl;

}

Σην παξαπάλσ πξόγξακκα δεηνύληαη έλα γξάκκα, έλαο αξηζκόο, θαη έλαο κεγάινο αξηζκόο

θαη ζηε ζπλέρεηα εκθαλίδνληαη ζηελ νζόλε.

Παξαηεξήζακε επίζεο ηε γξακκή «// Ο αξηζκόο δηαβάδεηαη από ην πιεθηξνιόγην ». Σηελ

πξαγκαηηθόηεηα είλαη ζρόιην πνπ εηζάγνπκε ζηνλ θώδηθα ώζηε λα ζπκόκαζηε ηη εληνιέο

έρνπκε ρξεζηκνπνηήζεη. Πξηλ από ζρόιην ρξεζηκνπνηνύκε ηηο δύν θαζέηνπο ( // ).

5. Εκηέλεζη απλών απιθμηηικών ππάξευν Η C++ ρξεζηκνπνηεί ηα παξαθάησ ζύκβνια γηα αξηζκεηηθέο πξάμεηο

+ Πξόζζεζε

- Αθαίξεζε

* Πνιιαπιαζηαζκόο

/ Δηαίξεζε

Τν επόκελν πξόγξακκα δείρλεη κηα ζεηξά απιώλ πξάμεσλ

o Παπάδειγμα 4

void main(void)

{

float cost = 15.50; // Tν θόζηνο ελόο πξάγκαηνο

float sales_tax = 0.06; // Ο θόξνο είλαη 6 ηνηο εθαηό

float amount_paid = 20.00; // Τν πνζό πνπ πιεξώλεη ν αγνξαζηήο

float tax, change, total; // Φόξνο, επηζηξεθόκελν πνζό θαη ηειηθό πιεξσηέν πνζό

tax = cost * sales_tax;

total = cost + tax;

change = amount_paid - total;

cout << "Item Cost: $" << cost << "\tTax: $" << tax << "\tTotal: $" << total << endl;

cout << "Customer change: $" << change << endl;

}

Page 4: σημειώσεις θεωρίας 1

6. Λήτη αποθάζευν από ηο ππόγπαμμα

Σύμβολο Έλεγσορ Παπάδειγμα

== Δύν κεηαβιεηέο είλαη ίζεο Score == 100

!= Δύν κεηαβιεηέο δελ είλαη

ίζεο

Old != Νew

> Η πξώηε κεηαβιεηή

κεγαιύηεξε ηεο δεύηεξεο

Cost>50

< Η πξώηε κεηαβιεηή

κηθξόηεξε ηεο δεύηεξεο

Cost<50

>= Η πξώηε κεηαβιεηή

κεγαιύηεξε ή ίζε ηεο

δεύηεξεο

Cost>=50

<= Η πξώηε κεηαβιεηή

κηθξόηεξε ή ίζε ηεο

δεύηεξεο

Cost<=50

o Η ενηολή if

Η ζύληαμε ηεο εληνιήο είλαη ε αθόινπζε

ιf( η_ζςνθήκη_είναι_αλήθεια ) ενηολή

Η εληνιή if ζπκπιεξώλεηαη από ηελ εληνιή else ζε πεξίπησζε πνπ ε ζπλζήθε δελ είλαη

αιεζήο.

ιf( η_ζςνθήκη_είναι_αλήθεια ) ενηολή

else

ενηολή

Πνιιέο θνξέο κεηά από κηα εληνιή if ή else ρξεηάδεηαη λα δώζνπκε έλα ζπλδπαζκό εληνιώλ.

Τόηε νη εληνιέο κπαίλνπλ κέζα ζε αγθύιεο {}.

o Παπάδειγμα 5

#include <iostream.h>

void main(void)

{

int test_score;

cout << "Type in the test score and press Enter: ";

cin >> test_score;

if (test_score >= 90)

{

cout << "Congratulations, you got an A!" << endl;

cout << "Your test score was " << test_score << endl;

}

else

{

cout << "You should have worked harder!" << endl;

cout << "You missed " << 100 - test_score <<" points " << endl;}}

Page 5: σημειώσεις θεωρίας 1

Μεξηθέο θνξέο κέζα ζε κηα εληνιή if ρξεηάδεηαη λα ηθαλνπνηνύληαη δπν ή πεξηζζόηεξεο

ζπλζήθεο ή κία από έλα ζπλδπαζκό. Τόηε ρξεζηκνπνηνύκε ηα ζύκβνια && ( AND), γηα ηελ

ηαπηόρξνλε ηθαλνπνίεζε ησλ ζπλζεθώλ ή ηα ζύκβνια || (OR), γηα ηελ ηθαλνπνίεζε ηεο κηαο

ή ηεο άιιεο ζπλζήθεο.

Η κνξθή ησλ εληνιώλ είλαη ε αθόινπζε:

If ( ( ζςνθήκη_1 == αλήθεια ) && (ζςνθήκη_2 == αλήθεια ) ) ενηολή

If ( ( ζςνθήκη_1 == αλήθεια ) || (ζςνθήκη_2 == αλήθεια ) ) ενηολή

Υπάξρεη πεξίπησζε πνπ ην πξόγξακκα ρξεηάδεηαη λα ειέγμεη πεξηζζόηεξεο από κία

ζπλζήθεο.

Τόηε ρξεζηκνπνηείηαη ε εληνιή else if. Αο δνύκε έλα παξάδεηγκα.

o Παπάδειγμα 7

#include <iostream.h>

void main(void)

{

int test_score;

cout << "Type in your test score and press Enter: ";

cin >> test_score;

if (test_score >= 90)

cout << "You got an A!" << endl;

else if (test_score >= 80)

cout << "You got a B!" << endl;

else if (test_score >= 70)

cout << "You got a C" << endl;

else if (test_score >= 60)

cout << "Your grade was a D" << endl;

else

cout << "You failed the test" << endl;

}

Switch

Η εληνιή switch καο επηηξέπεη λα θαηεπζύλνπκε ηε ξνή ηνπ πξνγξάκκαηνο πξνο κηα

ζπγθεθξηκέλε ζηαζεξή ηηκή αλάινγα κε ηελ ηηκή κηαο παξάζηαζεο.

Σπληάζζεηαη σο εμήο:

switch (κεηαβιεηή) {

case ζηαζεξή1:

εληνιή1;

εληνιή1α;

εληνιή1β;

Page 6: σημειώσεις θεωρίας 1

...

break;

case ζηαζεξή2:

εληνιή2;

...

break;

...

default:

εληνιή λ;

break;

}

Τν πξνεγνύκελν πξόγξακκα ζα κπνξνύζε λα γξαθηεί θαη κε ηελ εληνιή switch σο εμήο

o Παπάδειγμα 8

#include <iostream.h>

void main(void)

{

char grade = 'B';

switch (grade) {

case 'A': cout << "Congratulations on your A" << endl;

break;

case 'B': cout << "Not bad, a B is ok" << endl;

break;

case 'C': cout << "C‟s are only average" << endl;

break;

case 'D': cout << "D‟s are terrible" << endl;

break;

default: cout << "No excuses! Study harder!" << endl;

break;

} }

Η ενηολή goto

Η εληνιή έρεη ηε κνξθή: goto εηικέηα ζηο ππόγπαμμα ;

Επηβάιιεη ηελ εθηέιεζε εληνιήο ηνπ πξνγξάκκαηνο πνπ αθνινπζεί ηελ πξνζδηνξηδόκελε

εηηθέηα (label). Η εηηθέηα νξίδεηαη ζην κπινθ ησλ εληνιώλ πνπ ρξεζηκνπνηνύλ ηε goto. Οη

εηηθέηεο ζην πξόγξακκα νξίδνληαη γξάθνληαο έλα όλνκα θαη ζηε ζπλέρεηα ηνλ πξνζδηνξηζηή

‘:’.

Page 7: σημειώσεις θεωρίας 1

o Παπάδειγμα 9

#include <iostream.h>

void main(void)

{

int sum=0, x;

read x:

cout<<”x=”;

cin>>x;

if (x= =0) goto totals;

sum+=x;

goto readx;

totals:

cout<< “sum=”<<sum<<endl;

}

o Παπάδειγμα 10

#include <iostream.h>

void main(void)

{ int counter =0;

loop: counter++;

cout<< “counter:” <<counter<<endl;

if (counter<5)

goto loop;

cout<< “complete counter”<< counter<<endl;

}

7. Επανάλητη μίαρ ή πεπιζζοηέπυν ενηολών

Η ενηολή for

Η ζύληαμε είλαη ε εμήο

for ( Δώζιμο_απσικήρ_ηιμήρ; έλεγσορ; αύξηζη ) ενηολή

Σηα παξαθάησ παξαδείγκαηα βιέπνπκε πσο ιεηηνπξγεί ε εληνιή

o Παπάδειγμα 11

#include <iostream.h>

void main(void)

{

int count;

int ending_value;

Page 8: σημειώσεις θεωρίας 1

cout << "Type in the ending value and press Enter: ";

cin >> ending_value;

for (count = 0; count <= ending_value; count++)

cout << count << ' ';

}

o Παπάδειγμα 12

#include <iostream.h>

void main(void)

{

int count;

int total = 0;

for (count = 1; count <= 100; count++)

{

cout << "Adding " << count << " to " << total;

total = total + count;

cout << " yields " << total << endl;

} }

o Παπάδειγμα 13

#include <iostream.h>

void main(void)

{

char letter;

double value;

for (letter = 'A'; letter <= 'Z'; letter++)

cout << letter;

cout << endl;

for (value = 0.0; value <= 1.0; value += 0.1)

cout << value << ' ';

cout << endl;

}

Άιινο ηξόπνο γηα λα επαλαιακβάλνληαη εληνιέο είλαη ε εληνιή while.

Η ζύληαμε ηεο είλαη

while ( ζςνθήκη_είναι_αλήθεια ) ενηολή

o Παπάδειγμα 14

#include <iostream.h>

Page 9: σημειώσεις θεωρίας 1

void main(void)

{

int done = 0; // Οξίδεηαη ζε true όηαλ πξόθεηηαη γηα ην Y ην N

char letter;

while (! done)

{

cout << "\nType Y or N and press Enter to continue: ";

cin >> letter;

if ((letter == 'Y') || (letter == 'y'))

done = 1;

else if ((letter == 'N') || (letter == 'n'))

done = 1;

else

cout << “Type Y or N only” << endl; // invalid character

}

cout << "The letter you typed was " << letter << endl;

}

Αλ ζέινπκε έζησ θαη κηα θνξά λα εθηειεζηεί κηα εληνιή κέζα ζε κηα εληνιή while κπνξνύκε

λα ρξεζηκνπνηήζνπκε ηελ εμήο ζύληαμε.

do{

ενηολέρ} while ( ζςνθήκη_είναι_αληθήρ )

8. Ειζαγυγή ζηιρ ζςναπηήζειρ

Οη ζπλαξηήζεηο έρνπλ ηελ αθόινπζε κνξθή

Τύπορ Όνομα_ζςνάπηηζηρ ( παπάμεηποι )

{

δηλώζειρ_μεηαβληηών;

ενηολέρ;

}

Η ρξήζε κηαο ζπλάξηεζεο ζ‟ έλα πξόγξακκα πεξηιακβάλεη ηξεηο θάζεηο:

• Δήλυζη

• Οπιζμόρ

• Κλήζη

Σηε θάζε ηεο δήισζεο κίαο ζπλάξηεζεο, ιέκε ζην κεηαγισηηηζηή όηη ζα ρξεζηκνπνηήζνπκε

ζην πξόγξακκά καο ηε ζπλάξηεζε.

Σηε θάζε ηνπ νξηζκνύ πεξηγξάθνπκε ηε ιεηηνπξγία ηεο ζπλάξηεζεο (δει. γξάθνπκε ηνλ

θώδηθά ηεο).

Σηε θάζε ηεο θιήζεο ρξεζηκνπνηνύκε ηε ζπλάξηεζε (δει. εθηεινύκε ηνλ θώδηθά ηεο).

Όιεο νη ζπλαξηήζεηο ηειεηώλνπλ θαη επηζηξέθνπλ απηόκαηα ζηε δηαδηθαζία, από ηελ νπνία

θιήζεθαλ, όηαλ ζπλαληήζνπλ ην ηειεπηαίν ηνπο άγθηζηξν. Μαδί ηνπο επηζηξέθνπλ –

Page 10: σημειώσεις θεωρίας 1

ζπλήζσο – θαη κία ηηκή ε νπνία πεξηθιείεηαη ζηελ εληνιή return. Όηαλ όκσο δελ επηζπκνύκε

κία ζπλάξηεζε λα επηζηξέθεη ηηκή, ηόηε πξέπεη λα γξάςνπκε ηε δεζκεπκέλε ιέμε void αληί

γηα ηνλ ηύπν δεδνκέλσλ επηζηξνθήο.

Kλήζη ζςνάπηηζηρ

• κλήζη με ηιμή

(call by value)

athroisma(int x, int y)

{int

int z; // ηνπηθή κεηαβιεηή

z = x + y;

return z ;

}

// κλήση σσνάρτησης

c = athroisma(a,b);

• κλήζη με σπήζη δεικηών

(call using pointers)

void swap(int *pa, int *pb)

{

int temp ;

temp = *pa ;

*pa = *pb ;

*pb = temp ;

}

// θιήζε ζπλάξηεζεο

swap(&a, &b);

• κλήζη με αναθοπά

(call by reference)

void swap(int& x, int& y)

{

int temp ;

temp = x ;

x = y ;

y = temp ;

}

// θιήζε ζπλάξηεζεο

Page 11: σημειώσεις θεωρίας 1

swap(a, b);

Oη ζπλαξηήζεηο κπνξνύλ λα είλαη

• void show_message(void)

Η ζπλάξηεζε νύηε επηζηξέθεη νύηε δέρεηαη ηίπνηα

o Παπάδειγμα 15

#include <iostream.h>

void show_message(void)

{

cout << "Hello, I like C++" << endl;

}

void main(void)

{

cout << "About to call the function" << endl;

show_message();

cout << "Back from the function" << endl;

}

• void show_number(int value)

Η ζπλάξηεζε δελ επηζηξέθεη ηίπνηα αιιά δέρεηαη έλαλ αθέξαην.

o Παπάδειγμα 16

#include <iostream.h>

void show_number(int value)

{

cout << "The parameter's value is " << value << endl;

}

void main(void)

{ show_number(1);

show_number(1001);

show_number(-532);}

float average_value(int a, int b)

Η ζπλάξηεζε δέρεηαη δύν αθεξαίνπο θαη επηζηξέθεη έλα θπζηθό

o Παπάδειγμα 17

#include <iostream.h>

float average_value(int a, int b)

Page 12: σημειώσεις θεωρίας 1

{

return((a + b) / 2.0);

}

void main(void)

{

cout << "The average value is: " << average_value(5, 10) << endl;

}