ΣΥΝΘΕΤΕΣ ΑΛΥΤΕΣ ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΗ ΓΛΩΣΣΑ C

ΣΥΝΘΕΤΕΣ ΑΛΥΤΕΣ ΑΣΚΗΣΕΙΣ ΓΙΑ ΤΗ ΓΛΩΣΣΑ C
Γραψτε ένα προγραμμα με το ονομα last που τυπωνει τις τελευταιες n γραμμες από ένα αρχειο, οπου n κ το ονομα του αρχειου θα δινονται από παραμετρους εντολων εισοδου.

Γραψτε μια συναρτηση η οποια:1.Συγκρινει 2 συμβολοσειρες (strings) εάν είναι ισες. Εάν υπαρχει ισοτητα ,τοτε να επιστρεφεται το 0,αλλιως να επιστρεφει τον αριθμο της διαφορας τους.2.Βρισκει την πρωτη εμφανιση από έναν συγκεκριμενο χαρακτηρα σε μια δοσμένη συμβολοσειρα(string).Να επιστρεφει ένα δεικτη όταν εμφανιζεται στη συμβολοσειρα ο χαρακτηρας αλλιως να επιστρεφει το 0

Να γραφεί function της C με όνομα strlen(s) που να επιστρέφει το μήκος του string s

Να γραφεί πρόγραμμα C που θα διαβάζει μία ημερομηνία από το standard input με τη μορφή:25 Feb 1995 και θα την τυπώνει στο standard output με την μορφή:25/2/1995

Να γραφεί πρόγραμμα της C με το όνομα filecοpy που θα αντιγράφει τα περιεχόμενα ενός αρχείου σε ένα άλλο αρχείο. Τα ονόματα των δύο αρχείων θα περνούν ως command-line arguments, δηλαδή η κλήση του προγράμματος θα γίνεται ως εξής:filecopy inputfile outputfile

Να γραφεί πρόγραμμα της C με όνομα compfiles που θα συγκρίνει γραμμή προς γραμμή δύο αρχεία και θα τυπώνει την πρώτη γραμμή που διαφέρουν. Τα ονόματα των δύο αρχείων θα περνούν ως command-line arguments, δηλαδή η κλήση του προγράμματος θα γίνεται ως εξής:cοmpfiles file1 file2

Να γραφεί function της C που θα δέχεται ως παραμέτρους το όνομα ενός μήνα (για παράδειγμα Jan, Feb, κλπ.) και το έτος (για παράδειγμα 1996) και θα επιστρέφει τον αριθμό των ημερών του μήνα (28, 29, 30, ή 31). Να ληφθούν υπόψη τα δίσεκτα έτη και να χρησιμοποιηθεί η εντολή case.

Να γραφεί function της C που θα δέχεται σαν παράμετρο το όνομα ενός πiνακα από ακέραιους και τον αριθμό των στοιχείων του πίνακα και θα επιστρέφει τον μέσο όρο των στοιχείων του πiνακα σε δεκαδική μορφή.

Να γραφεί πρόγραμμα της C , τα ονόματα των αρχείων εισόδου και εξόδου θα περνούν σαν command-line arguments.

Έχουμε ένα αρχείο που κάθε γραμμή του είναι ένας πραγματικός αριθμός. Να γραφεί πρόγραμμα της C που θα μετράει και θα τυπώνει:
α) τον αριθμό των γραμμών του αρχείου
β) πόσες τιμές υπάρχουν στο αρχείο μεταξύ 3 και 5
γ) τον μέσο όρο των τιμών του αρχείου
Το όνομα του αρχείου θα περνά σαν command-line argument

Δίνονται δύο αρχεία που κάθε τους γραμμή είναι ένας ακέραιος. Να γραφεί πρόγραμμα C που θα κατασκευάζει ένα νέο αρχείο που θα περιέχει τις κοινές τιμές των δύο αρχείων εισόδου. Τα ονόματα των 3 αρχείων θα περνούν σαν cοmmand-line arguments.

Να γραφεί συνάρτηση με την ονομασία area που θα υπολογίζει το εμβαδόν τριγώνου (1/2*βάση*ύψος).Να γραφεί συνάρτηση με την ίδια ονομασία area που θα υπολογίζει το εμβαδόν κύκλου (3.14*ακτίνα2)

Να γραφεί πρόγραμμα C που θα διαβάζει έναν αριθμό που παριστάνει δευτερόλεπτα και θα μας δίνει τρεις ακεραίους που παριστάνουν την ώρα, τα λεπτά και τα δευτερόλεπτα με βάση το 12ωρο ρολόι. Τα δεδομένα σας πρέπει να είναι αριθμοί μικρότεροι του 86400 (δηλαδή 24 ώρες).

Έστω 100 παραγωγοί. Για κάθε παραγωγό έχουμε τα εξής στοιχεία :
- Κωδικός παραγωγού (Ακέραιος)
- Ονοματεπώνυμο παραγωγού
- Προϊόν που παρήγαγε ('Σ' (σίταρι), 'Κ' (καλαμπόκι), 'Β' (βαμβακι))
- Παραχθείσα ποσότητα σε κιλά (ακέραιος)

Να γραφεί πρόγραμμα C που θα υπολογίζει για κάθε παραγωγό το ποσό που θα πρέπει να του καταβληθεί για την αγορά της σοδειάς του ως εξής :
α) Αν το προϊόν είναι σίτος, 0.5 το κιλό.
β) Αν το προϊόν είναι καλαμπόκι, 0.3 δρχ. το κιλό.
γ) Αν το προϊόν είναι βρώμη, 0.25 δρχ. το κιλό.

Για κάθε παραγωγό να τυπώνεται το ονοματεπώνυμο του και το ποσό που θα καταβληθεί. Επίσης στο τέλος να εμφανίζει στην οθόνη :
i. Το συνολικό ποσό για την αγορά σίταριου.
ii. Το συνολικό ποσό για την αγορά καλαμποκιού.
iii. Το συνολικό ποσό για την αγορά βαμβακιου.

Εστω ενα αρχειο με την ονομασια 'daneia.dat'.H γραμμογραφηση τησ εγγραφης ειναι η εξης

Αριθμος μητρωου υπαλληλου
Ονοματεπωνυμο υπαλληλου

Πινακας 10 θεσεων οπου καταχωρουνται τα ποσα των δανειων που εχει παρει ο υπαλληλος. Η πρώτη ελεύθερη θέση στον πίνακα για να καταχωρηθεί ένα ποσό δανείου έχει περιεχόμενο 0.

Οι αριθμοί μητρώου παίρνουν τιμές 1,2,3…

Από την οθόνη δίδεται:

Αριθμός μητρώου υπαλλήλου

Νέο ποσό δανείου που πήρε ο υπάλληλος

Μέσω της εντολής fseek να εντοπιστεί η εγγραφή και να γίνει η ενημέρωση.

Εάν ο πίνακας είναι γεμάτος να τυπωθεί μήνυμα ότι ‘δεν μπορεί να καταχωρηθεί το ποσό αυτό του δανείου’.

ΑΣΚΗΣΕΙΣ ΣΤΗ ΓΛΩΣΣΑ C

ΑΣΚΗΣΕΙΣ ΣΤΗ ΓΛΩΣΣΑ C
ΕΚΦΩΝΗΣΕΙΣ Κ ΥΠΟΔΕΙΓΜΑΤΙΚΕΣ ΛΥΣΕΙΣ
Να γραφεί πρόγραμμα C που να βρίσκει και να εμφανίζει όλους τους τριψήφιους αριθμούς από το 100 έως 999 που να έχουν την ιδιότητα το άθροισμα των ψηφίων τους να είναι μεγαλύτερο ή ίσο του δέκα.
#include

void main(void) {
int i,j,k,n ;

n=0;
for(i=1;i<=9;i++) for(j=0;j<=9;j++) for(k=0;k<=9;k++) if(i+j+k>=20)
printf("%d%d%d%c",i,j,k,(++n % 10)?' ':'\n');
}

Να γράψετε πρόγραμμα που να διαβάζει τη θερμοκρασία σε βαθμούς Φαρενάϊτ και να την εκτυπώνει σε βαθμούς Κελσίου. Ο τύπος μετατροπής είναι: C=5(f-32)/9 Όπου f οι βαθμοί σε κλίμακα Φαρενάιτ και C οι βαθμοί σε κλίμακα Κελσίου.
#include
#include

void main() {
float f,c;

clrscr();
printf("Thermokrasia (F): ");
scanf("%f",&f);
c=5*(f-32)/9;
printf("Thermokrasia (C): %6.2f\n", c);
}
Να γράψετε ένα πρόγραμμα σε γλώσσα C το οποίο να διαβάζει από την οθόνη μια σειρά χαρακτήρες να μετρά το πλήθος των αριθμητικών χαρακτήρων, των κενών και των αλφαβητικών χαρακτήρων και να εμφανίζει στην οθόνη τα αποτελέσματα.
#include #include

void main(void) {
char c;
int mn=0,mk=0,ma=0;

while((c=getche())!='\r') {
if(c>='0' && c<='9') /* Αν είναι αριθμητικό */ ++mn; if(c>='A' && c<='Z' || c>='a' && c<='z') /* Αν είναι αλφαβητικό */ ++ma; if(c==' ') ++mk; } printf("\nNumbers = %d\n",mn); printf("Spaces = %d\n",mk); printf("Alfabet = %d\n",ma); }


Να γραφεί function της C που να δέχεται ως παράμετρο έναν πίνακα ακεραίων Α με διαστάσεις 3x4 και τυπώνει στην οθόνη τα στοιχεία του σε μορφή πίνακα τριών γραμμών και τεσσάρων στηλών. #include

#define ROWS 3
#define COLS 4

void printarr(int a[][COLS]) {
int i,j;

for(i=0;i #include void main(int argc, char *argv[]) { long int k;
int e;
float t;

if(argc==3) {
k=atol(argv[1]);
e=atoi(argv[2]);
t=k*e/100.0;
printf("ΚΕΦΑΛΑΙΟ:%ld\n",k);
printf("ΕΠΙΤΟΚΙΟ:%d %%\n",e);
printf("ΤΟΚΟΣ:%.f\n",t);
} else
printf("Απαιτούνται 2 παράμετροι\n");
}

Να γραφεί fυnctίοn της C με όνομα max(n,m) που να επιστρέφει το μέγιστο από τους ακέραιους n και m. Να χρησιμοποιηθεί ο τελεστής ? για τον υπολογισμό του μεγίστου.
#include int max(int n, int m) { return((n>m)?n:m);
}


void main(void) {
int a,b;

printf("1ος Αριθμός : ");
scanf("%d",&a);
printf("2ος Αριθμός : ");
scanf("%d",&b);
printf("Μεγαλύτερος : %d\n",max(a,b));
}

Ένας καθηγητής του μαθήματος γλώσσα προγραμματισμού C κρατάει αρχείο με τους φοιτητές. Για κάθε φοιτητή χρησιμοποιεί το όνομα (15 χαρακτήρες), το επώνυμο (20 χαρακτήρες), το έτος (ακέραιος), το εξάμηνο (1 χαρακτήρας με τιμές Α ή 8) και τον βαθμό (ακέραιος).
α) Να ορισθεί η παραπάνω structure της C.
β) Να γραφεί πρόγραμμα της C που θα διαβάζει από αρχείο τα στοιχεία των φοιτητών και να τυπώνει το μέσο όρο βαθμολογίας για το Α' εξάμηνο του 1995. Κάθε γραμμή του αρχείου αντιστοιχεί σε έναν φοιτητή και τα στοιχεία χωρίζονται μεταξύ τους με ένα ακριβώς κενό. Το όνομα του αρχείου να περνά παραμετρικά στο πρόγραμμα (command-line argument).
#include

struct foitrec {
char onom[15];
char epwn[20];
int etos;
char exam;
int bathm;
};

void main(int argc, char *argv[]) {
FILE *fptr;
struct foitrec ftt;
float mo;
int count;
if(argc==2) {
if(fptr=fopen(argv[1],"r")) {
mo=0.0;
count=0;
while(fscanf(fptr,"%s %s %d %c %d",ftt.onom,ftt.epwn,&ftt.etos,&ftt.exam,&ftt.bathm)!=EOF)
if(ftt.exam=='A' && ftt.etos==1995) {
mo+=ftt.bathm;
++count;
}
mo/=count;
printf("Average=%f\n",mo);
} else
printf("Can't open file %s\n",argv[1]);
} else
printf("Syntax: programfile inputfile\n");

ΚΕΦΑΛΑΙΟ 9o:ΕΙΔΙΚΕΣ ΕΝΤΟΛΕΣ ΤΗΣ ΓΛΩΣΣΑΣ C

ΕΙΔΙΚΕΣ ΕΝΤΟΛΕΣ ΤΗΣ ΓΛΩΣΣΑΣ C
typedef
Ο γενικός τύπος της εντολής typedef είναι:
typedef τύπος όνομα;
τύπος είναι οποιοσδήποτε αποδεκτός τύπος δεδομένων της γλώσσας C, και
όνομα είναι το νέο όνομα το οποίο θέλουμε να ορίσουμε για αυτό τον τύπο
Ο γενικός τύπος δήλωσης ενός απαριθμήσιμου τύπου είναι:
enum όνομα { στοιχεία } μεταβλητές;
με τον οποιο οριζουμε αυθαιρετα στο προγραμμα τιμες
Ο γενικός τύπος της εντολής sizeof είναι:
Τιμή = sizeof( μεταβλητή )
όπου: Τιμή είναι ένας ακέραιος αριθμός ο οποίος υποδεικνύει το μέγεθος σε bytes της μεταβλητής
Ο μοναδιαίος τελεστής sizeof μπορεί να χρησιμοποιηθεί για να μας δώσει το ακριβές μέγεθος οποιουδήποτε τύπου μεταβλητής
Προσδιοριστες
Καλούνται προσδιοριστές (qualifiers) οι δεσμευμένες λέξεις οι οποίες προσδιορίζουν επί πλέον ιδιότητες σε μεταβλητες και δομες εκτός από τη δήλωση του τύπου.
const
Με τη βοήθεια του προσδιοριστή const, δηλώνουμε μια μεταβλητή (απλή ή σύνθετη) της οποίας η τιμή θα παραμένει σταθερή σε όλη τη διάρκεια της εκτέλεσης του προγράμματος.
volatile
Με τη βοήθεια του προσδιοριστή volatile, δηλώνουμε μια μεταβλητή (απλή ή σύνθετη) της οποίας η τιμή μπορεί να τροποποιηθεί κατά τη διάρκεια της εκτέλεσης του προγράμματος εν αγνοία του μεταγλωττιστή.
Συναρτηση γραμμης
Η λέξη inline η οποία πρέπει να τοποθετηθεί ακριβώς πριν από τον τύπο επιστροφής της τιμής της συνάρτησης είναι μια συναρτηση γραμμης.
Η λέξη κλειδί inline δεν αποτελεί εντολή της γλώσσας C, απλά προειδοποιεί το μεταγλωττιστή ότι η συνάρτηση η οποία ακολουθεί δεν είναι μια απλή συνάρτηση αλλα μπορει να είναι πχ μια προσθεση.

ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ

1.ΓΡΑΨΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΚΑΝΕΙ ΧΡΗΣΗ ΤΗΣ ΕΙΔΙΚΗΣ ΕΝΤΟΛΗΣ SIZE OF

ΚΕΦΑΛΑΙΟ 8o:ΔΟΜΕΣ

Στη γλωσσα c μπορουμε να ενωσουμε πολλές μεταβλητές σε μία συμπυκνωμένη μεταβλητή που λέγεται δομή (Structure)
Ο γενικός τύπος ορισμού μιας δομής είναι :

struct όνομα-δομής
{
τύπος-όνομα μεταβλητής;
τύπος-όνομα μεταβλητής;
τύπος-όνομα μεταβλητής;
.
.
.

} μεταβλητές-δομής;
Ο γενικός τύπος αναφοράς σ’ ένα στοιχείο μιας μεταβλητής κάποιας δομής είναι:

όνομα-μεταβλητής-δομής . όνομα-στοιχείου-δομής
Πινακας δομων
Προκειμένου να δηλώσουμε έναν πίνακα δομών πρέπει πρώτα να ορίσουμε μία δομή και μετά να δηλώσουμε μία μεταβλητή πίνακα, αυτού του τύπου.
Μεταφορα σε συναρτηση
Όταν περνά ένα στοιχείο μίας δομής σε μία συνάρτηση, στην πραγματικότητα περνά η τιμή αυτού του στοιχείου στη συνάρτηση, όπως ακριβώς περνά μία απλή μεταβλητή.
Αν είχαμε τη δήλωση:
struct test
{
int x;

} score;
Τότε η κλήση : function1(score.x);
σημαίνει ότι περνά στη συνάρτηση function1 η τιμή του στοιχείου score.x της μεταβλητής score.
Επισης μπορουμε να μεταφερουμε ολοκληρη δομη σε συναρτηση

ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ

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

ΚΕΦΑΛΑΙΟ 7o:ΑΡΧΕΙΑ

Υπάρχουν δύο τρόποι ανάγνωσης και γραφής αρχείων

1. υψηλού επιπέδου είσοδος/έξοδος
όπου κάθε ανάγνωση/εγγραφή γίνεται με ρυθμό
ενός χαρακτήρα κάθε φορά
2.χαμηλού επιπέδου είσοδος/έξοδος που λέγεται και «UNIX LΙKE»
Εδώ θα ασχοληθουμε μονο με τα αρχεια υψηλου επιπεδου
Οι πιο συνηθισμενες εντολες για τα αρχεια ειναι
fopen( ) ανοίγει το αρχείο για να χρησιμοποιηθεί
putc( ) γράφει ένα χαρακτήρα στο αρχείο
getc( ) διαβάζει ένα χαρακτήρα από το αρχείο
fclose( ) κλείνει ένα αρχείο
fseek( ) εκτελεί πράξεις τυχαίας προσπέλασης σε δίσκο.
fprintf( ) ‘τυπωνει ‘ στο αρχειο
fscanf() ‘εισαγει’ αριθμους από το αρχειο
Η συνάρτηση fopen συνήθως γράφεται ως εξής:

if (( fp = fopen("test.dat", "r")) = = ΝULL)
{
puts("Δεν μπορεί να ανοίξει αυτό το αρχείο\n");
exit( ) ;
}
όπου τύπος είναι ένας χαρακτήρας που πρέπει να είναι
r ( read ) για την ανάγνωση
w (write) για την εγγραφή
a (append) για την πρόσθεση εγγραφών στο τέλος του αρχείου.
H συνάρτηση putc( ) χρησιμοποιείται για να
γράφει χαρακτήρες σ' ένα αρχείο
το οποίο έχει ανοίξει χρησιμοποιώντας τη συνάρτηση fopen( ) με τον τύπο w
Ο γενικός τύπος της συνάρτησης είναι:
putc (ch, fp);

H συνάρτηση getc( ) χρησιμοποιείται για να διαβάζει χαρακτήρες από ένα αρχείο που άνοιξε με χρήση της συνάρτησης fopen ( ) και τύπο r.
O γενικός τύπος της συνάρτησης είναι:

char ch;
ch = getc(fp);

H συνάρτηση fclose( ) χρησιμοποιείται για να κλείνει ένα αρχείο που έχει ανοίξει μετά από κλήση στην fopen( )
Πρέπει να κλείνουμε όλα τα αρχεία πριν τελειώσει το πρόγραμμα
Ο γενικός τύπος της συνάρτησης fclose( ) είναι
fclose(fp);
Ο γενικός τύπος της fprintf( ) είναι:
fprintf(fp, "χαρακτήρες ελέγχου", λίστα παραμέτρων);

και της fscanf( ) είναι:
fscanf(fp, "χαρακτήρες ελέγχου", λίστα παραμέτρων );

ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ
1.ΔΗΜΙΟΥΡΓΗΣΤΕ ΕΝΑ ΑΡΧΕΙΟ ΠΟΥ ΝΑ ΠΕΡΙΕΧΕΙ ΜΕΣΑ 10 ΑΡΙΘΜΟΥΣ ΜΕ ΤΟ ΟΝΟΜΑ ΑΡΙΤΗ.ΤΧΤ.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΑΝΟΙΓΕΙ ΤΟ ΑΡΧΕΙΟ Κ ΝΑ ΤΥΠΩΝΕΙ ΤΟ ΑΘΡΟΙΣΜΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΚΕΦΑΛΑΙΟ 6o:ΠΙΝΑΚΕΣ ΚΑΙ ΔΕΙΚΤΕΣ

Δείκτης είναι μία μεταβλητή που περιέχει τη διεύθυνση μιας άλλης μεταβλητής. Οι δείκτες χρησιμοποιούνται πάρα πολύ στη C, αφ’ ενός γιατί μερικές φορές είναι ο μόνος τρόπος έκφρασης μιας υπολογιστικής πράξης και αφ’ ετέρου γιατί οδηγούν σε πιο συμπαγή και αποτελεσματικό κώδικα, απ’ ότι θα παίρναμε με άλλους τρόπους.
Ένας δείκτης περιορίζεται να δείχνει σε ένα συγκεκριμένο είδος αντικειμένου. Η δήλωση ενός δείκτη p που δείχνει π.χ. σε ακέραιο γίνεται ως εξής :
int *p;
Αν p είναι ένας δείκτης με *p προσδιορίζουμε το περιεχόμενο της διεύθυνσης μνήμης που έχει (δείχνει) ο p. Άρα η δήλωση μας θυμίζει τις ιδιότητες του p, δηλαδή αφού το *p είναι ακέραιος, στη διεύθυνση μνήμης που θα έχει (δείχνει) ο p θα υπάρχει ακέραιος.
Παρόμοια θα μπορούσαμε να έχουμε και για δείκτες που θα δείχνουν σε άλλους τύπους. Π.χ.
char *s;
Ο τελεστής & επιστρέφει τη διεύθυνση μιας μεταβλητής


Ο γενικός τύπος δήλωσης ενός πολυδιάστατου πίνακα είναι :
τύπος όνομα[a][b][c]... [z];
Η αποθήκευση όλων των στοιχείων του πίνακα δεσμεύεται μονίμως στη μνήμη όσο χρόνο διαρκεί η εκτέλεση του προγράμματος.
Για να εισαγουμε στοιχεια στους πινακες μπορουμε να το κανουμε όταν οριζουμε τις μεταβλητες στην αρχη του προγραμματος
ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ
1. Να γραφεί πρόγραμμα που να ταξινομεί ένα μονοδιάστατο πίνακα κατά φθίνουσα σειρά.
2. Να γραφεί function της C που να δέχεται ως παράμετρο έναν πίνακα ακεραίων Α με διαστάσεις 3x4 και τυπώνει στην οθόνη τα στοιχεία του σε μορφή πίνακα τριών γραμμών και τεσσάρων στηλών.

ΚΕΦΑΛΑΙΟ 5ο:ΣΥΝΑΣΡΤΗΣΗ ΚΑΙ ΠΑΡΑΜΕΤΡΟΙ ΕΙΣΟΔΟΥ

Οι συναρτήσεις αποτελούν τα βασικότερα στοιχεία της γλώσσας προγραμματισμού C.

ΓΕΝΙΚΟΣ ΤΥΠΟΣ ΣΥΝΑΡΤΗΣΗΣ

όνομα_ συνάρτησης (λίστα παραμέτρων)
δηλώσεις παραμέτρων;
{
σώμα της συνάρτησης (διάφορες εντολές) ;
}
ΟΡΙΣΜΑΤΑ
Για να μπορέσουμε να χρησιμοποιήσουμε τα ορίσματα πρέπει να δηλώσουμε τη συνάρτηση main() ως εξής:

main(int argc, char **argv) ή main(int argc, char *argv[])

Το argc (argument counter) είναι ο αριθμός των ορισμάτων που εισάγονται, συμπεριλαμβανομένου και του ονόματος του προγράμματος.
To argv (argument vector) είναι ο πίνακας των συμβολοσειρών που αποθηκεύουν τα ορίσματα της γραμμής εντολών -- το όνομα του προγράμματος είναι η μηδενική συμβολοσειρά.

ΠΑΡΑΔΕΙΓΜΑ

#include
main (int argc, char **argv)
{ /* program to print arguments from command line */
int i;
printf("argc = %d\n\n",argc);
for (i=0; i

ΚΕΦΑΛΑΙΟ 4ο:ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ

ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ

Τις εντολές ελέγχου τις διακρίνουμε σε :

Απλής επιλογής (if)
Διπλής επιλογής (if-else)
Πολλαπλής επιλογής (switch)

Ο γενικός τύπος της εντολής if διπλής επιλογής (με ομάδες εντολών σαν αντικείμενα) είναι :

if (έλεγχος συνθήκης)
{
ομάδα εντολών 1
}
else
{
ομάδα εντολών 2
}
Ο γενικός τύπος της εντολής switch είναι :
switch (μεταβλητή){
case σταθερά1: εντολή;
case σταθερά2 : εντολή;
case σταθερά3 : εντολή;
.
.
default : εντολή;
}
Δομες ανακυκλωσεων

H ανακύκλωση for

for (αρχική τιμή; συνθήκη; βήμα)
εντολή;
Η ανακύκλωση while
while ( Συνθήκη )
Εντολή;
Η ανακύκλωση do-while
do
Εντολή
while ( Συνθήκη ) ;
Η εντολή goto
H goto δεν πρέπει να χρησιμοποιείται συχνά

Έξοδος των ανακυκλώσεων (εντολή break)
Συνέχιση των ανακυκλώσεων (εντολή continue)
Τερματισμός του προγράμματος (συνάρτηση exit (1 ) )


ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ
1.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΔΙΑΒΑΖΕΙ 3 ΤΙΜΕΣ ΑΠΟ ΤΟ ΠΛΗΚΤΡΟΛΟΓΙΟ Κ ΝΑ ΕΠΙΣΤΡΕΦΕΙ ΤΗΝ ΜΕΓΑΛΥΤΕΡΗ
2.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΖΗΤΑ ΕΝΑΝ ΑΡΙΘΜΟ ΑΠΟ
ΤΟ ΠΛΗΚΤΡΟΛΟΓΙΟ ΚΑ ΝΑ ΕΜΦΑΝΙΖΕΙ ΤΗ ΛΕΞΗ "ΚΑΛΗΜΕΡΑ"
ΤΟΣΕΣ ΦΟΡΕΣ ΟΣΕΣ Κ Ο ΑΡΙΘΜΟΣ ΠΟΥ ΔΩΣΑΤΕ.
ΝΑ ΣΤΑΜΑΤΑΕΙ ΟΤΑΝ ΠΛΗΚΤΡΟΛΟΓΗΘΕΙ Ο ΑΡΙΘΜΟΣ 0




ΚΕΦΑΛΑΙΟ 3ο:ΕΝΤΟΛΕΣ ΕΙΣΟΔΟΥ-ΕΞΟΔΟΥ

ΕΙΣΟΔΟΥ
Εδω ανηκουν οι εντολες που χρησιμοποιουμε για να εισαγουμε πληροφοριες
απο το πληκτρολογιο
Η κυρια εντολη εισοδου που χρησιμοποιουμε ειναι η scanf
η συνταξη της ειναι η ακολουθη
scanf("σειρα χαρακτηρων ελεγχου",ονομα μεταβλητων);
scanf("%c",&c);

ΕΞΟΔΟΥ

Εδω ανηκουν οι εντολες που χρησιμοποιουμε για να τυπωσουμε ενα μηνυμα στην
οθονη του υπολογιστη
Η κυρια εντολη εξοδου που χρησιμοποιουμε
ειναι η printf
η συνταξη της ειναι η ακολουθη
printf("σειρα χαρακτηρων ελεγχου",ονοματα μεταβλητων);
printf("result=%d",25);

ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ

1.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΖΗΤΑΕΙ ΝΑ ΕΙΣΑΓΕΤΕ 2 ΑΡΙΘΜΟΥΣ Κ ΝΑ ΤΥΠΩΝΕΙ ΤΟ ΑΘΡΟΙΣΜΑ ΤΟΥΣ

ΚΕΦΑΛΑΙΟ 2ο:ΜΕΤΑΒΛΗΤΕΣ,ΣΤΑΘΕΡΕΣ,ΠΙΝΑΚΕΣ,ΤΕΛΕΣΤΕΣ

Μεταβλητές

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

1. έξω από όλες τις συναρτήσεις
2. στον ορισμό των παραμέτρων των συναρτήσεων
3. μέσα στις συναρτήσεις

Πινακες
Τυπος ονομα_μεταβλητης[αριθμος στοιχείων πινακα]
Εντολή Αντικατάστασης
(ειναι η εντολή που ορίζει με τι ισούται η μεταβλητή)
ονομα_μεταβλητης=έκφραση;
Σταθερές
Με τον όρο σταθερές εννοούμε τις σταθερές τιμές που δεν αλλάζουν
κατα τη διάρκεια του προγράμματος
Οι πιο γνωστές σταθερές ειναι
char για χαρακτήρες

int για ακέραιους αριθμούς
long int για μεγάλου μήκους ακέραιους αριθμους
short int για μικρού μήκους
unsigned int για απροσδιοριστου μήκους
float για πραγματικούς αριθμούς
double για διπλής ακρίβειας


Αρχικές τιμές μεταβλητών και πινάκων
Μπορούμε να ορίσουμε απο την αρχή τις τιμές των μεταβλητών που
θελουμε χρησιμοποιώντας την ακόλουθη εντολή
Τύπος ονομα_μεταβλητής=σταθερη τιμη
οπου σταθερη τιμη καποιος αριθμος,καποιος χαρακτηρας κ.ο.κ.

Τελεστες
Οι τελεστες ειναι κυριωσ τα γνωστα μας συμβολα απο τις
αριθμητικες πραξεις

- αφαιρεση
+ προσθεση
* πολλ/σμος
/διαιρεση
%ακεραια διαιρεση
--μειωση
++αυξηση

Υπαρχουν ομως κ οι λογικοι τελεστες
> μεγαλυτερο
>= μεγαλυτερο ή ισο
< μικροτερο <= μικροτερο ή ισο == ισο != ανισο

Επιπλεον εχουμε τους τελεστες BITWISE
& ΚΑΙ

| Η
^ ΑΠΟΚΛΕΙΣΤΙΚΟ Η


ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ
1.ΝΑ ΥΠΟΛΟΓΙΣΕΤΕ ΤΙΣ ΠΑΡΑΚΑΤΩ ΕΚΦΡΑΣΕΙΣ ΑΝ ΕΙΝΑΙ ΑΛΗΘΕΙΣ Η ΨΕΥΔΕΙΣ
α.15||9
β.14==13+1
γ.4&&4
2.ΜΕ ΠΟΙΕΣ ΣΤΑΘΕΡΕΣ ΟΡΙΖΟΥΜΕ ΤΑ ΠΑΡΑΚΑΤΩ?
αα 345678920 0.4565 χαρα 123

ΚΕΦΑΛΑΙΟ 1ο:ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Παράδειγμα προγράμματος

Το κλασσικό παράδειγμα των Kernigham and Ritchie :

main( )
{
printf("HELLO WORLD\n");
}

Συνάρτηση (Function) είναι ένα μικρό κομμάτι προγράμματος (υποπρόγραμμα ή υπορουτίνα) που περιέχει μία ή περισσότερες εντολές σε γλώσσα C και εκτελεί μία ή περισσότερες δουλειές.
Σε ένα καλογραμμένο πρόγραμμα της γλώσσας C, κάθε συνάρτηση εκτελεί μία μόνο δουλειά
Η συνάρτηση main( ) είναι η πρώτη συνάρτηση που εκτελείται όταν το πρόγραμμα αρχίζει να τρέχει (run) στον υπολογιστή και έχει τη μορφή :
main ( )
{
Εντολές
}

Ο γενικός τύπος μιας συνάρτησης είναι:

όνομα_συνάρτησης (λίστα παραμέτρων)
δήλωση του τύπου των παραμέτρων της λίστας ;

{ εναρκτήριο άγκιστρο με το οποίο αρχίζει η συνάρτηση
....... το σώμα της συνάρτησης ;
.......
} τελικό άγκιστρο με το οποίο τελειώνει η συνάρτηση

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



Επιτρέπει την εμφάνιση στην οθόνη των αποτελεσμάτων της επεξεργασίας του προγράμματος.
main( )
{
printf("%d",156);
}

H εντολή #include


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

Για τη σωστή επεξεργασία στην είσοδο/έξοδο των δεδομένων πρέπει να προσθέσουμε την εντολή :
#include "stdio.h"
ή
#include

ΑΣΚΗΣΕΙΣ ΓΙΑ ΕΞΑΣΚΗΣΗ

1.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΝΑ ΕΜΦΑΝΙΖΕΙ ΣΤΗΝ ΟΘΟΝΗ ΤΟΥ
ΥΠΟΛΟΓΙΣΤΗ ΤΗΝ ΦΡΑΣΗ
"ΠΡΩΤΟ ΠΡΟΓΡΑΜΜΑ"
2.ΝΑ ΓΡΑΨΕΤΕ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΠΟΥ ΘΑ ΥΠΟΛΟΓΙΖΕΙ Κ ΘΑ ΕΜΦΑΝΙΖΕΙ ΣΤΗΝ ΟΘΟΝΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΤΟ ΓΙΝΟΜΕΝΟ 3 ΑΚΕΡΑΙΩΝ ΑΡΙΘΜΩΝ