Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 INFORMATICA - Primo Anno
 Programmazione
 Caccia all'errore...
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'č:
Autore Discussione Precedente Discussione Discussione Successiva  

tremenda
Utente assiduo

tweety


Regione: Puglia
Prov.: Ba
Cittā: Bari


Inserito il - 10/01/2005 : 17:39:01  Mostra Profilo  Visita l'Homepage di tremenda  Clicca per vedere l'indirizzo MSN di tremenda Invia a tremenda un Messaggio Privato  Rispondi Quotando
Ki mi trova l'errore in questo pezzo di codice???E' l'algoritmo x la fusione!
Non riesco a capire xkč nn mi funziona!

procedure copy(var b:vet; var c:vet2; j,n:integer; var k:integer);
var i:integer;
begin
for i:=j to n do
begin
c[k]:=b[i];
k:=k+1;
end;
end;
procedure shortmerge(var a,b:vet; var c:vet2; m:integer; var j,k:integer);
var i:integer;
begin
while i<=m do
begin
if a[i]<=b[j] then
begin
c[k]:=a[i];
i:=i+1;
end
else
begin
c[k]:=b[j];
j:=j+1;
end;
k:=k+1;
end;
end;
procedure mergecopy(var a,b:vet; var c:vet2; m,n:integer);
var i,j,k:integer;
begin
i:=1;
j:=1;
k:=1;
if a[m]<=b[i] then
begin
copy(a,c,i,m,k);
copy(b,c,j,n,k);
end
else
begin
shortmerge(a,b,c,m,j,k);
copy(b,c,j,n,k);
end;
end;
procedure merge(var a,b:vet; var c:vet2; m,n:integer);
begin
if a[m]<=b[n] then
mergecopy(a,b,c,m,n)
else
mergecopy(b,a,c,n,m);
end;

Grazie a ki mi aiuterā prima di mercoledė!

"And I feel that love is dead I'm loving angels instead..."

fabbattista
utente SEMPRE giovane

Gecko


Regione: Puglia
Prov.: Bari
Cittā: Bari


Inserito il - 10/01/2005 : 18:29:21  Mostra Profilo  Visita l'Homepage di fabbattista Invia a fabbattista un Messaggio Privato  Rispondi Quotando
Ma ke errore ti da?

Una cosa ke sembra scorretta č che manca la inizializzazione della variabile i nella procedura shortmerge......
Torna all'inizio della Pagina

Cathāll
Utente di ALTO livello - Moderatore Fantacalcio

Ruota


Regione: Puglia
Cittā: Corato


Inserito il - 10/01/2005 : 19:57:01  Mostra Profilo  Visita l'Homepage di Cathāll  Clicca per vedere l'indirizzo MSN di Cathāll  Invia a Cathāll un messaggio Yahoo! Invia a Cathāll un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da tremenda
Grazie a ki mi aiuterā prima di mercoledė!



Sarā che sotto-ASD ho proprio una repulsione per tutto ciō che č sotto forma di Codice, ma francamente senza indentazione si capisce proprio poco.

Cataldo - http://cathall.blogspot.com - http://www.flickr.com/photos/cataldo-it/



Torna all'inizio della Pagina

paioner
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 10/01/2005 : 23:28:50  Mostra Profilo  Visita l'Homepage di paioner Invia a paioner un Messaggio Privato  Rispondi Quotando
Ti consiglio di commentare sampre il codice . . .
Io ho fatto Programmazione da tempo
quindi non ricordo perfettamente l'algoritmo.

Almeno scrivi cosa dovrebbero fare le diverse procedure
e cosa sono i vari parametri in input . . .
in modo che anche altri possano aiutarti,
e non solo quelli che sanno a cosa ti riferisci.

Suppongo che la funzione principale sia
procedure merge(var a,b:vet; var c:vet2; m,n:integer);

Inoltre che tipo di errore hai?
E' in fase di compilazione? Esecuzione?
Oppure il programma fa una cosa sbagliata?

Non č che il programma vuole in input due vettori ordinati
e tu dai un input sbagliato?
E' la prima cosa che mi č venuta in mente e che posso dirti
con i "dati" a disposizione.

Inoltre, postando ankio una porzione di codice identata con spazi
ho notato che gli spazi iniziali sono automaticamente ignorati.
per migliorare la leggibilitā, riporto di seguito lo stesso codice
identato con " - " in modo che anche gli altri non si scoraggino
e cerchino di darti una soluzione (sempre che tu non l'abbia giā trovata)
Se darai ulteriori informazioni sarō lieto di aiutarti.

procedure copy(var b:vet; var c:vet2; j,n:integer; var k:integer);
var i:integer;
begin
-- for i:=j to n do
-- -- begin
-- -- c[k]:=b[i];
-- -- k:=k+1;
-- -- end;
end;

procedure shortmerge(var a,b:vet; var c:vet2; m:integer; var j,k:integer);
var i:integer;
begin
-- while i<=m do
-- -- begin
-- -- if a[i]<=b[j] then
-- -- -- begin
-- -- -- c[k]:=a[i];
-- -- -- i:=i+1;
-- -- -- end
-- -- else
-- -- -- begin
-- -- -- c[k]:=b[j];
-- -- -- j:=j+1;
-- -- -- end;
-- -- k:=k+1;
-- -- end;
end;

procedure mergecopy(var a,b:vet; var c:vet2; m,n:integer);
var i,j,k:integer;
begin
-- i:=1;
-- j:=1;
-- k:=1;
-- if a[m]<=b[i] then
-- -- begin
-- -- copy(a,c,i,m,k);
-- -- copy(b,c,j,n,k);
-- -- end
-- else
-- -- begin
-- -- shortmerge(a,b,c,m,j,k);
-- -- copy(b,c,j,n,k);
-- -- end;
end;

procedure merge(var a,b:vet; var c:vet2; m,n:integer);
begin
-- if a[m]<=b[n] then mergecopy(a,b,c,m,n)
-- else mergecopy(b,a,c,n,m);
end;
Torna all'inizio della Pagina

paioner
Nuovo Utente



Regione: Puglia
Prov.: Bari


Inserito il - 10/01/2005 : 23:32:38  Mostra Profilo  Visita l'Homepage di paioner Invia a paioner un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da fabbattista

Ma ke errore ti da?

Una cosa ke sembra scorretta č che manca la inizializzazione della variabile i nella procedura shortmerge......



Potrebbe essere un motivo,
manca anche nella procedure copy. . .

Non so che ambiente di sviluppo utilizzi, ma sono molto utili tool di debug per scovare errori di funzionamento
Torna all'inizio della Pagina

tremenda
Utente assiduo

tweety


Regione: Puglia
Prov.: Ba
Cittā: Bari


Inserito il - 11/01/2005 : 09:41:51  Mostra Profilo  Visita l'Homepage di tremenda  Clicca per vedere l'indirizzo MSN di tremenda Invia a tremenda un Messaggio Privato  Rispondi Quotando
Il mio algoritmo č indentato solo ke copiandolo si sono annullati gli spazi!
L'errore č in esecuzione cioč quando fonde nel nuovo vettore copia gli elementi del primo e dopo mette 0 a tutti quelli del secondo!

"And I feel that love is dead I'm loving angels instead..."
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,4 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000