16/12/2012, 17:57
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 121
Antigüedad: 17 años Puntos: 0 | |
Generar array con numeros pares aleatorios sin repeticion pascal Hola, tengo que rellenar un array de forma aleatoria en pascal con los 20 primero numeros pares (2-40) sin que se repitan, pero mi código muestra lo que le da la gana. Os agradecería mucho que me dijerais en que falla. Saludos.
Código:
program vectores;
USES crt;
CONST
Max = 20;
max_filas=40;
TYPE
vector = ARRAY[1..max] of INTEGER;
function par(numero:integer):integer;
begin
randomize;
if numero mod 2 <>0 then
while numero mod 2<>0 do
begin
numero:=random(max_filas)+1;
end;
par:=numero;
end;
function comprobar(posicion,numero:integer;vector_comprobar:vector):integer;
var contador:integer;
begin
randomize;
FOR contador:= 1 TO posicion-1 DO
begin
if (vector_comprobar[contador]=numero) then
numero:=par(numero);
numero:= comprobar(contador,numero,vector_comprobar)
end;
comprobar:=numero;
end;
VAR
v:vector;
i,j,inicializar, num:integer;
BEGIN
randomize;
ClrScr;
i:=1;
while i<=Max DO
BEGIN
num:=random(max_filas)+1;
inicializar:=comprobar(i,num,v);
v[i]:=inicializar;
i:=i+1;
end;
(* visualizo resultado*)
FOR j:= 1 TO i-1 DO
writeln(' el número par es ', v[j],' posicion: ',j);
readln
END.
|