Εισαγωγή στην C

Καλές ιστοσελίδες τρίτων: #1#2#3,

 

Εισαγωγικές έννοιες

  • Στην C επιτρέπονται τα πεζά και κεφαλαία γράμματα του λατινικού αλφαβήτου (a – z, A – Z ), τα ψηφία 0-9 και οι ειδικοί χαρακτήρες ~ ‘ ! @ # % ^ u0026amp; * ( ) _ – + = | { } [ ] : ; ” ‘ < > , . ? / . Καλό είναι να αποφεύγεται η χρήση κεφαλαίων γραμμάτων.
  • Για σχόλιο μιας γραμμής χρησιμοποιούμε // αλλιώς /*    */.
  • Τα ονόματα των μεταβλητών προκύπτουν από συνδυασμό γραμμάτων, ψηφίων και της κάτω παύλας (_). Πρέπει όμως υποχρεωτικά να ξεκινούν με γράμμα ή κάτω παύλα (_). Η C κάνει διάκριση πεζών- κεφαλαίων που σημαίνει ότι οι μεταβλητές y1 kai Y1 είναι διαφορετικές.
  • Οι Δεσμευμένες Λέξεις είναι λέξεις που χρησιμοποιεί η C αποκλειστικά και δεν μπορούμε συνεπώς να τις χρησιμοποιήσουμε σαν ονόματα μεταβλητών, συναρτήσεων κλπ. Οι λέξεις αυτές είναι: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while, _Packed .
  • Οι τελεστές χωρίζονται σε
    • αριθμητικούς : +, -, *, /, % (mod), ++, –. Η διαίρεση ακέραιων αριθμών δίνει ακέραιο αφού τα δεκαδικά φεύγουν. Η διαίρεση πραγματικών κανονικά.Π.χ. 1/2 επιστρέφει 0, ενώ 1.0/2.0 επιστρέφει 0.5. Το % επιστρέφει το υπόλοιπο της διαίρεσης. Αν η μεταβλητή w έχει την τιμή 10, τότε οι τελεστές++ και — αυξάνουν και μειώνουν την μεταβλητή κατά μία μονάδα, δηλ w++ και w– έχουν σαν αποτέλεσμα η μεταβλητή να γίνει 11 και 9 αντίστοιχα.
    •  συγκριτικούς : >, >=, <, <=, == (ίσο), != (διάφορο) και
    • λογικούς: (όχι), u0026amp;u0026amp; (και), || (ή)
  • Η C υποστηρίζει τους ακόλουθους αριθμητικούς τύπους δεδομένων

ΑΚΕΡΑΙΟΥΣ ΑΡΙΘΜΟΥΣ

Τύπος Χώρος που καταλαμβάνει Εύρος τιμών
char 1 byte -128 έως 127 ή 0 έως 255
unsigned char 1 byte 0 έως 255
signed char 1 byte -128 εως 127
int 2 ή 4 bytes -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int 2 ή 4 bytes 0 to 65,535 or 0 to 4,294,967,295
short 2 bytes -32,768 to 32,767
unsigned short 2 bytes 0 to 65,535
long 4 bytes -2,147,483,648 to 2,147,483,647
unsigned long 4 bytes 0 to 4,294,967,295

 

ΠΡΑΓΜΑΤΙΚΟΥΣ ΑΡΙΘΜΟΥΣ ή ΜΕΓΑΛΟΥΣ ΑΚΕΡΑΙΟΥΣ ΑΡΙΘΜΟΥΣ

Τύπος Χώρος που καταλαμβάνει Εύρος τιμών Πλήθος Δεκαδικών
float 4 bytes 1.2E-38 to 3.4E+38 6
double 8 bytes 2.3E-308 to 1.7E+308 15
long double 10 bytes 3.4E-4932 to 1.1E+4932 19

 

Μία από τις δημοφιλέστερες εντολές είναι η printf() που χρησιμοποιείται για την εμφάνισε δεδομένων στην οθόνη του υπολογιστή.

 

Η εντολή if

 

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

if(λογική έκφραση #1)
{
   εντολές
}
else if(λογική έκφραση #2)
{
   εντολές
}
else if(λογική έκφραση #3)
{
   εντολές
}
else 
{
   εντολές
}

Τα τμήματα else if και else είναι προαιρετικά και συνεπώς μπορούν να παραλειφθούν.

 

 

Η εντολή switch

 

 

switch(παράσταση){
    case σταθερή-τιμή:
       εντολές;
       break; /* προαιρετικό */
    case σταθερή-τιμή  :
       εντολές;
       break; /* προαιρετικό */
         .
         .
         .
    default : /* προαιρετικό */
       εντολές;
}

 

 

 

Οι εντολές επανάληψης

 

 

While Do For
while(λογική έκφραση)
{
   εντολές;
}
do
{
   εντολές;

}while(λογική έκφραση);
for ( δήλωση και αρχικοποίηση μεταβλητής; συνθήκη; το βήμα)
{
   εντολές;
}

 

 

 

 

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

 

Ας ξεκινήσουμε με ένα απλό πρόγραμμα το οποίο διαβάζει δύο αριθμούς από ένα αρχείο (data.in) και στην συνέχεια αποθηκεύει το άθροισμα τους σε ένα άλλο αρχείο (data.out).

#include <stdio.h>
 /* Οι μεταβλητές myInputFile και myOutputFile δηλώνονται ως τύπου File, ενώ x,y,synolo δηλώνονται ως ακέραιοι */
FILE *myInputFile;   
FILE *myOutputFile;
int x, y, synolo;

int main() {
        /* Η μεταβλητή myInputFile σχετίζεται ποια με το αρχείο δεδομένα.in που από εδώ και πέρα μπορεί μόνο να αναγνωσθεί (r) */
	myInputFile= fopen("data.in", "r");    

        /* Από το myInputFile θα διαβαστούν δύο ακέραιοι (d) που θα εκχωρηθούν στις μεταβλητές x και y */ 
	fscanf(myInputFile, "%d %d", u0026amp;x, u0026amp;y);        

	synolo = x + y;
        /* Η μεταβλητή myOutputFile σχετίζεται  με το αρχείο αποτελέσματα.out που είναι κενό (w) */
	myOutputFile = fopen("data.out", "w"); 

        /* Η τιμή της μεταβλητής synolo αποθηκεύεται στο αρχείο που αντιστοιχεί στην μεταβλητή myOutputFile ως ακέραιος  */
	fprintf(myOutputFile, "%dn", synolo);         

        /* τα δύο αρχεία αποδεσμεύονται διότι δεν χρειάζονται άλλο  */
	fclose(myInputFile);                              
	fclose(myOutputFile);

        /* Το πρόγραμμα αυτό στέλνει τον αριθμό 0 για να δηλώσει ότι όλα πήγαν καλά. */
	return 0;                                              
}