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