Γλώσσα Προγραμματισμού C

Σχετικά έγγραφα
Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Γλώσσα Προγραμματισμού C

Γλώσσα Προγραμματισμού C

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

Γλώσσα Προγραμματισμού C

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Προγραμματισμός I (Θ)

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Γλώσσα Προγραμματισμού C

Μεθόδων Επίλυσης Προβλημάτων

ΤΕΙ Θεσσαλίας, Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9. ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση)

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

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

Προγραμματισμός I (Θ)

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

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

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

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

Μεθόδων Επίλυσης Προβλημάτων

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

Γλώσσα Προγραμματισμού C

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

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

Κατανεμημένος και Παράλληλος Προγραμματισμός

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 3 η

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Γλώσσες Προγραμματισμού

Πίνακες. Χρησιμοποιούνται για αποθήκευση συνόλου δεδομένων του ίδιου τύπου. Γραμμική Διάταξη Δήλωση Τύπος Δεδομένων ΌνομαΠίνακα[ length ]

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

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Γλώσσα Προγραμματισμού C

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

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

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

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή.

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

Μεθόδων Επίλυσης Προβλημάτων

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

Μεθόδων Επίλυσης Προβλημάτων

Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

Παραδείγματα. Γράψτε ένα πρόγραμμα που να τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών

Εισαγωγή στον δομημένο προγραμματισμό

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

Μεθόδων Επίλυσης Προβλημάτων

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

Εξοικ Εξ ε οικ ίωση ε με το το πρόγ ραμμα πρόγ DEV C++ Επικοι Επικ νωνία οι Χρήσ Χρήστη τη Υπολ Υπο ογισ λ τή

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Μεθόδων Επίλυσης Προβλημάτων

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

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

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ

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

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

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

Προγραμματισμός I (E)

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

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

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

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

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

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

Transcript:

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas Γλώσσα Προγραμματισμού C Εισήγηση # Δισδιάστατοι Πίνακες Ηλίας Κ. Σάββας Εισήγηση # Πολυδιάστατοι Πίνακες Ένας πίνακας μπορεί να είναι διαστάσεων αλλά και παραπάνω! Ένας πίνακας δύο διαστάσεων είναι η επανάληψη ενός πίνακα μίας διάστασης, κ.ο.κ.. 9 4 3 3 4 4 30 9 39 A 4x3 : 4 γραμμές 3 στήλες Ηλίας Κ. Σάββας Εισήγηση # 3

-d Πίνακες 3 9 4 3 3 4 A 3x0 = 4 0 33 4 4 9 3 3 Δείκτες του A 0,0 0, 0, 0,9 A,0,,,9,0,,,9 A[0][0] = ; A[0][] = 3; A[0][9] = ;.. A[][0] = ;. A[][9] = 3; Ηλίας Κ. Σάββας Εισήγηση # 4 Χρησιμοποιώντας -d Πίνακες Δήλωση ενός -d πίνακα: Τύπος_δεδομένων όνομα_μεταβλητής[πλήθος γραμμών][πλήθος στηλών]; int A[0][]; float x[00][]; char Epitheta[0][0], Onomata[0][0]; Αρχικοποίηση -d πινάκων: Τύπος_δεδομένων όνομα_μεταβλητής[πλήθος γραμμών][πλήθος στηλών]={τιμές χωρισμένες με κόμματα; int A[3][]={,,34,9,,3; A 3x 34 9 3 Ηλίας Κ. Σάββας Εισήγηση # Αρχικοποίηση -d πινάκων int A[3][]={,,34,9,,3; αλλά καλύτερα: int A[3][]={{,, {34,9, {,3; A 3x 34 9 3 Ηλίας Κ. Σάββας Εισήγηση #

Πίνακες και ο Βρόγχος του for /* Εισαγωγή Πίνακα */ for (i=0; i<n; I++) for (j=0; j<m; j++) { a[n][m] printf( \nεισαγωγή του %d,%d στοιχείου:, i+, j+); /* Εκτύπωση Πίνακα */ scanf( %d, &a[i][j]); for (i=0; i<n; I++) { printf( \n ); for (j=0; j<m; j++) printf( %d:, a[i][j]); Ηλίας Κ. Σάββας Εισήγηση # Άσκηση Να γραφεί ένα πρόγραμμα το οποίο αφού εισάγει έναν 4 Χ 4 πίνακα, στην συνέχεια να ψάχνει τον πίνακα για να βρει εάν περιέχει αρνητικές τιμές, και εάν περιέχει, να τις εκτυπώνει μαζί με τους δείκτες των αντιστοίχων θέσεων Ηλίας Κ. Σάββας Εισήγηση # Άσκηση #include <stdio.h> #define N 4 /* πλήθος γραμμών */ #define M 4 /* πλήθος στηλών */ int main() { int A[N][M], i, j; for (j=0; j<m; j++) { printf("\nεισαγωγή του %d, %d στοιχείου : ", i+, j+); scanf("%d", &A[i][j]); for (j=0; j<m; j++) if (A[i][j] < 0) printf("\n%d,%d : %d", i+, j+, A[i][j]); printf("\n\n"); return 0; Ηλίας Κ. Σάββας Εισήγηση # 9 3

Στατιστικά Δεδομένα Πλοήγησης μιας Ιστοσελίδας Να υπολογισθεί η μέση τιμή του πλήθους προσπέλασης μιας ιστοσελίδας σε ένα διάστημα εβδομάδων. Επίσης, να υπολογισθεί και η μέση τιμή προσπέλασης της σελίδας και σε εβδομαδιαία βάση. Ανάλυση: Το πλήθος των προσπελάσεων της ιστοσελίδας για ένα διάστημα εβδομάδων, μπορεί να αποθηκευτεί σε ένα πίνακα Χ. Επτά στήλες για τις ημέρες της κάθε βδομάδας. Πέντε γραμμές για τις βδομάδες. (a) Όλες οι περιεχόμενες τιμές πρέπει να αθροιστούν για τον υπολογισμό της μέσης τιμής τους., (b) Για τον υπολογισμό των εβδομαδιαίων αθροισμάτων, πρέπει να αθροιστεί κάθε στήλη ξεχωριστά. (c) Από τα ξεχωριστά αυτά εβδομαδιαία αθροίσματα θα προκύψουν οι πέντε μέσες τιμές ανά εβδομάδα, (d) Αυτές οι πέντε μέσες τιμές μπορούν να αποθηκευτούν σε ένα μονοδιάστατο πίνακα πέντε στοιχείων (e) Οι εκτυπώσεις πρέπει να είναι όπως στην διαφάνεια που ακολουθεί: Ηλίας Κ. Σάββας Εισήγηση # 0 Εκτυπώσεις Εβδομάδα Μέση τιμή προσπελάσεων -----------------------------------------------------????.??????.?? 3????.?? 4????.??????.?? Η συνολική μέση τιμή είναι????.?? Ηλίας Κ. Σάββας Εισήγηση # Πρόγραμμα... #include <stdio.h> #define N /* εβδομάδες */ #define M /* ημέρες ανά εβδομάδα */ int main() { int hits[n][m], i, j, float averagetotal, averageweek[n]; for (j=0; j<m; j++) { printf("\nπλήθος προσπελάσεων της εβδομάδας %d και ημέρας %d : ", i+, j+); scanf("%d", & hits[i][j]); Ηλίας Κ. Σάββας Εισήγηση # 4

Πρόγραμμα for (j=0; j<m; j++) total += hits[i][j]; averagetotal = (float) total / (N*M); { for (j=0; j<m; j++) total += hits[i][j]; averageweek[i] = (float) total / M; /* Headings */ printf("\n\nεβδομάδα\t\tμέση Τιμή Προσπελάσεων"); printf("\n-------------------------------\n\n"); Μέση τιμή προσπελάσεων της ιστοσελίδας μας για μία περίοδο εβδομάδων. Μέση τιμή προσπελάσεων της ιστοσελίδας μας σε εβδομαδιαία βάση. printf("\n%d\t\t%.f", i+, averageweek[i]); printf("\n\nη συνολική μέση τιμή είναι %.f\n\n", averagetotal); return 0; Ηλίας Κ. Σάββας Εισήγηση # 3 Άσκηση Να γράψετε ένα πρόγραμμα το οποίο να γεμίζει έναν NxN (N=) πίνακα ακεραίων με εκτός των στοιχείων που βρίσκονται στις διαγώνιους του που πρέπει να είναι 0. Ηλίας Κ. Σάββας Εισήγηση # 4 Στοιχεία Διαγωνίων #include <stdio.h> #define N int main() { int a[n][n], i, j; for (j=0; j<n; j++) if (i == j) a[i][j] = ; else if (N-i- == j) a[i][j] = ; else a[i][j] = 0; printf("\n\n"); { printf("\n"); for (j=0; j<n; j++) printf("%d\t", a[i][j]); printf("\n\n"); return 0; Ηλίας Κ. Σάββας Εισήγηση #

Μαγικό Τετράγωνο Σε ένα μαγικό τετράγωνο το άθροισμα των γραμμών, στηλών και διαγωνίων είναι το ίδιο. Γράψτε ένα πρόγραμμα που να ελέγχει εάν ένα δεδομένο τετράγωνο είναι 3 4 0 4 3 3 9 μαγικό. Ηλίας Κ. Σάββας Εισήγηση # 4 9 3 9 4 0 Μαγικό Τετράγωνο: Ανάλυση Έστω ο τετραγωνικός πίνακας a NxN : N γραμμές N αθροίσματα, N στήλες N αθροίσματα, διαγώνιοι αθροίσματα, Χρειαζόμαστε έναν μονοδιάστατο πίνακα N+ στοιχείων (Reults N+ ) για να αποθηκεύσουμε τα αθροίσματα, και τότε Θα τα συγκρίνουμε να δούμε εάν είναι ίσα! Ηλίας Κ. Σάββας Εισήγηση # Μαγικό Τετράγωνο... #include <stdio.h> #define N int main() { int a[n][n], i, j, int Results[*N+], flag = 0;; for (j=0; j<n; j++) { printf("\nεισαγωγή του %d, %d στοιχείου του πίνακα : ", i+, j+); scanf("%d", &a[i][j]); Ηλίας Κ. Σάββας Εισήγηση #

Μαγικά Τετράγωνα (άθροισμα στηλών) /* στήλες */ { for (j=0; j<n; j++) total += a[j][i]; Results[i] = total; 3 4 0 4 Στήλες: a[0][0]+a[][0]+a[][0]+...+a[n-][0]; a[0][]+a[][]+a[][]+...+a[n-][];... a[0][n-]+a[][n-]+a[][n-]+...+a[n-][n-]; 3 9 4 0 3 9 Ηλίας Κ. Σάββας Εισήγηση # 9 Μαγικά Τετράγωνα (άθροισμα γραμμών) /* γραμμές*/ { for (j=0; j<n; j++) total += a[i][j]; Results[N+i] = total; 3 4 0 4 Γραμμές: a[0][0]+a[0][]+a[0][]+...+a[0][n-]; A[][0]+a[][]+a[][]+...+a[][N-];... a[n-][0]+a[n-][]+a[n-][]+...+a[n-][n-]; 3 9 4 0 3 9 Ηλίας Κ. Σάββας Εισήγηση # 0 Μαγικά Τετράγωνα (άθροισμα διαγωνίων) /* διαγώνιοι */ total += a[i][i]; Results[*N] = total; total += a[n-i-][i]; Results[*N+] = total; 3 4 0 4 Διαγώνιοι: : a[0][0]+a[][]+a[][]+...+a[n-][n-]; : a[n-][0]+a[n-][]+a[n-3][]+...+a[0][n-]; 3 9 4 0 3 9 Ηλίας Κ. Σάββας Εισήγηση #

Μαγικά Τετράγωνα (σύγκριση αθροισμάτων) printf("\n\n"); for (i=0; i<*n+-; i++) { if (Results[i]!= Results[i+]) flag = ; printf("%d", Results[i]); printf("%d", Results[i]); if (flag == 0) printf("\n\nμαγικο ΤΕΤΡΑΓΩΝΟ!!!\n\n"); else printf("\n\nδεν είναι μαγικό τετράγωνο.\n\n"); return 0; Ηλίας Κ. Σάββας Εισήγηση # Γρήγορος Πίνακας Αναφοράς Σύνταξης Δήλωση πινάκων Δείκτες πινάκων Σύνταξη Τύπος_δεδομένων όνομα_πίνακα[d][d]..; d πλήθος γραμμών, d πλήθος στηλών,... Όνομα_πίνακα[i][j]... Υπενθύμιση: οι δείκτες των πινάκων ΠΡΕΠΕΙ να είναι ακέραιες μεταβλητές! Παραδείγματα int Ages[00]; float x[n]; float temperatures[][]; char Name[40]; Ages[] = ; x[] = x[]*; temperatures[][] = -3; Name[0] = I Ηλίας Κ. Σάββας Εισήγηση # 3 Τέλος της # Εισήγησης Ερωτήσεις??? Χρησιμοποιήστε το email εάν θέλετε να με ρωτήσετε οτιδήποτε: savvas@teilar.gr Σημειώσεις Μαθήματος (και όχι μόνο): http://e-class.teilar.gr/ Ηλίας Κ. Σάββας Εισήγηση # 4