pollon85 (Normal User)
Newbie
Messaggi: 13
Iscritto: 17/03/2009
|
salve,vorrei chiedervi gentilmente aiuto per la risoluzione di un esercizio in C :
"Sviluppare una function C che, dati come parametri di input un array di char e il suo size,
determina e restituisce come parametro di output l’array (di size 21) del numero delle
occorrenze dell’evento ‘a’ precede ognuna delle 21 lettere dell’alfabeto italiano (cioè il
numero di volte in cui accade che ‘a’ precede ‘a’ , il numero di volte in cui accade che ‘a’
precede ‘b’, il numero di volte in cui accade che ‘a’ precede ‘c’,….)."
Ultima modifica effettuata da pollon85 il 03/07/2009 alle 18:09 |
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Posta il codice di quello che hai cercato di fare e dove ti blocchi, che ti aiutiamo
Ps. ma che vai all'università di bari? o.O'
Ultima modifica effettuata da Lawliet il 03/07/2009 alle 18:14 |
|
pollon85 (Normal User)
Newbie
Messaggi: 13
Iscritto: 17/03/2009
|
Codice sorgente - presumibilmente C++ |
void num_occorrenze(char testo[], int n, int a_num_occ[]) int i; int j=0; int num_occor=0; for(i=0;i<n-1;i++){ if(testo[i]==(char)97&&testo[i+1]==(char)(97)) num_occor++; } a_num_occ[j++]=num_occor; num_occorrenze=0; } }
|
questo è quello che ho iniziato ad impostare,la mia domanda è anche,quando considero array testo,nella traccia dell'esercizio mi dice di considerare l'alfabeto italiano a 21 lettere,devo fare quindi un ciclo per escludere le lettere aggiuntive per l'alfabeto inglese?
|
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Aspetta, prima di andare avanti.. ci sono degli errori nel tuo codice:
Non puoi dichiarare void se nella traccia chiede che restituisca un valore, quindi di tipo int.
for(i=0;i<n-1;i++)
qui è sbagliato mettere come dimensione (n-1), devi lasciarlo n senza il -1 oppure aggiungi '=' all'operatore di confronto '<' così: '<=' (n-1)
Per verificare che sia dell'alfabeto italiano, ma pure minuscoli e maiuscoli?
Ultima modifica effettuata da Lawliet il 03/07/2009 alle 18:41 |
|
pollon85 (Normal User)
Newbie
Messaggi: 13
Iscritto: 17/03/2009
|
Postato originariamente da Lawliet:
Aspetta, prima di andare avanti.. ci sono degli errori nel tuo codice:
Non puoi dichiarare void se nella traccia chiede che restituisca un valore, quindi di tipo int.
for(i=0;i<n-1;i++)
qui è sbagliato mettere come dimensione (n-1), devi lasciarlo n senza il -1 oppure aggiungi = all'operatore di confronto '<' così: <= (n-1)
Per verificare che sia dell'alfabeto italiano, ma pure minuscoli e maiuscoli? |
No,maiuscolo e minuscolo non importa.
grazie per la correzione del ciclo for
ho messo il void perchè nella traccia diceva
"restituisce come parametro di output l’array (di size 21) del numero delle
occorrenze"
infatti anche per questo nell'intestazione della function ho messo
Codice sorgente - presumibilmente C/C++ |
void num_occorrenze(char testo[], int n, int a_num_occ[])
|
è tutto sbagliato ???? |
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
EDIT: hai ragione -.- ho letto male io, cavolo era molto simile al mio primo esame di programmazione!
Perdonami.
Hai ragione, metti come void così modifichi direttamente dal parametro il vettore passato per riferimento che sono già puntatori. La traccia dice anche la dimensione 21 del vettore quindi metti:
a_num_occ[21]
Per quanto riguarda le lettere estranei all'alfabeto, potresti includere un altro controllo, e verificare che sia diverso da 'k', 'j', 'w', 'x', e infine 'y'
E poi secondo la traccia, devo calcolare quante volte 'a' precede rispetto a una lettera, cioè esempio: "cioa" di output deve dare tutti i 21 elementi a 0, perchè 'a' non precede a nessuna lettera. No?
Ultima modifica effettuata da Lawliet il 03/07/2009 alle 19:25 |
|
Premoli (Normal User)
Pro
Messaggi: 108
Iscritto: 25/06/2009
|
|
|
pollon85 (Normal User)
Newbie
Messaggi: 13
Iscritto: 17/03/2009
|
si,sempre meglio!!!Grazie!!!!
posso chiedervi anche un altro piccolo aiuto
Function C che, dati come parametri di input un array di char e il suo size, determina e restituisce come parametro di un dato logico che indica se il testo nell’array è un pangramma,ovvero è un testo che contiene, almeno una volta, tutte le 21 lettere dell’alfabeto italiano
diciamo che non vado molto d'accordo con gli algoritmi per gli array di char e controlli di caratteri presenti in esso
|
|
Lawliet (Normal User)
Expert
Messaggi: 386
Iscritto: 09/04/2009
|
Beh se vuoi il codice pronto, io non te lo faccio.. fattelo fare da qualcun'altro.. c'è pure il caro Premoli che è così tanto disponibile a fartelo.
Non so cosa ci guadagni in questo.
Buona notte! ^^
|
|