Vectores con Pascal

DJGonzo

Tengo un problema con una practica de clase sobre vectores con Pascal, tengo que hacer un programa que me pida introducir los datos en un vector, me lo muestre en pantalla, y luego me permita quitar un numero de los almacenados, hecho esto luego me pide agregar otro y la posicion en la que va, esta es la parte que no he conseguido... no se que habre hecho mal pero no me sale, os pongo el codigo de lo que he hecho para ver si alguien que sepa me puede ayudar.

Muchas gracias por adelantado

program vectores;
uses wincrt;
Const
N= 10;
Type
tipo_datos= integer;
dimension1= 1..N;
tipo_vector= array [dimension1] of tipo_datos;
Var
V:tipo_vector;
pos,fin_datos:dimension1;

procedure leer_vector (var V:tipo_vector);
Var i:dimension1;
begin
for i:=1 to N do
begin
Writeln ('Escribir el dato de la posición ',i,' del vector');
readln (V);
end
end;

procedure escribir_vector (V:tipo_vector);
Var i:dimension1;
begin
for i:=1 to N do
begin
Write (V,' ');
end
end;

procedure eliminar_dato (var V:tipo_vector; pos:dimension1; var Fin_datos:dimension1);
var i:dimension1;
begin
i:=pos;
Fin_datos:=N;
while i<Fin_datos do
begin
v:=v[i+1];
i:=i+1;
end;
fin_datos:=fin_datos-1;
for i:=1 to Fin_datos do
write (V,' ');
end;

procedure insertar_dato (var V:tipo_vector; pos:dimension1; var Fin_datos:dimension1);
var i,a:dimension1;
valor:integer;
begin
Writeln ('¿Que valor desea añadir?');
readln (valor);
i:=pos;
Fin_datos:=N;
for i:=fin_datos downto pos do
begin
v[i+1]:=v;
end;
v[pos]:=valor;
fin_datos:=fin_datos+1;
for i:=1 to Fin_datos do
write (V,' ');
end;

begin {Programa principal}
leer_vector (V);
escribir_vector (V);
writeln('¿Qué valor desea eliminar?');
readln (pos);
eliminar_dato (V,pos,Fin_datos);
Writeln ('¿En que posición desea añadir el valor?');
readln (pos);
insertar_dato (V,pos,fin_datos);
end.

Usuarios habituales

  • DJGonzo