Guest User

Untitled

a guest
Dec 14th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.87 KB | None | 0 0
  1. Program ListaSE;
  2. Uses Crt;
  3. Type
  4. TPuntero=^TElem;
  5. TElem= Record
  6. info:Integer;
  7. next:TPuntero;
  8. end;
  9. Var
  10. ultimo:Integer;
  11. cab:TPuntero;
  12. {******************************************************************************}
  13. Procedure Inicializar(Var lista:TPuntero);
  14. Begin
  15. New(lista);
  16. ((lista^).next):=nil;
  17. ultimo:=0
  18. end;
  19. {******************************************************************************}
  20. Procedure CargaOrdenada(Var lista:TPuntero;Var ultimo:Integer);
  21. Var
  22. ant,sgte,aux:TPuntero;
  23. res:Char;
  24. control:Integer;
  25. Begin
  26. Writeln('Desea Ingresar un numero? s/n' );
  27. Readln(res);
  28. New(aux);
  29. While Res='s' Do
  30. Begin
  31. Writeln('Ingrese el numero');
  32. Readln((aux^).info);{Obtengo el numero a insertar por teclado}
  33. If (lista^).next= nil {Tratamiento por sec vacia}
  34. Then
  35. Begin{Insercion a la Cabeza}
  36. (lista^).next:=aux;
  37. (aux^).next:= nil;
  38. ultimo:=ultimo+1;
  39. end
  40. Else{Si tiene al menos un elemento}
  41. Begin
  42. ant:=lista; {Inicializacion de la adquisicion}
  43. sgte:=(lista^).next;
  44. control:=1;
  45. If ((sgte^).info)>=((aux^).info)
  46. Then {Tratamiento diferenciado del primer elem.En caso de que el primero sea mayor que el dato a ingresar}
  47. Begin
  48. (ant^).next:=aux;
  49. (aux^).next:=sgte;
  50. end
  51. Else
  52. Repeat
  53. ant:=(ant^).next;
  54. sgte:=(sgte^).next;
  55. control:=(control+1);
  56. Until (control=ultimo) or (((sgte^).info)>=((aux^).info));
  57. If ((sgte^).info)>=((aux^).info)
  58. Then
  59. Begin
  60. (aux^).next:=sgte;
  61. (ant^).next:=aux;
  62. end
  63. Else
  64. Begin
  65. (sgte^).next:=aux;
  66. (aux^).next:=nil;
  67. end;
  68. end;
  69. ultimo:=ultimo+1;
  70. Writeln('Desea ingresar otro numero? s/n');
  71. Readln(res);
  72. end;
  73. end;
  74. {******************************************************************************}
  75. Procedure Muestra(var lista:TPuntero;ultimo:Integer);
  76. Var
  77. a,control:Integer;
  78. aux:TPuntero;
  79. Begin
  80. control:=0;
  81. aux:=lista;
  82. Writeln('Ingrese el numero a partir del cual va a mostrar');
  83. Readln(a);
  84. Repeat
  85. aux:=(aux^).next;
  86. control:=(control+1);
  87. Until (a=(aux^).info) or (control=ultimo);
  88. If (a=(aux^).info)
  89. Then
  90. Begin
  91. Repeat
  92. aux:=(aux^).next;
  93. Writeln((aux^).info);
  94. control:=control +1;
  95. Until (control=ultimo);
  96. end
  97. Else
  98. Writeln('Elemento no hallado')
  99. end;
  100. {******************************************************************************}
  101. Procedure Interfaz();
  102. Var
  103. res:Char;
  104. Begin
  105. Repeat
  106. Clrscr;
  107. Writeln('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@');
  108. Writeln(' MENU PRINCIPAL');
  109. Writeln('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@');
  110. Writeln('');
  111. Writeln('');
  112. Writeln('(i) Cargar Lista.-');
  113. Writeln('(m) Mostrar Lista.-');
  114. Writeln('(s) Salir del Programa.-');
  115. GotoXY(1,10);
  116. res:=Readkey;
  117. Case res of
  118. ('i'):Begin
  119. Clrscr;
  120. CargaOrdenada(cab,ultimo);
  121. Writeln('');
  122. Writeln('Presione una tecla para volver al menu principal.');
  123. Readkey;
  124. end;
  125. ('m'):Begin
  126. Clrscr;
  127. Muestra(cab,ultimo);
  128. Writeln('');
  129. Writeln('');
  130. Writeln('Presione una tecla para volver al menu principal.');
  131. Readkey;
  132. end;
  133. ('s'):Begin
  134. Writeln('');
  135. Writeln('\\\\\\GRACIAS POR UTILIZAR ESTE PROGRAMA//////');
  136. end;
  137. end;
  138. Writeln('');
  139. Until (res='s');
  140. Readkey;
  141. end;
  142. {******************************************************************************}
  143. Begin
  144. Inicializar(cab);
  145. Interfaz();
  146. Readkey;
  147. end.
Add Comment
Please, Sign In to add comment