Tags:
tag this topic
create new tag
view all tags
-- Users.MarioBove - 09 Dec 2004 Ma che hanno fatto!??!?!?!<br> Hanno messo per il 4° esercizio un miscuglio tra il MCD e il vecchio esercizio?!?!?!?<br> E la data di consegna è uguale a quella del 3°????<br> Oddio non ci stò capendo più nulla! :( manco io ci sto capendo---+ nulla!!!!!! -- Users.AlbertoLaRocca - 09 Dec 2004 La pagina deve ancora essere completata; avranno fatto copia-incolla con la pagina vecchia. PS: prof. scusi se oggi non lo consegno dopo mezz'ora, ma ho da fare ^_^ lo consegnerò stasera. ---- ---+++ Bravo Larocca eh si, ma che mancanza per quest'area non vedere la tua consegna dopo mezz'ora :D LOL -- Comment added by Users.RiccardoProietti on 09 Dec 2004 ---- ---+++ Anche qui il testo non è che sia chiarissimo... -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---+++ Bravo LaRocca Ma se Users.AlbertoLaRocca lei non consegna, come faccio io a correggere??? Mica li so risolvere gli esercizi... A parte gli scherzi, invito tutti a controllare il testo e segnalare eventuali oscurità e imprecisioni. grazie. In cambio prometto di tenere d'occhio questa pagina un po' di piu' la prossima settimana. -- Comment added by Users.IvanoSalvo on 09 Dec 2004 ---- ---+++ Senza titolo? il numero 97261064 non è divisibile per 21252 come fa ad essere il mcd? -- Comment added by Users.FabioDeNigris on 09 Dec 2004 ---- ---+++ Senza titolo? Ma nn è più semplice dire che si divide il primo numero per il secondo, se il primo numero è esattamente divisibile, il MCD è il divisore, altrimenti il MCD è il resto della divisione stessa... o no? -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---+++ Senza titolo? Non è possibile, mi correggo da solo, perchè con i numeri troppo alti non funzionerebbe come algoritmo... -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---+++ Senza titolo? cmq come già detto da FabioDeNigris il secondo numero non è divisibile per 21252... Forse non abbiamo capito noi? -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---+++ +++ MCD +++ Sul testo c è scritto: MCD(n,n) = n MCD(m,n) = MCD(m-n,n) se m<n MCD(m,n) = MCD(m,n-m) se n<m Ma non dovrebbe essere: ?? MCD(n,n) = n MCD(m,n) = MCD(m,n-m) se m<n MCD(m,n) = MCD(m-n,n) se n<m (secondo il Salvo)Prendo come esempio m=24 n=36 MCD(24,36)= MCD(-12,36) dato che m=24 < n=36 "...MCD di due numeri interi strettamente positivi", -12 è negativo (secondo me)Prendo sempre come esempio m=24 n=36 MCD(24,36)= MCD(24,12) dato che m=24 < n=36 MCD(24,12)= MCD(12,12)=12 dato che n=12 < m=24 forse mi sbaglio? -- Comment added by Users.CristianCarbone on 09 Dec 2004 ---- ---+++ xCristianCarbone Io pensavo come dicevi tu... Però me stanno a venì i dubbi con il testo... -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---++++ Senza titolo? Bhe ora aspettiamo un altra settimana per leggere cosa dice il Salvo. -- Comment added by Users.CristianCarbone on 09 Dec 2004 ---- ---+++ Senza titolo? cmq per quanto riguarda l'esempio i numeri più vicini a quello indicato divisibili per 21252 sono, 97249152 e 97227900... E' meglio correggere... -- Comment added by Users.AndreaCosentino on 09 Dec 2004 ---- ---+++ Oddio... o_o ho dovuto controllare le see diffs per essere sicuro che quel post fosse veramente di Salvo... e mica solo per la parte dove mi prende in giro!!! -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---++++ +++ MCD +++ In effetti mi sono reso ke facendo alcune prove a mano non tornano molto i conti con la definizione di MCD data dall'esercizio. E dovrebbe essere il contrario...mi staro' sbagliando???????????????????????????????? -- Comment added by Users.DavidBenedetti on 09 Dec 2004 ---- ---++++ re: attenzione sarebbe grave, però dal momento che gli homeworks compilano e funzionano, suppongo che a lui il testo arrivi giusto. o forse non funziona solo la pagina di consegna del terzo homework? a me sembra che il testo dell'e-mail coincida con quello che ho inviato. -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ risolto il problema l'ho risolto anche se è strano! se io quando mettevo un controllo del tipo:(n<m)in questo modo quando l'email mi mandava la conferma cancellava <m) e scriveva cosa cera sotto il prog!!!! per risolvere il probl ho scritto cosi:(n < m) e nn mi ha dato nessun prob. non chiedetemi il perchè! perchè non lo sò! -- Comment added by Users.MauroMoretti on 09 Dec 2004 ---- ---+++ Dubbi ma cosa si intende per lista di cifre decimali? dev'essere una lista linkata, cioè una lista dove ogni elemento è associato al puntatore del precdente e a quello del successivo? oppure basta un array? realizzare sto coso con una lista mi sembra un po' assurdo; e poi vedo sul forum che ci sono delle cose non molto chiare nel testo dell'esercizio: sono state chiarite? -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ invito Ragazzi visto che i problemi da risolvere cominciano ad essere un attimino piu' impegnativi che ne direste di evitare discussioni fuori tema??? -- Comment added by Users.StefanoConte on 09 Dec 2004 ---- ---+++ ah ah ah Ahahahahahahahahahahahahah<br> Oh Mio Dio Ivano Salvo è un grande! :)<br> Scusate il messaggio che non c'entra prometto che sarà il primo e l'ultimo in questa sezione, mi ha fatto sbellicare il post di Salvo! :)<br> Ciao ! -- Comment added by Users.MarioBove on 09 Dec 2004 ---- ---++++ ah ah ah bisogna ammettere che quell'uomo ha un certo senso dell'umorismo :) <br> cmq Users.StefanoConte, fino al tuo di post OT non ce ne stava quasi nessuno...<br> piuttosto, sta cosa delle liste di cifre decimali? che devo fare? liste linkate? mi sembra strano... non vanno bene gli array? -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ array o lista? (vada per l'array :D) infatti si do ragione a alberto, nn facciamo prima a fare un bel array lungo n e poi dire tutto l'array rapressenta il numero? allocare 2 array è sicuramente molto---+ conveniente che allocare liste collegate... -- Comment added by Users.Claudio on 09 Dec 2004 ---- ---+++ Senza titolo? http://www.dimi.uniud.it/~ciaffagl/Teaching/IV.pdf ecco dove si trova la spiegazione di Euclide! Ma si è sbagliato il prof, nella prima pagina ha scritto che era una teoria sul mcm, poi nella pagina del compito però ha scritto bene! -- Comment added by Users.AlessioDezi on 09 Dec 2004 ---- ---++++ array o lista? anche perché non credo che Salvo voglia che allochiamo un singolo blocco dinamico per ogni nodo della lista, altrimenti la memoria verrà *mooooolto* frammentata; piuttosto allocheremo un unico blocco dinamico che possa tenere tutti i nodi, ma così a questo punto è la stessa cosa che allocare un array, solo che occupa esattamente (anzi, identicamente come dice Nebbia :)) il triplo dello spazio, se non addirittura 9 volte tanto! (a seconda delle implementazioni) -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ NULL esiste il simbolo NULL nell'ANSI C? se non esiste, con cosa lo posso sostituire? va bene il semplice zero? altrimenti una definizione del genere? <pre> #define NULL ((void)0) </pre> -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ realloc 1 altra cosa: la realloc nell'ANSI C lascia invariato il contenuto del precedente blocco di memoria? se sì, anche quando deve effettuare uno spostamento del blocco? lo ricopia tutto così com'è nella nuova posizione? -- Comment added by Users.AlbertoLaRocca on 09 Dec 2004 ---- ---+++ errore... la descrizione: MCD(n,n) = n MCD(m,n) = MCD(m-n,n) se m<n MCD(m,n) = MCD(m,n-m) se n<m è errata...le condizioni vanno invertite! -- Comment added by Users.OmarTardiolo on 09 Dec 2004 ---- ---+++ Mea Culpa in effetti nell'esempio mancava un 1 davanti al primo numero. Ora l'esempio dovrebbe essere corretto. Le condizioni erano ovviamente invertite, come si sono accorti i più. -- Comment added by Users.IvanoSalvo on 10 Dec 2004 ---- ---+++ Array o Liste? NON usando array di dimensione variabile, il modo corretto di fare l'esercizio e' quello di usare LISTE CONCATENATE. Tenete conto che non potete sapere a priori quante cifre dovete leggere. Effettivamente non si tratta del modo migliore per RAPPRESENTARE interi di dimensioni arbitrariamente grandi, ma non è l'efficienza lo scopo dell'esercizio (ne' in tempo ne' in spazio [sprecare un campo puntatore per ogni cifra immagino fara' rabbrividire Users.AlbertoLaRocca e tutti gli altri VERI programmmatori C]). Buonanotte e buon week end a tutti. -- Comment added by Users.IvanoSalvo on 10 Dec 2004 ---- ---++++ NULL Esiste eccome, ma andare a leggere un attimo il manuale, no eh!?!?!? :) Non credo che avrai bisogno della realloc!!! :) -- Comment added by Users.StefanoConte on 10 Dec 2004 ---- ---++++ Array o liste? ma lol, e io che stavo già facendo un array di char dove ogni char conteneva 2 cifre decimali... con una lista devo impiegare esattamente 18 volte tanto in termini di memoria :( però non è importante per l'esercizio! o_o <br> vabbè va', famo ste liste; prof, ma mi tolga una curiosità: dal momento che voi fate la correzione automatica non controllate il codice di ciascun file, ma allora come fate a sapere se un certo programma una volta compilato non contiene codice malizioso? che succederebbe se qualcuno inserisse nel programma da consegnare una chiamata system dove fa eseguire alla shell comandi pericolosi? non che io abbia intenzione di farlo, se vuole controlli pure i miei homeworks ^_^' ma non lo ritiene pericoloso? <br> <br> PS, Users.StefanoConte: facevo prima a chiedere su TWiki che a controllare su un manuale di C, che tra l'altro non ho ^^ e poi la realloc certo che serve: come fai in runtime se il numero di cifre che ti vengono date in input è maggiore di quello che ti aspettavi? -- Comment added by Users.AlbertoLaRocca on 10 Dec 2004 ---- ---++++ Array o liste? Secondo me fai prima a comprartelo il manuale... :D Comunque dovresti sapere che se stai utilizzando una lista concatenata puoi creare tutti gli elementi che vuoi in runtime per ogni input e soprattutto non hai bisogno di preventivare un numero fisso di input, per chi ancora non l'avesse capito, l'uso delle liste serve proprio a questo!!!Per questa operazione hai bisogno soltanto della semplicissima malloc(nel deitel se ne parla al capitolo 12 se non erro!) -- Comment added by Users.StefanoConte on 10 Dec 2004 ---- ---+++ e ancora... -_-' scusami sai, se sto cercando di non frammentare la memoria in una maniera mostruosa... in teoria già si frammenta chiamando realloc tante volte, figuriamoci facendo come dici tu! che roba, un blocco per ogni cifra, ma siamo matti? lo sai ad esempio che nel runtime di Visual C---++ ogni blocco dinamico ha 20 bytes di intestazione? sommati agli 8 per i due puntatori che associ ad ogni nodo e al byte contenente la cifra (sempre che non usi int anziché char!) farebbero in tutto 29 byte! per una cosa che si poteva memorizzare in 4 bit (Massini insegna)! eh non lo so, a sto punto famo che ogni cifra è contenuta in un blocco da un kilobyte e tanti saluti! tanto dici vabbè, chissene, lo scopo dell'homework non è l'efficienza, quindi...<br> brrrr... vede prof? rabbrividisco! <br> <br> rabbrividisco talmente tanto che mi stanno uscendo fuori un sacco di tag "br"! (triste questa...)<br> <br> <br> <br> <br> <br> <br> <br> <br> <br> oltrettutto farlo con l'array era pure---+ facile... vabbè, poche lagne e famo stu coso va' -- Comment added by Users.AlbertoLaRocca on 10 Dec 2004 ---- ---+++ help.. io non è che ho capito tanto come si fa.. qualcuno può darmi qualche dritta? non ho capito come si calcola stò mcd... sarò scemo.. -- Comment added by Users.AntonioFelitti on 10 Dec 2004 ---- ---+++ CONSEGNA?! non è un pochino troppo presto il 20 x consegnare.... mah... -- Comment added by Users.FrancescoCipollone on 10 Dec 2004 ---- ---+++ Senza titolo? mettiamo la scadenza alle 23.59.59 del 31 dicembre... ki lo consegna 10 secondi prima ha 10 punti in---+ di base all'esame :D p.s. tanto io nn lo finisco nemmeno per il 31 O_o -- Comment added by Users.DanieleFaraci on 10 Dec 2004 ---- ---++++ Senza titolo? quoto -- Comment added by Users.StefanoConte on 10 Dec 2004 ---- ---- ---+++ Senza titolo? lol, e l'homework successivo quando si consegna, tra un anno? :D -- Comment added by Users.AlbertoLaRocca on 10 Dec 2004 ---- ---+++ Collaborazione dinamica! A parte i discorsi di frammentazione di memoria (giustissimi), penso che il problema (anche se forse lieve) si ponga durante l'elaborazione del MCD tra i due numeri inseriti. Per ovviare a questo ho implementato una "collaborazione" tra stack e array (oddio, sarebbe venuto anche con le code eh!). Nel senso: in fase di caricamento eseguo M ed N push nei 2 stack (uno per ogni numero ovviamente), poi scarico i due stack ottenuti in due array (la grandezza degi stack me la ricavo molto semplicemente) e poi elaboro il tutto sugli array ottenuti. Spero di non aver profanato alcunché!!! -- Comment added by Users.DavidBenedetti on 11 Dec 2004 ---- ---++++ Collaborazione dinamica! Ma scusa, ho capito male o stai parlando del call stack??? O_o -- Comment added by Users.AlbertoLaRocca on 11 Dec 2004 ---- ---++++ Collaborazione dinamica! Suppongo (e spero) di aver capito male, dal momento che in ANSI C non puoi usare l'assembly... -- Comment added by Users.AlbertoLaRocca on 11 Dec 2004 ---- ---+++ Collaborazione dinamica! Nessun uso di call stack o assembly Alberto...te lo assicuro!!! Mi ci sono solo ingegnato un pò! Anche perché i procedimenti che ho utilizzato sarebbero stati molto più laboriosi (e anche dispendiosi) dal punto di vista della memoria (e anche della logica: un pò contorta!) utilizzando solo liste lineari. In poche parole erano un pò caotici! Così, se vogliamo dirla tutta, mi sono solo semplificato la vita!!! :) -- Comment added by Users.DavidBenedetti on 11 Dec 2004 ---- ---++++ Collaborazione dinamica! ti sei semplificato la vita creandoti uno stack e senza fare uso di classi/template??? complimenti, ma non so se hai capito bene cos'è una lista... e poi guarda che lo scopo dell'homework è quello di utilizzare le liste linkate, altrimenti puoi fare tutto con un normalissimo array di char (senza andare ad impelagarti con i miscugli di stack e array) e tanti saluti! -- Comment added by Users.AlbertoLaRocca on 11 Dec 2004 ---- ---+++ Collaborazione dinamica! Certo che lo so cos'è una lista, non preoccuparti...!Ma grazie comunque per i chiarimenti!!! -- Comment added by Users.DavidBenedetti on 11 Dec 2004 ---- ---++++ Collaborazione Dinamica x LaRocca array di char??? Ma che sei matto?? -- Comment added by Users.FabrizioBottacchiari on 13 Dec 2004 ---- ---+++ Senza titolo? ma se i 2 numeri sono primi cosa deve visualizzare? -- Comment added by Users.MassimilianoMenculini on 13 Dec 2004 ---- ---++++ Collaborazione Dinamica x Bottacchiari Tutt'altro, era in assoluto la soluzione migliore; perché, tu come avresti fatto? x Massimiliano: se i due numeri sono primi deve visualizzare 1 (entrambi sono divisibili per uno e per se stessi, quindi l'MCD è 1). -- Comment added by Users.AlbertoLaRocca on 13 Dec 2004 ---- ---++++ Senza titolo? basta seguire l'algoritmo. Ad esempio m=13 n=7 , risulterà MCD(1,1)=1 -- Comment added by Users.CristianCarbone on 13 Dec 2004 ---- ---+++ Senza titolo? La prima cifra del nostro numero, può essere uno zero? o lo zero può essere inserito solo nelle cifre seguenti? ESEMPIO: potremmo avere in input del genere 0->1->2->3 ? -- Comment added by Users.CristianCarbone on 13 Dec 2004 ---- ---+++ Studenti Canale A - D Mi scuso se sfrutto questo forum per un'altra materia, chiunque del canale A -D è in cerca degli Esami precedenti di calcolo differenziale, può trovarli sulla mia home page di twiki, cliccando sul mio nome, buono studio -- Comment added by Users.FabrizioBottacchiari on 14 Dec 2004 ---- ---+++ Osservazione l'idea di usare divisione e resto della divisione intera (proposta da Cosentino mi sembra) effettivamente funziona, solo che in quel caso dovete implementarvi queste operazioni sui numeri rappresentati come vi ho chiesto... il che mi sembra obiettivamente piu' difficile. Se ci pensate, con l'algortitmo che vi ho dato io si fa (con qualche passo in piu', of course) la stessa cosa. -- Comment added by Users.IvanoSalvo on 14 Dec 2004 ---- ---+++ Efficienza del programma come vi ho detto non preoccupatevi dell'efficienza della rappresentazione. Il modo migliore sarebbe... vabbe' troppo lungo da spiegare... ;-) -- Comment added by Users.IvanoSalvo on 14 Dec 2004 ---- ---+++ Zero come prima cifra gli zeri a sinistra, come immagino sappiate non sono cifre significative. Quindi.... se volete, considerate questo caso non considerando eventuali sequenze iniziali di zeri. -- Comment added by Users.IvanoSalvo on 14 Dec 2004 ---- ---+++ Domanda stupida Quando ho inserito tutti i numeri nella lista concatenata.. i numeri che vado ad utilizzare nel calcolo dell'MCD, le devo considerare come degli interi inseriti da tastiera? perchè l'algoritmo funziona sulle sequenze di cifre delle liste concatenate, per cui io il numero derivante dalla lista da qualche parte lo dovrò mettere, altrimenti su cosa opero? -- Comment added by Users.AndreaCosentino on 14 Dec 2004 ---- ---+++ Re: Efficienza del programma il metodo migliore dal punto di vista dell'ottimizzazione della memoria sarebbe di codificare non in BCD (come stiamo---+ o - facendo) ma normalmente in binario allocando spazio a sufficienza chiamando malloc (una sola volta però! senza fare realloc 3000 volte); l'unica cosa a cui stare attenti è che in questo modo le operazioni andrebbero fatte operando in esadecimale (una cifra ogni nibble) e quindi i prestiti delle sottrazioni dovrebbero essere uguali a 16 anziché 10. Per il resto tutto normale. -- Comment added by Users.AlbertoLaRocca on 14 Dec 2004 ---- ---+++ Re: Domanda stupida Io nel mio programma non ho allocato nessun'altra lista oltre alle due in ingresso, perché di fatto le uniche operazioni che devi fare sono le progressive sottrazioni sui due numeri in ingresso, quindi io non faccio altro che sottrarre progressivamente i due numeri fra di loro, senza fare uso di terze parti. -- Comment added by Users.AlbertoLaRocca on 14 Dec 2004 ---- ---+++ Senza titolo? infatti non è necessario allocare una terza lista..cmq una funzione x togliere gli zeri all'inizio del numero è indispensabile altrimenti poi le sottrazioni non funzionano in certi casi particolari...cmq credevo fosse più difficile l'homework all'inizio ma poi con un paio di giorni me la sono cavata e alla fine l'ho risolto tutto...buona fortuna a tutti... CHEERS! -- Comment added by Users.OmarTardiolo on 14 Dec 2004 ---- ---+++ Senza titolo? Compilando il programma su Linux e mandandolo in run mi sono accorta che non mi visualizza tutte le printf che chiedo. Es.se scrivo printf("pippo"); e printf("pluto"); mi visualizza solo pippo...e cosi' via, le visualizza tutte tranne l'ultima. Da cosa puo' dipendere? Eseguendo lo stesso su Cygwin in windows, non ho nessun tipo di problema. Inoltre sempre da Linux in run ho avuto problemi con una funzione ricorsiva tornante un valore...(su Cygwin funzionava benissimo...) e ho dovuto rendere void tale funzione che altrimenti veniva letteralmente ignorata . Suggerimenti??? -- Comment added by Users.NormaGiovinazzi on 15 Dec 2004 ---- ---+++ Senza titolo? sicura che il codice che hai eseguito su cygwin fosse *esattamente* lo stesso che hai eseguito su linux? non l'hai riscritto? -- Comment added by Users.AlbertoLaRocca on 15 Dec 2004 ---- ---+++ Aiuto !!! Come faccio a fare la sottrazione fra 2 liste collegate che rappresentano i nostri numeri!!!!! ho trovato un sacco di prob. datemi qualche consiglio (anke porzioni di codice nn fanno schifo lollllllllll) -- Comment added by Claudio on 15 Dec 2004 ---- ---+++ Fatto Anche se dopo estenuanti lol giorni di prove... CE L'HO FATTA!!! Alla facciaccia vostra!!!! :) :) :) -- Comment added by Users.StefanoConte on 15 Dec 2004 ---- ---- ---+++ scherzavo... cioè il progr l'ho fatto,ma nn alla faccia vostra!!! ehehehehehehe uhauhauahauhauh ahahahahahahahaah Seeeeeeeeeeeee se vi serve una mano...sto qua!!! -- Comment added by Users.StefanoConte on 15 Dec 2004 ---- ---++++ scherzavo... A me servirebbe qualche output (magari con molte cifre) per testare il programma, possibilmente giusti eheh -- Comment added by Users.CristianCarbone on 15 Dec 2004 ---- ---+++ Senza titolo? a me a me serve una mano!!! come fai a fare la sottrazione fra 2 liste di interi cavolo!!!!!!!!!!!!!!come se fa!??!!?!?!?! -- Comment added by Claudio on 15 Dec 2004 ---- ---+++++ scherzavo dando in input questi numeri:<br>3239018414<br>1705173374<br>il risultato è : 254 -- Comment added by Users.StefanoConte on 15 Dec 2004 ---- ---+++ X Claudio io uso una funzione che, avendo queste fue liste: m->5->9->9->9->0->NULL <br> n->8->7->0->NULL <br> Fa il reverse: <br> m->0->9->9->9->5->NULL <br> n->0->7->8->NULL <br> e finchè n!=NULL sottraggo a l'elemento di m l'elemento di n , quindi m diventerà : <br> m->0->2->1->9->5->NULL <br> faccio il reverse della lista m e torna: <br> m->5->9->1->2->0->NULL <br> Spero di essere stato chiaro... -- Comment added by Users.CristianCarbone on 15 Dec 2004 ---- ---+++ zero ma nel caso in cui uno dei due numeri immessi dall'utante è zero l'output del programma quale sarà?e se sono entrambi zero?esempi<br>mcd(0,12)=???<br>mcd(0,0)=??? -- Comment added by Users.StefanoConte on 15 Dec 2004 ---- ---++++ zero "...Esiste un antichissimo modo per determinare il Massimo Comun Divisore (MCD) di due numeri interi strettamente positivi..." 0 non è positivo, quindi non credo che ci mettera' lo 0 come input, per sicurezza però ho mandato una e-mail al Salvo, speriamo che mi risponde eheh -- Comment added by Users.CristianCarbone on 15 Dec 2004 ---- ---+++ Users.StefanoConte fa lo sborone ma il grande sottoscritto non si batte! eheh!<br> lo sai quanto ci ho messo io a fare il programma (alla faccia tua lol :D )? nemmeno un'ora! e se vuoi sapere una cosa, a me ha funzionato alla prima botta asd :D semplicemente l'ho scritto e l'ho fatto partire :D -- Comment added by Users.AlbertoLaRocca on 15 Dec 2004 ---- ---+++ Attenzione prego se lo desiderate, nella mia pagina personale qui su TWiki ho messo in attachment un piccolo programmetto fatto da me per scomporre un numero in fattori primi; funziona solo su Windows però; vi potrà aiutare a trovare i fattori primi e quindi l'MCD di due numeri. chi lo vuole se lo scarica, chi non lo vuole non se lo scarica, io l'ho messo e sta la'. :D -- Comment added by Users.AlbertoLaRocca on 15 Dec 2004 ---- ---+++ Attenzione prego per chi ha Linux, o per chi non si fida di me, ho messo sempre in attachment anche il sorgente del programma pronto da compilare. scusate se fa schifo, ma l'ho fatto alle medie!!! :D -- Comment added by Users.AlbertoLaRocca on 15 Dec 2004 ---- ---+++ PS x StefanoConte il tuo output è sbagliato. -- Comment added by Users.AlbertoLaRocca on 16 Dec 2004 ---- ---+++ O_o ma il grande sottoscritto non si batte! eheh! lo sai quanto ci ho messo io a fare il programma (alla faccia tua lol big grin )? nemmeno un'ora! e se vuoi sapere una cosa, a me ha funzionato alla prima botta asd big grin semplicemente l'ho scritto e l'ho fatto partire big grin tu si che sei un figo la rocca -- Comment added by Users.ClaudioCorti on 16 Dec 2004 ---- ---++++ PS x StefanoConte? Controlla il tuo di programma allora!!! -- Comment added by Users.StefanoConte on 16 Dec 2004 ---- ---+++ x AlbertoLaRocca secondo me ho ragione io -- Comment added by Users.StefanoConte on 16 Dec 2004 ---- ---+++++ X CristianCarbone si cristian sei stato chiaro, ma: 1)se invece di avere la liste (reversate)<br> m->0->9->9->9->5->NULL <br> n->0->7->8->NULL <br> avessi le liste <br> m->1->2->3->9->5->NULL <br> n->0->7->8->NULL <br> ti troveresti alla fine con la lista m 1-><b>-5</b>-><b>-5</b>->9->5 ovvero il numero 59-5-51 che nn è che abbia molto senso!Forse mi sbaglio io?!?!<br> 2) se fai 1000-99 con quel metodo nn coinvolgi nella differenza i primi 2 num di 1000 faresti <br> <pre> 1000 - 99 = 10XX</pre> che ha ancor meno senso di prima, xk togliendo a 1000 un numeri arrivi a un numero---+ grande di mille!<br> Sei sicuro che ti funzioni il prgramma? o non ho capito io ? Altre proposte su come fare la sottrazione? -- Comment added by Claudio on 16 Dec 2004 ---- ---+++ Sottrazione tra due interi? come vuoi che si faccia? si fa esattamente come ti ha insegnato la maestra alle elementari: procedendo da destra verso sinistra fai la prima cifra meno la seconda; se la seconda è più grande della prima, allora usa il prestito togliendolo da quella successiva; se alla fine arrivi all'ultima cifra (quella più a sinistra di tutte) e hai bisogno di un prestito ma non c'è più nessuna cifra che te lo da (per favore, cosa state pensando!?!), allora vuol dire che il secondo numero era più grande del primo, e la sottrazione non si può fare. -- Comment added by Users.AlbertoLaRocca on 16 Dec 2004 ---- ---++++ Sottrazione tra due interi? Esatto, proprio che ha detto AlbertoLaRocca, io nella funzione sottrazione ho fatto un ciclio while che finchè la cifra seguente è 0 , con un puntatore ausiliare va al prossimo nodo, e leva un unità dal suo elemento. Scusa se non te l ho detto nel precedente post, ma come dice AlbertoLaRocca te lo insegna la maestra alle elementari. <br> Cmq l'output di StefanoConte è giusto, il MCD è 254 -- Comment added by Users.CristianCarbone on 16 Dec 2004 ---- ---+++ hmmmm... stavolta sono stato un po' troppo azzardato ^^' <br> ho usato il programma della scomposizione per vedere i fattori primi dei due numeri, solo che i due numeri erano troppo lunghi per un int e il programma andava in overflow mostrandomi i fattori primi di un'altra cosa.<br> evvabeeeeene: scuuuuusami stefanocooooonte... :D -- Comment added by Users.AlbertoLaRocca on 16 Dec 2004 ---- ---++++ hmmmm... scuse accettate, lo sapevo benissimo che il mio output era corretto, è il tuo programmino delle medie che non funzia tanto bene!!! ;) -- Comment added by Users.StefanoConte on 16 Dec 2004 ---- ---+++ Senza titolo? Scusa e perchè hai usato il programmino delle medie e non quello che hai già fatto (impiegandoci meno di 1 ora) per testare i numeri che ha dato stefanoconte? :D<br> No così giusto per capire ;)<br> <br><br> Poi una domanda.....<br> Dobbiamo valutare il caso in cui l'utente inserisca già dal primo numero un numero maggiore di 9 o minore di 0 e quindi imporre la lista come 0 oppure deve per forza inserire almeno 1 numero e quindi fare un ciclo finchè questo non sia >0 e <9 ? (intendo sempre il primo elemento della lista poi dal 2° si uscirà come dal testo dell'esercizio...) <br> ciao! -- Comment added by Users.MarioBove on 16 Dec 2004 ---- ---+++ caso zero ho chiesto al Salvo: mi ha detto che il programma deve terminare sia se l'utente chiede di calcolare il MCD tra due zeri(MCD(0,0)) oppure tra un numero e zero (MCD(x,0)).<br> X MarioBove per sicurezza un controllino sull'esistenza della lista io ce l'ho messo. se l'utente immette già dal primo num un numero >9 o <0 il programma si stoppa visto che non ha numeri su cui lavorare! <br> spero di essere stato chiaro -- Comment added by Users.StefanoConte on 16 Dec 2004 ---- ---+++ output Mi è venuto un dubbio...se noi abbiamo un input del genere: <br> 5 <br> 5 <br> -1<br> 7 <br> 7 <br> 10<br> L'output dovra essere stampato in colonna? 1 <br> 1 <br> Oppure in linea? 11 -- Comment added by Users.CristianCarbone on 16 Dec 2004 ---- ---++++ output penso in linea.. il testo dice così.. printf("%1d") -- Comment added by Users.AlessandroSabellico on 16 Dec 2004 ---- ---+++ Senza titolo? Ma voi dopo aver stampato il MCD stampate anche il carattere di newline "\n" ? Non vorrei che risultasse sbagliato... -- Comment added by Users.CristianCarbone on 16 Dec 2004 ---- ---+++ Librerie coda e albero Qualche anima pia potrebbe che ha trascritto tutte le funzioni sugli alberi e sulle code non è che potrebbe farmele avere in qualche modo? Purtroppo sono stato assente durante quelle lezioni e non ho potuto recuperare appunti. C'è l'indirizzo mail nella mia pagina. Vi ringrazio e mi scuso perché probabilmente sono OT. -- Comment added by Users.DanieleBernardi on 17 Dec 2004 ---- ---+++ Risposte varie x Users.MarioBove: ho usato il programma delle medie perché ce l'avevo sottomano; non mi andava di:<br> 1) ripescare l'homework<br> 2) rimettere la getch() al codice del programma dell'homework<br> 3) ricompilare il codice<br> 4) eseguire e vedere il risultato;<br> ho fatto prima ad avviare quell'affaretto che stava già sul desktop :P x Users.CristianCarbone: il newline alla fine io l'ho messo, ma comunque Salvo mi ha detto di persona che il programma di correzione automatica dovrebbe saltare automaticamente i newlines di troppo, poi non so. x Users.DanieleBernardi: essì, evviva, allora a questo punto propongo una cosa migliore: tu fai il tuo homework e controlli che funzioni, dopodiché giri su TWiki per tutte le pagine personali degli users e invii il tuo homework a tutti gli indirizzi e-mail che trovi; mi sembra molto meglio, no? -- Comment added by Users.AlbertoLaRocca on 17 Dec 2004 ---- ---+++ Se l'ottimizzazione delle risorse nn è un problema :D ragazzi ho finito il prog ma con numeri di centinaia di cifre o ci mette tanto e arriva a impallare il pc lol <pre> Mem: 191368K av, 189744K used, 1624K free, 0K shrd, 2364K buff Swap: 142592K av, 12K used, 142580K free 54504K cached PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 1460 claudyus 9 0 95352 93M 364 S 10,0 49,8 0:53 404 </pre> l'ha detto il prof che l'ottimizzazione nn è un problema vero :D -- Comment added by Claudio on 17 Dec 2004 ---- ---+++ Senza titolo? A me funziona fino a certe cifre, ma dopo va tutto in palla :( -- Comment added by Users.RobertoVarazzi on 18 Dec 2004 ---- ---+++ Ho ottimizzato pure io Bene ho finito anche io :) Come vedo non sono il solo che programma ad orari assurdi ihih Mem: 513708k total, 182500k used, 331208k free, 16k buffers Swap: 995988k total, 26072k used, 969916k free, 56720k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME---+ COMMAND 16350 root 23 0 1356 368 1196 R 97.1 0.1 1:44.33 mcd-euclide Il mio ha un'effetto contrario al tuo, cpu a palla, poca memoria (il test l'ho effettuato con 1024-m x 1024-n). Ciao :) -- Comment added by Users.AntoninoMuratore on 18 Dec 2004 ---- ---+++ Ehm ho dimenticato gli apici su ottimizzato :) -- Comment added by Users.AntoninoMuratore on 18 Dec 2004 ---- ---+++ ma beati voi ke siete tutti geni e riusciti a fare tutti gli hw :) io devo ancora capire come iniziare oO'' -- Comment added by Users.MassimilianoMenculini on 18 Dec 2004 ---- ---+++ Algoritmo ricorsivo? Salve, volevo sapere se l'agortimo di euclide va implementato in forma ricorsiva per forza o no? Un grazie anticipato per la risposta. -- Comment added by Users.FabioGiuffre on 18 Dec 2004 ---- ---+++ Controlli Volevo sapere,<br> cosa bisognava fare ESATTAMENTE nel caso in cui si verificassero questi eventi, in modo da evitare di incorrere in problemi con la correzione automatica, allora:<br> se si richiede di fare il MCD(0,0) , cosa bisogna fare esattamente? si vuole un errore particolare o non si deve stampare nulla?<br> Stesso caso per MCD(un_numero,0) , cosa bisogna fare?<br> Un altro caso, se l'utente immette immediatamente due numeri >9 o <0 cosa bisogna fare? <br> Tutti questi casi non sono descritti nel testo, quindi spero, o che non vengano presi in considerazione durante il test, o che un professore risponda chiarendo ogni dubbio in modo da evitare problemi nella fase di correzione!<br> Grazie, saluti! -- Comment added by Users.MarioBove on 19 Dec 2004 ---- ---+++ Senza titolo? Ragazzi io ho fatto così: Se si inserisce la prima cifra >9 0 <0 (sia nel primo numero che nel secondo) il programma termina. Se si è inserito (0,x), (x,0) oppure (0,0) il programma termina. è giusto così? -- Comment added by Users.RobertoVarazzi on 19 Dec 2004 ---- ---+++ Senza titolo? Non si sà i professori non si sono ancora espressi molto bene in merito, per questo ho chiesto delucidazioni... <br> ciao -- Comment added by Users.MarioBove on 19 Dec 2004 ---- ---+++ Senza titolo? qualcuno ha provato ad eseguire il programma con i numeri dati nell'esempio da Salvo? il risultato del mio programma è 4 e non 21252. inoltre ho dei problemi se provo a trovare l 'MCD con i numeri tipo 123456789 e 987654321 perchè mi si impalla il pc visto che la funzione mcd viene richiamata milioni di volte -- Comment added by Users.StefanoCipriani on 19 Dec 2004 ---- ---+++ ZERI!!!!!!!! Nel caso della richiesta di calcolo del MCD tra o uno 0 e un numero x oppure tra due 0 si deve considerare anche il caso in cui nella lista ci sia NON solo un unico 0, ma un numero strettamente maggiore di cifre uguali a zero (e solamente quelle ovviamente!)? Se cosi', ditemelo!!!!! -- Comment added by Users.DavidBenedetti on 20 Dec 2004 ---- ---+++ sottrazione regà!!!!! che metodo dite ke conviene usare per la sottrazione di 2 liste? è 1 bordello!!!! è tutto il pom ke ci provo e mi stò impazzendo!!!! viene troppo complicato!!! -- Comment added by Users.StefanoLAVAGNO on 20 Dec 2004 ---- ---+++ si fa così fai come avevo fatto io all'inizio, ho messo le cifre nelle liste e poi li ho trasformate in interi e ho lavorato con quelli, purtroppo mi sa che non si può fare! male che va lo consegno cosi -- Comment added by Users.AlessioDezi on 20 Dec 2004 ---- ---+++ Ricorsione Ragazzi ho una domandina.. implementando la differenza con una funzione ricorsiva se le liste contengono piu' di 4096 nodi (cifre da 4096 elementi) il programma smette di funzionare (stack overflow). Ora vorrei chiedere al prof.Salvo o magari se qualcuno ha gia' fatto la domanda, se durante la verifica saranno usati valori con---+ di 4096 elementi? In tal caso mi sa che dovro' lavorarci ancora un pochino :) Grazie per la risposta. -- Comment added by Users.AntoninoMuratore on 20 Dec 2004 ---- ---++++ AlessioDezi grazie per il consiglio anke io avevo pensato di farlo così!!!però nn sò se magari nel tester ci mete cifre ke sono superiori ad int.!!!! e nella conversione poi potrebbe dare problemi!!!!! e poi penso ke salvo vuole che facciamo tutto con le liste!!! solo ke è 1 casino!!!! -- Comment added by Users.StefanoLAVAGNO on 20 Dec 2004 ---- ---+++ Ricorsione e zeri Salve, anche io vorrei sapere se l'algoritmo di euclide va implementato in forma ricorsiva; ci sono infatti dei casi, come MCD(1, 1000000), in cui l'algoritmo di euclide provoca 1000000 di chiamate ricorsive, che provocano errore di memoria; nella forma iterativa invece non ci sono problemi. Se bisogna per forza usare la ricorsione l'importante è che nei test si tenga presente questo aspetto, e quindi non si diano degli input che provocano troppe chiamate ricorsive; comunque aspetto una risposta di conferma da parte del professore, altrimenti lascio la forma iterativa. E' da notare che il problema delle troppe chiamate ricorsive non dipende dall'eccessiva lunghezza dei numeri, ma può dipendere semplicemente dalla differenza tra i numeri stessi, come nel caso di 1 e 1000000. Per quanto riguarda gli zeri, nell'esporre l'algoritmo si parla di "due numeri interi strettamente positivi", quindi lo zero non dovrebe essere dato in input, ad ogni modo se uno dei due numeri è zero io restituisco come MCD l'altro numero dato in input, il che è coerente con la definizione di MCD. -- Comment added by Users.VascoMarini on 21 Dec 2004 ---- ---+++ Senza titolo? Ragazzi ma io ho fatto questa dichiarazione: struct link_list { int dato; struct link_list *next; }; typedef struct link_list catena; typedef catena *lista; MA PERCHè POI DURANTE IL PROGRAMMA SE SCRIVO: d = malloc(sizeof (catena)); mi scrive un errore così:" invalid conversion from `void*' to `catena*'". -- Comment added by Users.MauroMoretti on 21 Dec 2004 ---- ---++++ Senza titolo? Per caso stai compilando il file come file c---++? Hai dato estensione cpp al file? In C la conversione avviene automaticamente, se no scrivi escplicitametne il cast: d = (catena *)malloc(sizeof (catena)); -- Comment added by Users.VascoMarini on 21 Dec 2004 ---- ---+++ GRAZIE VASCO 6 UN GRANDE!!!! -- Comment added by Users.MauroMoretti on 21 Dec 2004 ---- ---+++ Help (XCLAUDIO) ragazzi come posso fare la sottrazione tra le due liste??? ke sistema devo usare?? qualkuno ke ha già terminato il programma e li funziona può darci una pikkola dritta?? XCLAUDIO hai scritto: "Fa il reverse: m->0->9->9->9->5->NULL n->0->7->8->NULL e finchè n!=NULL sottraggo a l'elemento di m l'elemento di n , quindi m diventerà : m->0->2->1->9->5->NULL faccio il reverse della lista m e torna: m->5->9->1->2->0->NULL " allora la mia domanda è: come fai a dire ke deve essere n ad essere sottratto ad e enon il contrario? per caso in base alla lunghezza del numero (ossia essendo n più corto sarà di certo più pikkolo di m...e in tal caso come ti comporti nel caso in cui n ed m hanno lo stesso numero di cifre????) -- Comment added by Users.SalvatoreCaputo on 21 Dec 2004 ---- ---+++ disfatta niente mi arrendo!cè un errore e sono 3 giorni ke c stò sopra!!!!! va bè speriamo che vado meglio l'altro!!!!! ormai dovrei rifà tutto da capo!ma nn ho tempo!!!! spero ke a voi sia andata meglio!!!! ciao ragazzi e auguri a tutti||||| -- Comment added by Users.MauroMoretti on 22 Dec 2004 ---- ---+++ abbandono le armi hai io ci rinuncio, ho scritto 240 righe di codice sembrava funzionasse ma nn va come deve...speriamo per il prox... -- Comment added by Users.SalvatoreCaputo on 22 Dec 2004 ---- ---+++ Senza titolo? misa' ke sono in ritardo vero? O_o -- Comment added by Users.DanieleFaraci on 23 Dec 2004 ---- ---+++ in ritardo? no è solo una tua impressione! -- Comment added by Users.MauroMoretti on 23 Dec 2004 ---- ---+++ Senza titolo? Ma quando escono questi risultati? un altro pò è un mese........ -- Comment added by Users.MarioBove on 20 Jan 2005 ---- ---+++ Senza titolo? "Come sempre a tempo debito"!!! Non essere impaziente, Mario :D -- Comment added by Users.AlbertoLaRocca on 21 Jan 2005 ---- ---+++ Senza titolo? Altro che tempo debito qui stà facendo proprio i buffi! :P <br> I risultati del 5 li daranno al prossimo semestre mi sà :D -- Comment added by Users.MarioBove on 22 Jan 2005 ---- ---+++ Senza titolo? Professore, ora passiamo alle minacce: pubblichi quanto prima i risultati degli homeworks!!! Sono armato: ho un crivello di Eratostene e non ho paura di usarlo!!! -- Comment added by Users.AlbertoLaRocca on 22 Jan 2005 ---- ---+++ Senza titolo? ahahahahah Questa è forte :D -- Comment added by Users.MarioBove on 23 Jan 2005 %COMMENT{button=" Aggiungete la domanda " mode="before"}% <a name="form">
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r118
<
r117
<
r116
<
r115
<
r114
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r118 - 2005-01-23
-
MarioBove
Log In
or
Register
Programmazione1/AA0506/PZ Web ...
Programmazione1/AA0506/PZ Web
Programmazione1/AA0506/PZ Web Home
Users
Groups
Index
Search
Changes
Notifications
Statistics
Preferences
User Reference ...
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
ChangeEmailAddress
ChangePassword
ResetPassword
Prenotazioni esami
Laurea Triennale ...
Laurea Triennale
Algebra
Algoritmi
Introduzione agli algoritmi
Algoritmi 1
Algoritmi 2
Algoritmi per la
visualizzazione
Architetture
Prog. sist. digitali
Architetture 2
Basi di Dati
Basi di Dati 1 Inf.
Basi di Dati 1 T.I.
Basi di Dati (I modulo, A-L)
Basi di Dati (I modulo, M-Z)
Basi di Dati 2
Calcolo
Calcolo differenziale
Calcolo integrale
Calcolo delle Probabilitą
Metodi mat. per l'inf. (ex. Logica)
canale AD
canale PZ
Programmazione
Fond. di Programmazione
Metodologie di Programmazione
Prog. di sistemi multicore
Programmazione 2
AD
EO
PZ
Esercitazioni Prog. 2
Lab. Prog. AD
Lab. Prog. EO
Lab. Prog. 2
Prog. a Oggetti
Reti
Arch. di internet
Lab. di prog. di rete
Programmazione Web
Reti di elaboratori
Sistemi operativi
Sistemi Operativi (12 CFU)
Anni precedenti
Sistemi operativi 1
Sistemi operativi 2
Lab. SO 1
Lab. SO 2
Altri corsi
Automi, Calcolabilitą
e Complessitą
Apprendimento Automatico
Economia Aziendale
Elaborazione Immagini
Fisica 2
Grafica 3D
Informatica Giuridica
Laboratorio di Sistemi Interattivi
Linguaggi di Programmazione 3° anno Matematica
Linguaggi e Compilatori
Sistemi Informativi
Tecniche di Sicurezza dei Sistemi
ACSAI ...
ACSAI
Computer Architectures 1
Programming
Laurea Magistrale ...
Laurea Magistrale
Percorsi di studio
Corsi
Algoritmi Avanzati
Algoritmica
Algoritmi e Strutture Dati
Algoritmi per le reti
Architetture degli elaboratori 3
Architetture avanzate e parallele
Autonomous Networking
Big Data Computing
Business Intelligence
Calcolo Intensivo
Complessitą
Computer Systems and Programming
Concurrent Systems
Crittografia
Elaborazione del Linguaggio Naturale
Estrazione inf. dal web
Fisica 3
Gamification Lab
Information Systems
Ingegneria degli Algoritmi
Interazione Multi Modale
Metodi Formali per il Software
Methods in Computer Science Education: Analysis
Methods in Computer Science Education: Design
Prestazioni dei Sistemi di Rete
Prog. avanzata
Internet of Things
Sistemi Centrali
Reti Wireless
Sistemi Biometrici
Sistemi Distribuiti
Sistemi Informativi Geografici
Sistemi operativi 3
Tecniche di Sicurezza basate sui Linguaggi
Teoria della
Dimostrazione
Verifica del software
Visione artificiale
Attivitą complementari
Biologia Computazionale
Design and development of embedded systems for the Internet of Things
Lego Lab
Logic Programming
Pietre miliari della scienza
Prog. di processori multicore
Sistemi per l'interazione locale e remota
Laboratorio di Cyber-Security
Verifica e Validazione di Software Embedded
Altri Webs ...
Altri Webs
Dottorandi
Commissioni
Comm. Didattica
Comm. Didattica_r
Comm. Dottorato
Comm. Erasmus
Comm. Finanziamenti
Comm. Scientifica
Comm Scientifica_r
Corsi esterni
Sistemi Operativi (Matematica)
Perl e Bioperl
ECDL
Fondamenti 1
(NETTUNO)
Tecniche della Programmazione 1° modulo
(NETTUNO)
Seminars in Artificial Intelligence and Robotics: Natural Language Processing
Informatica generale
Primo canale
Secondo canale
II canale A.A. 10-11
Informatica
Informatica per Statistica
Laboratorio di Strumentazione Elettronica e Informatica
Progetti
Nemo
Quis
Remus
TWiki ...
TWiki
Tutto su TWiki
Users
Main
Sandbox
Home
Site map
AA web
AAP web
ACSAI web
AA2021 web
Programming web
AA2021 web
AN web
ASD web
Algebra web
AL web
AA1112 web
AA1213 web
AA1920 web
AA2021 web
MZ web
AA1112 web
AA1213 web
AA1112 web
AA1314 web
AA1415 web
AA1516 web
AA1617 web
AA1819 web
Old web
Algo_par_dis web
Algoreti web
More...
PZ Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Questo sito usa cookies, usandolo ne accettate la presenza. (
CookiePolicy
)
Torna al
Dipartimento di Informatica
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback