Ir al contenido



Foto

Consulta sobre invocacion de pascal

pascal procesos listas

  • Por favor identifícate para responder
2 respuestas en este tema

#1 ezequiel

ezequiel

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 11 junio 2017 - 12:14

Buenos dias  Estoy en Primer año de Licenciaturas en sistemas y tengo un ejercicio el cual nose resolver por falta de conocimiento o capas no le pillo el truco 
procedo a mostrar el codigo (lo escribo capas este desordenado pero es para q entiendan)
 
 


delphi
  1. Program Ejercicio;
  2. TYPE
  3. Rango 1..20;
  4. Siembra=record
  5. Meses: integer;
  6. Tipo     : string;
  7. Hectareas :integer;
  8. end;
  9.  
  10.  
  11. Vector=Array [rango]  of  siembra
  12.  
  13.  
  14. Empresa=record
  15. nombre :string;
  16. tipo : vector;
  17. ciudad : string;
  18. end;
  19.  
  20.  
  21. Lista=^.nodo
  22. nodo=array
  23. Datos:vector;
  24. sig : lista;

 

 
{en los procesos tengo la gran duda }
 
si yo quiero invocar  de la lista al vector como seria ?
ejemplo quiero asignarle  a hectareas un valor .. yo pensaba en l^datos.vector.hectareas := 4


  • 0

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 11 junio 2017 - 03:40

Hola y bienvenido ezequiel

 

Primero que nada recuerda que utilizamos etiquetas (tags) cuando escribimos codigo fuente (te he editado el mensaje para que quede bien, simplemente tenlo presente para la proxima)

 

Con respecto a tu consulta, revisa la sintaxis de tu programa porque hay varios errores en la declaracion de tipos; no es posible compilarlo. Luego no entendi exactamente cual es tu duda:

 


si yo quiero invocar  de la lista al vector como seria ?

 

 

A que te refieres con esto?


  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.262 mensajes
  • LocationArgentina

Escrito 12 junio 2017 - 01:55

Hola Ezequiel,

Estoy intentando entender tu muestra de código. Lo único que estoy apreciando son unas definiciones de tipos. En tu caso me queda bien en claro que estás definiendo dos registros: siembra y empresa. El 2do (Empresa) a su vez define un vector de tamaño fijo (20 elementos) del 1er tipo (Siembra). Hasta allí entiendo bien.

 

Para usar estos dos un ejemplo sería algo así:


delphi
  1. // defino una variable de tipo Empresa. Aunque sugiero anteponer el prefijo T a los tipos.
  2. var MiEmpresa: Empresa;
  3. // código de ejemplo de uso:
  4. begin
  5. MiEmpresa.Nombre := 'Fulanito Corrupto S.A';
  6. MiEmpresa.ciudad := 'Ciudad Donde lavo plata';
  7. // Aquí como se usa el vector de siembra
  8. MiEmpresa.vector[1].Siembra := 'Lechuga';
  9. MiEmpresa.vector[1].Meses := 6; // El ciclo de la lechuga puede hacerse anual
  10. MiEmpresa.vector[1].Tipo := 'Hortaliza'; //¿A esto se refiere por tipo?
  11. MiEmpresa.vector[1].Hectareas := 4;
  12. end;

Ahora, lo que sigue no está del todo claro, ¿Que es lo que pretendes? Ahí falta mucho más. Pareciera que pretendes definir una lista dinámica. Si es el caso lo estás haciendo mal. Así se define una lista enlazada por medio de punteros:


delphi
  1. PNodo = ^TNodo; // El prefijo "P" se suele usar para indicar que es un puntero
  2. // El prefijo "T" para indicar que es un tipo.
  3.  
  4. TNodo = record
  5. Item: TItem; // Aquí el tipo del item a colocar
  6. Sig: PNodo;
  7. Ant: PNodo; // Sólo si va a ser lista doble enlazada
  8. end;

Vas a tener que comentarnos bien el problema y mostrarnos el código tal como lo tienes. De otra forma no sabremos decirte que está bien, que está mal, que podría mejorarse, etc. No está demás decir que si el compilador te da errores que nos los digas cuáles, y nos muestre las líneas de código en donde aparecen.

 

Saludos,


  • 0





Etiquetado también con una o más de estas palabras: pascal, procesos, listas