esercitazioni con turbopascal v.(3), 5-7
file.pas richiamati con turbo pascal v.5
si forniscono alcune immagini e listato.pas:
possibile copiarlo,incollarlo su notes ,
salvarlo come file.pas, richiamarlo con
turbo pascal v.5 o 7 presente su PC
(dovrebbe funzionare, anche se datato ..1990..2000)
gestione vettori, inserimento, ordinamento, selezione
http://informascienze.altervista.org/algebraturbo/algebraturbo.htm
http://informascienze.altervista.org/algebraturbo/xvetto2.htm
program vetto2; (* variante di vetto1 in SCRIVI *)
(* carica due vettori di interi *)
(* crea un unico vettore con i precedenti *)
(* ordina vettore risultante *)
(* crea vettore senza duplicati *)
(* stampa vettore ordinato *)
uses crt;
const max=100;
type
v=record
va:array[1..max] of integer;
dim:integer;
end;
var a,b,c:v;i,j:integer;
procedure leggi(var x:v);
begin
write('dimensione del vettore < di ',max ,' = ');readln(x.dim);
for i:=1 to x.dim do
begin
write('scrivi valore ',i:2,'-->');readln(x.va[i]);
end;
end;
procedure scrivi(x:v);
begin
for i:=1 to x.dim do
write(x.va[i]:6);
end;
procedure ordina(var x:v);
procedure scambio(var xx,yy:integer);
var a:integer;
begin
a:=xx;
xx:=yy;
yy:=a;
end;
begin
for i:=x.dim downto 2 do
for j:=2 to i do
if (x.va[j-1]>x.va[j]) then
scambio(x.va[j-1],x.va[j])
end;
procedure merge(x,y:v;var z:v);
var ix,iy:integer;
procedure aggiungi(val:integer;var xx:v);
begin
if (xx.dim<max) then
begin
xx.dim:=xx.dim+1;
xx.va[xx.dim]:=val;
end;
end;
procedure aggiungie(xx:v;var index:integer;var yy:v);
begin
aggiungi(xx.va[index],yy);
index:=index+1;
end;
begin
z.dim:=0;
ix:=1;
iy:=1;
while(ix<=x.dim) and (iy<=y.dim) do
begin
if(x.va[ix]<=y.va[iy]) then
aggiungie(x,ix,z)
else
aggiungie(y,iy,z)
end;
while (ix<=x.dim) do
aggiungie(x,ix,z);
while (iy<=y.dim) do
aggiungie(y,iy,z)
end;
procedure unifica(var x:v);
var i,j:integer;
begin
i:=2;j:=1;
while (i<=x.dim) do
begin
if (x.va[i]<>x.va[j]) then
begin
j:=j+1;
x.va[j]:=x.va[i]
end;
i:=i+1;
end;
x.dim:=j;
end;
begin
clrscr;
writeln('carica elementi primo vettore');
leggi(a);
writeln('carica elementi secondo vettore');
leggi(b);
writeln('ordina elementi primo vettore e stampa');
ordina(a);scrivi(a);READLN;
writeln('ordina elementi secondo vettore e stampa');
ordina(b);scrivi(b);READLN;
writeln('crea vettore unico con due vettori');
merge(a,b,c);scrivi(c);readln;
writeln('elimina duplicati e crea vettore risultante');
unifica(c);
writeln('vettore risultante,ordinato,senza duplicati:');
scrivi(c);
readln;
end.
Inviato da: fumarinox
il 01/03/2023 alle 20:47
Inviato da: marabertow
il 24/02/2023 alle 20:59
Inviato da: cassetta2
il 20/12/2020 alle 16:11
Inviato da: cassetta2
il 12/10/2020 alle 10:01
Inviato da: cassetta2
il 05/08/2019 alle 20:30