Examen de algoritmos
Enviado por huaracha1 • 26 de Agosto de 2015 • Examen • 4.174 Palabras (17 Páginas) • 523 Visitas
1) Se tiene una tabla muy grande, llamada peru.dbf, con los siguientes campos: cod_alu, ap_pat, ap_mat y nombre, se pide hallar el algoritmo de tal manera que al ingresar el ap_pat, muestre todo el listado de los alumnos que tengan ese apellido, utilizando primero, búsqueda binaria y después búsqueda secuencial, la tabla esta ordenada.
PROGRAMACIÓN PRINCIPAL[pic 1]
1. I=0
2. Dato_ap_pat= space(30)
3. Input”ingresa apellido paterno”; Dato_ap_pat
4. Use peru.dbf
5. Do BINARIA
6. Do SECUENCIAL
7. Close
BINARIA[pic 2]
1. Go Top
2. Inicial= Recno()
3. Go Bottom
4. Final= Recno()
5. Central= ENT ((Inicial+Final)/2)
6. Go Central
7. Dato_Central= ap_pat
8. Do While (Dato_ap_pat<>Dato_Central) and (Inicial
9. If Dato_Central
10. Inicial= Central + 1
11. Else
12. Final= Central – 1
13. Endif
14. Central= ENT ((Inicial+Final)/2)
15. Go Central
16. Dato_Central= ap_pat
17. Endwhile
SECUENCIAL[pic 3]
1. Do while not eof()
2. If Dato_ap_pat= ap_pat
3. Gotoxy(1+I; 1) Print cod_alu
4. Gotoxy(1+I; 10) Print ap_pat
5. Gotoxy(1+I; 20) Print ap_mat
6. Gotoxy(1+I; 30) Print nombre
7. I= I+1
8. Do PASO
9. Else
10. Do PASO
11. Endif
12. Endwhile
PASO
1. If eof()[pic 4]
2. EXIT
3. Else
4. Skip
5. Endif
2) En base al problema Nro. 1 se pide, explicar detalladamente y paso a paso cada una de las sentencias y módulos.
Módulo PROGRAMACION PRINCIPAL
1. Declaración de la variable I=o
2. Declaración de la variable Dato_ap_pat
3. Ingreso de datos, en este caso el apellido
4. Abrimos la tabla peru.dbf
5. Llamamos al módulo BINARIA
6. Llamamos al módulo SECUENCIAL
7. Cerramos la tabla
Modulo BINARIA
1. Nos vamos al inicio de la tabla
2. Identifica la posición en la que se encuentra la variable Inicial
3. Nos vamos al final de la tabla
4. Identifica la posición en la que se encuentra la variable Final
5. Sumamos el Inicial más el Final entre dos, esto nos resulta un numero entero, que será nuestra posición para la variable Central
6. Nos vamos al centro de la tabla (esto según el paso anterior)
7. Al dato que se encuentra en la tabla le asignamos una variable llamada Dato_Central
8. Hacer mientras el dato ingresado sea diferente al dato que se encuentra en la tabla y el Inicial deba ser menor que el Final
9. Compara si el dato que se encuentra en la tabla es menor que el dato que hemos ingresado
10. El nuevo Inicial será el Central más uno
11. Sino
12. El nuevo Final será el Central menos uno
13. Termina el If
14. Para encontrar el nuevo Central sumamos el Inicial mas el Final entre dos, esto nos resulta un número entero, que será nuestra posición para la variable Central
15. Nos vamos al centro de la tabla (esto según el paso anterior)
16. Al nuevo dato que se encuentra en la tabla le asignamos una variable llamada Dato_Central
17. Termina el while
Modulo SECUENCIAL
1. Hacer mientras no sea fin de la tabla
2. Si el dato ingresado es igual al dato que se encuentra en la tabla
3. Se imprime el cod_alu en cierta posición
4. Se imprime el ap_pat en cierta posición
5. Se imprime el ap_mat en cierta posición
6. Se imprime el nombre en cierta posición
7. Se hace uso de un contador
8. Llamamos al módulo PASO
9. Sino
10. Llamamos al módulo PASO
11. Termina el If
12. Termina el while
Modulo PASO
1. Si es el final de la tabla
2. Salir y terminar el programa
3. Sino
4. Salto a la siguiente posición de la tabla
5. Termina el If
3) Hallar el algoritmo, que al ingresar el código del alumno, de la base de datos éxito.dbc muestre el record de notas del alumno (debe utilizar todas las tablas y utilizar el método inserción ).
PROGRAMACIÓN PRINCIPAL
1. I=0[pic 5]
2. Dato_cod_alu= space(10)
3. Input”ingresa el codigo”; Dato_cod_alu
4. Use éxito.dbf
5. Do ALUMNO
...