• Viernes 29 de Marzo de 2024, 12:29

Autor Tema:  Intercalar vectores  (Leído 3850 veces)

infolab

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Intercalar vectores
« en: Domingo 19 de Septiembre de 2004, 18:17 »
0
tengo el siguiente ejercicio:
Cargar un vector A de tamaño n,Luego hay que pasar los datos mayores a 10 a un vector b.
y los datos menores de 10 del vector A hay que pasarlos al vector c.

tengo casi listo el codigo, pero el problema me lo arroja cuando muestra los datos del vector c,es decir, me muestra los datos menores pero ademas me entrega ceros en los datos que no encuentra y entrega todos los valores juntos.
aqui va el codigo: Gracias

program numero_tres_guia_vectores;

uses
wincrt;

type
v= array [1..50] of integer;

var
a,b,c:v;
i,n:integer;


procedure carga_vector;

begin
write('INGRESE EL TAMAÑO DEL VECTOR:');
readln(n);

for i:=1 to n do
begin
write('INGRESE EL VALOR a[',i,']:');
readln(a);
end;
end;



procedure pasar_a_b;

begin

for i:=1 to n do

begin

if a>10 then
b:=a;
end;

for i:=1 to n do

if b>10 then

write(b:5);
end;


procedure pasar_a_c;

begin

for i:=1 to n do

begin

if a<=10 then
c:=a;
end;

for i:=1 to n do

if c<=10 then

write(c:5);
end;



begin

carga_vector;
pasar_a_b;
pasar_a_c;
end

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Intercalar vectores
« Respuesta #1 en: Lunes 20 de Septiembre de 2004, 02:26 »
0
No tuve tiempro de mirar tu codig pero por lo que cuentas seguramente tendras un solo estructura for para pasar los datos.
tiene que ser algo así:

Ten en cuenta que esto codigo no  es ejecutable sino más bien un ejemplo:
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
{Este programa no es ejecutable}
const
    n=100;

var
     a,b,c : array [1..n] of integer;
      i,j,k : integer;
      
      {i: se usa para el vector principal,
       j: para el segundo vector de numeros mayores a 10
       k: para el tercer vector de numeros menores a 10}

begin
   j:=0;
   k:=0;
   for i:=1 to n do
        begin
              if a[i] > 10 then
              begin
                  j := j + 1;
                  b[j] := a[i];  {se usa b[j] porque si usas b[i] te deja espacios vacios}
              end;
          if a[i] < 10 then
              begin
                  k := k + 1;
                  c[k] :=  a[i];
              end;
        end;
end.
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Espero que te sirva :lightsabre:

Por sierto, tu codigo que da más legible si lo pegas entre los tags de "codigo".
Es el que esta arriba cuando escribes tu mensaje.