#include <stdio.h> int main() { int i, a[] = {10, 20, 30, 40, 50}; double b[] = {2.2, 1.94, 0.5, -1, -2};

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "#include <stdio.h> int main() { int i, a[] = {10, 20, 30, 40, 50}; double b[] = {2.2, 1.94, 0.5, -1, -2};"

Transcript

1

2 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) Ενδεικτικές Ασκήσεις Βιβλίου E.1 Ποια είναι ή έξοδος του παρακάτω προγράµµατος? int i, a[] = 10, 20, 30, 40, 50; double b[] = 2.2, 1.94, 0.5, -1, -2; for(i = 0; a[i] = b[i]; i++) printf("%d ", a[i]); E.2 Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει τους ακεραίους κωδικούς 50 προϊόντων και να τους αποθηκεύει σε έναν πίνακα. Το πρόγραµµα πριν αποθηκεύσει κάποιον κωδικό πρέπει να ελέγχει αν ήδη υπάρχει και µόνο αν δεν υπάρχει να τον αποθηκεύει στον πίνακα. ηλαδή, όλα τα στοιχεία του πίνακα πρέπει να είναι διαφορετικά µεταξύ τους. E.3 Ποια είναι η έξοδος του παρακάτω προγράµµατος; int *ptr1, *ptr2, i = 10, j = 20; ptr1 = &i; ptr2 = &j; ptr2 = ptr1; *ptr1 = *ptr1 + *ptr2; *ptr2 = 2*(*ptr2); printf("val = %d\n", *ptr1 + *ptr2); E.4 Να συµπληρώσετε το παρακάτω πρόγραµµα ώστε να διαβάζει δύο ακεραίους και να εµφανίζει το άθροισµα των ακεραίων που µεσολαβούν µεταξύ τους, χρησιµοποιώντας τους δείκτες p1, p2 και p3. Για παράδειγµα, αν ο χρήστης εισάγει τους ακεραίους 6 και 10, το πρόγραµµα να εµφανίζει 24 2

3 Ενδεικτικές Ασκήσεις του Βιβλίου (7+8+9). Το πρόγραµµα να υποχρεώνει τον χρήστη να εισάγει τιµές µικρότερες από 100 και ο πρώτος ακέραιος να είναι µικρότερος από τον δεύτερο. int *p1, *p2, *p3, i, j, sum;... E.5 Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει τους βαθµούς 10 φοιτητών, να τους αποθηκεύει σε έναν πίνακα και να εµφανίζει τη µεγαλύτερη και τη µικρότερη τιµή, καθώς και τις θέσεις τους στον πίνακα. Το πρόγραµµα να ελέγχει αν ο εισαγόµενος βαθµός ανήκει στο [0, 10]. Η διαχείριση του πίνακα να γίνει µε σηµειογραφία δείκτη. E.6 Ποιες τιµές αποκτούν τα στοιχεία του πίνακα arr στο παρακάτω πρόγραµµα; int *ptr, arr[5] = 20; for(ptr = arr+1; ptr <= arr+4; ptr++) *ptr = *(ptr-1) + *(ptr+1) + 1; E.7 Να γραφεί ένα πρόγραµµα το οποίο να εµφανίζει όλα τα πεζά γράµµατα του λατινικού αλφαβήτου σε µία γραµµή, τα κεφαλαία γράµµατα σε µία δεύτερη γραµµή και τους χαρακτήρες που αντιστοιχούν στα ψηφία 0-9 σε µία τρίτη γραµµή. Να χρησιµοποιήσετε µόνο έναν for βρόχο. E.8 Ποια είναι η έξοδος του παρακάτω προγράµµατος; char str1[] = "test", str2[] = "test"; (str1 == str2)? printf("one\n") : printf("two\n"); 3

4 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) E.9 Να γραφεί ένα πρόγραµµα το οποίο να υποχρεώνει τον χρήστη να εισάγει ένα αλφαριθµητικό µε περισσότερους από πέντε χαρακτήρες και λιγότερους από εκατό και να το εµφανίζει. Μην χρησιµοποιήσετε την gets(). E.10 Ποια είναι η έξοδος του παρακάτω προγράµµατος; #include <string.h> char str[10] = "test"; printf("%d %s\n", *strcpy(str, "n")**strcpy(str+2, "xt"), str); E.11 ηµιουργήστε µία συνάρτηση που να δέχεται σαν παραµέτρους δύο δείκτες σε δύο πραγµατικούς αριθµούς τύπου double και να επιστρέφει τον δείκτη στον πραγµατικό αριθµό µε τη µεγαλύτερη τιµή. Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει δύο πραγµατικούς και να εµφανίζει τον µεγαλύτερο από αυτούς µε χρήση της συνάρτησης. E.12 Ποια είναι η έξοδος του παρακάτω προγράµµατος; #include <string.h> char *ptr, str[] = "Text"; int i; ptr = str; for(i = 0; i < strlen(str); i++) printf("%c", ptr[i]); ptr++; E.13 ηµιουργήστε µία συνάρτηση που να δέχεται σαν παραµέτρους έναν πίνακα που περιέχει τις τιµές των εµπορευµάτων σε ένα κατάστηµα και το µέγεθός του και να επιστρέφει την ελάχιστη τιµή, τη µέγιστη και τον µέσο όρο. Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει τις τιµές µέχρι 100 εµπορευµάτων και να τις αποθηκεύει σε έναν πίνακα. Η εισαγωγή των τιµών να 4

5 Ενδεικτικές Ασκήσεις του Βιβλίου σταµατάει αν ο χρήστης εισάγει την τιµή -1. Το πρόγραµµα να εµφανίζει την ελάχιστη τιµή, τη µέγιστη και τον µέσο όρο µε χρήση της συνάρτησης. E.14 Ποια είναι η έξοδος του παρακάτω προγράµµατος; void test(int *arg); int var = 100; int *ptr, i = 30; ptr = &i; test(ptr); printf("val = %d\n", *ptr); void test(int *arg) arg = &var; E.15 Ποια είναι η έξοδος του παρακάτω προγράµµατος; int a = 4; if(a == 0) else printf("%d ", a--); main(); E.16 Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει τα ορίσµατα της γραµµής εντολών, να δεσµεύει µνήµη, να τα αποθηκεύει αντεστραµµένα σε αυτήν και 5

6 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) στη συνέχεια να τα εµφανίζει στην οθόνη. Για παράδειγµα, αν τα ορίσµατα είναι next και time να αποθηκεύονται στη µνήµη σαν txen και emit. E.17 Να ορίσετε µία δοµή city µε πεδία: όνοµα, χώρα, πληθυσµός. Να γραφεί ένα πρόγραµµα που να χρησιµοποιεί αυτή τη δοµή για να εισάγει ο χρήστης τα στοιχεία 5 πόλεων, τα οποία να αποθηκεύονται σε έναν πίνακα τέτοιων δοµών. Στη συνέχεια, το πρόγραµµα να διαβάζει το όνοµα µίας χώρας και έναν αριθµό και να εµφανίζει τις πόλεις της συγκεκριµένης χώρας που έχουν µεγαλύτερο πληθυσµό από τον ακέραιο που εισήγαγε ο χρήστης. E.18 Θεωρείστε ότι κάθε γραµµή του αρχείου κειµένου students.txt περιέχει ονόµατα φοιτητών (θεωρείστε ότι κάθε όνοµα έχει λιγότερους από 100 χαρακτήρες) και τους βαθµούς τους σε δύο µαθήµατα µε την ακόλουθη µορφή: John Morne Jack Lommi Peter Smith Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει κάθε γραµµή του αρχείου students.txt και να αποθηκεύει σε ένα δεύτερο αρχείο suc.txt τα στοιχεία των φοιτητών που έχουν µέσο όρο µεγαλύτερο ή ίσο του 5, ενώ σε ένα τρίτο αρχείο fail.txt τα στοιχεία των φοιτητών µε µέσο όρο µικρότερο του 5. Το πρόγραµµα να εµφανίζει τον αριθµό των επιτυχόντων και αποτυχόντων φοιτητών, πριν τερµατίσει. E.19 Υποθέστε ότι το δυαδικό αρχείο test.bin περιέχει τους βαθµούς ενός φοιτητή (αποθηκευµένοι σαν float). Να γραφεί ένα πρόγραµµα το οποίο να διαβάζει τους βαθµούς από το αρχείο, στη συνέχεια να διαβάζει έναν αριθµό και να εµφανίζει τους βαθµούς µε µεγαλύτερη τιµή από αυτόν. E.20 Ποια είναι ή έξοδος του παρακάτω προγράµµατος? #define no_main(type, name, text,num) type name() printf(text); return num; no_main(int, main, "No main() program", 0) 6

7 Ενδεικτικές Αϖαντήσεις E.1 Απάντηση: Η συνθήκη ελέγχου a[i] = b[i] είναι ισοδύναµη µε την έκφραση (a[i] = b[i])!= 0. Αυτή η έκφραση σηµαίνει ότι οι τιµές των στοιχείων του πίνακα b αντιγράφονται στα αντίστοιχα στοιχεία του πίνακα a και γίνεται έλεγχος αν η τιµή του a[i] έγινε 0. Αν γίνει 0, ο βρόχος τερµατίζεται και δεν γίνεται άλλη αντιγραφή. Όµως, αφού ο τύπος του πίνακα a είναι int, ενώ ο τύπος του πίνακα b είναι double, µόνο το ακέραιο µέρος των στοιχείων του πίνακα b θα εκχωρείται στα αντίστοιχα στοιχεία του πίνακα a. Άρα, µε την αντιγραφή της τιµής 0.5 η τιµή του a[2] θα γίνει 0 και ο βρόχος θα τερµατιστεί. Εποµένως, το πρόγραµµα εµφανίζει: 2 1 E.2 Απάντηση: #define SIZE 50 int i, j, num, found, code[size]; i = 0; while(i < SIZE) printf("enter code: "); scanf("%d", &num); found = 0; /* Η µεταβλητή i µετράει τους αριθµούς που έχουν καταχωρηθεί στον πίνακα, οπότε αυτός ο for βρόχος ελέγχει αν ο εισαγόµενος αριθµός υπάρχει ήδη στον πίνακα. Αν υπάρχει, η µεταβλητή found γίνεται 1 και ο βρόχος τερµατίζεται. */ for(j = 0; j < i; j++) if(code[j] == num) printf("error: Code %d exists. ", num); found = 1; break;

8 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) /* Αν ο αριθµός δεν υπάρχει στον πίνακα, τον αποθηκεύουµε και αυξάνουµε τον δείκτη θέσης κατά ένα. */ if(found == 0) code[i] = num; i++; printf("\ncodes: "); for(i = 0; i < SIZE; i++) printf("%d ", code[i]); E.3 Απάντηση: Aφού ο ptr1 δείχνει στη διεύθυνση του i, το *ptr1 θα είναι ίσο µε την τιµή του i. Με την εντολή ptr2 = ptr1; ο ptr2 δείχνει εκεί που δείχνει ο ptr1, δηλαδή στη διεύθυνση της µεταβλητής i. Εποµένως, το *ptr2 θα είναι ίσο µε την τιµή του i. Aφού και οι δύο δείκτες δείχνουν στη διεύθυνση του i, η εντολή *ptr1 = *ptr1 + *ptr2; ισοδυναµεί µε i = i+i = = 20. Παρόµοια, η εντολή *ptr2 = 2*(*ptr2); ισοδυναµεί µε i = 2*i = 2*20 = 40, ενώ η εντολή i += *ptr1; µε i = i+i = = 80. Αφού ο ptr2 εξακολουθεί να δείχνει στη διεύθυνση του i, το πρόγραµµα εµφανίζει: Val = 80. E.4 Απάντηση: int *p1, *p2, *p3, i, j, sum; 8 p1 = &i; p2 = &j; p3 = *p3 = 0;

9 Ενδεικτικές Ασκήσεις του Βιβλίου do printf("enter two numbers (a < b < 100): "); scanf("%d%d", p1, p2); while(*p1 >= *p2 *p2 > 100); (*p1)++; while(*p1 < *p2) *p3 += *p1; (*p1)++; printf("sum = %d\n", *p3); E.5 Απάντηση: #define SIZE 10 int i, max_pos, min_pos; float max, min, arr[size]; max = 0; min = 10; max_pos = min_pos = 0; for(i = 0; i < SIZE; i++) do printf("enter grade: "); scanf("%f", arr+i); while(*(arr+i) > 10 *(arr+i) < 0); /* Έλεγχος αν ο βαθµός ανήκει στο [0,10]. */ if(*(arr+i) > max) max = *(arr+i); max_pos = i; if(*(arr+i) < min) min = *(arr+i); min_pos = i; printf("max grade is %.2f in pos #%d\n", max, max_pos); 9

10 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) 10 printf("min grade is %.2f in pos #%d\n", min, min_pos); E.6 Απάντηση: Με τη δήλωση του πίνακα arr η τιµή του πρώτου στοιχείου του γίνεται 20 και οι τιµές των υπολοίπων 0. Με την εντολή ptr = arr+1; ο ptr δείχνει στο δεύτερο στοιχείο του πίνακα και κάθε φορά που αυξάνεται µε την εντολή ptr++ δείχνει στο επόµενο στοιχείο του. Ο for βρόχος τερµατίζεται όταν η τιµή του ptr γίνει ίση µε arr+5, δηλαδή όταν δείξει σε διεύθυνση µνήµης µετά το τελευταίο στοιχείο του πίνακα. Κάθε φορά που εκτελείται ο for βρόχος η τιµή του τρέχοντος στοιχείου του πίνακα γίνεται ίση µε το άθροισµα των τιµών του προηγούµενου στοιχείου, του επόµενου και της µονάδας. Για παράδειγµα, στην πρώτη εκτέλεση του βρόχου η εντολή: *ptr = *(ptr-1) + *(ptr+1) + 1; είναι ισοδύναµη µε arr[1] = arr[0] + arr[2] + 1 = 21; Άρα, τα στοιχεία του πίνακα arr[0] έως και arr[3] θα αποκτήσουν τιµές από 20 έως και 23. Ωστόσο, δεν τελειώσαµε. Τι τιµή θα έχει το arr[4]; Η τιµή του arr[4] θα είναι ίση µε το άθροισµα του arr[3], της µονάδας και της τυχαίας τιµής που βρίσκεται στη διεύθυνση µνήµης αµέσως µετά το arr[4]. E.7 Απάντηση: char ch, end_ch; end_ch = 'z'; for(ch = 'a'; ch <= end_ch; ch++) printf("%c ", ch); if(ch == 'z')

11 Ενδεικτικές Ασκήσεις του Βιβλίου ch = 'A'-1; /* Αφαιρούµε 1, ώστε στην επόµενη επανάληψη του βρόχου µε την εντολή ch++ να γίνει ίση µε 'Α'. */ end_ch = 'Z'; /* Αλλάζουµε τον τερµατικό χαρακτήρα, ώστε ο βρόχος να εµφανίσει τα κεφαλαία γράµµατα. */ printf("\n"); else if(ch == 'Z') ch = '0'-1; end_ch = '9'; printf("\n"); E.8 Απάντηση: Τα ονόµατα των πινάκων χρησιµοποιούνται σαν δείκτες. Αν λοιπόν το str1 δείχνει εκεί που δείχνει το str2, τότε το πρόγραµµα εµφανίζει One, αλλιώς Two. είχνoυν τα str1 και str2 στην ίδια θέση µνήµης; Όχι βέβαια. Οι µεταβλητές str1 και str2 είναι πίνακες, για τους οποίους έχει δεσµευτεί διαφορετική µνήµη. Ναι µεν τα περιεχόµενα των πινάκων είναι ίδια, αλλά αποθηκεύονται σε διαφορετικές θέσεις µνήµης. Εποµένως, το πρόγραµµα θα εµφανίσει Two. Ποια θα ήταν η έξοδος του προηγούµενου προγράµµατος αν γράφαµε: (*str1 == *str2)? printf("one\n") : printf("two\n"); Αφού το str1 δείχνει στο πρώτο στοιχείο του πίνακα, το *str1 είναι ίσο µε 't'. Παροµοίως, το *str2 είναι και αυτό ίσο µε 't'. Άρα, το πρόγραµµα θα εµφάνιζε One. E.9 Απάντηση: #include <string.h> char str[100]; int i, ch; printf("enter text (> 5 && < 100): "); while(1) 11

12 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) 12 i = 0; while((ch = getchar())!= '\n' && ch!= EOF) if(i < 99) str[i] = ch; i++; str[i] = '\0'; if(strlen(str) > 5) break; else printf("enter text (> 5 && < 100): "); printf("%s\n", str); E.10 Απάντηση: Η πρώτη strcpy() αντιγραφεί τους χαρακτήρες του αλφαριθµητικού n, δηλαδή τους χαρακτήρες 'n' και '\0', στα στοιχεία str[0] και str[1], αντίστοιχα, και επιστρέφει τον str δείκτη. Άρα, η έκφραση *strcpy(str, "n") µπορεί να αντικατασταθεί από την *str, δηλαδή το 'n'. Η δεύτερη strcpy() αντιγραφεί το αλφαριθµητικό xt στην τρίτη θέση του πίνακα str και επιστρέφει τον str+2 δείκτη. Άρα, η έκφραση *strcpy(str+2, "xt") µπορεί να αντικατασταθεί από την *(str+2), δηλαδή το 'x'. Εποµένως, το πρόγραµµα εµφανίζει το γινόµενο των ASCII τιµών των 'n' και 'x', που είναι ίσο µε Ωστόσο, δεν εµφανίζει next, αλλά µόνο τον χαρακτήρα n, γιατί η πρώτη strcpy() αντικατέστησε το 'e' µε '\0'. E.11 Απάντηση: double *max(double *ptr1, double *ptr2);

13 Ενδεικτικές Ασκήσεις του Βιβλίου double *ptr, i, j; printf("enter numbers: "); scanf("%lf%lf", &i, &j); ptr = max(&i, &j); printf("the max of %f and %f is %f\n", i, j, *ptr); double *max(double *ptr1, double *ptr2) if(*ptr1 > *ptr2) return ptr1; else return ptr2; Σχόλια: Η max() συγκρίνει τα περιεχόµενα των δεικτών και επιστρέφει τον δείκτη στον πραγµατικό µε τη µεγαλύτερη τιµή. Ο δείκτης αυτός εκχωρείται στον δείκτη ptr και η printf() εµφανίζει το περιεχόµενό του. Θα µπορούσαµε να µην δηλώσουµε τη µεταβλητή ptr και να γράψουµε: printf("the max value of %f and %f is %f\n", i, j, *max(&i, &j)); E.12 Απάντηση: Μάλλον, ετοιµαστείτε για ήττα. Αφού η strlen() επιστρέφει 4, ο for βρόχος θα εκτελεστεί τέσσερις φορές. Ας αναλύσουµε τις επαναλήψεις: 1 η επανάληψη (i = 0): Εµφανίζεται η τιµή του ptr[0], δηλαδή το 'T'. 2 η επανάληψη (i++ = 1): Η τιµή του ptr έχει αυξηθεί κατά ένα, άρα τώρα ο ptr δείχνει στον δεύτερο χαρακτήρα του αλφαριθµητικού που είναι ο 'e'. Αφού χειριζόµαστε το ptr σαν πίνακα, η τιµή του ptr[0] είναι 'e' και η τιµή του ptr[1] είναι 'x'. Άρα, το πρόγραµµα εµφανίζει 'x'. 3 η επανάληψη (i++ = 2): Ο ptr αυξάνεται και δείχνει στον τρίτο χαρακτήρα που είναι ο 'x'. Εποµένως, η τιµή του ptr[0] είναι 'x', η τιµή του ptr[1] είναι 't' και η τιµή του ptr[2] είναι '\0'. Άρα, το πρόγραµµα δεν εµφανίζει τίποτα. 13

14 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) 4 η επανάληψη (i++ = 3): Τώρα, ο ptr δείχνει στον τέταρτο χαρακτήρα του αλφαριθµητικού που είναι ο 't'. Εποµένως, η τιµή του ptr[0] είναι 't', η τιµή του ptr[1] είναι '\0' και οι τιµές των ptr[2] και ptr[3] είναι οι τυχαίες τιµές που βρίσκονται στη µνήµη. Άρα, το πρόγραµµα θα εµφανίσει έναν τυχαίο χαρακτήρα. Τελικά, το πρόγραµµα εµφανίζει: Tx(κενό)(τυχαίος χαρακτήρας) E.13 Απάντηση: void stat_arr(float arr[], int size, float *min, float *max, float *avg); int i; float min, max, avg, arr[100]; for(i = 0; i < 100; i++) printf("enter price: "); scanf("%f", &arr[i]); if(arr[i] == -1) break; if(i == 0) /* Η µεταβλητή i δηλώνει πόσες τιµές αποθηκεύτηκαν στον πίνακα. Π.χ. αν ο χρήστης δεν εισάγει την τιµή -1, τότε η τιµή του i µετά το for βρόχο θα είναι ίση µε 100. Αν ο χρήστης εισάγει το -1, η τιµή του i δηλώνει τον αριθµό τους. */ stat_arr(arr, i, &min, &max, &avg); printf("max=%.2f Min=%.2f Avg=%.2f\n", max, min, avg); void stat_arr(float arr[], int size, float *min, float *max, float *avg) int i; float sum; 14 sum = *min = *max = arr[0]; for(i = 1; i < size; i++)

15 Ενδεικτικές Ασκήσεις του Βιβλίου if(arr[i] > *max) *max = arr[i]; if(arr[i] < *min) *min = arr[i]; sum += arr[i]; *avg = sum/size; Σχόλια: Αφού µε την εντολή return µπορούµε να επιστρέψουµε το πολύ µία τιµή, µεταβιβάζουµε σαν ορίσµατα δείκτες σε αντίστοιχες µεταβλητές για την αποθήκευση των τιµών. E.14 Απάντηση: Απαντήσατε 100, έτσι δεν είναι; Παραδεχτείτε το, σας ξεγελάσαµε για άλλη µία φορά,... ετοιµαστείτε για τις επόµενες. Η test() δέχεται σαν όρισµα την τιµή της µεταβλητής ptr και όχι τη διεύθυνσή της. Άρα, οποιαδήποτε µεταβολή στην τιµή του arg δεν επηρεάζει την τιµή του ptr και το πρόγραµµα εµφανίζει: Val = 30 E.15 Απάντηση: Παρατηρείστε ότι και η main() µπορεί να κληθεί µε αναδροµικό τρόπο. Με κάθε κλήση της, η τιµή του a µειώνεται κατά 1. Οι κλήσεις της main() θα σταµατήσουν, όταν η τιµή του a γίνει 0. Εποµένως, το πρόγραµµα εµφανίζει: E.16 Απάντηση: #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) char *rvs_str; int i, j, len; if(argc == 1) printf("missing string arguments...\n"); exit(1); 15

16 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) for(i = 1; i < argc; i++) len = strlen(argv[i]); rvs_str = (char *) malloc(len+1); /* εσµεύουµε µία επιπλέον θέση για τον χαρακτήρα '\0'. */ if(rvs_str == NULL) printf("error: Not available memory\n"); exit(1); for(j = 0; j < len; j++) rvs_str[j] = argv[i][len-1-j]; /* Ο τελευταίος χαρακτήρας είναι αποθηκευµένος στη θέση len-1. */ rvs_str[j] = '\0'; /* Τερµατισµός αλφαριθµητικού. */ printf("reverse of %s is: %s\n", argv[i], rvs_str); free(rvs_str); E.17 Απάντηση: #include <string.h> #define MAX_CITIES 5 struct city /* Θεωρούµε ότι τα ονόµατα είναι λιγότεροι από 30 χαρακτήρες. */ char name[30]; char country[30]; int pop; ; int i,pop; char country[30]; struct city cities[max_cities]; for(i = 0; i < MAX_CITIES; i++) printf("\n***** Enter city data:\n"); printf("city name: "); scanf("%s", cities[i].name); 16 printf("country name: "); scanf("%s", cities[i].country);

17 Ενδεικτικές Ασκήσεις του Βιβλίου printf("population: "); scanf("%d", &cities[i].pop); printf("\ncountry to search and population: "); scanf("%s%d", country, &pop); for(i = 0; i < MAX_CITIES; i++) if((cities[i].pop > pop) && (strcmp(cities[i].country, country) == 0)) printf("%s (%d)\n", cities[i].name, cities[i].pop); E.18 Απάντηση: #include <stdlib.h> FILE *fp_in, *fp_suc, *fp_fail; char fnm[100], lnm[100]; int suc_stud, fail_stud; double grd1, grd2; fp_in = fopen("students.txt", "r"); if(fp_in == NULL) printf("error: File can t be loaded\n"); exit(1); fp_suc = fopen("suc.txt", "w"); if(fp_suc == NULL) printf("error: File_1 can t be created\n"); exit(1); fp_fail = fopen("fail.txt", "w"); if(fp_fail == NULL) printf("error: File_2 can t be created\n"); exit(1); suc_stud = fail_stud = 0; while(1) if(fscanf(fp_in,"%s%s%lf%lf", fnm, lnm, &grd1, &grd2)!= 4) break; 17

18 C: Αϖό τη Θεωρία στην Εφαρµογή (Γ. Σ. Τσελίκης Ν.. Τσελίκας) if((grd1+grd2)/2 >= 5) fprintf(fp_suc,"%s %s %f %f\n", fnm, lnm, grd1, grd2); suc_stud++; else fprintf(fp_fail,"%s %s %f %f\n", fnm, lnm, grd1, grd2); fail_stud++; printf("failed: %d Succeeded: %d\n", fail_stud, suc_stud); fclose(fp_suc); fclose(fp_fail); fclose(fp_in); E.19 Απάντηση: #include <stdlib.h> FILE *fp; int i, grd_num; float grd, *grd_arr; fp = fopen("test.bin", "rb"); if(fp == NULL) printf("error: File can't be loaded\n"); exit(1); fseek(fp, 0, SEEK_END); grd_num = ftell(fp) / sizeof(float); /* Αφού o δείκτης θέσης του αρχείου είναι στο τέλος του µε την ftell() υπολογίζουµε το µέγεθος του αρχείου σε οκτάδες. Αφού κάθε βαθµός αποθηκεύεται σαν float, το αποτέλεσµα της διαίρεσής τους είναι το πλήθος των βαθµών που είναι αποθηκευµένοι στο αρχείο. */ fseek(fp, 0, SEEK_SET); grd_arr = (float *) malloc(grd_num * sizeof(float)); /* έσµευση µνήµης για την αποθήκευση των βαθµών. */ if(grd_arr == NULL) printf("error: Not available memory\n"); exit(1); 18

19 Ενδεικτικές Ασκήσεις του Βιβλίου /* ιάβασµα των βαθµών και έλεγχος ότι δεν συνέβη κάποιο λάθος. */ if(fread(grd_arr, sizeof(float), grd_num, fp) == grd_num) printf("enter grade: "); scanf("%f", &grd); for(i = 0; i < grd_num; i++) if(grd_arr[i] > grd) printf("%f\n", grd_arr[i]); else printf("error: fread() failed\n"); free(grd_arr); fclose(fp); E.20 Απάντηση: Και η καλύτερη για το τέλος. Παράνοια έτσι; Τηλέφωνο στη γραµµή εξαφάνισης, χάσαµε την main(). Και όµως, το πρόγραµµα τρέχει. Ο προεπεξεργαστής αντικαθιστά το type µε int, το name µε main, το text µε "No main() program" και το num µε 0. Εποµένως, ο προεπεξεργαστής µεταφράζει την no_main() σε: printf("no main() program"); οπότε, το πρόγραµµα εκτελείται κανονικά και εµφανίζει: No main() program Τι θα γινόταν αν το πρώτο όρισµα της µακροεντολής ήταν void αντί για int; Ο µεταγλωττιστής θα εµφάνιζε µήνυµα λάθους, αφού µία void συνάρτηση δεν επιτρέπεται να επιστρέφει τιµή. 19

C: Από τη Θεωρία στην Εφαρμογή

C: Από τη Θεωρία στην Εφαρμογή Δρ. Γ. Σ. Τσελίκης Δρ. Ν. Δ. Τσελίκας C: Από τη Θεωρία στην Εφαρμογή Ενδεικτικές Ασκήσεις από το Βιβλίο C: Από τη Θεωρία στην Εφαρμογή (Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας) Ενδεικτικές Ασκήσεις του Βιβλίου Ε.Α.1

Διαβάστε περισσότερα

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

Διαβάστε περισσότερα

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009 Προγραµµατισµός Ι (ΗΥ10) ιάλεξη : Πίνακες, Αλφαριθµητικά Πίνακες Ο πίνακας είναι µια ειδική δοµή για την αποθήκευση µιας σειράς από δεδοµένα του ίδιου τύπου. Η δήλωσηενός πίνακα γίνεται όπως για µια κανονική

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη

Διαβάστε περισσότερα

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΝΟΜΑΤΕΠΩΝΥΜΟ: AEM: ΜΕΡΟΣ Α: ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [15 µονάδες] ΣΗΜΑΝΤΙΚΕΣ ΔΙΕΥΚΡΙΝΙΣΕΙΣ: Επιλέξτε ΜΙΑ σωστή απάντηση για κάθε ερώτηση. Λάθος απαντήσεις βαθµολογούνται αρνητικά Σε ερωτήσεις που

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό «C»

Εισαγωγή στον Προγραµµατισµό «C» Εισαγωγή Στον Προγραµµατισµό «C» Δείκτες Πανεπιστήµιο Πελοποννήσου Τµήµα Επιστήµης & Τεχνολογίας Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Μνήµη Υπολογιστή Η µνήµη RAM (Random Access Memory) ενός υπολογιστή

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Χαρακτήρες Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Χαρακτήρες - Εισαγωγή Έως τώρα έχουμε κατά κύριο λόγο χρησιμοποιήσει τους αριθμητικούς τύπους

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 8 η Δείκτες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 13 Αρχεία Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Αρχεία Συλλογές δεδομένων Αποθηκεύονται στην περιφερειακή μνήμη π.χ. σκληρός

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 10 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

Διαβάστε περισσότερα

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Ελέγχου

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ.

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ. Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι 1 Αλφαριθµητικά - Εισαγωγή Ένα αλφαριθµητικό (string) είναι µία

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης

Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Η γλώσσα προγραμματισμού C Δυναμική διαχείριση μνήμης Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης.

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 8 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 11: Δείκτες & Πίνακες Δείκτες και πίνακες Μια μεταβλητή «μονοδιάστατος πίνακας από αντικείμενα τύπου Τ» μπορεί να θεωρηθεί ως (είναι συντακτικά συμβατή με) μια μεταβλητή

Διαβάστε περισσότερα

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 9 η Χαρακτήρες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

Διαβάστε περισσότερα

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ: ΘΕΜΑ 1: 2.5 μονάδες Τι εκτυπώνουν τα παρακάτω κομμάτια κώδικα θεωρώντας ότι πληκτρολογούμε

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 7ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος Δείκτες (Pointers) (1) 142 Κάθε μεταβλητή, εκτός από την τιμή της, έχει και μία συγκεκριμένη διεύθυνση

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Αλφαριθμητικά Αλφαριθμητικά (strings) Ένα αλφαριθμητικό είναι μια ακολουθία αλφαβητικών

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 6 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 10 η Αλφαριθμητικά Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου 2013 Θέµα 1 (α') Η απάντηση είναι λάθος. Αν χρησιµοποιήσουµε την µακροεντολή, για παράδειγµα, στην έκφραση 24/CUBE(2) η έκφραση

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 3 η Είσοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

Διαβάστε περισσότερα

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Συναρτήσεις Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Προγραμματισμός Δ. Τσελίκας Ι Συναρτήσεις - Εισαγωγή Μία συνάρτηση είναι ένα ανεξάρτητο τμήμα κώδικα, που εκτελεί μία

Διαβάστε περισσότερα

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #6 (β)

ιαφάνειες παρουσίασης #6 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Συναρτήσεις (1/2) Στη C χρησιμοποιούμε συχνά τις συναρτήσεις (functions), οι οποίες είναι ρουτίνες που επαναλαμβάνονται

Διαβάστε περισσότερα

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) Κεφάλαιο 9.1-9.2 Αλφαριθµητικές Σειρές Χαρακτήρων (Strings) ( ιάλεξη 19) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1) Strings στη C Ένα string είναι µία ακολουθία αλφαριθµητικών χαρακτήρων, σηµείων στίξης κτλ. Π.χ.

Διαβάστε περισσότερα

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1 Δυναμική δέσμευση και αποδέσμευση μνήμης Προγραμματισμός II 1 lalis@inf.uth.gr Γιατί χρειάζεται η δυναμική μνήμη; Οι απαιτήσεις του προγράμματος σε μνήμη μπορεί να είναι άγνωστες την ώρα της συγγραφής

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Συναρτήσεις εισόδου/εξόδου, τελεστές Η συνάρτηση scanf() είσοδος δεδομένων Διαβάζει από το πληκτρολόγιο (stdin) μορφοποιημένες τιμές μεταβλητών. scanf (ΣΕΙΡΑ_ΕΛΕΓΧΟΥ, δείκτης_μεταβλητής-1,

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 9 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών

Διαβάστε περισσότερα

Αρχές Προγραμματισμού

Αρχές Προγραμματισμού Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr Project σε Dev-C++ 2 1 Δείκτες (Pointers) Δείκτης: μεταβλητή στην οποία αποθηκεύουμε διεύθυνση

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

Διαβάστε περισσότερα

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε

Διαβάστε περισσότερα

Αρχές Προγραμματισμού

Αρχές Προγραμματισμού Αρχές Προγραμματισμού https://eclass.upatras.gr/courses/ee806/index.php Βασίλης Παλιουράς paliuras@ece.upatras.gr Άσκηση Να γραφεί πρόγραμμα που να αθροίζει δύο διανύσματα Ν στοιχείων σε ISO C90 χρησιμοποιώντας

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Β' Περιόδου Θέµα 1. (α')

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Β' Περιόδου Θέµα 1. (α') ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Β' Περιόδου 2011 Θέµα 1 (α') Η άποψη που εκφράζεται στην εν λόγω πρόταση είναι λανθασµένη. Η πιθανή βελτίωση της ταχύτητας εκτέλεσης των προγραµµάτων

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ερωτήσεις Επανάληψης Α. Ερωτήσεις Στο τέλος δίνονται υποδείξεις για την απάντηση μερικών ερωτήσεων. 01 Ερώτηση: Στις παρακάτω εντολές τι πρόβλημα υπάρχει;

Διαβάστε περισσότερα

Εργαστήριο 9: Αρχεία

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

Διαβάστε περισσότερα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Δείκτες Τι είναι ένας δείκτης (pointer); Όταν δηλώνoυμε μια μεταβλητή σε ένα πρόγραμμα

Διαβάστε περισσότερα

Προγραμματισμός Υπολογιστών με C++

Προγραμματισμός Υπολογιστών με C++ Προγραμματισμός Υπολογιστών με C++ ( 2012-13 ) 5η διάλεξη Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Τι θα ακούσετε σήμερα Πίνακες ως ορίσματα συναρτήσεων. Τα ορίσματα argc και argv της main.

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

Διαβάστε περισσότερα

Τύποι Δεδομένων Είσοδος/Έξοδος

Τύποι Δεδομένων Είσοδος/Έξοδος Εργαστήριο 2 ο Τύποι Δεδομένων Είσοδος/Έξοδος Εισαγωγή Σκοπός του εργαστηρίου αυτού είναι η εισαγωγή μας στους τύπους δεδομένων της C και η εξοικείωση μας με συναρτήσεις του ρεπερτορίου της ANSI C σχετικές

Διαβάστε περισσότερα

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον

Διαβάστε περισσότερα

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

Σημειώσεις όγδοης εβδομάδας

Σημειώσεις όγδοης εβδομάδας Σημειώσεις όγδοης εβδομάδας Για να την δημιουργία σειριακών αρχείων, χρησιμοποιείται η fopen(filename, w ). Το αρχείο δημιουργείται στον ίδιο φάκελο που τρέχει το εκτελέσιμο πρόγραμμα. Το παρακάτω πρόγραμμα,

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 6 Πίνακες Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Τύπος πίνακα (array) Σύνθετος τύπος δεδομένων Αναπαριστά ένα σύνολο ομοειδών

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ασκήσεις Επανάληψης Άσκηση 1 Το παρακάτω πρόγραμμα περιέχει μια δομή επανάληψης τύπου for. Να ξαναγραφεί ώστε να έχει ακριβώς την ίδια λειτουργία, χρησιμοποιώντας

Διαβάστε περισσότερα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι πίνακες στη C (μονοδιάστατοι -συμβολοσειρές) Γενικά για τους πίνακες Ο πίνακας είναι μια αρκετά διαδεδομένη δομή που προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού. Πρόκειται

Διαβάστε περισσότερα

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

Διαβάστε περισσότερα