Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - correzione codice
Forum - C/C++ - correzione codice

Avatar
ritita (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/02/2010

Segnala al moderatore
Postato alle 18:02
Venerdì, 12/02/2010
ragaaaaaa..ho bisogno della function in c++ ke definisca il numero di occorrenze di consonanti(in ordine crescente) in un testo e lo visualizzi in un array di char..HELP VI PREGO..ho l'esame a breveeee..
io incollo la function delle occorrenze con una data chiave ma..come posso modificarlo x trasformarlo in quello ke mi serve?? HELP ME!!

Codice sorgente - presumibilmente C++

  1. /*function x calcolo occorrenze
  2. int caratt (char testo[],char chiave[])
  3. {
  4. int m,conta=0,i;
  5. m=strlen(testo);
  6. conta =0;
  7. for (i=0;i<m;i++)
  8. {
  9.     if (testo[i]==chiave[i])
  10.     conta++;
  11. }      
  12.         return conta;
  13. }


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:25
Venerdì, 12/02/2010
Ma che senso ha darti un codice pronto per un esame al quale non saprai cosa fare ?

Andiamo ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
ritita (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/02/2010

Segnala al moderatore
Postato alle 18:46
Venerdì, 12/02/2010
gentile!!io nn volevo il codice fatto..volevo capire come modificarlo..
ho provato a fare così..sapresti dirmi se è giusto o no??

Codice sorgente - presumibilmente C++

  1. void ordina_cons (int contcons[], char cons[], int m)
  2. {
  3.     int i,j;
  4.     int el_da_ins;
  5.     char el_da_ins1;
  6.         for(i=1;i<m;i++)
  7.         {
  8.                 el_da_ins=contcons[i];
  9.                 el_da_ins1=cons[i];
  10.                 j=i-1;
  11.                 while(j>=0 && el_da_ins<contcons[j])
  12.                 {
  13.                         contcons[j+1]=contcons[j];
  14.                         cons[j+1]=cons[j];
  15.                         j--;
  16.                 }
  17.                 contcons[j+1]=el_da_ins;
  18.                 cons[j+1]=el_da_ins1;
  19.         }
  20. }



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:06
Venerdì, 12/02/2010
Non c'entra la gentilezza ... era una considerazione realistica ...

Il codice che hai proposto, lo hai provato?

Cosa rappresentano i parametri?

Quali valori passi quando chiami la funzione?

Cosa succede quando lo esegui ?



Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:09
Venerdì, 12/02/2010
Ciao!
Tu hai scritto:

Testo quotato

Postato originariamente da ritita:

ragaaaaaa..ho bisogno della function in c++ ke definisca il numero di occorrenze di consonanti(in ordine crescente) in un testo e lo visualizzi in un array di char..HELP VI PREGO..ho l'esame a breveeee..
io incollo la function delle occorrenze con una data chiave ma..come posso modificarlo x trasformarlo in quello ke mi serve?? HELP ME!!



Con questo cosa intendi?
Vuoi tigliere le vocali da una stringa, o elencare le consonanti presenti, con le rispettive frequenze, ordinate in modo crescente?


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
ritita (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/02/2010

Segnala al moderatore
Postato alle 19:09
Venerdì, 12/02/2010
nn l'ho trovato!!ho preso l'algoritmo d'ordinamento ke avevo e l'ho modificato..
poi nel main ho dikiarato un array1D di char dove ho inserito tutte le consonanti e quando kiamo la funzione, me la visualizza così

Codice sorgente - presumibilmente Plain Text

  1. printf("%c=%d ", cons[i],contcons[i]);


PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 20:37
Venerdì, 12/02/2010
imo th useless


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
ritita (Normal User)
Newbie


Messaggi: 8
Iscritto: 02/02/2010

Segnala al moderatore
Postato alle 15:18
Sabato, 13/02/2010
allora..quella function,fa parte di un progetto universitario quasi finito..mi manca solo una parte
"creare l’algoritmo che visualizza, in ordine alfabetico, tutte le
parole che compaiono nel testo e che iniziano con le prime 5 consonanti più
frequenti.
"

come faccio ad ultimarlo??inserisco il programma fino a dove l'ho svolto

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3. void ricerca_cons(char testo[], char cons[], int m, int contcons[]);
  4. int pangramma (int contcons[], int n);
  5. void ordina_cons (int contcons[], char cons[], int m);
  6.  
  7. int main ()
  8. {
  9.         char testo[80]; //Array per l'inserimento del testo.
  10.         char cons[] = {'b','c','d','f','g','h','l','m','n','p','q','r','s','t','v','z'}; //Array delle consonanti.
  11.         int contcons[16]; //Array per il conteggio delle consonanti.
  12.         int i,pan;
  13.         puts("Inserisci testo da analizzare:");
  14.         gets(testo);
  15.         for (i=0; i<16; i++) //Azzero l'array per il conteggio delle consonanti.
  16.     {
  17.                 contcons[i] = 0;
  18.         }
  19.         ricerca_cons(testo, cons, 16, contcons); //Chiamo la funzione.
  20.         for (i=0; i<16; i++)
  21.     {
  22.                 printf("La lettera %c e' presente %d volte\n", cons[i], contcons[i]); //Stampo il risultato.
  23.         }
  24.         ordina_cons (contcons, cons, 16); //Chiamo la funzione.
  25.     printf("\nConsonanti in ordine crescente:\n");
  26.     for (i=0; i<16; i++)
  27.     {
  28.                 printf("%c = %d\n", cons[i],contcons[i]); //Stampo il risultato.
  29.         }
  30.         pan = pangramma (contcons, 16); //Assegno alla variabile 'pan' la funzione.
  31.     if (pan==1)
  32.        printf("\nIl testo non e' un pangramma di consonanti.\n");
  33.     else if (pan!=1)
  34.        printf("\nIl testo e' un pangramma di consonanti.\n");
  35.        
  36.     return 0;
  37. }
  38.  
  39.  
  40. void ricerca_cons(char testo[], char cons[], int m, int contcons[]) //Funzione per il conteggio delle consonanti.
  41. {
  42.         int n, i, j;
  43.         n = strlen(testo); //Assegno alla veriabile 'n' la lunghezza del mio testo.
  44.         for (i=0; i<n; i++) //Questo ciclo for mi scorre lettera per lettera tutto il testo.
  45.     {
  46.                 for (j=0; j<m; j++) //Questo ciclo for mi scorre lettera per lettera tutte le consonanti.
  47.         {
  48.                         if (cons[j] == testo[i]) //Se la j-sima lettera dell'array 'cons' è uguale alla i-sima lettera dell'array 'testo'..
  49.             {
  50.                                 contcons[j]++; //..incremento l'array 'contcons' di 1 alla j-sima posizione.
  51.                         }
  52.                 }
  53.         }
  54. }
  55.  
  56.  
  57.  
  58. int pangramma (int contcons[], int n) //Funzione per verificare se il testo è un pangramma di consonanti.
  59. {
  60.     int i;
  61.     for (i=0; i<n; i++) //Questo ciclo for mi scorre l'array 'contcons'.
  62.     {
  63.         if (contcons[i]==0) //Se la i-sima posizione dell'array è uguale a 0..
  64.            return 1; //..la funzione restituisce 1 e arresta il funzionamento.
  65.     }
  66.     return 0;
  67. }
  68.  
  69.  
  70.  
  71. void ordina_cons (int contcons[], char cons[], int m) //Funzione per ordinamento delle consonanti in ordine crescente.
  72. {
  73.     int i,j;
  74.     int el_da_ins;
  75.     char el_da_ins1;
  76.         for(i=1;i<m;i++)
  77.         {
  78.                 el_da_ins=contcons[i]; //Assegno alla variabile 'el_da_ins' l'i-simo valore dell'array 'contcons'.
  79.                 el_da_ins1=cons[i]; ////Assegno alla variabile 'el_da_ins1' l'i-simo valore dell'array 'cons'.
  80.                 j=i-1;
  81.                 while(j>=0 && el_da_ins<contcons[j])
  82.                 {
  83.                         contcons[j+1]=contcons[j]; //Assegno il valore della j-sima posizione alla j-sima posizione + 1.
  84.                         cons[j+1]=cons[j]; //Applico la stessa operazione all'array 'cons'.
  85.                         j--;
  86.                 }
  87.                 contcons[j+1]=el_da_ins;
  88.                 cons[j+1]=el_da_ins1;
  89.         }
  90. }


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 19:15
Sabato, 13/02/2010
Ti sconsiglio di lavorare con gli array!

Prova con le struct.


Nulla va più veloce della luce, quindi rilassati.
PM Quote