SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
UNMSM – FISI

Algorítmica I

Solucionario - Práctica N° 8

Archivos
Solucionario 1:
Registro alumno
Cadena caracter :
Cadena caracter :
Cadena caracter :
Cadena caracter :
Cadena caracter :
Cadena caracter :
Entero : pro_alu
Fin_Registro

cod_alu[9]
nom_alu[10]
ape_alu[10]
ape_pat[10]
ape_mat[10]
con_alu[10]

VARIABLES GLOABLES
Puntero FILE : F
Alumno : AL[50]
VARIABLES
CONSTANTES
Entero : ARR  72
Entero : ABA  80
Entero : ENT  13
ACCION Control_registros_alumnos
Principal( )
FIN_ACCION
Procedimiento crear_archivo( )
alumno : A
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir("El archivo no existe")
Sino
Escribir("Ingrese los datos del alumno...")
Escribir("Codigo
: ")
Leer_cadena(A.cod_alu)
Escribir("Nombre
: ")
Leer_cadena(A.nom_alu)
Escribir("Apellido Pat : ")
Leer_cadena(A.ape_pat)
Escribir("Apellido Mat : ")
Leer_cadena(A.ape_mat)
Escribir("Promedio
: ")
Leer(A.pro_alu)
Escribir("Condicion : ")
Leer_cadena(A.con_alu)
ESCRIBIR_ARCHIVO ( F )
Fin_Si
CERRAR_ARCHIVO ( F )
Fin_Procedimiento

UNMSM-FISI

.
1
UNMSM – FISI

Algorítmica I

Procedimiento adicionar_registro ( )
alumno : A
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir("El archivo no existe")
Sino
Escribir("Ingrese los datos del alumno...")
Escribir("Codigo
: ")
Leer_cadena(A.cod_alu)
Escribir("Nombre
: ")
Leer_cadena(A.nom_alu)
Escribir("Apellido Pat : ")
Leer_cadena(A.ape_pat)
Escribir("Apellido Mat : ")
Leer_cadena(A.ape_mat)
Escribir("Promedio
: ")
Leer(A.pro_alu)
Escribir("Condicion : ")
Leer_cadena(A.con_alu)
ESCRIBIR_ARCHIVO ( F )
Fin_Si
CERRAR_ARCHIVO
Fin_Procedimiento
Procedimiento mostrar_registro ( cadena carácter : cad , Entero : opc , Entero : prom )
Entero : i , indice  0 , E  0
alumno : A
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir("NO EXISTE EL ARCHIVO ")
Sino
Escribir("Relacion de Alumno(s) de la FISI")
Escribir("Codigo
Nombre
Ape_pat
Ape_mat
Promedio
Escribir("----------------------------------------LEER_ARCHIVO ( F )
Mientras( NO FIN_ARCHIVO ( F ) )
Hacer
Segun_Sea( opc )
caso 1 : Si (Comparar_cadena(A.cod_alu,cad)=0)
Entonces
E1
Fin_Si
caso 2 : Si (Comparar_cadena(A.nom_alu,cad)=0)
Entonces
E1
Fin_Si
caso 3 : Si (Comparar_cadena(A.ape_pat,cad)=0)
Entonces
E1
Fin_Si
caso 4 : Si (Comparar_cadena(A.ape_mat,cad)=0)
Entonces
E1

UNMSM-FISI

Condic)
--------")

.
2
UNMSM – FISI

Algorítmica I

Fin_Si
caso 5 : Si (A.pro_alu=prom)
Entonces
E1
Fin_Si
Fin_Segun
Si ( E = 1 )
Entonces
Mostrar_cadena(A.cod_alu)
Mostrar_cadena(A.nom_alu)
Mostrar_cadena(A.ape_pat)
Mostrar_cadena(A.ape_mat)
Escribir(A.pro_alu)
Mostrar_cadena(A.con_alu)
E0
Fin_Si
LEER_ARCHIVO ( F )
Fin_Mientras
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento realizar_búsqueda ( Entero : opc )
Cadena carácter : cadena[8]
Entero : prom
alumno : A
Entero : E  0
Segun_Sea(opc)
Hacer
caso 1 : Escribir("Ingrese
caso 2 : Escribir("Ingrese
caso 3 : Escribir("Ingrese
caso 4 : Escribir("Ingrese
caso 5 : Escribir("Ingrese
Fin_Segun

el
el
el
el
el

codigo del alumno : ") Leer_cadena(cadena)
nombre del alumno : ") Leer_cadena(cadena)
apell pat del alumno : ") Leer_cadena(cadena)
apell mat del alumno : ") Leer_cadena(cadena)
promedio del alumno : ") Leer(prom)

ABRIR_ARCHIVO
Si ( F = NULO )
Entonces
Escribir("! No existe el archivo !")
Sino
LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))
Hacer
Segun_Sea(opc)
caso 1 : Si (Comparar_cadena(A.cod_alu,cadena)=0)
Entonces
mostrar_registro(A.cod_alu, opc, 0)
E1
Fin_Si

UNMSM-FISI

.
3
UNMSM – FISI

Algorítmica I

caso 2 : Si (Comparar_cadena(A.nom_alu,cadena)=0)
Entonces
mostrar_registro(A.nom_alu, opc, 0)
E1
Fin_Si
caso 3 : Si (Comparar_cadena(A.ape_pat,cadena)=0)
Entonces
mostrar_registro(A.ape_pat, opc, 0)
E1
Fin_si
caso 4 : Si (Comparar_cadena(A.ape_mat,cadena)=0)
Entonces
mostrar_registro(A.ape_mat, opc, 0)
E1
Fin_Si
caso 5 : Si (A.pro_alu=prom)
Entonces
mostrar_registro(" ", opc, prom)
E1
Fin_Si
Fin_Segun
Fin_Mientras
LEER_ARCHIVO ( F )
Si ( E = 0 )
Entonces
Segun_Sea(
Hacer
caso 1 :
caso 2 :
caso 3 :
caso 4 :
caso 5 :
Fin_Segun
Fin_Si

opc )
Escribir("
Escribir("
Escribir("
Escribir("
Escribir("

!
!
!
!
!

EL
EL
EL
EL
EL

CODIGO INGRESADO NO EXISTE ! ")
NOMBNRE INGRESADO NO EXISTE ! ")
APELLIDO INGRESADO NO EXISTE ! ")
APELLIDO INGRESADO NO EXISTE ! ")
PROMEDIO INGRESADO NO EXISTE ! ")

Fin_Si
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento mostrar_archivo( )
alumno : A
Entero : indice  0 , i
ABRIR_ARCHIVO ( F )
Si ( F = NULL )
Entonces
Escribir("El archivo no existe")

UNMSM-FISI

.
4
UNMSM – FISI
Sino
Escribir("Relacion de Alumno(s) de la FISI")
Escribir("Codigo
Nombre
Ape_pat
Ape_mat
Escribir("--------------------------------LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))
Hacer
Mostrar_cadena(A.cod_alu)
Mostrar_cadena(A.nom_alu)
Mostrar_cadena(A.ape_pat)
Mostrar_cadena(A.ape_mat)
Escribir(A.pro_alu)
Mostrar_cadena(A.con_alu)
indice  indice + 1

Algorítmica I

Promedio
----------

Condicion)
-----------)

LEER_ARCHIVO ( F )
Fin_Mientras
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento actualizar_registro( )
Entero : E  0 , i  0 , j , aux
Cadena carácter : cod[9]
Carácter : opc
alumno : A
Escribir("Ingrese el codigo del alumno : ") Leer_cadena(cod)
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))
Hacer
Si ( Comparar_cadena(A.cod_alu,cod)=0)
Entonces
E1
Fin_Si
LEER_ARCHIVO ( F )
Fin_Mientras
Fin_Si
CERRAR_ARCHIVO ( F )
Si ( E = 1 )
Entonces
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))
Hacer

UNMSM-FISI

.
5
UNMSM – FISI

Algorítmica I

Si (Comparar_cadena(A.cod_alu,cod)=0)
Entonces
aux  i
Copiar_cadena(AL[i].cod_alu,A.cod_alu)
Copiar_cadena(AL[i].nom_alu,A.nom_alu)
Copiar_cadena(AL[i].ape_pat,A.ape_pat)
Copiar_cadena(AL[i].ape_mat,A.ape_mat)
Copiar_cadena(AL[i].con_alu,A.con_alu)
AL[i].pro_alu  A.pro_alu
ii+1
LEER_ARCHIVO ( F )
Fin_Si
Fin_Mientras
CERRAR_ARCHIVO ( F )
Fin_Si
Escribir("Actualizar los datos del alumno...")
Escribir("Nombre.......[s/n] : ") Leer(opc)
Si ( opc = 's' )
Entonces
Escribir("Actualizar los datos del alumno...")
Escribir("Nuevo Nombre : ") Leer_cadena(AL[aux].nom_alu)
Fin_Si
Escribir"Actualizar los datos del alumno...")
Escribir"Apell Pater..[s/n] : ")
Leer(opc)
Si ( opc = 's' )
Entonces
Escribir("Actualizar los datos del alumno...")
Escribir("Nuevo Apell : ")
Leer_cadena(AL[aux].ape_pat)
Fin_Si
Escribir("Actualizar los datos del alumno...")
Escribir("Apell Mater..[s/n] : ") Leer(opc)
Si ( opc = 's' )
Entonces
Escribir("Actualizar los datos del alumno...")
Escribir("Nuevo Apell : ")
Leer_cadena(AL[aux].ape_mat)
Fin_Si
Escribir("Actualizar los datos del alumno...")
Escribir("Promedio.....[s/n] : ") Leer(opc)
Si (opc='s')
Entonces
Escribir("Actualizar los datos del alumno...")
Escribir("Nuevo Promed : ") Leer(AL[aux].pro_alu)
Fin_Si
Escribir("Actualizar los datos del alumno...")
Escribir("Condicion....[s/n] : ") Leer(opc)
Si ( opc = 's' )
Entonces
Escribir("Actualizar los datos del alumno...")
Escribir("Nueva Condic : ")
Leer_cadena(AL[aux].con_alu)
Fin_Si
ji
ABRIR_ARCHIVO ( F )
Si ( F = NULO )

UNMSM-FISI

.
6
UNMSM – FISI

Algorítmica I

Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
Mientras( i > 0 )
Hacer
Copiar_cadena(A.cod_alu,AL[j-i].cod_alu)
Copiar_cadena(A.nom_alu,AL[j-i].nom_alu)
Copiar_cadena(A.ape_pat,AL[j-i].ape_pat)
Copiar_cadena(A.ape_mat,AL[j-i].ape_mat)
Copiar_cadena(A.con_alu,AL[j-i].con_alu)
A.pro_alu=AL[j-i].pro_alu
i  i +1
ESCRIBIR_ARCHIVO ( F )
Fin_Si
CERRAR_ARCHIVO
Escribir(" LA ELIMACION SE HA REALIZADO CON EXITO ")
Escribir("
presione ENTER para continuar
")
Sino
Escribir("! ERROR : EL CODIGO INGRESADO NO EXISTE !")
Fin_Si
Fin_Procedimiento
Procedimiento eliminar_registro ( )
Entero : E  0 , i  0 , j
Cadena carácter : cod[9]
alumno : A
Escribir("Ingrese el codigo del alumno : ") Leer(cod)
ABRIR_ARCHIVO ( F )
Si ( F = NULO)
Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))
Hacer
Si (Comparar_cadena(A.cod_alu,cod)=0)
Entonces
E1
Fin_Si
LEER_ARCHIVO ( F )
Fin_Mientras
Fin_Si
CERRAR_ARCHIVO ( F )
Si (E=1)
Entonces
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
LEER_ARCHIVO ( F )
Mientras(NO FIN_ARCHIVO ( F ))

UNMSM-FISI

.
7
UNMSM – FISI

Algorítmica I

Hacer
Si (Comparar_cadena(A.cod_alu,cod)<>0)
Entonces
Copiar_cadena(AL[i].cod_alu,A.cod_alu)
Copiar_cadena(AL[i].nom_alu,A.nom_alu)
Copiar_cadena(AL[i].ape_pat,A.ape_pat)
Copiar_cadena(AL[i].ape_mat,A.ape_mat)
Copiar_cadena(AL[i].con_alu,A.con_alu)
AL[i].pro_alu=A.pro_alu
ii+1
Fin_Si
LEER_ARCHIVO( F )
Fin_Mientras
CERRAR_ARCHIVO ( F )
Fin_Si
ji
ABRIR_ARCHIVO ( F )
Si ( F = NULO )
Entonces
Escribir(" ERROR : EL ARCHIVO NO EXISTE ")
Sino
Mientras( i > 0 )
Hacer
Copiar_cadena(A.cod_alu,AL[j-i].cod_alu)
Copiar_cadena(A.nom_alu,AL[j-i].nom_alu)
Copiar_cadena(A.ape_pat,AL[j-i].ape_pat)
Copiar_cadena(A.ape_mat,AL[j-i].ape_mat)
Copiar_cadena(A.con_alu,AL[j-i].con_alu)
A.pro_alu=AL[j-i].pro_alu
ii-1
ESCRIBIR_ARCHIVO ( F )
Fin_Mientras
Fin_Si
CERRAR_ARCHIVO ( F )
Escribir(" LA ELIMACION SE HA REALIZADO CON EXITO ")
Escribir("
presione ENTER para continuar
")
Sino
Escribir"! ERROR : EL CODIGO INGRESADO NO EXISTE !" }
Fin_Si
Fin_Procedimiento
Procedimiento realizar_procedimiento ( Entero : opc )
Segun_sea( opc )
Hacer
caso 1 : crear_archivo()
caso 2 : adicionar_registro()
caso 3 : actualizar_registro()
caso 4 : buscar_registro()
caso 5 : eliminar_registro()
caso 6 : mostrar_archivo()
Fin_Segun

UNMSM-FISI

.
8
UNMSM – FISI

Algorítmica I

Fin_Procedimiento
Procedimiento principal( )
caracter : flecha
Entero : i  1 , E  0
Hacer
Segun_sea( i )
Hacer
caso 1: Escribir("
caso 2: Escribir("
caso 3: Escribir("
caso 4: Escribir("
caso 5: Escribir("
caso 6: Escribir("
caso 7: Escribir("
Fin_Segun

CREAR
ARCHIVO ")
Escribir("<-")
ADICIONAR REGISTRO ") Escribir("<-")
ACTUALIZAR REGISTRO ") Escribir("<-")
BUSCAR
REGISTRO ")
Escribir("<-")
ELIMINAR REGISTRO ")
Escribir("<-");
MOSTRAR
ARCHIVO ")
Escribir("<-");
SALIR
")
Escribir("<-")

flecha  Leer_teclado
Segun_sea( flecha )
Hacer
caso ABA : Si ( i = 7 )
Entonces
i0
Fin_Si
ii+1
caso ARR : Si ( i = 1 )
Entonces
i8
Fin_Si
ii-1
caso ENT : Si ( i>=0 y i<=6 )
Entonces
realizar_procedimiento( i )
Sino
Salir( )
Fin_Si
Fin_segun
Mientras ( E = 0 )
Fin_Procedimiento

Solucionario 2:
VARIABLES GLOBALES
PUNTERO FILE : F
VARIABLES
CONSTANTES
Entero : ARR  72
Entero : ABA  80
Entero : ENT  13

UNMSM-FISI

.
9
UNMSM – FISI

Algorítmica I

ACCION Convertir_Numeros
Principal( )
FIN_ACCION
cadena Funcion unidades ( Entero : numero )
cadena caracter : cad
Segun_Sea ( numero )
Hacer
caso 0: Copiar_cadena(cad,"CERO")
caso 1: Copiar_cadena(cad,"UNO")
caso 2: Copiar_cadena(cad,"DOS")
caso 3: Copiar_cadena(cad,"TRES")
caso 4: Copiar_cadena(cad,"CUATRO")
caso 5: Copiar_cadena(cad,"CINCO")
caso 6: Copiar_cadena(cad,"SEIS")
caso 7: Copiar_cadena(cad,"SIETE")
caso 8: Copiar_cadena(cad,"OCHO")
caso 9: Copiar_cadena(cad,"NUEVE")
Fin_Segun
Retornar cad
Fin_Funcion
cadena Funcion decenas ( Entero : numero )
cadena caracter : cad
Segun_Sea ( numero )
Hacer
caso 1: Copiar_cadena(cad,"DIEZ")
caso 2: Copiar_cadena(cad,"VEINTE")
caso 3: Copiar_cadena(cad,"TREINTA")
caso 4: Copiar_cadena(cad,"CUARENTA")
caso 5: Copiar_cadena(cad,"CINCUENTA")
caso 6: Copiar_cadena(cad,"SESENTA")
caso 7: Copiar_cadena(cad,"SETENTA")
caso 8: Copiar_cadena(cad,"OCHENTA")
caso 9: Copiar_cadena(cad,"NOVENTA")
Fin_Segun
Retornar cad
Fin_Funcion
cadena Funcion centenas ( Entero : numero )
cadena caracter : cad
Segun_Sea ( numero )
Hacer
caso 1: Copiar_cadena(cad,"CIEN")
caso 2: Copiar_cadena(cad,"DOSCIENTOS")
caso 3: Copiar_cadena(cad,"TRESCIENTOS")
caso 4: Copiar_cadena(cad,"CUATROCIENTOS")
caso 5: Copiar_cadena(cad,"QUINIENTOS")
caso 6: Copiar_cadena(cad,"SEISCIENTOS")
caso 7: Copiar_cadena(cad,"SETECIENTOS")
caso 8: Copiar_cadena(cad,"OCHOCIENTOS")

UNMSM-FISI

.
10
UNMSM – FISI

Algorítmica I

caso 9: Copiar_cadena(cad,"NOVECIENTOS")
Fin_Segun
Retorna cad
Fin_Funcion
cadena Funcion miles ( Entero : numero )
cadena carácter : cad
Segun_Sea ( numero )
Hacer
caso 1: Copiar_cadena(cad,"MIL")
caso 2: Copiar_cadena(cad,"DOS MIL")
caso 3: Copiar_cadena(cad,"TRES MIL")
caso 4: Copiar_cadena(cad,"CUATRO MIL")
caso 5: Copiar_cadena(cad,"CINCO MIL")
caso 6: Copiar_cadena(cad,"SEIS MIL")
caso 7: Copiar_cadena(cad,"SIETE MIL")
caso 8: Copiar_cadena(cad,"OCHO MIL")
caso 9: Copiar_cadena(cad,"NUEVE MIL")
Fin_Segun
Retornar cad
Fin_Funcion
cadena Funcion decemiles ( Entero : numero )
cadena caracter : cad
Segun_Sea ( numero )
caso 1: Copiar_cadena(cad,"DIEZ MIL")
caso 2: Copiar_cadena(cad,"VEINTE MIL")
caso 3: Copiar_cadena(cad,"TREINTA MIL")
caso 4: Copiar_cadena(cad,"CUARENTA MIL")
caso 5: Copiar_cadena(cad,"CINCUENTA MIL")
caso 6: Copiar_cadena(cad,"SESENTA MIL")
caso 7: Copiar_cadena(cad,"SETENTA MIL")
caso 8: Copiar_cadena(cad,"OCHENTA MIL")
caso 9: Copiar_cadena(cad,"NOVENTA MIL")
Fin_Segun
Retornar cad
Fin_Funcion
cadena Funcion convertir ( Entero largo : numero )
cadena carácter : cad , cad1
Entero : i  0 , E  0 , E1  0 , v1 , v2 , v3
Copiar_cadena(cad,"")
Copiar_cadena(cad1,"")
v1  numero
v2  v1
Si ( numero < 0 )
Entonces
Concatenar_cadena(cad,"ERROR NUMERO INDEFINIDO")
Sino
Segun_Sea(numero)
caso 11: Copiar_cadena(cad,"ONCE")
caso 12: Copiar_cadena(cad,"DOCE")
caso 13: Copiar_cadena(cad,"TRECE")
caso 14: Copiar_cadena(cad,"CATORCE")

UNMSM-FISI

.
11
UNMSM – FISI

Algorítmica I

caso 15: Copiar_cadena(cad,"QUINCE")
por defecto :
Mientras (v1>0)
Hacer
v1  v1 MOD10
v2  v2 - v1
v1  v2 / 10
v2  v1
ii+1
Fin_Mientras
Si ( i <>0 )
Entonces
v3  Cuadrado(10 , i-1)
v1  numero / v3
v2  numero MOD v3
Sino
i1
v1  0
v2  0
Fin_Si
Segun_Sea( i )
Hacer
caso 1: Concatenar_cadena(cad,unidades(v1))
caso 2: Segun_Sea(v1)
Hacer
caso 1 : Si (v2!=0)
Entonces
Concatenar_cadena(cad,"DIECI")
Sino
Concatenar_cadena(cad,decenas(v1))
Fin_Si
caso 2 : Si (v2 <> 0)
Entonces
Concatenar_cadena(cad,"VEINTI")
Sino
Concatenar_cadena(cad,decenas(v1))
Fin_Si
por defecto: Concatenar_cadena(cad,decenas(v1))
Fin_Segun
caso 3: Si (v1 = 1 y v2 > 0)
Entonces
Concatenar_cadena(cad,"CIENTO")
Sino
Concatenar_cadena(cad,centenas(v1))
Fin_Si
caso 4: Concatenar_cadena(cad,miles(v1))
caso 5: Si (v1 = 1)
Entonces
Si (v2 >= 1000 y v2 < 2000)
Entonces
Concatenar_cadena(cad,"ONCE MIL")
v2  v2 - 1000
E1  1

UNMSM-FISI

.
12
UNMSM – FISI

Algorítmica I
Fin_Si
Si (v2 >= 2000 y v2 < 3000)
Entonces
Concatenar_cadena(cad,"DOCE MIL")
v2  v2 - 2000
E1  1
Fin_Si
Si (v2 >= 3000 y v2 < 4000)
Entonces
Concatenar_cadena(cad,"TRECE MIL")
v2  v2 - 3000
E1  1
Fin_Si
Si (v2 >= 4000 y v2 < 5000)
Entonces
Concatenar_cadena(cad,"CATORCE MIL")
v2  v2 - 4000
E1  1
Fin_Si
Si (v2 >= 5000 y v2 < 6000)
Entonces
Concatenar_cadena(cad,"QUINCE MIL")
v2  v2 - 5000
E1  1
Fin_Si
Si (v2 >= 6000 y v2 < 10000)
Entonces
Concatenar_cadena(cad,"DIECI")
E1
E1  1
Fin_Si
Si (v2<1000 y E1 = 0)
Entonces
Concatenar_cadena(cad,decemiles(v1))
Fin_Si
Fin_Si
Si (v1 = 2 )
Entonces
Si ( v2 <> 0 )
Entonces
Si (v2 >= 1000 y v2 <= 1999)
Concatenar_cadena(cad,"VEINTI UN MIL")
v2  v2 - 1000
Fin_Si
Sino
Si (v2>=2000)
Entonces
Concatenar_cadena(cad,"VEINTI")
E1
Sino
Concatenar_cadena(cad,decemiles(v1)) }
Fin_Si
Fin_Si
Sino
Concatenar_cadena(cad,decemiles(v1))}
Fin_Si

UNMSM-FISI

.
13
UNMSM – FISI

Algorítmica I
Si (v1>2)
Entonces
Si (v2 <> 0)
Entonces
Si (v2 >= 1000 y v2 <= 1999)
Entonces
Segun_Sea(v1)
caso 3: Concatenar_cadena(cad,"TREINTA Y UN MIL")
v2  v2 - 1000
caso 4: Concatenar_cadena(cad,"CUARENTA Y UN MIL")
v2  v2 - 1000
caso 5: Concatenar_cadena(cad,"CINCUETA Y UN MIL")
v2  v2 - 1000
caso 6: Concatenar_cadena(cad,"SESENTA Y UN MIL")
v2  v2 - 1000
caso 7: Concatenar_cadena(cad,"SETENTA Y UN MIL")
v2  v2 - 1000
caso 8: Concatenar_cadena(cad,"OCHENTA Y UN MIL")
v2  v2 - 1000
caso 9: Concatenar_cadena(cad,"NOVENTA Y UN MIL")
v2  v2 - 1000
Fin_Segun
Sino
Si (v2 >= 2000)
Entonces
Concatenar_cadena(cad,decenas(v1))
E2
Sino
Concatenar_cadena(cad,decemiles(v1)) }
Fin_Si
Fin_Si
Sino
Concatenar_cadena(cad,decemiles(v1))}
Fin_Si
Fin_Si
Si (v2 > 0)
Entonces
Si (v1 > 2 y v1 < 10)
Entonces
Si ( i < 3 )
Entonces
Concatenar_cadena(cad," Y ")
Fin_Si
Si ( i >= 5 y E = 2 )
Entonces
Concatenar_cadena(cad," Y ")
E1
Fin_Si
Fin_Si
Si ( i > 2 y E = 0 )
Entonces
Concatenar_cadena(cad," ")
Fin_Si
Concatenar_cadena(cad1,convertir(v2))

UNMSM-FISI

.
14
UNMSM – FISI

Algorítmica I

Fin_Si
Concatenar_cadena(cad,cad1)
Fin_Según
Fin_Según
Fin_Si
Retornar cad
Fin_Funcion
Procedimiento crear_archivo ( )
Entero largo : N
Real : rango
ABRIR_ARCHIVO ( F )
Si (F = NULO)
Entonces
Escribir("El archivo no existe")
Sino
Escribir("Ingrese el numero : ") Leer(rango)
Si (rango>32768)
Entonces
N  -2004
Sino
N  rango
Fin_Si
ESCRIBIR_ARCHIVO ( F )
Fin_Si
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento adicionar_registro ( )
Entero largo : N
Real : rango
ABRIR_ARCHIVO ( F )
Si (F = NULO)
Entonces
Escribir("El archivo no existe")
Sino
Escribir("Ingrese el numero : ") Leer(rango)
Si (rango>32768)
Entonces
N  -2004
Sino
N  rango
Fin_Si
ESCRIBIR_ARCHIVO ( F )
Fin_Si
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento mostrar_archivo ( )
Entero : j  0 , i  0

UNMSM-FISI

.
15
UNMSM – FISI

Algorítmica I

Entero largo : N
ABRIR_ARCHIVO ( F )
Si (F = NULO)
Entonces
Escribir("El archivo no existe")
Sino
Escribir("Numero Cadena")
LEER_ARCHIVO ( F )
Mientras ( NO FIN_ARCHIVO ( F ) )
Escribir( N )
Escribir_cadena( convertir(N) )
LEER_ARCHIVO ( F )
jj+1
Fin_Si
CERRAR_ARCHIVO ( F )
Fin_Procedimiento
Procedimiento realizar_procedimiento ( Entero : opc )
Según_Sea
Hacer
caso 1 : crear_archivo( )
caso 2 : adicionar_registro( )
caso 3 : mostrar_archivo( )
Fin_Segun
Fin_Procedimiento
Procedimiento principal ( )
Carácter : flecha
Entero : i  1 , E  0
Hacer
Escribir(" CREAR
ARCHIVO ")
Escribir(" ADICIONAR REGISTRO ")
Escribir(" MOSTRAR
ARCHIVO ")
Escribir("
SALIR
")
flecha  Leer_Teclado( )
Según_Sea( flecha )
Hacer
caso ABA : Si ( i = 4 )
Entonces
i0
Fin_Si
i  i +1
caso ARR : Si ( i = 1 )
Entonces
i5
Fin_Si
ii-1
caso ENT : Si ( i>=0 y i<=3 )
Entonces
realizar_procedimiento( i )

UNMSM-FISI

.
16
UNMSM – FISI

Algorítmica I

Sino
Salir( )
Fin_Si
Fin_Segun
Mientras ( E = 0 )
Fin_Procedimiento

UNMSM-FISI

.
17

Weitere ähnliche Inhalte

Andere mochten auch

Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxJulio Pari
 
Algoritmica i clase06 ejercicio apuntadores
Algoritmica i clase06 ejercicio apuntadoresAlgoritmica i clase06 ejercicio apuntadores
Algoritmica i clase06 ejercicio apuntadoresJulio Pari
 
Unmsm fisi - programación lineal 2 - io1 cl04
Unmsm   fisi - programación lineal 2 - io1 cl04Unmsm   fisi - programación lineal 2 - io1 cl04
Unmsm fisi - programación lineal 2 - io1 cl04Julio Pari
 
Algoritmica i clase08 practica 8
Algoritmica i clase08 practica 8Algoritmica i clase08 practica 8
Algoritmica i clase08 practica 8Julio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Algoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioAlgoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioJulio Pari
 
Practica2 bbdd er
Practica2 bbdd erPractica2 bbdd er
Practica2 bbdd erJulio Pari
 
Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Julio Pari
 
Algoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionarioAlgoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionarioJulio Pari
 
Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Julio Pari
 
Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Julio Pari
 
Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Julio Pari
 
7 p218162 unmsm-2012-2-dw-g1
7 p218162 unmsm-2012-2-dw-g17 p218162 unmsm-2012-2-dw-g1
7 p218162 unmsm-2012-2-dw-g1Julio Pari
 
6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorioJulio Pari
 
Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioAlgoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioJulio Pari
 
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot SuitePublicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot SuitePedro Antonio Villalta (Pavillalta)
 
Algoritmica i clase01 practica 1
Algoritmica i clase01 practica 1Algoritmica i clase01 practica 1
Algoritmica i clase01 practica 1Julio Pari
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de phpJulio Pari
 
Algoritmica i clase04 practica 4
Algoritmica i clase04 practica 4Algoritmica i clase04 practica 4
Algoritmica i clase04 practica 4Julio Pari
 

Andere mochten auch (20)

Php01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linuxPhp01 instalacion de apache y php en linux
Php01 instalacion de apache y php en linux
 
Algoritmica i clase06 ejercicio apuntadores
Algoritmica i clase06 ejercicio apuntadoresAlgoritmica i clase06 ejercicio apuntadores
Algoritmica i clase06 ejercicio apuntadores
 
Unmsm fisi - programación lineal 2 - io1 cl04
Unmsm   fisi - programación lineal 2 - io1 cl04Unmsm   fisi - programación lineal 2 - io1 cl04
Unmsm fisi - programación lineal 2 - io1 cl04
 
Algoritmica i clase08 practica 8
Algoritmica i clase08 practica 8Algoritmica i clase08 practica 8
Algoritmica i clase08 practica 8
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Algoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioAlgoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionario
 
Practica2 bbdd er
Practica2 bbdd erPractica2 bbdd er
Practica2 bbdd er
 
Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2
 
Algoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionarioAlgoritmica i clase06 practica 6 solucionario
Algoritmica i clase06 practica 6 solucionario
 
Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6
 
Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5
 
Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7
 
Guia 02
Guia 02Guia 02
Guia 02
 
7 p218162 unmsm-2012-2-dw-g1
7 p218162 unmsm-2012-2-dw-g17 p218162 unmsm-2012-2-dw-g1
7 p218162 unmsm-2012-2-dw-g1
 
6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio
 
Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioAlgoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionario
 
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot SuitePublicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
Publicar en Facebook, Twitter, Linkedind y Google+ con Hoot Suite
 
Algoritmica i clase01 practica 1
Algoritmica i clase01 practica 1Algoritmica i clase01 practica 1
Algoritmica i clase01 practica 1
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de php
 
Algoritmica i clase04 practica 4
Algoritmica i clase04 practica 4Algoritmica i clase04 practica 4
Algoritmica i clase04 practica 4
 

Mehr von Julio Pari

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Julio Pari
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCJulio Pari
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic EnterpriseJulio Pari
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioJulio Pari
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoJulio Pari
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISIJulio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIJulio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasJulio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIJulio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialJulio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialJulio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuarioJulio Pari
 
Php04 estructuras control
Php04 estructuras controlPhp04 estructuras control
Php04 estructuras controlJulio Pari
 
Php03 variables externas
Php03 variables externasPhp03 variables externas
Php03 variables externasJulio Pari
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablasJulio Pari
 

Mehr von Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 
Php04 estructuras control
Php04 estructuras controlPhp04 estructuras control
Php04 estructuras control
 
Php03 variables externas
Php03 variables externasPhp03 variables externas
Php03 variables externas
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablas
 

Algoritmica i clase08 practica 8 solucionario

  • 1. UNMSM – FISI Algorítmica I Solucionario - Práctica N° 8 Archivos Solucionario 1: Registro alumno Cadena caracter : Cadena caracter : Cadena caracter : Cadena caracter : Cadena caracter : Cadena caracter : Entero : pro_alu Fin_Registro cod_alu[9] nom_alu[10] ape_alu[10] ape_pat[10] ape_mat[10] con_alu[10] VARIABLES GLOABLES Puntero FILE : F Alumno : AL[50] VARIABLES CONSTANTES Entero : ARR  72 Entero : ABA  80 Entero : ENT  13 ACCION Control_registros_alumnos Principal( ) FIN_ACCION Procedimiento crear_archivo( ) alumno : A ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir("El archivo no existe") Sino Escribir("Ingrese los datos del alumno...") Escribir("Codigo : ") Leer_cadena(A.cod_alu) Escribir("Nombre : ") Leer_cadena(A.nom_alu) Escribir("Apellido Pat : ") Leer_cadena(A.ape_pat) Escribir("Apellido Mat : ") Leer_cadena(A.ape_mat) Escribir("Promedio : ") Leer(A.pro_alu) Escribir("Condicion : ") Leer_cadena(A.con_alu) ESCRIBIR_ARCHIVO ( F ) Fin_Si CERRAR_ARCHIVO ( F ) Fin_Procedimiento UNMSM-FISI . 1
  • 2. UNMSM – FISI Algorítmica I Procedimiento adicionar_registro ( ) alumno : A ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir("El archivo no existe") Sino Escribir("Ingrese los datos del alumno...") Escribir("Codigo : ") Leer_cadena(A.cod_alu) Escribir("Nombre : ") Leer_cadena(A.nom_alu) Escribir("Apellido Pat : ") Leer_cadena(A.ape_pat) Escribir("Apellido Mat : ") Leer_cadena(A.ape_mat) Escribir("Promedio : ") Leer(A.pro_alu) Escribir("Condicion : ") Leer_cadena(A.con_alu) ESCRIBIR_ARCHIVO ( F ) Fin_Si CERRAR_ARCHIVO Fin_Procedimiento Procedimiento mostrar_registro ( cadena carácter : cad , Entero : opc , Entero : prom ) Entero : i , indice  0 , E  0 alumno : A ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir("NO EXISTE EL ARCHIVO ") Sino Escribir("Relacion de Alumno(s) de la FISI") Escribir("Codigo Nombre Ape_pat Ape_mat Promedio Escribir("----------------------------------------LEER_ARCHIVO ( F ) Mientras( NO FIN_ARCHIVO ( F ) ) Hacer Segun_Sea( opc ) caso 1 : Si (Comparar_cadena(A.cod_alu,cad)=0) Entonces E1 Fin_Si caso 2 : Si (Comparar_cadena(A.nom_alu,cad)=0) Entonces E1 Fin_Si caso 3 : Si (Comparar_cadena(A.ape_pat,cad)=0) Entonces E1 Fin_Si caso 4 : Si (Comparar_cadena(A.ape_mat,cad)=0) Entonces E1 UNMSM-FISI Condic) --------") . 2
  • 3. UNMSM – FISI Algorítmica I Fin_Si caso 5 : Si (A.pro_alu=prom) Entonces E1 Fin_Si Fin_Segun Si ( E = 1 ) Entonces Mostrar_cadena(A.cod_alu) Mostrar_cadena(A.nom_alu) Mostrar_cadena(A.ape_pat) Mostrar_cadena(A.ape_mat) Escribir(A.pro_alu) Mostrar_cadena(A.con_alu) E0 Fin_Si LEER_ARCHIVO ( F ) Fin_Mientras CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento realizar_búsqueda ( Entero : opc ) Cadena carácter : cadena[8] Entero : prom alumno : A Entero : E  0 Segun_Sea(opc) Hacer caso 1 : Escribir("Ingrese caso 2 : Escribir("Ingrese caso 3 : Escribir("Ingrese caso 4 : Escribir("Ingrese caso 5 : Escribir("Ingrese Fin_Segun el el el el el codigo del alumno : ") Leer_cadena(cadena) nombre del alumno : ") Leer_cadena(cadena) apell pat del alumno : ") Leer_cadena(cadena) apell mat del alumno : ") Leer_cadena(cadena) promedio del alumno : ") Leer(prom) ABRIR_ARCHIVO Si ( F = NULO ) Entonces Escribir("! No existe el archivo !") Sino LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) Hacer Segun_Sea(opc) caso 1 : Si (Comparar_cadena(A.cod_alu,cadena)=0) Entonces mostrar_registro(A.cod_alu, opc, 0) E1 Fin_Si UNMSM-FISI . 3
  • 4. UNMSM – FISI Algorítmica I caso 2 : Si (Comparar_cadena(A.nom_alu,cadena)=0) Entonces mostrar_registro(A.nom_alu, opc, 0) E1 Fin_Si caso 3 : Si (Comparar_cadena(A.ape_pat,cadena)=0) Entonces mostrar_registro(A.ape_pat, opc, 0) E1 Fin_si caso 4 : Si (Comparar_cadena(A.ape_mat,cadena)=0) Entonces mostrar_registro(A.ape_mat, opc, 0) E1 Fin_Si caso 5 : Si (A.pro_alu=prom) Entonces mostrar_registro(" ", opc, prom) E1 Fin_Si Fin_Segun Fin_Mientras LEER_ARCHIVO ( F ) Si ( E = 0 ) Entonces Segun_Sea( Hacer caso 1 : caso 2 : caso 3 : caso 4 : caso 5 : Fin_Segun Fin_Si opc ) Escribir(" Escribir(" Escribir(" Escribir(" Escribir(" ! ! ! ! ! EL EL EL EL EL CODIGO INGRESADO NO EXISTE ! ") NOMBNRE INGRESADO NO EXISTE ! ") APELLIDO INGRESADO NO EXISTE ! ") APELLIDO INGRESADO NO EXISTE ! ") PROMEDIO INGRESADO NO EXISTE ! ") Fin_Si CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento mostrar_archivo( ) alumno : A Entero : indice  0 , i ABRIR_ARCHIVO ( F ) Si ( F = NULL ) Entonces Escribir("El archivo no existe") UNMSM-FISI . 4
  • 5. UNMSM – FISI Sino Escribir("Relacion de Alumno(s) de la FISI") Escribir("Codigo Nombre Ape_pat Ape_mat Escribir("--------------------------------LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) Hacer Mostrar_cadena(A.cod_alu) Mostrar_cadena(A.nom_alu) Mostrar_cadena(A.ape_pat) Mostrar_cadena(A.ape_mat) Escribir(A.pro_alu) Mostrar_cadena(A.con_alu) indice  indice + 1 Algorítmica I Promedio ---------- Condicion) -----------) LEER_ARCHIVO ( F ) Fin_Mientras CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento actualizar_registro( ) Entero : E  0 , i  0 , j , aux Cadena carácter : cod[9] Carácter : opc alumno : A Escribir("Ingrese el codigo del alumno : ") Leer_cadena(cod) ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) Hacer Si ( Comparar_cadena(A.cod_alu,cod)=0) Entonces E1 Fin_Si LEER_ARCHIVO ( F ) Fin_Mientras Fin_Si CERRAR_ARCHIVO ( F ) Si ( E = 1 ) Entonces ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) Hacer UNMSM-FISI . 5
  • 6. UNMSM – FISI Algorítmica I Si (Comparar_cadena(A.cod_alu,cod)=0) Entonces aux  i Copiar_cadena(AL[i].cod_alu,A.cod_alu) Copiar_cadena(AL[i].nom_alu,A.nom_alu) Copiar_cadena(AL[i].ape_pat,A.ape_pat) Copiar_cadena(AL[i].ape_mat,A.ape_mat) Copiar_cadena(AL[i].con_alu,A.con_alu) AL[i].pro_alu  A.pro_alu ii+1 LEER_ARCHIVO ( F ) Fin_Si Fin_Mientras CERRAR_ARCHIVO ( F ) Fin_Si Escribir("Actualizar los datos del alumno...") Escribir("Nombre.......[s/n] : ") Leer(opc) Si ( opc = 's' ) Entonces Escribir("Actualizar los datos del alumno...") Escribir("Nuevo Nombre : ") Leer_cadena(AL[aux].nom_alu) Fin_Si Escribir"Actualizar los datos del alumno...") Escribir"Apell Pater..[s/n] : ") Leer(opc) Si ( opc = 's' ) Entonces Escribir("Actualizar los datos del alumno...") Escribir("Nuevo Apell : ") Leer_cadena(AL[aux].ape_pat) Fin_Si Escribir("Actualizar los datos del alumno...") Escribir("Apell Mater..[s/n] : ") Leer(opc) Si ( opc = 's' ) Entonces Escribir("Actualizar los datos del alumno...") Escribir("Nuevo Apell : ") Leer_cadena(AL[aux].ape_mat) Fin_Si Escribir("Actualizar los datos del alumno...") Escribir("Promedio.....[s/n] : ") Leer(opc) Si (opc='s') Entonces Escribir("Actualizar los datos del alumno...") Escribir("Nuevo Promed : ") Leer(AL[aux].pro_alu) Fin_Si Escribir("Actualizar los datos del alumno...") Escribir("Condicion....[s/n] : ") Leer(opc) Si ( opc = 's' ) Entonces Escribir("Actualizar los datos del alumno...") Escribir("Nueva Condic : ") Leer_cadena(AL[aux].con_alu) Fin_Si ji ABRIR_ARCHIVO ( F ) Si ( F = NULO ) UNMSM-FISI . 6
  • 7. UNMSM – FISI Algorítmica I Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino Mientras( i > 0 ) Hacer Copiar_cadena(A.cod_alu,AL[j-i].cod_alu) Copiar_cadena(A.nom_alu,AL[j-i].nom_alu) Copiar_cadena(A.ape_pat,AL[j-i].ape_pat) Copiar_cadena(A.ape_mat,AL[j-i].ape_mat) Copiar_cadena(A.con_alu,AL[j-i].con_alu) A.pro_alu=AL[j-i].pro_alu i  i +1 ESCRIBIR_ARCHIVO ( F ) Fin_Si CERRAR_ARCHIVO Escribir(" LA ELIMACION SE HA REALIZADO CON EXITO ") Escribir(" presione ENTER para continuar ") Sino Escribir("! ERROR : EL CODIGO INGRESADO NO EXISTE !") Fin_Si Fin_Procedimiento Procedimiento eliminar_registro ( ) Entero : E  0 , i  0 , j Cadena carácter : cod[9] alumno : A Escribir("Ingrese el codigo del alumno : ") Leer(cod) ABRIR_ARCHIVO ( F ) Si ( F = NULO) Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) Hacer Si (Comparar_cadena(A.cod_alu,cod)=0) Entonces E1 Fin_Si LEER_ARCHIVO ( F ) Fin_Mientras Fin_Si CERRAR_ARCHIVO ( F ) Si (E=1) Entonces ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino LEER_ARCHIVO ( F ) Mientras(NO FIN_ARCHIVO ( F )) UNMSM-FISI . 7
  • 8. UNMSM – FISI Algorítmica I Hacer Si (Comparar_cadena(A.cod_alu,cod)<>0) Entonces Copiar_cadena(AL[i].cod_alu,A.cod_alu) Copiar_cadena(AL[i].nom_alu,A.nom_alu) Copiar_cadena(AL[i].ape_pat,A.ape_pat) Copiar_cadena(AL[i].ape_mat,A.ape_mat) Copiar_cadena(AL[i].con_alu,A.con_alu) AL[i].pro_alu=A.pro_alu ii+1 Fin_Si LEER_ARCHIVO( F ) Fin_Mientras CERRAR_ARCHIVO ( F ) Fin_Si ji ABRIR_ARCHIVO ( F ) Si ( F = NULO ) Entonces Escribir(" ERROR : EL ARCHIVO NO EXISTE ") Sino Mientras( i > 0 ) Hacer Copiar_cadena(A.cod_alu,AL[j-i].cod_alu) Copiar_cadena(A.nom_alu,AL[j-i].nom_alu) Copiar_cadena(A.ape_pat,AL[j-i].ape_pat) Copiar_cadena(A.ape_mat,AL[j-i].ape_mat) Copiar_cadena(A.con_alu,AL[j-i].con_alu) A.pro_alu=AL[j-i].pro_alu ii-1 ESCRIBIR_ARCHIVO ( F ) Fin_Mientras Fin_Si CERRAR_ARCHIVO ( F ) Escribir(" LA ELIMACION SE HA REALIZADO CON EXITO ") Escribir(" presione ENTER para continuar ") Sino Escribir"! ERROR : EL CODIGO INGRESADO NO EXISTE !" } Fin_Si Fin_Procedimiento Procedimiento realizar_procedimiento ( Entero : opc ) Segun_sea( opc ) Hacer caso 1 : crear_archivo() caso 2 : adicionar_registro() caso 3 : actualizar_registro() caso 4 : buscar_registro() caso 5 : eliminar_registro() caso 6 : mostrar_archivo() Fin_Segun UNMSM-FISI . 8
  • 9. UNMSM – FISI Algorítmica I Fin_Procedimiento Procedimiento principal( ) caracter : flecha Entero : i  1 , E  0 Hacer Segun_sea( i ) Hacer caso 1: Escribir(" caso 2: Escribir(" caso 3: Escribir(" caso 4: Escribir(" caso 5: Escribir(" caso 6: Escribir(" caso 7: Escribir(" Fin_Segun CREAR ARCHIVO ") Escribir("<-") ADICIONAR REGISTRO ") Escribir("<-") ACTUALIZAR REGISTRO ") Escribir("<-") BUSCAR REGISTRO ") Escribir("<-") ELIMINAR REGISTRO ") Escribir("<-"); MOSTRAR ARCHIVO ") Escribir("<-"); SALIR ") Escribir("<-") flecha  Leer_teclado Segun_sea( flecha ) Hacer caso ABA : Si ( i = 7 ) Entonces i0 Fin_Si ii+1 caso ARR : Si ( i = 1 ) Entonces i8 Fin_Si ii-1 caso ENT : Si ( i>=0 y i<=6 ) Entonces realizar_procedimiento( i ) Sino Salir( ) Fin_Si Fin_segun Mientras ( E = 0 ) Fin_Procedimiento Solucionario 2: VARIABLES GLOBALES PUNTERO FILE : F VARIABLES CONSTANTES Entero : ARR  72 Entero : ABA  80 Entero : ENT  13 UNMSM-FISI . 9
  • 10. UNMSM – FISI Algorítmica I ACCION Convertir_Numeros Principal( ) FIN_ACCION cadena Funcion unidades ( Entero : numero ) cadena caracter : cad Segun_Sea ( numero ) Hacer caso 0: Copiar_cadena(cad,"CERO") caso 1: Copiar_cadena(cad,"UNO") caso 2: Copiar_cadena(cad,"DOS") caso 3: Copiar_cadena(cad,"TRES") caso 4: Copiar_cadena(cad,"CUATRO") caso 5: Copiar_cadena(cad,"CINCO") caso 6: Copiar_cadena(cad,"SEIS") caso 7: Copiar_cadena(cad,"SIETE") caso 8: Copiar_cadena(cad,"OCHO") caso 9: Copiar_cadena(cad,"NUEVE") Fin_Segun Retornar cad Fin_Funcion cadena Funcion decenas ( Entero : numero ) cadena caracter : cad Segun_Sea ( numero ) Hacer caso 1: Copiar_cadena(cad,"DIEZ") caso 2: Copiar_cadena(cad,"VEINTE") caso 3: Copiar_cadena(cad,"TREINTA") caso 4: Copiar_cadena(cad,"CUARENTA") caso 5: Copiar_cadena(cad,"CINCUENTA") caso 6: Copiar_cadena(cad,"SESENTA") caso 7: Copiar_cadena(cad,"SETENTA") caso 8: Copiar_cadena(cad,"OCHENTA") caso 9: Copiar_cadena(cad,"NOVENTA") Fin_Segun Retornar cad Fin_Funcion cadena Funcion centenas ( Entero : numero ) cadena caracter : cad Segun_Sea ( numero ) Hacer caso 1: Copiar_cadena(cad,"CIEN") caso 2: Copiar_cadena(cad,"DOSCIENTOS") caso 3: Copiar_cadena(cad,"TRESCIENTOS") caso 4: Copiar_cadena(cad,"CUATROCIENTOS") caso 5: Copiar_cadena(cad,"QUINIENTOS") caso 6: Copiar_cadena(cad,"SEISCIENTOS") caso 7: Copiar_cadena(cad,"SETECIENTOS") caso 8: Copiar_cadena(cad,"OCHOCIENTOS") UNMSM-FISI . 10
  • 11. UNMSM – FISI Algorítmica I caso 9: Copiar_cadena(cad,"NOVECIENTOS") Fin_Segun Retorna cad Fin_Funcion cadena Funcion miles ( Entero : numero ) cadena carácter : cad Segun_Sea ( numero ) Hacer caso 1: Copiar_cadena(cad,"MIL") caso 2: Copiar_cadena(cad,"DOS MIL") caso 3: Copiar_cadena(cad,"TRES MIL") caso 4: Copiar_cadena(cad,"CUATRO MIL") caso 5: Copiar_cadena(cad,"CINCO MIL") caso 6: Copiar_cadena(cad,"SEIS MIL") caso 7: Copiar_cadena(cad,"SIETE MIL") caso 8: Copiar_cadena(cad,"OCHO MIL") caso 9: Copiar_cadena(cad,"NUEVE MIL") Fin_Segun Retornar cad Fin_Funcion cadena Funcion decemiles ( Entero : numero ) cadena caracter : cad Segun_Sea ( numero ) caso 1: Copiar_cadena(cad,"DIEZ MIL") caso 2: Copiar_cadena(cad,"VEINTE MIL") caso 3: Copiar_cadena(cad,"TREINTA MIL") caso 4: Copiar_cadena(cad,"CUARENTA MIL") caso 5: Copiar_cadena(cad,"CINCUENTA MIL") caso 6: Copiar_cadena(cad,"SESENTA MIL") caso 7: Copiar_cadena(cad,"SETENTA MIL") caso 8: Copiar_cadena(cad,"OCHENTA MIL") caso 9: Copiar_cadena(cad,"NOVENTA MIL") Fin_Segun Retornar cad Fin_Funcion cadena Funcion convertir ( Entero largo : numero ) cadena carácter : cad , cad1 Entero : i  0 , E  0 , E1  0 , v1 , v2 , v3 Copiar_cadena(cad,"") Copiar_cadena(cad1,"") v1  numero v2  v1 Si ( numero < 0 ) Entonces Concatenar_cadena(cad,"ERROR NUMERO INDEFINIDO") Sino Segun_Sea(numero) caso 11: Copiar_cadena(cad,"ONCE") caso 12: Copiar_cadena(cad,"DOCE") caso 13: Copiar_cadena(cad,"TRECE") caso 14: Copiar_cadena(cad,"CATORCE") UNMSM-FISI . 11
  • 12. UNMSM – FISI Algorítmica I caso 15: Copiar_cadena(cad,"QUINCE") por defecto : Mientras (v1>0) Hacer v1  v1 MOD10 v2  v2 - v1 v1  v2 / 10 v2  v1 ii+1 Fin_Mientras Si ( i <>0 ) Entonces v3  Cuadrado(10 , i-1) v1  numero / v3 v2  numero MOD v3 Sino i1 v1  0 v2  0 Fin_Si Segun_Sea( i ) Hacer caso 1: Concatenar_cadena(cad,unidades(v1)) caso 2: Segun_Sea(v1) Hacer caso 1 : Si (v2!=0) Entonces Concatenar_cadena(cad,"DIECI") Sino Concatenar_cadena(cad,decenas(v1)) Fin_Si caso 2 : Si (v2 <> 0) Entonces Concatenar_cadena(cad,"VEINTI") Sino Concatenar_cadena(cad,decenas(v1)) Fin_Si por defecto: Concatenar_cadena(cad,decenas(v1)) Fin_Segun caso 3: Si (v1 = 1 y v2 > 0) Entonces Concatenar_cadena(cad,"CIENTO") Sino Concatenar_cadena(cad,centenas(v1)) Fin_Si caso 4: Concatenar_cadena(cad,miles(v1)) caso 5: Si (v1 = 1) Entonces Si (v2 >= 1000 y v2 < 2000) Entonces Concatenar_cadena(cad,"ONCE MIL") v2  v2 - 1000 E1  1 UNMSM-FISI . 12
  • 13. UNMSM – FISI Algorítmica I Fin_Si Si (v2 >= 2000 y v2 < 3000) Entonces Concatenar_cadena(cad,"DOCE MIL") v2  v2 - 2000 E1  1 Fin_Si Si (v2 >= 3000 y v2 < 4000) Entonces Concatenar_cadena(cad,"TRECE MIL") v2  v2 - 3000 E1  1 Fin_Si Si (v2 >= 4000 y v2 < 5000) Entonces Concatenar_cadena(cad,"CATORCE MIL") v2  v2 - 4000 E1  1 Fin_Si Si (v2 >= 5000 y v2 < 6000) Entonces Concatenar_cadena(cad,"QUINCE MIL") v2  v2 - 5000 E1  1 Fin_Si Si (v2 >= 6000 y v2 < 10000) Entonces Concatenar_cadena(cad,"DIECI") E1 E1  1 Fin_Si Si (v2<1000 y E1 = 0) Entonces Concatenar_cadena(cad,decemiles(v1)) Fin_Si Fin_Si Si (v1 = 2 ) Entonces Si ( v2 <> 0 ) Entonces Si (v2 >= 1000 y v2 <= 1999) Concatenar_cadena(cad,"VEINTI UN MIL") v2  v2 - 1000 Fin_Si Sino Si (v2>=2000) Entonces Concatenar_cadena(cad,"VEINTI") E1 Sino Concatenar_cadena(cad,decemiles(v1)) } Fin_Si Fin_Si Sino Concatenar_cadena(cad,decemiles(v1))} Fin_Si UNMSM-FISI . 13
  • 14. UNMSM – FISI Algorítmica I Si (v1>2) Entonces Si (v2 <> 0) Entonces Si (v2 >= 1000 y v2 <= 1999) Entonces Segun_Sea(v1) caso 3: Concatenar_cadena(cad,"TREINTA Y UN MIL") v2  v2 - 1000 caso 4: Concatenar_cadena(cad,"CUARENTA Y UN MIL") v2  v2 - 1000 caso 5: Concatenar_cadena(cad,"CINCUETA Y UN MIL") v2  v2 - 1000 caso 6: Concatenar_cadena(cad,"SESENTA Y UN MIL") v2  v2 - 1000 caso 7: Concatenar_cadena(cad,"SETENTA Y UN MIL") v2  v2 - 1000 caso 8: Concatenar_cadena(cad,"OCHENTA Y UN MIL") v2  v2 - 1000 caso 9: Concatenar_cadena(cad,"NOVENTA Y UN MIL") v2  v2 - 1000 Fin_Segun Sino Si (v2 >= 2000) Entonces Concatenar_cadena(cad,decenas(v1)) E2 Sino Concatenar_cadena(cad,decemiles(v1)) } Fin_Si Fin_Si Sino Concatenar_cadena(cad,decemiles(v1))} Fin_Si Fin_Si Si (v2 > 0) Entonces Si (v1 > 2 y v1 < 10) Entonces Si ( i < 3 ) Entonces Concatenar_cadena(cad," Y ") Fin_Si Si ( i >= 5 y E = 2 ) Entonces Concatenar_cadena(cad," Y ") E1 Fin_Si Fin_Si Si ( i > 2 y E = 0 ) Entonces Concatenar_cadena(cad," ") Fin_Si Concatenar_cadena(cad1,convertir(v2)) UNMSM-FISI . 14
  • 15. UNMSM – FISI Algorítmica I Fin_Si Concatenar_cadena(cad,cad1) Fin_Según Fin_Según Fin_Si Retornar cad Fin_Funcion Procedimiento crear_archivo ( ) Entero largo : N Real : rango ABRIR_ARCHIVO ( F ) Si (F = NULO) Entonces Escribir("El archivo no existe") Sino Escribir("Ingrese el numero : ") Leer(rango) Si (rango>32768) Entonces N  -2004 Sino N  rango Fin_Si ESCRIBIR_ARCHIVO ( F ) Fin_Si CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento adicionar_registro ( ) Entero largo : N Real : rango ABRIR_ARCHIVO ( F ) Si (F = NULO) Entonces Escribir("El archivo no existe") Sino Escribir("Ingrese el numero : ") Leer(rango) Si (rango>32768) Entonces N  -2004 Sino N  rango Fin_Si ESCRIBIR_ARCHIVO ( F ) Fin_Si CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento mostrar_archivo ( ) Entero : j  0 , i  0 UNMSM-FISI . 15
  • 16. UNMSM – FISI Algorítmica I Entero largo : N ABRIR_ARCHIVO ( F ) Si (F = NULO) Entonces Escribir("El archivo no existe") Sino Escribir("Numero Cadena") LEER_ARCHIVO ( F ) Mientras ( NO FIN_ARCHIVO ( F ) ) Escribir( N ) Escribir_cadena( convertir(N) ) LEER_ARCHIVO ( F ) jj+1 Fin_Si CERRAR_ARCHIVO ( F ) Fin_Procedimiento Procedimiento realizar_procedimiento ( Entero : opc ) Según_Sea Hacer caso 1 : crear_archivo( ) caso 2 : adicionar_registro( ) caso 3 : mostrar_archivo( ) Fin_Segun Fin_Procedimiento Procedimiento principal ( ) Carácter : flecha Entero : i  1 , E  0 Hacer Escribir(" CREAR ARCHIVO ") Escribir(" ADICIONAR REGISTRO ") Escribir(" MOSTRAR ARCHIVO ") Escribir(" SALIR ") flecha  Leer_Teclado( ) Según_Sea( flecha ) Hacer caso ABA : Si ( i = 4 ) Entonces i0 Fin_Si i  i +1 caso ARR : Si ( i = 1 ) Entonces i5 Fin_Si ii-1 caso ENT : Si ( i>=0 y i<=3 ) Entonces realizar_procedimiento( i ) UNMSM-FISI . 16
  • 17. UNMSM – FISI Algorítmica I Sino Salir( ) Fin_Si Fin_Segun Mientras ( E = 0 ) Fin_Procedimiento UNMSM-FISI . 17