Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[C] Rintracciare cifre adiacenti in una lista

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[C] Rintracciare cifre adiacenti in una lista

Messaggioda simox83 » mar feb 24, 2004 12:41 pm

Regà domani ho l'orale di prog, devo assolutamente riuscire a fare
questo esercizio.... mi date una mano??? grazie!!!!


Scrivere una funzione C che, data una lista di interi L e un intero
k, restituisce 1 se l'intero è risultato della giustapposizione di
due o + elementi della lista, altrimenti restituisce 0.

Esampio:
L - 2-3-4-7-6 e k=476 allora la funzione restituisce 1;se k=67
allora la funzione restituisce 0.

<font color="red">Edited by Zane: Modificato in subject in qlc di intelligente --> leggere il regolamento prima di postare</font id="red"> [nomi]
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

[C] Rintracciare cifre adiacenti in una lista

Messaggioda simox83 » mar feb 24, 2004 12:41 pm

Regà domani ho l'orale di prog, devo assolutamente riuscire a fare
questo esercizio.... mi date una mano??? grazie!!!!


Scrivere una funzione C che, data una lista di interi L e un intero
k, restituisce 1 se l'intero è risultato della giustapposizione di
due o + elementi della lista, altrimenti restituisce 0.

Esampio:
L - 2-3-4-7-6 e k=476 allora la funzione restituisce 1;se k=67
allora la funzione restituisce 0.

<font color="red">Edited by Zane: Modificato in subject in qlc di intelligente --> leggere il regolamento prima di postare</font id="red"> [nomi]
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda thomas » mar feb 24, 2004 1:12 pm

Hint:
Scansione dell'array + contatore

PS: Non starai mica parlando di università?
Avatar utente
thomas
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 6858
Iscritto il: mer lug 09, 2003 6:30 pm
Località: Parma


Messaggioda Zane » mar feb 24, 2004 1:21 pm

Facilissimo:
<ul><li>conti il numero delle cifre di k</li><li>Cerchi la prima cifra nella lista, quando la trovi, contatore++</li><li>Quando contatore==numerodicifredik.....bingo, baby</li><li>Se arrivi alla fine della lista (facile riconoscerlo, il puntatore a next punta a NULL) e la condizione nn è ancora verificata, ritorni 0</li></ul> [cool].

Ulteriore suggerimento: falla ricorsiva, è più facile [^]
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda simox83 » mar feb 24, 2004 1:29 pm

scusate i due o + elementi devono essere consecutivi.... non a caso!!! pardon x l'errore!!!!

comunque la mia difficoltà sta proprio nel contare le cifre di k... e poi nello scorrere la lista...

p.s. sto parlando di uni, se ci riusciste mi fareste un favore enorme... non mi va di essere bollato!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda simox83 » mar feb 24, 2004 4:47 pm

regà ve prego, sto nella mer**!!! nessuno riesce a fare st'esercizio?? grazie!!!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda thomas » mar feb 24, 2004 5:13 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da simox83</i>
<br />regà ve prego, sto nella mer**!!! nessuno riesce a fare st'esercizio?? grazie!!!
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Io riesco... Zane anche... ma se tu non riesci nemmeno con i suggerimenti, ho forti dubbi che domani tu passi l'esame...
Rileggi la soluzione dello Zane e cerca di applicarla... più che dirti che è corretta, non so che fare...
Un altro suggerimento: se la cifra successiva non fa parte del pattern, riazzeri il contatore e sei a posto!
Avatar utente
thomas
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 6858
Iscritto il: mer lug 09, 2003 6:30 pm
Località: Parma

Messaggioda Xerex » mar feb 24, 2004 6:11 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Zane</i>
Ulteriore suggerimento: falla ricorsiva, è più facile [^]
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

E' improbabile che la faccia ricorsiva in C!!
non è mica scheme o LISP...Zane, zane...ti piacerebbe programmare in C ST....

Io ti propongo un'altra idea che riesce più facile se la lista è contenuta in un'array.

controlli le cifre del numero. Poi, usando l'indice di scansione come coefficiente di moltiplicazione, sommi le ultime x cifre, moltiplicate per 10^(pos di indice) e se la somma è uguale a k -> return 1 else return 0.
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Zane » mar feb 24, 2004 8:27 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
E' improbabile che la faccia ricorsiva in C!!<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Beh, io continuo ad usare la ricorsione su alberi & liste....i cicli iterativi li riservo agli array...de gustibus...<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">
non è mica scheme o LISP...Zane, zane...ti piacerebbe programmare in C ST....<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Ehehehe, quanti ricordi!!
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda simox83 » mar feb 24, 2004 8:33 pm

peccato che quello che dice zane è per due o + elementi qualsiasi (mentre a me servono consecutivi);
fate troppo i sapientoni, bastava passarmi il codice, poi l'avrei capito da solo...
portate pure sSignorina... evitate please!!!

ciao e grazie delle risposte comunque!
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Xerex » mar feb 24, 2004 8:46 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da simox83</i>
fate troppo i sapientoni, bastava passarmi il codice, poi l'avrei capito da solo...
portate pure sSignorina... evitate please!!!

<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

il metodo che ti ho dato io funziona...in più, non siamo qua per scrivere codice, in special modo, se riguarda delle funzioncine elementari...

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">Zane
Beh, io continuo ad usare la ricorsione su alberi & liste....i cicli iterativi li riservo agli array...de gustibus...
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

tu usi la ricorsione in C????
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Zane » mar feb 24, 2004 8:56 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da simox83</i>
bastava passarmi il codice, poi l'avrei capito da solo...<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Si, ma capisci che scriverti noi il programma richiederebbe un po' troppo tempo per un forum gratuito [:)]: ti abbiamo dato tutti gli spunti del caso, rielaborali e dovresti riuscire a buttar giù un po' di codice [^]

Venendo alla tua (giusta) obiezione riguardo al mio suggerimento, basta che una volta che il contatore è =1, prima di porlo =2 (=hai trovato il secondo carattere) controlli se la cifra precedente==primacifra di k.

Potresti ottimizzare & semplificare modificando il contatore in modo da tener traccia degli incrementi, e prima di dire <i>bingo</i> controlli che l'ultima modifica sia stata fatta in posizione n-1.

Più di così nn so proprio cosa dirti....se paghi bene [:D] faccio l'esame al posto tuo (se poi ti accontenti di un 24/26, in programmazione nn sono molto forte...)
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Zane » mar feb 24, 2004 8:59 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
tu usi la ricorsione in C????<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Si, xchè? Nn è mica <i>letale</i>, eh!
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Xerex » mar feb 24, 2004 10:47 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Zane</i>
<br /><blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
tu usi la ricorsione in C????<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Si, xchè? Nn è mica <i>letale</i>, eh!
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

A parte il fatto che nel VERO C la ricorsione non esiste, e poi , ci sono milioni di costrutti migliori della ricorsione in secial modo in un linguaggio imperativo come IL C!
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Zane » mar feb 24, 2004 11:10 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
A parte il fatto che nel VERO C la ricorsione non esiste,<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Non diciamo delle cavolate!! ANSI C Standard esiste eccome...<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"> e poi , ci sono milioni di costrutti migliori della ricorsione in secial modo in un linguaggio imperativo come IL C!
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Prestazionalmente è meno efficiente, sono d'accordo.
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Xerex » mer feb 25, 2004 3:05 pm

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote">Messaggio inserito da Zane
<br /><blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">citazione:<hr height="1" noshade id="quote"><i>Messaggio inserito da Xerex</i>
A parte il fatto che nel VERO C la ricorsione non esiste,
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">Non diciamo delle cavolate!! ANSI C Standard esiste eccome...
<hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">

Ti sbagli...per come è strutturato C, così come la maggior parte dei linguaggi imperativi, la ricorsione è un costrutto errato!
Prova a pensare ad ogni RdA creato per ogni blocco e alle funzioni che devi passare per parametro alle funzioni chiamanti...dove vanno a finire i Link dinamici e gli statici?
Avatar utente
Xerex
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5948
Iscritto il: lun ago 05, 2002 9:36 am
Località: Parma(Pr)

Messaggioda Zane » mer feb 25, 2004 5:41 pm

Stiamo scendendo off-topic...continuiamo di la, e lasciamo questo post per l'argomento originale

[f] [C] Discussione semi-filosofica sulla ricorsione
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda simox83 » mer feb 25, 2004 9:11 pm

vi ringrazio a tutti, anche se poi oggi non è servito... non me l'ha chiesto perché allo scritto l'avevo fatto decentemente... mi ha chiesto il massimo di una matrice in modo RICORSIVO!!! ris. finale:23 non male!!!

p.s. la ricorsione esiste eccome...
Avatar utente
simox83
Neo Iscritto
Neo Iscritto
 
Messaggi: 12
Iscritto il: mar feb 24, 2004 12:41 pm

Messaggioda Zane » gio feb 26, 2004 1:32 pm

Ottimo [^]
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising