Estructura de datos

Arrays

  • Enviado por: Eduardo Donderis
  • Idioma: castellano
  • País: España España
  • 3 páginas

publicidad
publicidad

P12.5.- En un vector TERMINOS se almacenan N términos y en otro vector DEFINICIONES se almacenan las definiciones de esos N términos. Escribir un programa que cargue en la tabla TERMINOLOGÏA de N x 2 elementos, el vector TERMINOS que ocupará la primera columna y el vector DEFINICIONES que ocupará la segunda columna de manera que cada término coincidan en la misma fila de la tabla con su definición, resultando la tabla ordenada alfabéticamente de menor a mayor con los contenidos del vector TERMINOS.

program terminos125;

uses crt;

const

n=5;

type

tarray=array [1..n] of string;

ttabla=array [1..n,1..2] of string;

var

termi:tarray;

defin:tarray;

tabla:ttabla;

{este procedimiento lee los terminos y sus definiciones}

procedure leerdefiniciones (var t,d:tarray);

var

i:integer;

ch:char;

begin

i:=0;

repeat

clrscr;

i:=i+1;

write ('Introduzca el termino: '); readln (t[i]);

write ('Introduzca la definici¢n: '); readln (d[i]);

write ('¨Mas definiciones (S/N)?');

ch:=upcase (readkey);

until (ch='N') or (i=n)

end;

{********************************************************}

{este procedimiento pasa los valores de los vectores a la tabla}

procedure transpasartabla (t,d:tarray; var t1:ttabla);

var

i:integer;

begin

for i:=1 to n do

begin

t1[i,1]:=t[i];

t1[i,2]:=d[i]

end

end;

{********************************************************}

{este procedimiento ordena la tabla alfab ticamente de menor a mayor}

procedure ordenartabla ( var t:ttabla);

var

i,j:integer;

enco:boolean;

aux,aux1:string;

begin

for i:=2 to n do

begin

aux:=t[i,1];

aux1:=t[i,2];

enco:=false;

j:=i-1;

while (enco=false) and (j>0) do

begin

if (t[j,1]>aux) then

begin

t[j+1,1]:=t[j,1];

t[j+1,2]:=t[j,2];

j:=j-1

end

else

enco:=true

end;

t[j+1,1]:=aux;

t[j+1,2]:=aux1

end

end;

(************************************)

{Este procedimiento visualiza la tabla}

procedure visualizar ( t:ttabla);

var

i,j:integer;

begin

clrscr;

for i:=1 to n do

begin

write (t[i,1],' ',t[i,2])

end;

readkey

end;

{**************************************}

{PROGRAMA PRINCIPAL}

begin

clrscr;

leerdefiniciones (termi,defin);

transpasartabla (termi,defin,tabla);

ordenartabla (tabla);

visualizar (tabla)

end.