|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
Credi che così vada bene?!?!?
for (i=0;i<grandezzavett;i++) { risultato[i]=vett1[i]; coordinate1[i]=coordinater[i]; } k=-1; y=1; for (i=0;i<grandezzavett;i++) { do { k=k+1; } while (coordinate2[k]==coordinater[k] || k==grandezzavett); if (coordinate2[k]==coordinater[k]) { risultato[k]=risultato[k]+vett2[k]; } else { coordinater[grandezzavett+y]=coordinate2[k]; risultato[grandezzavett+y]=vett2[k]; y=y+1; } }
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se funziona va bene
![]() |
![]() |
![]() |
![]() |
#23 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
E' che il programma è talmente incasinato che avvolte è difficile trovare l'errore!!! E come se non bastasse devo assolutamente finirlo per domenica
![]() Ma grazie al tuo aiuto sebra che stia ad un buon punto ![]()
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
#24 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' sbagliata la condizione di terminazione del while
![]() |
![]() |
![]() |
![]() |
#25 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
Perchè??!?!
Continua il "do" finchè non ne trova uno uguale o finchè non ha finito si controlalre tutto l'harray. ![]() dovè l'errore???!?!?
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
#26 |
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Non vorrei sbagliarmi, ma nel formato sparso gli elementi non sono ordinati comunque per colonna e per riga ?
![]() In tal caso dovresti scorrere i due vettori parallelamente, prendendo sempre il valore di indice piu' piccolo (e sommando quando coincidono). |
![]() |
![]() |
![]() |
#27 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Appunto... Il programma esegue il ciclo fino a quando la condizione del ciclo è vera... Quella condizione andrebbe negata
![]() coordinate2[k]!=coordinater[k] && k<=grandezzavett Appena uno dei due diventa falso esce dal ciclo... |
![]() |
![]() |
![]() |
#28 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#29 | |
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
|
|
![]() |
![]() |
![]() |
#30 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
basta poco che ce vo'
![]() Codice:
Const iMax = 500, kMax = 0.05 * iMax Type tipoVett i() As Integer x() As Double kk As Integer End Type Function f_GeneraVett(kk) As tipoVett Dim v As tipoVett ReDim v.i(1 To kk), v.x(1 To kk) v.kk = kk i = 0 For k = 1 To kk i = i + Rnd() * 19 + 1 v.i(k) = i v.x(k) = Rnd() * 9 + 1 Next k xx = iMax / (i + Rnd() * 19 + 1) For k = 1 To kk v.i(k) = xx * v.i(k) Next k f_GeneraVett = v End Function Function f_SommaVett(v1 As tipoVett, v2 As tipoVett) As tipoVett Dim v3 As tipoVett v3.kk = v1.kk + v2.kk ReDim v3.i(1 To v3.kk), v3.x(1 To v3.kk) k1 = 1: k2 = 1 For k3 = 1 To v3.kk s = Sgn(v2.i(k2) - v1.i(k1)) w1 = (s >= 0) * (k1 < v1.kk) w2 = (s <= 0) * (k2 < v2.kk) If w1 + w2 = 0 Then Exit For v3.i(k3) = w1 * v1.i(k1) + w2 * (w2 - w1) * v2.i(k2) v3.x(k3) = w1 * v1.x(k1) + w2 * v2.x(k2) k1 = k1 + w1: k2 = k2 + w2 Next k3 v3.kk = k3 - 1 ReDim Preserve v3.i(1 To v3.kk), v3.x(1 To v3.kk) f_SommaVett = v3 End Function ![]()
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
![]() |
![]() |
![]() |
#31 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
a2000...siamo buoni tutti a farlo... Non è che ci sono problemi...ma cerchiamo di far imparare xber-gigi...meno male che non l'hai scritta in C
![]() |
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
RAGAZZI VI PREGO AIUTATEMI STO IMPAZZENDO!!!
Ecco quanto ricavato finora! Devo finirlo entro lunedì!!! Per favore helppp!!! ![]() ![]() ![]() ![]() Come procedo con la stampa?!?!?!? Aiuto!!! ![]() #include <stdio.h> #include <stdlib.h> void sommavett (int vett1[], int vett2[], int coordinate1[], int coordinate2[], int nonulli, int n_risul); void stampa (int a[], int n); /*-------------------------------------------------------------------------------------------------------------------*/ /*PROGRAMMA PRINCIPALE - la variabile n è la grandezza del vettore*/ void main () { int vett1[1000], vett2[1000], coordinate1[1000], coordinate2[1000],risultato[1000], coordinater[1000]; int n,i,x,y,nonulli,n_risul, numero_cas; printf ("Indicare la grandezza dei vettori: "); scanf ("%d",&n); /* CALCOLO DEL 5% DELLA GRANDEZZA DEL VETTORE*/ nonulli = (n * 5) /100; /*GENERAZIONE DEI VALORI DEL VETTORE*/ for (i=0;i<nonulli;i++) { vett1[i]=1+rand()%10; } /*GENERAZIONE DELLE COORDINATE PRIMO VETTORE*/ for (i=0;i<nonulli;i++) { do { numero_cas = rand()%n; y=-1; x=0; do { y=y+1; } while (coordinate1[y]!=numero_cas || y==nonulli); if (coordinate1[y] == numero_cas) { x=1; } } while (x==1); coordinate1[i] = numero_cas; } /*GENERAZIONE DELLE COORDINATE SECONDO VETTORE*/ for (i=0;i<nonulli;i++) { do { numero_cas = rand()%n; y=-1; x=0; do { y=y+1 ; } while (coordinate2[y]!=numero_cas || y==nonulli); if (coordinate2[y] == numero_cas) { x=1; } } while (x==1); coordinate2[i] = numero_cas; } sommavett (vett1, vett2, coordinate1, coordinate2, nonulli, risultato, coordinater, n_risul); stampa (vett1,n); stampa (vett2,n); stampa (risultato,n); } /*-------------------------------------------------------------------------------------------------------------------*/ /*PROCEDURA CALCOLO SOMMA VETTORI*/ void sommavett (int vett1[], int vett2[], int coordinate1[], int coordinate2[], int nonulli, int risultato[], int coordinater[], int n_risul) { int i,k,y; for (i=0;i<nonulli;i++) { risultato[i]=vett1[i]; coordinate1[i]=coordinater[i]; } k=-1; y=1; for (i=0;i<nonulli;i++) { do { k=k+1; } while (coordinate2[k]==coordinater[k] || k==nonulli); if (coordinate2[k]==coordinater[k]) { risultato[k]=risultato[k]+vett2[k]; } else { coordinater[nonulli+y]=coordinate2[k]; risultato[nonulli+y]=vett2[k]; y=y+1; } } n_risul=nonulli+y; } /*-------------------------------------------------------------------------------------------------------------------*/ /*PROCEDURA STAMPA ARRAY*/ void stampa (int a[], int n) { int i; for (i=0;i<n;i++) { if
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
#33 | |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
Quote:
![]()
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
![]() |
![]() |
![]() |
#34 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
poi bisogna vedere in quante righe, quanto corre, quanta memoria vuole che è poi lo spirito dell'esercizio visto che richiede una struttura dati per la minimizzazione delle risorse di memoria.
... solo ghirigori e la sostanza si copia freeware ![]()
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
![]() |
![]() |
![]() |
#35 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
xber-gigi: come sugerito sopra...ordina i due vettori dopo l'inserimento... Ti riesce ?
|
![]() |
![]() |
![]() |
#36 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
ehhh con l'ordinamento a bolla impazzisce
![]() ![]() xibergigi se proprio vuoi fare uno short-cut fatti due function "preventive" f_PutValore(v(), i, x) f_GetValore(v(), i, x) e ti riporti al caso del vettore standard. ![]()
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
![]() |
![]() |
![]() |
#37 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#38 |
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
bravo, tutto quello che sa di "classe" (
![]() ![]()
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
![]() |
![]() |
![]() |
#39 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
Non ci sto capendo più niente !!!
![]() sto impazzendo sto da questa mattina davanti a questo maledetto programma!!! Ora mi devo bloccare alla stampa!!! ![]() ![]() ![]() ![]()
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
#40 |
Senior Member
Iscritto dal: Jun 2003
Città: Pianeta Terra
Messaggi: 281
|
Essendo i valori tutti numeri random mi basta ordinare solo l'array delle coordinate ! Quindi basta semplicemente utilizzare un algoritmo di ordinamento per selezione! giusto!?!?
forse ci sto arrivando...
__________________
LE AVVENTURE DI AL METALLER E CHELA FDM - IL FOTOROMANZO TRASH! When I'm walking a dark road... I am a man who walks alone... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:03.