1 / 24

Παραδειγματα Aλγοριθμων

Παραδειγματα Aλγοριθμων. Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1! + x 2 /2! + x 3 /3! +…+ x n /n!. Αριθμος Λεξεων.

michall
Download Presentation

Παραδειγματα Aλγοριθμων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Παραδειγματα Aλγοριθμων • Αριθμος λεξεων που διαβαστηκαν απο εισοδο • Εκτυπωση περιφερειας τετραγωνων με * • Υπολογισμος exp(x,n) = 1 + x/1! + x2/2! + x3/3! +…+ xn/n! epl-131

  2. Αριθμος Λεξεων • Γραψετε ενα προγραμμα που διαβαζει ενα κειμενο απο την εισοδο και υπολογιζει και τυπωνει τον αριθμο λεξεων. epl-131

  3. Αριθμος Λεξεων • Παραδειγματα • Τι πρεπει να γινει: • Διαβασμα ακολουθιας χαρακτηρων • Μετρηση Γεγονοτος: Λεξης • Τι ειναι λεξη:συνεχομενη σειρα χαρακτηρων • Τα αλλα τι ειναι? ‘\n’, ‘\t’, ‘ ’ • Μετρουμε: μετακινηση απο ασπρο διαστημα σε λεξη (ή απο λεξη σε ασπρο διαστημα) • Που ειμαστε προηγουμενως/τωρα:διαστημα ή λεξη-εννοια σημαίας (flag)

  4. #define ON 1 #define OUT 0 int main() { int c, where_before, where_now, nw; where_before = OUT; nw = 0; while((c=getchar()) != EOF){ if (c == ‘\n’ || c==‘\t’ || c==‘ ’) where_now = OUT; else where_now = ON; if ( where_before == OUT && where_now = ON) nw = nw + 1; where_before = where_now; } printf(“The number of words in the input is %3d.\n”,nw); return 0; } epl-131

  5. #define ON 1 #define OUT 0 int main() { int c, where, nw; where = OUT; nw = 0; while((c=getchar()) != EOF){ if (c == ‘\n’ || c==‘\t’ || c==‘ ’) where = OUT; else if ( where == OUT){ nw = nw + 1; where = ON; } } printf(“The number of words in the input is %3d.\n”,nw); return 0; } epl-131

  6. #define ON 1 #define OUT 0 int main() { int c, where, nw; where = OUT; nw = 0; while((c=getchar()) != EOF){ if (c == ‘\n’ || c==‘\t’ || c==‘ ’){ if (where == ON) nw = nw + 1; where = OUT; } else where = ON; } printf(“The number of words in the input is %3d.\n”,nw); return 0; } epl-131

  7. Εκτυπωση περιφερειας τετραγωνων • Γραψετε ενα προγραμμα που διαβαζει το μεγεθος της πλευρας ενος τετραγωνου και τυπωνει την περιφερεια του με * (η τιμη πρεπει να ειναι ακεραια και >1). • Πχ εαν η τιμη ειναι 3 *** * * *** epl-131

  8. Εκτυπωση περιφερειας τετραγωνων • Παραδειγματα • Τι πρεπει να γινει για τιμη ν: • Τυπωση πανω πλευρας με ν * • Τυπωση ενδιαμεσων (ν-2) με * ν-2 ‘ ’ * • Τυπωση κατω πλευρας με ν * epl-131

  9. Χρησιμες Συναρτησεις void display_n_stars(int n); void display_star_spaces_star(int n); epl-131

  10. Αλγοριθμος /* enter size of square */ /* call display_stars once */ /* call display_star_spaces_star n-2 times */ /* call display_stars once */ epl-131

  11. /* enter size of square */ printf(“Enter square size: “); scanf(“%d”, &size); /* size stars */ display_n_stars(size); /* n-2 calls to display_star_spaces_star(size);*/ /* size stars */ display_n_stars(size); epl-131

  12. /* n-2 calls */ i=0; while(size<n-2){ display_star_spaces_star(size); i=i+1; } epl-131

  13. int i, size; /* enter size of square */ printf(“Enter square size: “); scanf(“%d”, &size); /*print size stars */ display_n_stars(size); /* n-2 calls to display_star_spaces_star(size);*/ i=0; while(size<n-2){ display_star_spaces_star(size); i=i+1; } /* print size stars */ display_n_stars(size);

  14. void display_n_stars(int n) { int i=0; while(i<n){ printf(“*”); i = i + 1; } printf(“\n”); } void display_star_spaces_star(int n) { int i=0; if (n<=2) return; printf(“*”); while(i<n-2){ printf(“ ”); i = i + 1; } printf(“*\n”); } epl-131

  15. Υπολογισμος • Γραψετε ενα προγραμμα που υπολογιζει και τυπωνει την τιμη του exp(x,n) = 1 + x/1! + x2/2! + x3/3! +…+ xn/n! Το προγραμμα διαβαζει τις τιμες x και n απο τον χρηστη. • X0/0! + x1/1! + x2/2! + x3/3! +…+ xn/n! epl-131

  16. Υπολογισμος • Τι πρεπει να γινει? • Δημιουργια n+1 ορων (0 μεχρι n) • Aθροισμα των ορων epl-131

  17. Δημιουργια Ορου ν • Συναρτηση float term(n,x) επιστρεφει τον n ορο της σειρας για την τιμη x epl-131

  18. + + + exp term(0,x) term(1,x) term(2,x) term(3,x) exp exp exp float term(int n, float x) epl-131

  19. Υπολογισμος float exp; int ith_term; exp =0; ith_term = 0; while(ith_term <= n){ exp = exp + term(ith_term,x); ith_term = ith_term + 1; } epl-131

  20. term(n,x) • Πως πρεπει να γινει? • υπολογισμος δυναμης • υπολογισμος παραγωντικου • Χρησιμες Συναρτησεις • xn float power(x,n); • n! int factorial(n); n! = 12 3 4 … n Οριζεται στην math.h Need user definition epl-131

  21. float term (int n, float x) { return pow(x,n)/factorial(n); } epl-131

  22. 2 3 4 * * * factorial 1 factorial factorial factorial float factorial(int n) epl-131

  23. float factorial (int n) { int f,i; f=1; i=2; /* if i=0 or 1 return 1*/ while(i<=n){ f = f * i; i = i + 1; } return f; } epl-131

  24. Trace Table for Factorial • Για n: 0,1,2 … 5 epl-131

More Related