Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - aiuto esercizio in C
Forum - C/C++ - aiuto esercizio in C

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 18:08
Venerdì, 03/07/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’,….)."


:hail:

Ultima modifica effettuata da pollon85 il 03/07/2009 alle 18:09
PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 18:12
Venerdì, 03/07/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
PM Quote
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 18:22
Venerdì, 03/07/2009
Codice sorgente - presumibilmente C++

  1. void num_occorrenze(char testo[], int n, int a_num_occ[])
  2. int i;
  3. int j=0;
  4. int num_occor=0;
  5. for(i=0;i<n-1;i++){
  6. if(testo[i]==(char)97&&testo[i+1]==(char)(97))
  7. num_occor++;
  8. }
  9. a_num_occ[j++]=num_occor;
  10. num_occorrenze=0;
  11. }
  12. }



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?

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 18:32
Venerdì, 03/07/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
PM Quote
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 18:42
Venerdì, 03/07/2009
Testo quotato

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++

  1. void num_occorrenze(char testo[], int n, int a_num_occ[])



è tutto sbagliato ???? :-|

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 18:50
Venerdì, 03/07/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
PM Quote
Avatar
Premoli (Normal User)
Pro


Messaggi: 108
Iscritto: 25/06/2009

Segnala al moderatore
Postato alle 19:27
Venerdì, 03/07/2009
ciao !!!

prova a vedere se così ti va bene:
http://pastebin.com/m25de7b03

;)
facci sapere

PM Quote
Avatar
pollon85 (Normal User)
Newbie


Messaggi: 13
Iscritto: 17/03/2009

Segnala al moderatore
Postato alle 22:12
Venerdì, 03/07/2009
si,sempre meglio!!!Grazie!!!! :k:
posso chiedervi anche un altro piccolo aiuto :hail:

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 :-|

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 3:41
Sabato, 04/07/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! ^^

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo