Autor Tema: Algoritmo no entender

0 Usuarios y 1 Visitante están viendo este tema.

21 Mayo, 2009, 05:03 pm
Leído 2874 veces

Dogod

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,679
  • Karma: +0/-0
  • Sexo: Masculino
algoritmo altas_dir_trcl
const
findatos = <valor1>
max       = <valor>2
tipo
registro: datos_personales
<tipo_dato1>: cod
<tipo_dato2>: nombre_campon
..................:...................
fin registro
archivo_d de datos_personales:arch
var
arch                  : f
datos_personales : persona, personaaux
lógico: econtradohueco
entero: posi

inicio
abrir (f, l/e, <nombre-en_disco>)
leer (personaaux.cod)
posi <<HASH(personaaux.cod)

leer (f, posi, persona)

si persona.ocupado = '*' entonces
encontradohueco << falso
posi <<findatos

mientras posi <Max y no encontradohueco hacer

posi << posi + 1
leer (f, posi, persona)
si persona.ocupado <> '*' entonces
encontradohueco <<verdad
fin_si
fin-mientras
si_no

si encontradohueco entonces

leer_otros_campos (personaaux)

persona<< personaaux

persona.ocupado <<'*'

escribir (f, posi, persona)

si_no

escribir ('no está')

fin_si

fin

HE AQUÍ LO QUE NO ENTIENDO:

inicio
abrir (f, l/e, <nombre-en_disco>)
leer (personaaux.cod)
posi <<HASH(personaaux.cod)

leer (f, posi, persona)
 se supone que el algoritmo empieza la lecura por el campo ocupado?
y esto. leer (f, posi, persona) a que se debe?

esto: leer_otros_campos (personaaux), a fin de cuentas, qué archivo o registro se está leyendo, el original persona, o persona aux'

Las cosas pasan es por algo, y no hay mal que por bien no venga dicen en mi tierra...

25 Mayo, 2009, 10:45 pm
Respuesta #1

Watt

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 328
  • Karma: +0/-0
  • Sexo: Masculino
  • Dos numeros manejan el mundo?
Podrías explicar un poco la notación para entendernos mejor ?

26 Mayo, 2009, 04:01 pm
Respuesta #2

Dogod

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,679
  • Karma: +0/-0
  • Sexo: Masculino
Hola, sería el *, significa ocupado,

lo demas ni yo lo entiendo, así esta en el libro, pero me puedes dar un contraejemplo, es de actualización de ficheros, preferiblemente en visual basic si quieres

un saludo
Las cosas pasan es por algo, y no hay mal que por bien no venga dicen en mi tierra...

28 Mayo, 2009, 02:03 am
Respuesta #3

topo23

  • $$\Large \color{#c88359}\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 937
  • Karma: +0/-0
Si lo sacaste de un libro podrias indicar cual libro, autor, y el tema al que hace referencia el ejercicio

HE AQUÍ LO QUE NO ENTIENDO:

inicio
abrir (f, l/e, <nombre-en_disco>)
leer (personaaux.cod)
posi <<HASH(personaaux.cod)

Realmente no tengo idea de la nomenclatura/lenguaje utilizando el autor del libro, lo que sigue es solo aplicar un poco de sentido comun

Citar
abrir (f, l/e, <nombre-en_disco>)

Esta abriendo un archivo/disco en modo de lectura/escritura y se lo asigna a la variable f.

Citar
leer (personaaux.cod)

Solicita se ingrese por teclado un codigo de persona.

Citar
posi <<HASH(personaaux.cod)

Calcula la posicion a la cual pertenece el codigo ingresado (supongo que HASH es una funcion y que << es el operador asignacion).


--

El resto del codigo no esta indentado lo que hace dificil seguir la logica.

La idea es mas o menos:

* Leer desde el archivo f los datos almacenados en la posicion posi y guardarlos en persona.
* Comprobar si persona esta ocupado
* Si esta ocupado buscar una posicion que no este ocupada y que este despues de posi
* Si se encontro una posicion vacia solicitar mas datos y guardarlos en la posicion encontrada

.

28 Mayo, 2009, 02:23 am
Respuesta #4

Watt

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 328
  • Karma: +0/-0
  • Sexo: Masculino
  • Dos numeros manejan el mundo?
"leer (personaaux.cod)" Me da la impresion que esta funcion lo que hace es leer en un archivo de texto un campo identificado por separadores, yo personalmente uso el ";" , por lo tanto creo que lee el codigo de persona o id del archivo. La verdad si podes especificar lo que te pidio el topo seria mucho mas facil ayudarte.

28 Mayo, 2009, 06:50 pm
Respuesta #5

Dogod

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,679
  • Karma: +0/-0
  • Sexo: Masculino
Muchachos, muchas gracias por su ayuda... bueno con esas explicaciones he entendido m´as que todo esto:

leer (personaaux.cod)

Solicita se ingrese por teclado un codigo de persona.


Lo pimero que cita topo ya lo sabía, pero enr ealidad para el resto me quedo lo mismo que ustedes, sólo les puedo decir el el libro es Fundamentos de programaciónde Luis Joyanes Aguilar de la sección archivos (ficheros) ojala lo tengan y me ayuden,


un saludo...
Las cosas pasan es por algo, y no hay mal que por bien no venga dicen en mi tierra...

28 Mayo, 2009, 07:32 pm
Respuesta #6

Dogod

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,679
  • Karma: +0/-0
  • Sexo: Masculino


Calcula la posicion a la cual pertenece el codigo ingresado (supongo que HASH es una funcion y que << es el operador asignacion).




asi es

ademas aui:

registro: datos_personales
<tipo_dato1>: cod
<tipo_dato2>: nombre_campon
porque el primer campo es cod?
Las cosas pasan es por algo, y no hay mal que por bien no venga dicen en mi tierra...