1. 13<br />Προγράμματα<br />C<br />Καλοκαίρι 1997 & Καλοκαίρι 2011<br />1ο Πρόγραμμα<br />Το πρόγραμμα αυτό «διαβάζει» έναν χαρακτήρα από το πληκτρολόγιο και τον εμφανίζει στην οθόνη …<br />main() /* Πάντα ξεκινάμε με την main() */<br />{<br />char x; /* Ορίζουμε την μεταβλητή x σαν τύπου char */<br />do<br />{<br />scanf(quot;
%cquot;
,&x); /* « Διάβασε » την x */<br />printf(quot;
%cquot;
,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(quot;
%d %cquot;
,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( quot;
7+A/10*B=%dquot;
, 7+A/10*B );<br /> printf(quot;
A/B*B=%dquot;
, A/B*B );<br /> printf(quot;
C/D*D=%fquot;
, C/D*D );<br /> printf(quot;
-A=%dquot;
, -A );<br /> printf(quot;
-A*B=%dquot;
, -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( quot;
give %d,%d numberquot;
, i+1 , j+1 );<br /> scanf( quot;
%dquot;
, &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(quot;
%d,%d number: %dquot;
,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(quot;
Δώσε έναν αριθμό για την βάση της δύναμης : quot;
) ; <br />scanf(quot;
%dquot;
,&base); /* Καταχώριση του αριθμού στην μεταβλητή base */<br />printf(quot;
Δώσε έναν αριθμό για τον εκθέτη της δύναμης : quot;
) ; <br />scanf(quot;
%dquot;
,&power); /* Καταχώριση στην μεταβλητή power */<br />result=raise(base,power); /* «Καλούμε» την raise και «περνάμε»<br /> το αποτέλεσμα στην μεταβλητή result */<br />printf(quot;
%dquot;
,&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(quot;
%5 f quot;
, a[i] ) ;<br /> printf(quot;
quot;
);<br /> for (i=5; i>-1; --i) printf(quot;
%5fquot;
, a[i]);<br /> printf(quot;
quot;
);<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(quot;
Όρια ακεραίου κλειστού διαστήματος ; quot;
) ;<br /> <br /> scanf(quot;
%d,%dquot;
,&a,&b); /* Τα όρια είναι από a έως b */<br /> printf(quot;
Ακέραιος αριθμός ; quot;
); /* Ο αριθμός που ελέγχουμε … */ <br /> scanf(quot;
%dquot;
,&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(quot;
%d : Δεν ανήκει στο [%d,%d] quot;
, x, a, b ) ;<br />break;<br /> case '+':<br />printf(quot;
%d : Ανήκει στο [%d,%d] , … και είναι άρτιος quot;
, x , a, b ) ;<br />break;<br /> case '-':<br />printf(quot;
%d : Ανήκει στο [%d,%d] , … και είναι περιττόςquot;
, 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(quot;
Δώσε έναν ακέραιο αριθμό :quot;
);<br />scanf(quot;
%dquot;
,&a);<br />if (a<0)<br />{<br />prosimo='-' ; <br /> printf(quot;
Ο %d έχει πρόσημο %c quot;
, a , prosimo ) ;<br />}<br />else if (a==0)<br />printf(quot;
Ο %d δεν έχει πρόσημο quot;
, a ) ;<br />else<br />{<br />prosimo='+' ; <br /> printf(quot;
Ο %d έχει πρόσημο %c quot;
, a , prosimo ) ;<br />}<br />printf(quot;
quot;
);<br />printf(quot;
Για να επιστρέψετε στο περιβάλλον της C quot;
) ;<br />printf(quot;
Πατήστε Ctrl και δύο φορές Break : quot;
) ;<br />scanf(quot;
%cquot;
, &q) ;<br />scanf(quot;
%cquot;
,&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(quot;
Give your 2nd name : quot;
) ;<br />scanf(quot;
%20c quot;
, e ) ; <br />printf(quot;
Give your 1st name : quot;
) ;<br />scanf(quot;
%15c quot;
, o ) ;<br />printf(quot;
Give your fathername : quot;
) ;<br />scanf(quot;
%15c quot;
, p ) ;<br />printf(quot;
Give your address : quot;
) ;<br />scanf(quot;
%25c quot;
, a );<br />printf(quot;
Give your telephone: quot;
) ;<br />scanf(quot;
%10c quot;
, t ) ;<br />printf(quot;
Give your age: quot;
) ;<br />scanf(quot;
%d quot;
, age ) ;<br />printf(quot;
Give your sex: quot;
) ;<br />scanf(quot;
%c quot;
, sex ) ;<br />printf(quot;
quot;
);<br />/* … και εμφάνισή τους … */<br />printf(quot;
Lastname : %c quot;
, e[20] ) ; <br />printf(quot;
Name : %c quot;
, o[15] ) ;<br />printf( quot;
Father_name : %c quot;
, p[15] ) ;<br />printf(quot;
Address : %c quot;
, a[25] ) ;<br />printf(quot;
Telephone : %d quot;
, t[10] ) ;<br />printf(quot;
Age:%d quot;
, age ) ;<br />printf(quot;
Sex : %c quot;
, 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(quot;
quot;
);<br />printf(quot;
----------------------------------------------------quot;
);<br />printf(quot;
Δώστε μου διαδοχικά τους χαρακτήρες : a -- b -- c quot;
);<br />printf(quot;
quot;
);<br />scanf(quot;
%c %c %cquot;
,&x,&y,&z);<br />printf(quot;
quot;
);<br />if (x=='a')<br /> {<br /> if (y=='b')<br /> {<br /> if (z=='c')<br /> printf(quot;
Δώσατε τους χαρακτήρες κατά τη ζητούμενη σειρά. quot;
);<br /> else<br /> printf(quot;
Δεν έδωσες ως τρίτο χαρακτήρα τον c. quot;
);<br /> }<br /> else<br /> printf(quot;
Δεν έδωσες ως δεύτερο χαρακτήρα τον b quot;
);<br /> }<br />else<br /> printf(quot;
Δεν έδωσες ως πρώτο χαρακτήρα τον a quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Για να επιστρέψετε στο περιβάλλον του MS-DOS quot;
);<br />printf(quot;
Περιμένετε 2 δευτερόλεπτα... quot;
);<br />printf(quot;
quot;
);<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(quot;
quot;
);<br />printf(quot;
----------------------------------------------------------------------quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Πρόγραμμα εκτύπωσης των 12 μηνών του έτους και των ημερών <br /> που έχουν. quot;
);<br />for (j=0; j<12; ++j)<br /> printf(quot;
Month : %c%c%c Number of Days : %d quot;
, <br /> a[j].n[0] , a[j].n[1] , a[j].n[2] , a[j].i);<br /> printf(quot;
quot;
);<br />printf(quot;
Πατήστε ένα πλήκτρο για τερματισμό του προγράμματος... quot;
);<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(quot;
quot;
);<br />printf(quot;
--------------------------------------quot;
);<br />printf(quot;
Δώστε μου ένα ημερολογιακό έτος : quot;
);<br />printf(quot;
quot;
);<br />scanf(quot;
%dquot;
,&etos);<br />printf(quot;
quot;
);<br />i=etos%4;<br />j=etos%100;<br />k=etos%400;<br />if (!((i==0 && j!=0) || k==0))<br /> printf(quot;
Το έτος %d : Δεν είναι δίσεκτο quot;
,etos);<br />else<br /> printf(quot;
Το έτος %d : Είναι δίσεκτο quot;
,etos);<br />printf(quot;
quot;
);<br />printf(quot;
Do you want to finish the program; quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Type ' 2=Yes ' or ' 1=No ' : quot;
);<br />scanf(quot;
%dquot;
,&a);<br />switch(a)<br />{<br />case 1:<br /> printf(quot;
quot;
);<br /> printf(quot;
Here we go again...in 2 sec! quot;
);<br /> delay(2000);<br /> break;<br />case 2:<br /> printf(quot;
quot;
);<br /> printf(quot;
That's the end of the story,folks! quot;
);<br /> printf(quot;
In about 2 seconds...quot;
);<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(quot;
quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
------------------------------------------------quot;
);<br />printf(quot;
CALCULATE THE SUM OF NUMBERS,UNTIL THE LIMIT. quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Numbers range from 0 up to 255 quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Give me one number,please... : quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
quot;
);<br />scanf(quot;
%dquot;
,&num);<br />athr=addition(num);<br />printf(quot;
quot;
);<br />printf(quot;
The addition is : %d quot;
,athr);<br />printf(quot;
quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
Do you wish another calculation? quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
If Yes type 1,if No type 2... quot;
);<br />printf(quot;
quot;
);<br />printf(quot;
quot;
);<br />scanf(quot;
%dquot;
,&i);<br />switch(i)<br />{<br /> case 1 :<br /> printf(quot;
quot;
);<br /> printf(quot;
I'm going to start again in 2 seconds... quot;
);<br /> delay(2000);<br /> break;<br /> case 2 :<br /> printf(quot;
quot;
);<br /> printf(quot;
This is the end of the program,in 2 seconds... quot;
);<br /> delay(2000);<br /> clrscr();<br /> exit(0);<br /> break;<br /> }<br /> }<br />}<br />