Advertisement
tegusta

Controlla vocali

Mar 11th, 2012
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.74 KB | None | 0 0
  1. /*
  2. Studente : Scia Massimiliano
  3. Classe : 3IC
  4. Data : 11/03/12 10:55
  5. Nome del file : matrici stringhe, controllo vocali
  6. */
  7.  
  8. #include <iostream>
  9. #include <cmath>
  10. #include <ctime>
  11. #include <cstdlib>
  12. #include <cctype>
  13. #include <windows.h>
  14. #include <fstream>
  15. #include <time.h>
  16. #include <stdio.h>
  17. #define N 100
  18.  
  19. using namespace std;
  20. void gotoxy(int x, int y)
  21. {
  22. COORD coord;
  23. coord.X = x;
  24. coord.Y = y;
  25. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  26. }
  27.  
  28. // OV Nome dell'autore.
  29.  
  30. void autore(void) {
  31. cout << "Questo programma e` stato scritto da Massimiliano Scia.\n";
  32. }//autore
  33.  
  34.  
  35. // OV Messaggio di richiesta.
  36.  
  37. void tasto(void) {
  38. fflush(stdin);
  39. cout << "\n\nPremere Invio per continuare.";
  40. getchar();
  41. }//tasto
  42.  
  43.  
  44. /* INPUT */
  45. void leggi(char s[][N], int *n){
  46.     do{    
  47.         cout<<"\nQuante parole vuoi inserire? ";
  48.         cin>>*n;
  49.     }//do
  50.     while(*n<1 || *n>N);
  51.     cout<<"\n";
  52.     for(int i=0;i<*n;i++){
  53.         fflush(stdin);
  54.         cout<<"\n"<<i+1<<") ";
  55.         cin.get(s[i],N,'\n');
  56.         fflush(stdin);
  57.     }//for
  58. }//leggi
  59.  
  60. bool isVoc(char s[][N], int r, int c){
  61.     if(s[r][c]=='a' || s[r][c]=='e' || s[r][c]=='i' || s[r][c]=='o' || s[r][c]=='u')
  62.         return true;
  63.     else
  64.         return false;
  65. }//isVoc
  66.  
  67. /* ELABORAZIONE */
  68. void ctrlVoc(char s[][N], int n, int nvc[]){
  69.     int voc;
  70.     for(int i=0;i<n;i++){
  71.         voc=0;
  72.         for(int j=0;j<strlen(s[i]);j++)
  73.             if(isVoc(s,i,j))
  74.                 voc++;
  75.         nvc[i]=voc;
  76.     }//for        
  77. }//ctrlVoc
  78.  
  79. void nCp(char s[][N], int n, int ncp[]){
  80.     int cp;
  81.     for(int i=0;i<n;i++){
  82.         cp=0;
  83.         for(int j=0;j<strlen(s[i]);j++)
  84.             if(j>0 &&(s[i][j]==s[i][j-1] && isVoc(s,i,j)))
  85.                 cp++;
  86.         ncp[i]=cp;
  87.     }//for
  88. }//ncp
  89.  
  90. void vocCons(char s[][N], int n, int cons[]){
  91.     int ncs;
  92.     for(int i=0;i<n;i++){
  93.         ncs=0;
  94.         for(int j=0;j<strlen(s[i]);j++)
  95.             if(j>0 && isVoc(s,i,j) && isVoc(s,i,j+1))
  96.                 ncs++;
  97.         cons[i]=ncs;
  98.     }//for
  99. }//vocCons
  100.  
  101. /* OUTPUT */
  102. void stampa(char s[][N], int nvc[], int ncp[], int cons[], int n){
  103.     cout<<"\n\n\t\tNumero vocali nelle strnghe\n\n";
  104.     for(int i=0;i<n;i++)
  105.         cout<<s[i]<<": "<<nvc[i]<<"\n";
  106.     cout<<"\n\n\t\tNumero coppie vocali:\n\n";
  107.     for(int j=0;j<n;j++)
  108.         cout<<s[j]<<": "<<ncp[j]<<"\n";
  109.     cout<<"\n\n\t\tNumero di vocali consecutive:\n\n";
  110.     for(int j=0;j<n;j++)
  111.         cout<<s[j]<<": "<<cons[j]<<"\n";
  112. }//stampa
  113.  
  114.  
  115. int main (void){
  116.     char s[N][N];
  117.     int n,nvc[N],ncp[N],cons[N];
  118.     autore();
  119.     leggi(s,&n);
  120.     ctrlVoc(s,n,nvc);
  121.     nCp(s,n,ncp);
  122.     vocCons(s,n,cons);
  123.     stampa(s,nvc,ncp,cons,n);
  124.     tasto();
  125.     return 0;
  126. }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement