[ Foro de Pascal ]
Buenas de nuevo, a ver si me podeis decir porque falla este codigo
(*Plantee e implemente un programa en PASCAL que construya un array a partir
de números enteros proporcionados por el usuario (máximo 20 elementos) y que
a continuación sustituya los números pares por su cuadrado y elimine los
números impares. Muestre por pantalla tanto el array original como el resultante
de las operaciones indicadas.*)
PROGRAM ejercicio9boletin(input,output);
TYPE tarray=array[1..20 ]of integer;
VAR a:tarray;
c:integer;
(*********************************************************************)
PROCEDURE Insertar (VAR z:tarray; VAR cantidad:integer);
BEGIN { Pedimos 20 datos o hasta introducir el valor 999 }
cantidad := 0;
repeat
if cantidad > 20 then
writeLn('No caben mas datos!')
else
begin
cantidad := cantidad+1;
write('Deme el dato ',cantidad,' (999 para salir): ');
readLn(z[cantidad]);
end;
until z[cantidad]=999;
{ El ultimo dato no hay que guardarlo }
cantidad := cantidad-1;
END;
(******************************************************************)
PROCEDURE EliminarImpares(VAR z:tarray; VAR cantidad:integer);
VAR i:integer;
pos:integer;
FOR i:=1 TO cantidad DO
BEGIN
IF (i mod 2<>0) THEN
pos:=i;
z[i]:=z[i+1];
cantidad:=cantidad-1;
(********************************************************************)
BEGIN
Insertar(a);
END.
Faltaria todavia el mostrar, que se me olvido ahi , pero aparte de que no compila esa parte, como sustituyo los pares de todo el array por el cuadrado? Primero los borro y en esa posicion inserto su cuadrado,o como ?
Otra cosa, la pongo aqui para no abrir otro hilo. Por que esto me da un error que pone "asignmente of ready location"
PROCEDURE Ordenar(protected var z:tarray);
VAR i,j:integer; temporal:integer;
BEGIN
for i := N downto 2 do
for j := 0 to i - 1 do
if z[j] > z[j + 1] then
begin
temporal := z[j];
z[j] := z[j + 1];
z[j + 1] := temporal;
end;
end;
Solucionado.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)