16/09/2019, 05:19:08 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: ¡Atención! Hay que poner la matemática con LaTeX, y se hace así (clic aquí):
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Algoritmo no entender  (Leído 2059 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Dogod
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 1.678


Ver Perfil
« : 21/05/2009, 12:03:25 pm »

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'

En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 328


Dos numeros manejan el mundo?


Ver Perfil
« Respuesta #1 : 25/05/2009, 05:45:30 pm »

Podrías explicar un poco la notación para entendernos mejor ?
En línea
Dogod
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 1.678


Ver Perfil
« Respuesta #2 : 26/05/2009, 11:01:47 am »

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
En línea

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

Karma: +0/-0
Desconectado Desconectado

Argentina Argentina

Mensajes: 940


Ver Perfil
« Respuesta #3 : 27/05/2009, 09:03:49 pm »

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

Cita
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.

Cita
leer (personaaux.cod)

Solicita se ingrese por teclado un codigo de persona.

Cita
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

En línea

.
Watt
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 328


Dos numeros manejan el mundo?


Ver Perfil
« Respuesta #4 : 27/05/2009, 09:23:50 pm »

"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.
En línea
Dogod
Pleno*
*****

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 1.678


Ver Perfil
« Respuesta #5 : 28/05/2009, 01:50:59 pm »

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...
En línea

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

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 1.678


Ver Perfil
« Respuesta #6 : 28/05/2009, 02:32:19 pm »



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?
En línea

Las cosas pasan es por algo, y no hay mal que por bien no venga dicen en mi tierra...
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!