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
 Fusione 2 vettori

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Dieguz_82 Inserito il - 07/01/2005 : 20:30:12
Sto avendo un problemuccio su sto programma pascal...
Praticamente è un programma che acquisisce 2 array in entrata e ne da un altro in uscita con la fusione dei due.
mi da un errore sulle costanti parametrizzate, ma non so come risolvere.
Il professore ha detto che vuole parametrizzato tutto (tranne gli indici degli array).

Il listato:

Program Fusione_array(input,output); (*Programma che acquisisce 2 vettori di diversa lunghezza
e li fonde in un altro*)
const
x=3;
y=4;
type
T1_vettore = array [1..x] of integer;
T2_vettore = array [1..y] of integer;
T12_vettore = array [1..x+y] of integer;

var
a:T1_vettore;
b:T2_vettore;
c:T12_vettore;
i,primo,k,j,mezzo,h,ultimo,z,i1,i2,p,q:integer;

procedure inserimento(var m,n:integer; var vettore1:T1_vettore; var vettore2:T2_vettore);
var i:integer;
begin
   for i:=1 to m do
      begin
      writeln('Inserire l''',i,'-mo elemento del primo vettore');

      readln(vettore1[i]);
      end;
   for i:=1 to n do
      begin
      writeln('Inserire l''',i,'-mo elemento del secondo vettore');

      readln(vettore2[i]);
   end
end;

//fin qui ok secondo me...

{procedure fusione(m,n:integer; vettore1:T1_vettore; vettore2:T2_vettore; vettore3:T12_vettore);
begin
primo:=1;
i:= primo;
k := primo;
j:= primo;
z:=8;
while

     (i <= m) and (j <= n) do
       begin
         if vettore1[i] < vettore2[j]
         then
            begin
               vettore3[k] := vettore1[i];
               i := i + 1;
               i1:=i;
            end
         else
            begin
                 vettore3[k] := vettore2[j];
                 j := j + 1;
                 i2:=j;

            end;
                 k := k + 1;
      end;
      if i <= m
       then
        begin
        q := z- k;
        for h := q downto 0 do
        vettore3[k+h] := vettore1[i+h]
        end
         else

          if j<=n then
           begin
           p := z- k;
           for h := p downto 0 do
           vettore3[k+h] := vettore2[j+h]
           end;
           for k:=1 to (n+m) do
           begin
             write(' ',vettore3[k]);
           end;
end; }


Begin
inserimento(x,y,a,b);
//fusione(x,y,a,b,c);
readln;
End.



Grazie mille
5   U L T I M E    R I S P O S T E    (in alto le più recenti)
tremenda Inserito il - 09/01/2005 : 12:10:07
Citazione:
Messaggio inserito da Dirak

3 ma i fatti tuoi mai?



L'ho chiesto xkè a noi l'algoritmo x la fusione è completamente diverso!
Dieguz_82 Inserito il - 08/01/2005 : 17:58:19
Sisi ci sono arrivato dopo! Volevo cambiare il valore di costanti! Che scemo!

Grazie a *
adler Inserito il - 08/01/2005 : 15:32:55
Se x e y sono costanti, i parametri formali m e n non possono realizzare un passaggio per riferimento; inoltre non ce ne sarebbe neanche il motivo, poichè la procedura inserimento da te realizzata non modificherebbe x e y anche se queste fossero variabili. Diventa, quindi:

procedure inserimento(m,n:integer; var vettore1:T1_vettore; var vettore2:T2_vettore);

A dire il vero, io farei una procedura di inserimento che realizza l'input di un solo vettore, richiamata due volte dal main.

Inoltre, ti ricordo che prima di fare la fusione di due vettori, questi devono essere ordinati!
Dovresti, quindi, realizzare una procedura di ordinamento per un vettore, richiamata dal main 2 volte, una per ciascun vettore.

Il main dovrebbe pressappoco essere così:

Begin
inserimento(x,a);
inserimento(y,b);
ordina(x,a);
ordina(y,b);
fusione(x,y,a,b,c);
readln;
End.
Dirak Inserito il - 08/01/2005 : 14:54:19
3 ma i fatti tuoi mai?
tremenda Inserito il - 08/01/2005 : 12:15:53
Che corso 6?

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,06 secondi.

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