• Jueves 28 de Marzo de 2024, 23:10

Autor Tema:  Consulta de archivo (ordenacion)  (Leído 997 veces)

Nightwalker

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Consulta de archivo (ordenacion)
« en: Jueves 12 de Marzo de 2009, 19:50 »
0
tengo este code ...
Código: Pascal
  1. program admin;
  2.  
  3. uses
  4. crt;
  5. //Declaramos las variables que usamos
  6. const
  7. archext = 'archivo.dat';
  8. contador = 0;
  9. //declaro estructura
  10. type
  11.  
  12.  
  13.         datos=record
  14.                 nombre:string[30];
  15.                 apellido:string[30];
  16.                 dni:string[10];
  17.                 telefono:string[20];
  18.                 direccion:string[30];
  19.                 n_carpa:integer;
  20.  
  21.         end;
  22.         // arreglo de datos para ordenar
  23. ARdatos = array[0..100] of datos;
  24.  
  25. //declaro que agenda es igual a el tipo de estructura
  26. agenda = file of datos;
  27. var
  28.  
  29. op:char;  //operacion a realizar
  30. arch:agenda; //nombre interno de archivo
  31.  
  32. procedure crear_arch(var info:datos);   //procedimiento crea archivo
  33. begin
  34.     Assign(arch, archext);    //asigno el archivo interno a el declarado en la constante al principio
  35. end;
  36.  
  37.  
  38. procedure a_cliente(); //procedimiento para agregar cliente
  39.         var                    //variables de el procedimiento
  40.      info:datos;
  41.     begin
  42.         reset(arch);
  43.          writeln('Ingrese Nombre');  //ingresamos los datos
  44.          readln(info.nombre);
  45.          writeln('Ingrese Apellido');
  46.          readln(info.apellido);
  47.          writeln('Ingrese Dni');
  48.          readln(info.dni);
  49.          writeln('Ingrese Telefono');
  50.          readln(info.telefono);
  51.          writeln('Ingrese Direccion');
  52.          readln(info.direccion);
  53.          writeln('Ingrese Numero De Carpa');
  54.          readln(info.n_carpa);
  55.          write(arch, info);
  56.          close(arch);
  57.  
  58. end;
  59.  
  60.  
  61. procedure m_cliente();
  62.        begin
  63.                        // COMO MODIFICO DATOS DE LOS CLIENTES
  64.        end;
  65.  
  66.  
  67. procedure menu;   //Formamos el menu
  68.    begin
  69.    writeln('Menu');
  70.     writeln('1.Agregar Cliente');
  71.     writeln('2.Modificar Cliente');
  72.     writeln('3.Borrar Cliente');
  73.     writeln('4.Opcion de Respaldo de Datos');
  74.     writeln('5.Finalizar Aplicacion');
  75.      end;
  76. procedure decision; //depende de el numero la accion que eligen del menu
  77.     begin
  78.         readln(op);
  79.  
  80.         case op  of
  81.            '1' : a_cliente; // Agrego Cliente
  82. //           '2' : m_cliente; // Modifico Cliente
  83. //           '3' :b_cliente; // Borro cliente
  84. //           '4' : respaldo; // Realizamos backup
  85. //           '5' : cerrar;  // Guarda y cierra
  86.         end;
  87.     end;
  88.  
  89.  
  90.     procedure listar(var info:datos); // este compila bien pero si lo llamo en el programa principal me da error :S
  91.         begin
  92.                 while not eof do
  93.                         write('El listado de Nombres completo es:',info.nombre);
  94.                 end;
  95.  
  96.  
  97.  
  98. Begin // Programa Principal
  99.         menu;
  100.  
  101.  
  102.  
  103.  
  104.  
  105. End.
  106.  
  107.  
la cuestion es como completo el procedimiento de ordenacion que me hice un lio BARBARO! y por que me da error cuando llamo a listar ?¿?¿?¿ si me pueden dar una mano se los agradeceria :D

tengo esto ahora pero no anda
Código: Pascal
  1. procedure ordeno(var ARdatosarray:datos);
  2.           var ordenado:boolean;aux,i:integer;j:integer;
  3.     begin
  4.          ordenado:=false;
  5.          while not ordenado=true do
  6. // Vamos a recorrer todo el vector parándonos en cada posición, salvo en la última porque ya está ordenada sí o sí tras la primera pasada.
  7.              for i:= 1 to 100-1 do
  8. // y por cada parada, se recorre el vector hasta el final, haciendo las comparaciones.
  9.         for j:=i to 100 do
  10.  
  11. // Veo si la posición siguiente del vector es mayor a la actual
  12.  
  13.               if (ARdatos[j] < ARdatos[j+1]) then
  14.  
  15.  
  16.                aux:=ARdatos[j]; // guardo temporalmente la posición actual en auxiliar,
  17.  
  18.                ARdatos[j]:=ARdatos[j+1];//la posición actual pasa a valer lo mismo que la posición siguiente,
  19.  
  20.            ARdatos[j+1]:=aux; // la posición siguiente pasa a valerlo que valía la posición actual (aux).
  21.  
  22.  
« última modificación: Viernes 13 de Marzo de 2009, 10:18 por Nightwalker »

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Consulta de archivo (ordenacion)
« Respuesta #1 en: Viernes 13 de Marzo de 2009, 10:15 »
0
Hola Nightwalker

Primero, utiliza las etiquetas de código y no las de cita.

Segundo, como consejo, es un poco absurdo llamarle a un tipo de datos datos. Ya sabemos que son datos. Ponle un nombre más lógico, como tCliente, por ejemplo. Lo agradecerás más tarde cuando tengas miles de tipos de datos (o variables) en un mismo programa.