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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός

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

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

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

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

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

Προέλευση της Pazcal ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

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

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

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

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

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

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

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

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

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

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

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

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

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

Υδραυλικά & Πνευματικά ΣΑΕ

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

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

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

Συστήματα Αυτομάτου Ελέγχου II

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Περιβαλλοντική Χημεία

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 3: Αποκατάσταση Εικόνας.

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

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

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

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

Λογιστικές Εφαρμογές Εργαστήριο

Συστήματα Αυτομάτου Ελέγχου 1 Ενότητα # 5: Χρήση μετασχηματισμού Laplace για επίλυση ηλεκτρικών κυκλωμάτων Μέθοδοι εντάσεων βρόχων και τάσεων κόμβων

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Επιχειρησιακή Έρευνα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

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

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

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

Σημειώσεις δεύτερης εβδομάδας

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

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

Αντικειμενοστραφής Προγραμματισμός

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

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

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

Ανάλυση Λογιστικών Καταστάσεων

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Πανεπιστήμιο Πελοποννήσου. Σχολή Θετικών Επιστημών & Τεχνολογίας. Τμήμα Επιστήμης & Τεχνολογίας Υπολογιστών. Προγραμματισμός Ι Εργαστήριο

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προχωρημένες έννοιες προγραμματισμού σε C

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΥΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

Ηλεκτρονικοί Υπολογιστές

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ

Βιομηχανικοί Ελεγκτές

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Transcript:

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Πρόγραμμα F-1: Υπολογισμός n! με αναδρομή /* n paragontiko me xrhsh recursive functions */ #include <stdio.h> int npar( int n); int main( void ) { int k, n; scanf("%d", &n); k= npar( n ); printf("%d\n", k); int npar( int n) { int z; if (n==1) { z= 1; else { z= n*npar( n-1 ); return z;

Πρόγραμμα F-2: Συνδυασμοί na στοιχείων ανά n (1/2) /* Ypologismos syndiasmwn na stoixeivn ana n (anejarthta seiras), ncr( n, k) = n! / ( k! (n-k)! ) Version 2 (Updated: 19-12-2014) */ #include <stdio.h> void combine( int na, int n, int b[], int t, int L); void printcomb( int a[], int n); int ncr( int n, int k); int main( void ) { int a[6]; int n=6; int na=10; printf("syndiasmoi %d stoixeivn ana %d\n", na, n); printf("plhthos syndiasmwn %d\n", ncr( na, n)); combine( na, n, a, 1, 0); return 0; void printcomb( int a[], int n) { int i; for( i=0; i<n; i++) { printf("%3d", a[i]); printf("\n"); (συνέχεια)

Πρόγραμμα F-2: Συνδυασμοί na στοιχείων ανά n (2/2) int ncr( int n, int k) { int p, pk, i; p=1; for(i= n-k+1; i<=n; i++) { p= p * i; pk=1; for(i= 1; i<=k; i++) { pk= pk * i; return p/pk; void combine( int na, int n, int b[], int t, int L) { int i; for(i= t; i <= na-n+l+1; i++) { b[l]= i; if (L == n-1) { printcomb( b, n); else { combine( na, n, b, i+1, L+1);

Πρόγραμμα F-3: Ορίζουσα n x n (1/2) /* Ypologismos orizousas n x n, recursive functions Dokimh: 3 1 2-1 3 1 2 1 2 1 d=-10 */ #include <stdio.h> #include <math.h> float determinant(float matrix[20][20], int size); int main( void) { float a[20][20]; int i, j, n; float d; scanf("%d",&n); for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%f",&a[i][j]); d= determinant( a, n); printf("%f\n", d); (συνέχεια)

Πρόγραμμα F-3: Ορίζουσα n x n (2/2) /* synarthsh ypologismou orizousas size x size, recursive function */ float determinant(float matrix[20][20], int size) { float s=1, det=0, m_minor[20][20]; int i, j, m, n, c; if (size==1) { return (matrix[0][0]); else { det=0; for (c=0;c<size;c++) { m=0; for (i=0;i<size;i++) { if (i!= 0) { n=0; for (j=0;j<size;j++) { if (j!= c) { m_minor[m][n]=matrix[i][j]; n= n + 1; m= m + 1; det=det + s * (matrix[0][c] * determinant(m_minor,size-1)); s=-1 * s; return det;

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (1/6) /* Find loops in graph Test data # branches: 7 list of branches: 0: 0 1 1: 1 2 2: 2 3 3: 3 4 4: 0 3 5: 0 4 6: 2 4 # nodes: 5 list of loops: 0: 0 1 2 3 0 1: 0 1 2 3 4 0 2: 0 1 2 4 0 3: 0 1 2 4 3 0 4: 0 3 2 1 0 5: 0 3 2 4 0 6: 0 3 4 0 7: 0 3 4 2 1 0 8: 0 4 2 1 0 9: 0 4 2 3 0 10: 0 4 3 0 11: 0 4 3 2 1 0 */

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (2/6) #include <stdio.h> #include <math.h> typedef struct { int a; int b; TBranch; typedef struct { int p[40]; int pk; TLoop; int findnode( int a[], int n, int x) { int i; for(i=0; i<n; i++) { if(a[i]==x) { return i; return -1; void printarr( int a[], int n) { int i; for( i=0; i<n; i++) { printf("%3d", a[i]); printf("\n"); (συνέχεια)

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (3/6) void printloop( TLoop a) { int i; for( i=0; i<a.pk; i++) { printf("%3d", a.p[i]); printf("\n"); void printbranches( TBranch a[], int nb) { int i; for( i=0; i<nb; i++) { printf("%3d: %3d %3d\n", i, a[i].a, a[i].b); (συνέχεια)

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (4/6) void findpath( int n0, float a[][40], int n, int p[], int *pk, TLoop iloops[], int *ilk) { int i, jj; p[*pk]=n0; *pk=*pk+1; //printf("debug: new node %d, path ",n0); //printarr(p, *pk); for(i=0;i<n;i++) { if (a[n0][i]!= 0) { if (i==p[0]) { if (*pk>2) { //printf("debug: find loop "); printarr( p, *pk); for(jj=0;jj<*pk;jj++) iloops[*ilk].p[jj]=p[jj]; iloops[*ilk].p[jj+1]=p[0]; iloops[*ilk].pk=*pk+1; *ilk=*ilk+1; else { if (findnode( p, *pk, i) == -1 ) { findpath( i, a, n, p, pk, iloops, ilk); *pk= *pk - 1; (συνέχεια)

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (5/6) int main(void) { TBranch a[40]; float netw[40][40]={0}; int p[40]; int pk; int i, nb, nn, maxn; TLoop iloops[100]; int ilk; //read graph printf("enter # branches: "); scanf("%d",&nb); for(i=0;i<nb;i++) { printf("enter branch %d:\n",i); scanf("%d",&a[i].a); scanf("%d",&a[i].b); printf("\n"); printf("processing..\n"); printf("# branches: %d\n", nb); printf("list of branches:\n"); printbranches( a, nb); maxn=0; for(i=0;i<nb;i++) { netw[a[i].a][a[i].b]= 1; netw[a[i].b][a[i].a]= 1; if (a[i].a > maxn) maxn=a[i].a; if (a[i].b > maxn) maxn=a[i].b; (συνέχεια)

Πρόγραμμα F-4: Εύρεση κλειστών διαδρομών σε γράφο (6/6) nn= maxn+1; printf("# nodes: %d\n", nn); ilk=0; pk=0; findpath( 0, netw, nn, p, &pk, iloops, &ilk); printf("list of loops:\n"); for(i=0;i<ilk;i++) { printf("%3d:",i); printloop( iloops[i]); return 0;

Τέλος Ενότητας