13<br />Προγράμματα<br />C<br/>Καλοκαίρι 1997 & Καλοκαίρι 2011<br />1ο Πρόγραμμα<br />Το πρόγραμμα αυτό «διαβάζει» έναν χαρακτήρα από το πληκτρολόγιο και τον εμφανίζει στην οθόνη …<br />main() /* Πάντα ξεκινάμε με την main() */<br />{<br />char x; /* Ορίζουμε την μεταβλητή x σαν τύπου char */<br />do<br />{<br />scanf(\"
%c\"
,&x); /* « Διάβασε » την x */<br />printf(\"
%c\n\"
,x); /* … και δείξε την στην οθόνη … */<br />} <br /> while ( x!='#' ); /* … μέχρι να πατηθεί η « # » */<br />}<br />2ο Πρόγραμμα<br />Εδώ εμφανίζουμε στην οθόνη όλους τους χαρακτήρες του πληκτρολο-γίου, με κωδικούς από 65 έως 122.<br />#include <stdio.h> /* Εδώ θα χρειαστούν και τα 2 αρχεία της C */<br />#include <conio.h> /* που περιέχουν πρόσθετες πληροφορίες …*/<br /> main()<br /> {<br /> int i; /* Ορίζουμε την μεταβλητή i σαν τύπου integer */<br /> clrscr(); /* Καθαρίζουμε την οθόνη … */<br /> for ( i=65; i<=122; i++) <br />/* Εδώ του λέμε από i=65 έως και i=122 αύξανε το i κατά 1 ( i++) */<br /> printf(\"
%d %c\"
,i,i); /* … και εκτύπωνε κάθε φορά στην οθόνη */<br /> delay (2000); /* … περίμενε 2 δευτερόλεπτα */<br /> }<br />3ο Πρόγραμμα<br />Εδώ κάνουμε αριθμητικές πράξεις για να δοκιμάσουμε την συνάρτηση printf(), που εμφανίζει δεδομένα στην οθόνη …<br />#include <stdio.h><br />#include <conio.h><br />main()<br />{<br /> int A=50,B=4,result; /* Ορισμός μεταβλητών */<br /> float C=50.0,D=4.0;<br /> clrscr();<br /> printf( \"
7+A/10*B=%d\n\"
, 7+A/10*B );<br /> printf(\"
A/B*B=%d\n\"
, A/B*B );<br /> printf(\"
C/D*D=%f\n\"
, C/D*D );<br /> printf(\"
-A=%d\n\"
, -A );<br /> printf(\"
-A*B=%d\n\"
, -A*B );<br /> delay(3000); /* …περίμενε 3 δευτερόλεπτα */<br />}<br />4ο Πρόγραμμα<br />Χρήση πινάκων στη C .<br />Για να «γεμίσουμε» έναν δισδιάστατο πίνακα, σαρώνουμε πρώτα την μία διάσταση, π.χ. τις γραμμές, με μια For και έναν δείκτη i και ύστερα την άλλη διάσταση, εδώ τις στήλες, με μια άλλη For και καινούργιο δείκτη j.<br />Μπορεί να γίνει και αντίστροφα, πρώτα οι στήλες και μετά οι γραμμές. Οι δύο For είναι η μία μέσα στην άλλη και γι’ αυτό λέγονται και φωλιασμένες.<br />#include <stdio.h><br />main()<br />{<br />int a[2][3],i,j; /* Ορίζουμε πίνακα 2 Χ 3 και δείκτες i και j */<br />clrscr();<br />/* 1η For με δείκτες i, j */ <br />/* Σάρωση όλων των στοιχείων του πίνακα */<br />for ( i=0 ; i<2 ; ++i ) /* Για όλες τις τιμές του i … */<br /> { <br />for ( j=0 ; j<3 ; ++j ) /* … και για όλες τις τιμές του j */<br /> {<br /> printf( \"
give %d,%d number\n\"
, i+1 , j+1 );<br /> scanf( \"
%d\"
, &a[i][j]); /* Καταχώρηση των στοιχείων του πίνακα */<br />}<br /> }<br />/* 2η For με δείκτες i, j */ <br />/* Πάλι σάρωση όλων των στοιχείων του πίνακα */<br />for ( i=0 ; i<2 ; ++i ) <br /> { <br /> for ( j=0 ; j<3 ; ++j )<br /> {<br /> printf(\"
%d,%d number: %d\n\"
,i+1,j+1,a[i][j]);<br /> } /* … και εμφάνιση στην οθόνη … */<br /> delay(2000); /* περίμενε 3 δευτερόλεπτα */<br /> }<br />5ο Πρόγραμμα<br />Ύψωση σε δύναμη, με χρήση μιας διαδικασίας ορισμένης από το χρήστη..<br />#include <stdio.h><br />#include <conio.h><br />main()<br />{<br />int base,power; /* Ορισμός μεταβλητών */<br />int result;<br />printf(\"
Δώσε έναν αριθμό για την βάση της δύναμης : \"
) ; <br />scanf(\"
%d\"
,&base); /* Καταχώριση του αριθμού στην μεταβλητή base */<br />printf(\"
Δώσε έναν αριθμό για τον εκθέτη της δύναμης : \"
) ; <br />scanf(\"
%d\"
,&power); /* Καταχώριση στην μεταβλητή power */<br />result=raise(base,power); /* «Καλούμε» την raise και «περνάμε»<br /> το αποτέλεσμα στην μεταβλητή result */<br />printf(\"
%d\"
,&result); /* Εκτυπώνουμε στην οθόνη … */ <br />delay(1000); /* περίμενε 1 δευτερόλεπτο */<br />}<br />raise(base,power) /* Ορισμός μεταβλητών μέσα στην raise */<br />int base,power; <br />{<br />int p;<br />for ( p=1 ; power>0 ; - - power)<br />p=p*base;<br />return(p);<br />}<br />6ο Πρόγραμμα<br />Τεχνική ταξινόμησης στοιχείων πίνακα …<br />main()<br />{<br /> int i,j; float m;<br /> static float a[ ]={ -1 , 3 , -2 , 9 , 7 , -7 }; /* Ορισμός στοιχείων πίνακα */<br /> for (i=0; i<5; ++i)<br /> {<br /> for (j=i+1; j<6; ++j) <br /> if (a[i]>a[j])<br /> { <br /> m=a[i]; /* εναλλαγή τιμών αν το a[i] είναι μεγαλύτερο από a[j] */<br /> a[i]=a[j]; <br /> a[j]=m; <br /> }<br /> }<br /> for (i=0; i<6; ++i) <br /> printf(\"
%5 f \"
, a[i] ) ;<br /> printf(\"
\n \"
);<br /> for (i=5; i>-1; --i) printf(\"
%5f\"
, a[i]);<br /> printf(\"
\n\"
);<br />delay(2000); /* περίμενε 2 δευτερόλεπτα */<br />}<br />7ο Πρόγραμμα<br />Ελέγχει αν ένας αριθμός ανήκει σε ένα κλειστό διάστημα…<br />#include <conio.h><br />main()<br />{<br /> int a,b,x; char y;<br /> clrscr();<br /> printf(\"
Όρια ακεραίου κλειστού διαστήματος ; \n \"
) ;<br /> <br /> scanf(\"
%d,%d\"
,&a,&b); /* Τα όρια είναι από a έως b */<br /> printf(\"
Ακέραιος αριθμός ; \n \"
); /* Ο αριθμός που ελέγχουμε … */ <br /> scanf(\"
%d\"
,&x); /* … η μεταβλητή x */<br />/* Σχόλια για την μεταβλητή y : <br />Στο πρώτο σκέλος της y, αν ο αριθμός είναι μικρότερος από a και <br />μεγαλύτερος από b, το πρόγραμμα επιστρέφει ΄ ΄, και πάει στην <br />αντίστοιχη ( πρώτη ) case.<br />Στο δεύτερο σκέλος, αν ο αριθμός διαιρείται με το 2, επιστρέφει ΄+ ΄, και <br />πάει στην δεύτερη αντίστοιχη case.<br />Στο τρίτο σκέλος, αν ο αριθμός δεν είναι στις 2 προηγούμενες συνθήκες, <br />πάει στην τελευταία case. */<br /> y=(x<a || x>b) ? ' ' : ( (x%2==0) ? '+' : '-');<br /> switch (y)<br /> {<br /> case ' ':<br />printf(\"
%d : Δεν ανήκει στο [%d,%d] \n \"
, x, a, b ) ;<br />break;<br /> case '+':<br />printf(\"
%d : Ανήκει στο [%d,%d] , … και είναι άρτιος \n\"
, x , a, b ) ;<br />break;<br /> case '-':<br />printf(\"
%d : Ανήκει στο [%d,%d] , … και είναι περιττός\n\"
, x , a, b ) ;<br />break;<br /> }<br />delay(2000); /* περίμενε 3 δευτερόλεπτα */<br />}<br />8ο Πρόγραμμα<br />#include <stdio.h><br />#include <conio.h><br />/* Πρόσημο ακέραιου αριθμού */<br />main()<br />{<br />int a;<br />char prosimo,q;<br />clrscr();<br />printf(\"
Δώσε έναν ακέραιο αριθμό :\n\"
);<br />scanf(\"
%d\"
,&a);<br />if (a<0)<br />{<br />prosimo='-' ; <br /> printf(\"
Ο %d έχει πρόσημο %c \n\"
, a , prosimo ) ;<br />}<br />else if (a==0)<br />printf(\"
Ο %d δεν έχει πρόσημο \n \"
, a ) ;<br />else<br />{<br />prosimo='+' ; <br /> printf(\"
Ο %d έχει πρόσημο %c \n \"
, a , prosimo ) ;<br />}<br />printf(\"
\n\"
);<br />printf(\"
Για να επιστρέψετε στο περιβάλλον της C \n \"
) ;<br />printf(\"
Πατήστε Ctrl και δύο φορές Break : \n \"
) ;<br />scanf(\"
%c\"
, &q) ;<br />scanf(\"
%c\"
,&q) ; <br />delay(2000);<br />}<br />9ο Πρόγραμμα<br />/* Μεταβλητές τύπου Char */<br />#include <stdio.h><br />main()<br />{<br /> char e[20]; /* [ Μήκος μεταβλητής σε χαρακτήρες ] */<br /> char o[15];<br /> char p[15];<br /> char a[25];<br /> char t[10];<br /> int age;<br /> char sex;<br /> /* Εισαγωγή χαρακτήρων στις μεταβλητές */<br />printf(\"
Give your 2nd name : \n \"
) ;<br />scanf(\"
%20c \"
, e ) ; <br />printf(\"
Give your 1st name : \n \"
) ;<br />scanf(\"
%15c \"
, o ) ;<br />printf(\"
Give your fathername : \n \"
) ;<br />scanf(\"
%15c \"
, p ) ;<br />printf(\"
Give your address : \n \"
) ;<br />scanf(\"
%25c \"
, a );<br />printf(\"
Give your telephone: \n \"
) ;<br />scanf(\"
%10c \"
, t ) ;<br />printf(\"
Give your age: \n \"
) ;<br />scanf(\"
%d \"
, age ) ;<br />printf(\"
Give your sex: \n \"
) ;<br />scanf(\"
%c \"
, sex ) ;<br />printf(\"
\n\"
);<br />/* … και εμφάνισή τους … */<br />printf(\"
Lastname : %c \"
, e[20] ) ; <br />printf(\"
Name : %c \"
, o[15] ) ;<br />printf( \"
Father_name : %c \"
, p[15] ) ;<br />printf(\"
Address : %c \"
, a[25] ) ;<br />printf(\"
Telephone : %d \"
, t[10] ) ;<br />printf(\"
Age:%d \"
, age ) ;<br />printf(\"
Sex : %c \"
, sex ) ;<br />}<br />10ο Πρόγραμμα<br />#include <stdio.h><br />#include <conio.h><br /> /* Φωλιασμένες if */<br />main()<br />{<br />char x,y,z;<br />clrscr();<br />printf(\"
\n\n\"
);<br />printf(\"
----------------------------------------------------\n\n\"
);<br />printf(\"
Δώστε μου διαδοχικά τους χαρακτήρες : a -- b -- c \n\n\"
);<br />printf(\"
\"
);<br />scanf(\"
%c %c %c\"
,&x,&y,&z);<br />printf(\"
\n\n\"
);<br />if (x=='a')<br /> {<br /> if (y=='b')<br /> {<br /> if (z=='c')<br /> printf(\"
Δώσατε τους χαρακτήρες κατά τη ζητούμενη σειρά. \n\n\"
);<br /> else<br /> printf(\"
Δεν έδωσες ως τρίτο χαρακτήρα τον c. \n\n\"
);<br /> }<br /> else<br /> printf(\"
Δεν έδωσες ως δεύτερο χαρακτήρα τον b \n\n\"
);<br /> }<br />else<br /> printf(\"
Δεν έδωσες ως πρώτο χαρακτήρα τον a \n\n\"
);<br />printf(\"
\n\"
);<br />printf(\"
Για να επιστρέψετε στο περιβάλλον του MS-DOS \n\n\"
);<br />printf(\"
Περιμένετε 2 δευτερόλεπτα... \n\n\"
);<br />printf(\"
\"
);<br />delay(2000);<br />}<br />11ο Πρόγραμμα<br />#include <stdio.h><br />struct minas<br /> {<br /> int i;<br /> char n[3];<br /> };<br />main()<br />{<br />int j;<br />static struct minas a[12]=<br /> { {31, {'J','A','N'}}, {28, {'F','E','B'}},<br /> {31, {'M','A','R'}}, {30, {'A','P','R'}},<br /> {31, {'M','A','Y'}}, {30, {'J','U','N'}},<br /> {31, {'J','U','L'}}, {31, {'A','U','G'}},<br /> {30, {'S','E','P'}}, {31, {'O','C','T'}},<br /> {30, {'N','O','V'}}, {31, {'D','E','C'}} };<br />clrscr();<br />printf(\"
\n\n\"
);<br />printf(\"
----------------------------------------------------------------------\n\"
);<br />printf(\"
\n\"
);<br />printf(\"
Πρόγραμμα εκτύπωσης των 12 μηνών του έτους και των ημερών <br /> που έχουν. \n\n\n\"
);<br />for (j=0; j<12; ++j)<br /> printf(\"
Month : %c%c%c Number of Days : %d \n\"
, <br /> a[j].n[0] , a[j].n[1] , a[j].n[2] , a[j].i);<br /> printf(\"
\n\n\"
);<br />printf(\"
Πατήστε ένα πλήκτρο για τερματισμό του προγράμματος... \"
);<br />getch();<br />}<br />12ο Πρόγραμμα<br />/* Δίσεκτο ή όχι ημερολογιακό έτος. */<br />#include <stdio.h><br />main()<br />{<br />int etos,i,j,k;<br />int a;<br />while(1)<br />{<br />clrscr();<br />printf(\"
\n\n\"
);<br />printf(\"
--------------------------------------\n\n\"
);<br />printf(\"
Δώστε μου ένα ημερολογιακό έτος : \n\n\"
);<br />printf(\"
\"
);<br />scanf(\"
%d\"
,&etos);<br />printf(\"
\n\"
);<br />i=etos%4;<br />j=etos%100;<br />k=etos%400;<br />if (!((i==0 && j!=0) || k==0))<br /> printf(\"
Το έτος %d : Δεν είναι δίσεκτο \n\n\"
,etos);<br />else<br /> printf(\"
Το έτος %d : Είναι δίσεκτο \n\n\"
,etos);<br />printf(\"
\n\"
);<br />printf(\"
Do you want to finish the program; \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
Type ' 2=Yes ' or ' 1=No ' : \"
);<br />scanf(\"
%d\"
,&a);<br />switch(a)<br />{<br />case 1:<br /> printf(\"
\n\"
);<br /> printf(\"
Here we go again...in 2 sec! \n\"
);<br /> delay(2000);<br /> break;<br />case 2:<br /> printf(\"
\n\"
);<br /> printf(\"
That's the end of the story,folks! \n\"
);<br /> printf(\"
In about 2 seconds...\"
);<br /> delay(2000);<br /> exit(0);<br /> break;<br />}<br />}<br />}<br />13ο Πρόγραμμα<br />int addition(n)<br /> int n;<br /> {<br />int sum=0;<br />int i;<br />for (i=0; i<=n; ++i)<br /> sum+=i;<br />return (sum);<br /> }<br />main()<br />{<br />int i,athr,num;<br />while(1)<br /> {<br />clrscr();<br />printf(\"
\n\"
);<br />printf(\"
\n\"
);<br />printf(\"
------------------------------------------------\n\"
);<br />printf(\"
CALCULATE THE SUM OF NUMBERS,UNTIL THE LIMIT. \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
Numbers range from 0 up to 255 \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
Give me one number,please... : \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
\"
);<br />scanf(\"
%d\"
,&num);<br />athr=addition(num);<br />printf(\"
\n\"
);<br />printf(\"
The addition is : %d \n\"
,athr);<br />printf(\"
\n\"
);<br />printf(\"
\"
);<br />printf(\"
\n\"
);<br />printf(\"
Do you wish another calculation? \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
If Yes type 1,if No type 2... \n\"
);<br />printf(\"
\n\"
);<br />printf(\"
\"
);<br />scanf(\"
%d\"
,&i);<br />switch(i)<br />{<br /> case 1 :<br /> printf(\"
\n\"
);<br /> printf(\"
I'm going to start again in 2 seconds... \"
);<br /> delay(2000);<br /> break;<br /> case 2 :<br /> printf(\"
\n\"
);<br /> printf(\"
This is the end of the program,in 2 seconds... \"
);<br /> delay(2000);<br /> clrscr();<br /> exit(0);<br /> break;<br /> }<br /> }<br />}<br />