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

Algorítmica I

Solucionario - Práctica N° 7

Registros
Solucionario 1:
Registro alumno
Arreglo caracter
Arreglo caracter
Arreglo caracter
Arreglo caracter
Arreglo caracter
Entero
Fin_Registro

:
:
:
:
:
:

nombre[ 10 ]
ape_p[ 10 ]
ape_m[ 10 ]
codigo[ 8 ]
nota_c[ 20 ]
nota_n

alumno A[ 50 ]
Entero : indice  0
Procedimiento aniadir_alumno( )
Escribir("Ingresar datos del alumno")
Escribir("Nombre
: ")
Leer_Cadena(A[indice].nombre)
Escribir("Ape. Paterno : ") Leer_Cadena(A[indice].ape_p)
Escribir("Ape. Materno : ") Leer_Cadena(A[indice].ape_m)
Escribir("Codigo
: ")
Leer_Cadena(A[indice].codigo)
Escribir("Nota (numero): ") Leer(A[indice].nota_n
Escribir("Nota (cadena): ") Leer_Cadena(A[indice].nota_c)
indice  indice + 1
Fin_Procedimiento
Procedimiento borrarporposicion( )
Entero posicion, i  0
Escribir("Ingrese la posición del alumno : ") Leer(posición)
posición  posicion – 1
Si( posición >= 0 y posición < indice )
Entonces
Para i Desde posición Hasta indice-2 Hacer
Copiar_Cadena( A[i].nombre , A[i+1].nombre)
Copiar_Cadena( A[i].apep , A[i+1].apep)
Copiar_Cadena( A[i].apem , A[i+1].apem)
Copiar_Cadena( A[i].codigo , A[i+1].codigo)
A[i].notan  A[i+1].notan
Copiar_Cadena(A[i].notac , A[i+1].notac)
Fin_Para
indice  indice - 1
}
Sino
Escribir("! ERROR : La posicion ingresada no existe !")
Escribir("
pulse ENTER para continuar
")
Fin_Si
Fin_Procedimiento

UNMSM-FISI

.
1
UNMSM – FISI

Algorítmica I

Procedimiento borrarporcodigo( )
Arreglo Entero : codigo[8]
Entero : i  0, j, E  0
Escribir("Ingrese el codigo del alumno : ") Leer_Cadena(codigo)
Mientras( i < indice y E = 0 )
Hacer
Si( Comparar_Cadena( A[i].codigo , codigo) = 0 )
Entonces
Para j Desde i Hasta indice-2 Hacer
Copiar_Cadena(A[j].nombre , A[j+1].nombre)
Copiar_Cadena(A[j].apep,A[j+1].apep)
Copiar_Cadena(A[j].apem,A[j+1].apem)
Copiar_Cadena(A[j].codigo,A[j+1].codigo)
A[j].notan=A[j+1].notan;
Copiar_Cadena(A[j].notac,A[j+1].notac)
Fin_Para
indice  indice - 1
E1
Fin_Si
ii+1
Fin_Mientras
Si( E = 0 )
Entonces
Escribir("ERROR : El codigo ingresado no existe")
Fin_Si
Fin_Procedimiento
Procedimiento mostrardatos( )
Entero : i
Si( indice = 0 )
Entonces
Escribir("! NO EXISTEN REGISTROS A MOSTRAR !")
Escribir(" pulse ENTER para continuar
")
Sino
Para i Desde 0 Hasta indice-1 Hacer
Escribir("Mostrando Datos")
Escribir("Codigo : ") Mostrar_Cadena( A[i].codigo )
Escribir("Nombre : ") Mostrar_Cadena( A[i].nombre )
Escribir("Apelp : ") Mostrar_Cadena( A[i].apep )
Escribir("Apelm : ") Mostrar_Cadena( A[i].apem )
Escribir("Notan : ") Escribir( A[i].notan )
Escribir("Notac : ") Mostrar_Cadena ( A[i].notac )
Fin_Si
Fin_Procedimiento
Procedimiento borraralumno( )
Entero : opcion

UNMSM-FISI

.
2
UNMSM – FISI

Algorítmica I

Si ( indice > 0 )
Entonces
Hacer
Escribir("Eliminar registro...")
Escribir("Opciones :")
Escribir("* Por posicion....[1]")
Escribir("* Por codigo......[2]")
Escribir("Ingresar opcion : ") Leer(opcion)
Mientras ( opcion < 1 o opcion > 2 )
Según_Sea( opcion )
Hacer
caso 1 : borrarporposicion( )
caso 2 : borrarporcodigo( )
Fin_Segun
Sino
Escribir("! NO EXISTEN REGISTROS A BORRAR !")
Escribir(" pulse ENTER para continuar")
Fin_Si
Fin_Procedimiento
Procedimiento cambiarnota( )
Arreglo Caracter : codigo[8]
Entero : i  0, E  0
Si( indice > 0 )
Entonces
Escribir("Cambiar Notas...")
Escribir("Ingrese el codigo del alumno : ")

Leer_Cadena( codigo )

Mientras( i < indice y E = 0 )
Hacer
Si( Comparar_Cadena( A[ i ].codigo,codigo) = 0 )
Entonces
Escribir("Actualizar Datos...")
Escribir("Alumno...")
Escribir("Codigo : ") Mostrar_Cadena( A[ i ].codigo )
Escribir("Nombre : ") Mostrar_Cadena( A[ i ].nombre )
Escribir("Apep : ")
Mostrar_Cadena( A[ i ].apep )
Escribir("Apem : ")
Mostrar_Cadena( A[ i ].apem )
Escribir("Actualizar Nota...")
Escribir("Ingresar Nota (numero) : ") Leer( A[ i ].notan )
Escribir("Ingresar Nota (cadena) : ") Leer_Cadena( A[ i ].notac )
E1
Fin_Mientras
ii+1
Fin_Si
Si( E = 0 )
Entonces
Escribir("ERROR : El codigo ingresado no existe")
Sino
Escribir("! NO EXISTEN REGISTROS A MODSIICAR !")

UNMSM-FISI

.
3
UNMSM – FISI
Escribir("

Algorítmica I

pulse ENTER para continuar")

Fin_Si
Fin_Procedimiento
Procedimiento actualizarnota( )
Entero : i
Si( indice > 0 )
Entonces
Para i Desde 0 Hasta indice-1 Hacer
Si( A[ i ].notan >= 0 y A[ i ].notan <= 5 )
Entonces
Copiar_Cadena( A[ i ].notac,"NO PRESENTADO")
Sino
Si( A[ i ].notan >= 6 y A[ i ].notan <= 10 )
Entonces
Copiar_Cadena( A[ i ].notac,"SUSPENSO")
Sino
Si( A[ i ].notan >= 11 y A[ i ].notan <= 13 )
Entonces
Copiar_Cadena( A[ i ].notac,"REGULAR")
Sino
Si( A[ i ].notan >= 14 y A[ i ].notan <= 15 )
Entonces
Copiar_Cadena( A[ i ].notac,"NOTABLE")
Sino
Si( A[ i ].notan >= 16 y A[ i ].notan <= 17 )
Entonces
Copiar_Cadena( A[ i ].notac,"SOBRESALIENTE" )
Sino
Copiar_Cadena( A[ i ].notac,"MATRICULA DE HONOR" )
Fin_Si
Fin_Si
Fin_Si
Fin_Si
Fin_Si
Sino
Escribir("! NO EXISTEN REGISTROS A ACTUALIZAR !")
Escribir("
pulse ENTER para continuar
")
Fin_Si
Fin_Procedimiento
Procedimiento calcularnota( )
Entero : i
Real : suma  0, prod  1, MA, MG, n, exp
Si( indice > 0 )
Entonces
Escribir("Registro de Alumnos...")
Para i Desde 0 Hasta indice-1 Hacer
suma  suma + A[ i ].notan
prod  prod * A[ i ].notan

UNMSM-FISI

.
4
UNMSM – FISI

Algorítmica I

Fin_Para
MA  suma / indice
n  indice
exp  1.0/n
MG  Potencia(prod,exp)
Escribir("Media Artimética : ", MA )
Escribir("Media Geométrica : ", MG )
Sino
Escribir("! NO EXISTEN REGISTROS A CAMBIAR !")
Escribir(" pulse ENTER para continuar")
Fin_Si
Fin_Procedimiento
Procedimiento estadisticasnotas( )
Real
: E1  0, E2  0, E3  0, E4  0, E5  0, E6  0
Entero : i
Si(indice>0)
Entonces
Para i Desde 0 Hasta indice-1 Hacer
Si( A[ i ].notan >= 0 y A[ i ].notan <= 5)
Entonces
E1  E1 + 1
Sino
Si( A[ i ].notan >= 6 y A[ i ].notan <= 10 )
Entonces
E2  E2 + 1
Sino
Si( A[ i ].notan >= 11 y A[ i ].notan <= 13 )
Entonces
E3  E3 + 1
Sino
Si( A[ i ].notan >= 14 y A[ i ].notan <= 15 )
Entonces
E4  E4 + 1
Sino
Si( A[ i ].notan >= 16 y A[ i ].notan <= 17 )
Entonces
E5  E5 + 1
Sino
E6  E6 +1
Fin_Si
Fin_Si
Fin_Si
Fin_Si
Fin_Si Fin_Si
Fin_Para
Escribir("Estadisticas de los registros...")
Escribir("Alumno...")
Escribir("No presentado : ", E1*100/indice ," %" )
Escribir("Suspenso
: ", E2*100/indice, " %" )
Escribir("Regular
: ", E3*100/indice, " %" )
Escribir("Notable
: ", E4*100/indice, " %" )

UNMSM-FISI

.
5
UNMSM – FISI

Algorítmica I

Escribir("Sobresaliente : ", E5*100/indice, " %" )
Escribir("Matric. Honor : ", E6*100/indice, " %" )
Sino
Escribir("! NO EXISTEN REGISTROS EN EL SISTEMA !")
Escribir("
pulse ENTER para continuar
")
Fin_Si
Fin_Procedimiento
VARIABLES
Entero : opcion
ACCION Registro_Alumno
Hacer
Hacer
Escribir("---------------------")
Escribir("
MENU
")
Escribir("Añadir..........[1] ")
Escribir("Borrar..........[2] ")
Escribir("Cambiar Nota....[3] ")
Escribir("Mostrar.........[4] ")
Escribir("Actualizar......[5] ")
Escribir("Calcular........[6] ")
Escribir("Estadisticas....[7] ")
Escribir("Salir...........[8] ")
Escribir("---------------------")
Escribir("Opcion..........[ ] ")
Escribir("---------------------")
Leer( opcion )
Mientras( opcion < 1 y opcion > 8 )
Segun_Sea( opcion )
Hacer
caso 1 : aniadir_alumno( )
case 2 : borrar_alumno( )
case 3: cambiar_nota( )
case 4: mostrar_datos( )
case 5: actualizar_nota( )
case 6: calcular_nota( )
case 7: estadisticas_notas( )
case 8: Salir( )
Fin_Segun
Mientras( opcion < > 8 )
FIN_ACCION

Solucionario 2:
Registro factura
Arreglo Caracter : cod_fact[8]
Arreglo Caracter : cod_clie[8]
Real
: monto
Entero : pagado
Fin_Regsitro

UNMSM-FISI

.
6
UNMSM – FISI

Algorítmica I

factura : F[ 100 ]
Entero : indice  0
Procedimiento ingresar_datos( )
Escribir("Sistema de Registro de Facturas...")
Escribir("Ingrese los sigtes. datos :")
Escribir("Cod_Factura : ") Leer_Cadena( F[ indice ].cod_fact )
Escribir("Cod_Cliente : ") Leer_Cadena( F[ indice ].cod_clie )
Escribir("Monto
: ")
Leer( F[ indice ].monto )
Escribir("Estado (0/1): ") Leer( F[ indice ].pagado )
indice  indice + 1
Fin_Procedimiento
Procedimiento calcular_deuda( )
Entero : i
Real : deuda  0
Si( indice > 0 )
Entonces
Para i Desde 0 Hasta indice-1 Hacer
Si( F[ i ].pagado = 1 )
Entonces
deuda  deuda + F[ i ].monto
Fin_Si
Escribir("El monto de las Facturas sin cobrar asciende a : ", deuda )
Sino
Escribir("! NO EXISTEN FACTURAS EN EL SISTEMA !")
Fin_Si
Fin_Procedimiento
Procedimiento calcular_monto( )
Entero : i
Real : cancelado  0
Si(indice>0)
Entonces
Para i Desde 0 Hasta indice-1 Hacer
Si( F[ i ].pagado = 0 )
Entonces
Cancelado  cancelado + F[ i ].monto
Fin_Si
Fin_Para
Escribir("El monto de las Facturas cobradas asciende a : ", cancelado )
Sino
Escribir("! NO EXISTEN FACTURAS EN EL SISTEMA !")
Fin_Si
Fin_Procedimiento
VARIABLES
Entero : opcion

UNMSM-FISI

.
7
UNMSM – FISI

Algorítmica I

ACCION Facturacion
Hacer
Hacer
Escribir("---------------------")
Escribir("
MENU
")
Escribir("Ingresar Datos......[1] ")
Escribir("Calcular Deuda......[2] ")
Escribir("Calcular Monto......[3] ")
Escribir("Salir....................[4] ")
Escribir("---------------------")
Escribir("Opcion..........[ ] ")
Escribir("---------------------")
Leer( opcion )
Mientras( opcion < 1 y opcion > 4 )
Segun_Sea( opcion )
Hacer
caso 1 : ingresar_datos( )
case 2 : calcular_deuda( )
case 3 : calcular_monto( )
case 4 : Salir( )
Fin_Segun
Mientras( opcion < > 4 )
FIN_ACCION

Solucionario 3:
Registro alumno
Arreglo Carácter :
Arreglo Carácter :
Arreglo Carácter :
Real : pro_alu
Entero : cre_alu
Arreglo Carácter :
Fin_Registro

cod_alu[ 9 ]
nom_alu[15 ]
ape_alu[ 15 ]
con_alu[ 15 ]

Registro seccion
alumno : A[20]
Entero : indice
Fin_Registro
Registro grado
seccion : S[3]
Fin_Registro
grado : G[ 5 ]
Procedimiento actualizar_indice( )
Entero : i, j
Para i Desde 0 Hasta 4 Hacer
Para j Desde 0 Hasta 2 Hacer

UNMSM-FISI

.
8
UNMSM – FISI

Algorítmica I

G[ i ].S[ j ].indice  0
Fin_Para
Fin_Para
Fin_Procedimiento
Procedimiento ingresar_alumno( Entero : gr, Entero : se )
Entero : indi , nota
indi  G[gr-1].S[se-1].indice
Escribir("Sistema de Registro del Colegio....")
Escribir("Ingrese los sigtes. datos del Alumno :")
Escribir("Codigo : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].cod_alu )
Escribir("Nombres : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].nom_alu )
Escribir("Apellidos : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].ape_alu )
Escribir("Promedio P: ") Leer( G[gr-1].S[se-1].A[indi].pro_alu )
Escribir("N Creditos: ") Leer( G[gr-1].S[se-1].A[indi].cre_alu )
nota  G[gr-1].S[se-1].A[indi].pro_alu
Si( nota = 0 )
Entonces
Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "RETIRADO" )
Sino
Si( nota > 0 y nota < 13 )
Entonces
Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "NO REGULAR" )
Sino
Si( nota > 12 y nota < 22 )
Entonces
Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "REGULAR" )
Sino
Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "EXCEPCIONAL" )
Fin_Si
Fin_Si
Fin_Si
G[gr-1].S[se-1].indice  G[gr-1].S[se-1].indice + 1
Fin_Procedimiento
Procedimiento seleccionar_alumno( Entero : gr , Entero : se )
Arreglo Caracter : cod[ 9 ]
Entero : indi , i , E
indi  G[gr-1].S[se-1].indice
i0
E0
Si( indi > 0 )
Entonces
Escribir("Ingrese el codigo del alumno : ") Leer_Cadena( cod )
Mientras( i < indice y E = 0 )
Hacer
Si( Comparar_Cadena( G[gr-1].S[se-1].A[i].cod_alu , cod ) = 0 )
Entonces

UNMSM-FISI

.
9
UNMSM – FISI

Algorítmica I

E1
Fin_Si
ii+1
Fin_Mientras
Si( E = 1 )
Entonces
Escribir("Sistema de Registro del Colegio....")
Escribir("Mostrando los datos del Alumno :")
Escribir("Codigo : ") Mostrar_Cadena( G[gr-1].S[se-1].A[indi-1].cod_alu )
Escribir("Nombres : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].nom_alu )
Escribir("Apellidos : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].ape_alu )
Escribir("Promedio P: ") Escribir(G[gr-1].S[se-1].A[indi-1].pro_al )
Escribir("N Creditos: ") Escribir(G[gr-1].S[se-1].A[indi-1].cre_al )
Escribir("Condicion : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].con_alu )
Sino
Escribir("! ERROR : El codigo ingresado no existe !")
Fin_Si
Sino
Escribir("! NO EXISTE NINGUN REGISTRO A MOSTRAR !")
Fin_si
Fin_Procedimiento
VARIABLES
Entero : opcion
ACCION Registrar_Alumnos
Hacer
Hacer
Escribir("---------------------")
Escribir("
MENU
")
Escribir("Ingresar alumno......[1] ")
Escribir("Seleccionar alumno..[2] ")
Escribir("Salir.......................[3] ")
Escribir("---------------------")
Escribir("Opcion..........[ ] ")
Escribir("---------------------")
Leer( opcion )
Mientras( opcion < 1 y opcion > 3 )
Segun_Sea( opcion )
Hacer
caso 1 : ingresar_alumno( )
case 2 : seleccionar_alumno( )
case 3 : Salir( )
Fin_Segun
Mientras( opcion < > 3 )
FIN_ACCION

UNMSM-FISI

.
10
UNMSM – FISI

Algorítmica I

Solucionario 4:
Registro multas
Arreglo Caracter : cod_veh[8]
Entero : num_cua
Real : vel_max
Real : vel_veh
Real : imp_mul
Fin_Registro
multas : M[ 50 ]
Entero : indice  0
Procedimiento ingresar_multa( )
Escribir("Sistema de Registro del Multas de Vehiculos..." )
Escribir("Ingrese los sigtes. datos del Vehiculo :" )
Escribir("Codigo : ") Leer_Cadena( M[indice].cod_veh )
Escribir("Cuadrante : ") Leer( M[indice].num_cua )
Escribir("Velocidad : ") Leer( M[indice].vel_veh )
Escribir("Veloc Max : ") Leer( M[indice].vel_max )
Escribir("Impuesto : ")
Leer( M[indice].imp_mul )
indice  indice + 1
Fin_Procedimiento
Procedimiento mostrar_forma1( )
Entero : i
Si( indice > 0 )
Entonces
Escribir("Infracciones a los Limites de Velocidad")
Escribir("Vehiculo
Registro(Km/h)
Limite
Para i Desde 0 Hasta indice-1 Hacer
Mostrar_Cadena( M[ i ].cod_veh )
Escribir( M[ i ].vel_veh )
Escribir( M[i].vel_max )
Escribir( M[i].imp_mul )
Fin_Para
Sino
Escribir(" NO EXISTEN INFRACCIONES REGISTRADAS ")
Fin_Si

")

Fin_Procedimiento
Procedimiento mostrar_cuadrante( Entero : num )
Entero : i
Si( indice > 0 )
Entonces
Escribir("Infracciones a los Limites de Velocidad")
Escribir("Vehiculo
Registro(Km/h)
Limite
Para i Desde 0 Hasta indice-1 Hacer
Si( M[ i ].num_cua = num )
Entonces
Mostrar_Cadena( M[ i ].cod_veh )

UNMSM-FISI

")

.
11
UNMSM – FISI

Algorítmica I

Escribir( M[ i ].vel_veh )
Escribir( M[i].vel_max )
Escribir( M[i].imp_mul )
Fin_Si
Fin_Para
Sino
Escribir(" NO EXISTEN INFRACCIONES REGISTRADAS ")
Fin_Si
Fin_Procedimiento
Procedimiento mostrar_forma2( )
Entero : cuad
Escribir("Ingrese el numero del cuadrante")

Leer ( cuad )

mostrar_cuadrante( cuad )
Fin_Procedimiento
VARIABLES
Entero : opcion
ACCION Registrar_Multas
Hacer
Hacer
Escribir("---------------------")
Escribir("
MENU
")
Escribir("Ingresar multa......[1] ")
Escribir("Mostrar forma 1....[2] ")
Escribir("Mostrar forma 2....[3] ")
Escribir("Salir....................[4] ")
Escribir("---------------------")
Escribir("Opcion..................[ ] ")
Escribir("---------------------")
Leer( opcion )
Mientras( opcion < 1 y opcion > 4 )
Segun_Sea( opcion )
Hacer
caso 1 : ingresar_multa( )
case 2 : mostrar_forma1( )
case 3 : mostrar_forma2( )
case 4 : Salir( )
Fin_Segun
Mientras( opcion < > 4 )
FIN_ACCION

UNMSM-FISI

.
12

Weitere ähnliche Inhalte

Andere mochten auch

Practica2 bbdd er
Practica2 bbdd erPractica2 bbdd er
Practica2 bbdd erJulio 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
 
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 clase03 practica 3
Algoritmica i clase03 practica 3Algoritmica i clase03 practica 3
Algoritmica i clase03 practica 3Julio 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
 
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 clase04 practica 4 solucionario
Algoritmica i clase04 practica 4 solucionarioAlgoritmica i clase04 practica 4 solucionario
Algoritmica i clase04 practica 4 solucionarioJulio 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
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de phpJulio Pari
 
6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorioJulio Pari
 
Unmsm fisi - problema de la asignación - io1 cl14 asignacion
Unmsm   fisi - problema de la asignación - io1 cl14 asignacionUnmsm   fisi - problema de la asignación - io1 cl14 asignacion
Unmsm fisi - problema de la asignación - io1 cl14 asignacionJulio Pari
 
Taller de Proyectos II UNMSM Julio Pari
Taller de Proyectos II UNMSM Julio PariTaller de Proyectos II UNMSM Julio Pari
Taller de Proyectos II UNMSM Julio PariJulio Pari
 
Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Julio Pari
 
Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Julio Pari
 
Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Julio Pari
 
Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Julio Pari
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
Silabo io1 2013 0
Silabo io1 2013 0Silabo io1 2013 0
Silabo io1 2013 0Julio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Algoritmica i clase02 practica 2 solucionario
Algoritmica i clase02 practica 2 solucionarioAlgoritmica i clase02 practica 2 solucionario
Algoritmica i clase02 practica 2 solucionarioJulio Pari
 

Andere mochten auch (20)

Practica2 bbdd er
Practica2 bbdd erPractica2 bbdd er
Practica2 bbdd er
 
Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioAlgoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionario
 
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 clase03 practica 3
Algoritmica i clase03 practica 3Algoritmica i clase03 practica 3
Algoritmica i clase03 practica 3
 
Algoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionarioAlgoritmica i clase03 practica 3 solucionario
Algoritmica i clase03 practica 3 solucionario
 
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 clase04 practica 4 solucionario
Algoritmica i clase04 practica 4 solucionarioAlgoritmica i clase04 practica 4 solucionario
Algoritmica i clase04 practica 4 solucionario
 
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
 
Php02 fundamentos de php
Php02 fundamentos de phpPhp02 fundamentos de php
Php02 fundamentos de php
 
6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio6 t218162 promedios-sin-sustitutorio
6 t218162 promedios-sin-sustitutorio
 
Unmsm fisi - problema de la asignación - io1 cl14 asignacion
Unmsm   fisi - problema de la asignación - io1 cl14 asignacionUnmsm   fisi - problema de la asignación - io1 cl14 asignacion
Unmsm fisi - problema de la asignación - io1 cl14 asignacion
 
Taller de Proyectos II UNMSM Julio Pari
Taller de Proyectos II UNMSM Julio PariTaller de Proyectos II UNMSM Julio Pari
Taller de Proyectos II UNMSM Julio Pari
 
Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7Algoritmica i clase07 practica 7
Algoritmica i clase07 practica 7
 
Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5Algoritmica i clase05 practica 5
Algoritmica i clase05 practica 5
 
Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6Algoritmica i clase06 practica 6
Algoritmica i clase06 practica 6
 
Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2Algoritmica i clase02 practica 2
Algoritmica i clase02 practica 2
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Silabo io1 2013 0
Silabo io1 2013 0Silabo io1 2013 0
Silabo io1 2013 0
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Algoritmica i clase02 practica 2 solucionario
Algoritmica i clase02 practica 2 solucionarioAlgoritmica i clase02 practica 2 solucionario
Algoritmica i clase02 practica 2 solucionario
 

Ähnlich wie Algoritmica i clase07 practica 7 solucionario

Ähnlich wie Algoritmica i clase07 practica 7 solucionario (20)

Ejemplos en PSeint
Ejemplos en PSeintEjemplos en PSeint
Ejemplos en PSeint
 
ALGORITMO RESUELTOS EN PSEINT
ALGORITMO RESUELTOS EN PSEINTALGORITMO RESUELTOS EN PSEINT
ALGORITMO RESUELTOS EN PSEINT
 
Guia
GuiaGuia
Guia
 
Metodologia de la Programción
Metodologia de la ProgramciónMetodologia de la Programción
Metodologia de la Programción
 
Ejercicios propuesto 3
Ejercicios propuesto 3Ejercicios propuesto 3
Ejercicios propuesto 3
 
Algunos algoritmos1
Algunos algoritmos1Algunos algoritmos1
Algunos algoritmos1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
1. algoritmos
1. algoritmos1. algoritmos
1. algoritmos
 
calculadora en c sharp
calculadora en c sharpcalculadora en c sharp
calculadora en c sharp
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2Fundamentosdeprogramacion 2
Fundamentosdeprogramacion 2
 
Sia i cap4
Sia i cap4Sia i cap4
Sia i cap4
 
Sesion02
Sesion02Sesion02
Sesion02
 
Arreglos
ArreglosArreglos
Arreglos
 
52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigo52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigo
 
Tutorial p seint
Tutorial p seintTutorial p seint
Tutorial p seint
 
4 libro fundamentos _condicional_oficio_2003_para_publicars_slidesharedoc
4 libro fundamentos _condicional_oficio_2003_para_publicars_slidesharedoc4 libro fundamentos _condicional_oficio_2003_para_publicars_slidesharedoc
4 libro fundamentos _condicional_oficio_2003_para_publicars_slidesharedoc
 
Getchars
GetcharsGetchars
Getchars
 
UNIVERSIDAD CENTRAL DEL ECUADOR CAMILA ESCOBAR LOPEZ GETCHARS
UNIVERSIDAD CENTRAL DEL ECUADOR CAMILA ESCOBAR LOPEZ GETCHARSUNIVERSIDAD CENTRAL DEL ECUADOR CAMILA ESCOBAR LOPEZ GETCHARS
UNIVERSIDAD CENTRAL DEL ECUADOR CAMILA ESCOBAR LOPEZ GETCHARS
 

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 clase07 practica 7 solucionario

  • 1. UNMSM – FISI Algorítmica I Solucionario - Práctica N° 7 Registros Solucionario 1: Registro alumno Arreglo caracter Arreglo caracter Arreglo caracter Arreglo caracter Arreglo caracter Entero Fin_Registro : : : : : : nombre[ 10 ] ape_p[ 10 ] ape_m[ 10 ] codigo[ 8 ] nota_c[ 20 ] nota_n alumno A[ 50 ] Entero : indice  0 Procedimiento aniadir_alumno( ) Escribir("Ingresar datos del alumno") Escribir("Nombre : ") Leer_Cadena(A[indice].nombre) Escribir("Ape. Paterno : ") Leer_Cadena(A[indice].ape_p) Escribir("Ape. Materno : ") Leer_Cadena(A[indice].ape_m) Escribir("Codigo : ") Leer_Cadena(A[indice].codigo) Escribir("Nota (numero): ") Leer(A[indice].nota_n Escribir("Nota (cadena): ") Leer_Cadena(A[indice].nota_c) indice  indice + 1 Fin_Procedimiento Procedimiento borrarporposicion( ) Entero posicion, i  0 Escribir("Ingrese la posición del alumno : ") Leer(posición) posición  posicion – 1 Si( posición >= 0 y posición < indice ) Entonces Para i Desde posición Hasta indice-2 Hacer Copiar_Cadena( A[i].nombre , A[i+1].nombre) Copiar_Cadena( A[i].apep , A[i+1].apep) Copiar_Cadena( A[i].apem , A[i+1].apem) Copiar_Cadena( A[i].codigo , A[i+1].codigo) A[i].notan  A[i+1].notan Copiar_Cadena(A[i].notac , A[i+1].notac) Fin_Para indice  indice - 1 } Sino Escribir("! ERROR : La posicion ingresada no existe !") Escribir(" pulse ENTER para continuar ") Fin_Si Fin_Procedimiento UNMSM-FISI . 1
  • 2. UNMSM – FISI Algorítmica I Procedimiento borrarporcodigo( ) Arreglo Entero : codigo[8] Entero : i  0, j, E  0 Escribir("Ingrese el codigo del alumno : ") Leer_Cadena(codigo) Mientras( i < indice y E = 0 ) Hacer Si( Comparar_Cadena( A[i].codigo , codigo) = 0 ) Entonces Para j Desde i Hasta indice-2 Hacer Copiar_Cadena(A[j].nombre , A[j+1].nombre) Copiar_Cadena(A[j].apep,A[j+1].apep) Copiar_Cadena(A[j].apem,A[j+1].apem) Copiar_Cadena(A[j].codigo,A[j+1].codigo) A[j].notan=A[j+1].notan; Copiar_Cadena(A[j].notac,A[j+1].notac) Fin_Para indice  indice - 1 E1 Fin_Si ii+1 Fin_Mientras Si( E = 0 ) Entonces Escribir("ERROR : El codigo ingresado no existe") Fin_Si Fin_Procedimiento Procedimiento mostrardatos( ) Entero : i Si( indice = 0 ) Entonces Escribir("! NO EXISTEN REGISTROS A MOSTRAR !") Escribir(" pulse ENTER para continuar ") Sino Para i Desde 0 Hasta indice-1 Hacer Escribir("Mostrando Datos") Escribir("Codigo : ") Mostrar_Cadena( A[i].codigo ) Escribir("Nombre : ") Mostrar_Cadena( A[i].nombre ) Escribir("Apelp : ") Mostrar_Cadena( A[i].apep ) Escribir("Apelm : ") Mostrar_Cadena( A[i].apem ) Escribir("Notan : ") Escribir( A[i].notan ) Escribir("Notac : ") Mostrar_Cadena ( A[i].notac ) Fin_Si Fin_Procedimiento Procedimiento borraralumno( ) Entero : opcion UNMSM-FISI . 2
  • 3. UNMSM – FISI Algorítmica I Si ( indice > 0 ) Entonces Hacer Escribir("Eliminar registro...") Escribir("Opciones :") Escribir("* Por posicion....[1]") Escribir("* Por codigo......[2]") Escribir("Ingresar opcion : ") Leer(opcion) Mientras ( opcion < 1 o opcion > 2 ) Según_Sea( opcion ) Hacer caso 1 : borrarporposicion( ) caso 2 : borrarporcodigo( ) Fin_Segun Sino Escribir("! NO EXISTEN REGISTROS A BORRAR !") Escribir(" pulse ENTER para continuar") Fin_Si Fin_Procedimiento Procedimiento cambiarnota( ) Arreglo Caracter : codigo[8] Entero : i  0, E  0 Si( indice > 0 ) Entonces Escribir("Cambiar Notas...") Escribir("Ingrese el codigo del alumno : ") Leer_Cadena( codigo ) Mientras( i < indice y E = 0 ) Hacer Si( Comparar_Cadena( A[ i ].codigo,codigo) = 0 ) Entonces Escribir("Actualizar Datos...") Escribir("Alumno...") Escribir("Codigo : ") Mostrar_Cadena( A[ i ].codigo ) Escribir("Nombre : ") Mostrar_Cadena( A[ i ].nombre ) Escribir("Apep : ") Mostrar_Cadena( A[ i ].apep ) Escribir("Apem : ") Mostrar_Cadena( A[ i ].apem ) Escribir("Actualizar Nota...") Escribir("Ingresar Nota (numero) : ") Leer( A[ i ].notan ) Escribir("Ingresar Nota (cadena) : ") Leer_Cadena( A[ i ].notac ) E1 Fin_Mientras ii+1 Fin_Si Si( E = 0 ) Entonces Escribir("ERROR : El codigo ingresado no existe") Sino Escribir("! NO EXISTEN REGISTROS A MODSIICAR !") UNMSM-FISI . 3
  • 4. UNMSM – FISI Escribir(" Algorítmica I pulse ENTER para continuar") Fin_Si Fin_Procedimiento Procedimiento actualizarnota( ) Entero : i Si( indice > 0 ) Entonces Para i Desde 0 Hasta indice-1 Hacer Si( A[ i ].notan >= 0 y A[ i ].notan <= 5 ) Entonces Copiar_Cadena( A[ i ].notac,"NO PRESENTADO") Sino Si( A[ i ].notan >= 6 y A[ i ].notan <= 10 ) Entonces Copiar_Cadena( A[ i ].notac,"SUSPENSO") Sino Si( A[ i ].notan >= 11 y A[ i ].notan <= 13 ) Entonces Copiar_Cadena( A[ i ].notac,"REGULAR") Sino Si( A[ i ].notan >= 14 y A[ i ].notan <= 15 ) Entonces Copiar_Cadena( A[ i ].notac,"NOTABLE") Sino Si( A[ i ].notan >= 16 y A[ i ].notan <= 17 ) Entonces Copiar_Cadena( A[ i ].notac,"SOBRESALIENTE" ) Sino Copiar_Cadena( A[ i ].notac,"MATRICULA DE HONOR" ) Fin_Si Fin_Si Fin_Si Fin_Si Fin_Si Sino Escribir("! NO EXISTEN REGISTROS A ACTUALIZAR !") Escribir(" pulse ENTER para continuar ") Fin_Si Fin_Procedimiento Procedimiento calcularnota( ) Entero : i Real : suma  0, prod  1, MA, MG, n, exp Si( indice > 0 ) Entonces Escribir("Registro de Alumnos...") Para i Desde 0 Hasta indice-1 Hacer suma  suma + A[ i ].notan prod  prod * A[ i ].notan UNMSM-FISI . 4
  • 5. UNMSM – FISI Algorítmica I Fin_Para MA  suma / indice n  indice exp  1.0/n MG  Potencia(prod,exp) Escribir("Media Artimética : ", MA ) Escribir("Media Geométrica : ", MG ) Sino Escribir("! NO EXISTEN REGISTROS A CAMBIAR !") Escribir(" pulse ENTER para continuar") Fin_Si Fin_Procedimiento Procedimiento estadisticasnotas( ) Real : E1  0, E2  0, E3  0, E4  0, E5  0, E6  0 Entero : i Si(indice>0) Entonces Para i Desde 0 Hasta indice-1 Hacer Si( A[ i ].notan >= 0 y A[ i ].notan <= 5) Entonces E1  E1 + 1 Sino Si( A[ i ].notan >= 6 y A[ i ].notan <= 10 ) Entonces E2  E2 + 1 Sino Si( A[ i ].notan >= 11 y A[ i ].notan <= 13 ) Entonces E3  E3 + 1 Sino Si( A[ i ].notan >= 14 y A[ i ].notan <= 15 ) Entonces E4  E4 + 1 Sino Si( A[ i ].notan >= 16 y A[ i ].notan <= 17 ) Entonces E5  E5 + 1 Sino E6  E6 +1 Fin_Si Fin_Si Fin_Si Fin_Si Fin_Si Fin_Si Fin_Para Escribir("Estadisticas de los registros...") Escribir("Alumno...") Escribir("No presentado : ", E1*100/indice ," %" ) Escribir("Suspenso : ", E2*100/indice, " %" ) Escribir("Regular : ", E3*100/indice, " %" ) Escribir("Notable : ", E4*100/indice, " %" ) UNMSM-FISI . 5
  • 6. UNMSM – FISI Algorítmica I Escribir("Sobresaliente : ", E5*100/indice, " %" ) Escribir("Matric. Honor : ", E6*100/indice, " %" ) Sino Escribir("! NO EXISTEN REGISTROS EN EL SISTEMA !") Escribir(" pulse ENTER para continuar ") Fin_Si Fin_Procedimiento VARIABLES Entero : opcion ACCION Registro_Alumno Hacer Hacer Escribir("---------------------") Escribir(" MENU ") Escribir("Añadir..........[1] ") Escribir("Borrar..........[2] ") Escribir("Cambiar Nota....[3] ") Escribir("Mostrar.........[4] ") Escribir("Actualizar......[5] ") Escribir("Calcular........[6] ") Escribir("Estadisticas....[7] ") Escribir("Salir...........[8] ") Escribir("---------------------") Escribir("Opcion..........[ ] ") Escribir("---------------------") Leer( opcion ) Mientras( opcion < 1 y opcion > 8 ) Segun_Sea( opcion ) Hacer caso 1 : aniadir_alumno( ) case 2 : borrar_alumno( ) case 3: cambiar_nota( ) case 4: mostrar_datos( ) case 5: actualizar_nota( ) case 6: calcular_nota( ) case 7: estadisticas_notas( ) case 8: Salir( ) Fin_Segun Mientras( opcion < > 8 ) FIN_ACCION Solucionario 2: Registro factura Arreglo Caracter : cod_fact[8] Arreglo Caracter : cod_clie[8] Real : monto Entero : pagado Fin_Regsitro UNMSM-FISI . 6
  • 7. UNMSM – FISI Algorítmica I factura : F[ 100 ] Entero : indice  0 Procedimiento ingresar_datos( ) Escribir("Sistema de Registro de Facturas...") Escribir("Ingrese los sigtes. datos :") Escribir("Cod_Factura : ") Leer_Cadena( F[ indice ].cod_fact ) Escribir("Cod_Cliente : ") Leer_Cadena( F[ indice ].cod_clie ) Escribir("Monto : ") Leer( F[ indice ].monto ) Escribir("Estado (0/1): ") Leer( F[ indice ].pagado ) indice  indice + 1 Fin_Procedimiento Procedimiento calcular_deuda( ) Entero : i Real : deuda  0 Si( indice > 0 ) Entonces Para i Desde 0 Hasta indice-1 Hacer Si( F[ i ].pagado = 1 ) Entonces deuda  deuda + F[ i ].monto Fin_Si Escribir("El monto de las Facturas sin cobrar asciende a : ", deuda ) Sino Escribir("! NO EXISTEN FACTURAS EN EL SISTEMA !") Fin_Si Fin_Procedimiento Procedimiento calcular_monto( ) Entero : i Real : cancelado  0 Si(indice>0) Entonces Para i Desde 0 Hasta indice-1 Hacer Si( F[ i ].pagado = 0 ) Entonces Cancelado  cancelado + F[ i ].monto Fin_Si Fin_Para Escribir("El monto de las Facturas cobradas asciende a : ", cancelado ) Sino Escribir("! NO EXISTEN FACTURAS EN EL SISTEMA !") Fin_Si Fin_Procedimiento VARIABLES Entero : opcion UNMSM-FISI . 7
  • 8. UNMSM – FISI Algorítmica I ACCION Facturacion Hacer Hacer Escribir("---------------------") Escribir(" MENU ") Escribir("Ingresar Datos......[1] ") Escribir("Calcular Deuda......[2] ") Escribir("Calcular Monto......[3] ") Escribir("Salir....................[4] ") Escribir("---------------------") Escribir("Opcion..........[ ] ") Escribir("---------------------") Leer( opcion ) Mientras( opcion < 1 y opcion > 4 ) Segun_Sea( opcion ) Hacer caso 1 : ingresar_datos( ) case 2 : calcular_deuda( ) case 3 : calcular_monto( ) case 4 : Salir( ) Fin_Segun Mientras( opcion < > 4 ) FIN_ACCION Solucionario 3: Registro alumno Arreglo Carácter : Arreglo Carácter : Arreglo Carácter : Real : pro_alu Entero : cre_alu Arreglo Carácter : Fin_Registro cod_alu[ 9 ] nom_alu[15 ] ape_alu[ 15 ] con_alu[ 15 ] Registro seccion alumno : A[20] Entero : indice Fin_Registro Registro grado seccion : S[3] Fin_Registro grado : G[ 5 ] Procedimiento actualizar_indice( ) Entero : i, j Para i Desde 0 Hasta 4 Hacer Para j Desde 0 Hasta 2 Hacer UNMSM-FISI . 8
  • 9. UNMSM – FISI Algorítmica I G[ i ].S[ j ].indice  0 Fin_Para Fin_Para Fin_Procedimiento Procedimiento ingresar_alumno( Entero : gr, Entero : se ) Entero : indi , nota indi  G[gr-1].S[se-1].indice Escribir("Sistema de Registro del Colegio....") Escribir("Ingrese los sigtes. datos del Alumno :") Escribir("Codigo : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].cod_alu ) Escribir("Nombres : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].nom_alu ) Escribir("Apellidos : ") Leer_Cadena( G[gr-1].S[se-1].A[indi].ape_alu ) Escribir("Promedio P: ") Leer( G[gr-1].S[se-1].A[indi].pro_alu ) Escribir("N Creditos: ") Leer( G[gr-1].S[se-1].A[indi].cre_alu ) nota  G[gr-1].S[se-1].A[indi].pro_alu Si( nota = 0 ) Entonces Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "RETIRADO" ) Sino Si( nota > 0 y nota < 13 ) Entonces Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "NO REGULAR" ) Sino Si( nota > 12 y nota < 22 ) Entonces Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "REGULAR" ) Sino Copiar_Cadena( G[gr-1].S[se-1].A[indi].con_alu , "EXCEPCIONAL" ) Fin_Si Fin_Si Fin_Si G[gr-1].S[se-1].indice  G[gr-1].S[se-1].indice + 1 Fin_Procedimiento Procedimiento seleccionar_alumno( Entero : gr , Entero : se ) Arreglo Caracter : cod[ 9 ] Entero : indi , i , E indi  G[gr-1].S[se-1].indice i0 E0 Si( indi > 0 ) Entonces Escribir("Ingrese el codigo del alumno : ") Leer_Cadena( cod ) Mientras( i < indice y E = 0 ) Hacer Si( Comparar_Cadena( G[gr-1].S[se-1].A[i].cod_alu , cod ) = 0 ) Entonces UNMSM-FISI . 9
  • 10. UNMSM – FISI Algorítmica I E1 Fin_Si ii+1 Fin_Mientras Si( E = 1 ) Entonces Escribir("Sistema de Registro del Colegio....") Escribir("Mostrando los datos del Alumno :") Escribir("Codigo : ") Mostrar_Cadena( G[gr-1].S[se-1].A[indi-1].cod_alu ) Escribir("Nombres : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].nom_alu ) Escribir("Apellidos : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].ape_alu ) Escribir("Promedio P: ") Escribir(G[gr-1].S[se-1].A[indi-1].pro_al ) Escribir("N Creditos: ") Escribir(G[gr-1].S[se-1].A[indi-1].cre_al ) Escribir("Condicion : ") Mostrar_Cadena(G[gr-1].S[se-1].A[indi-1].con_alu ) Sino Escribir("! ERROR : El codigo ingresado no existe !") Fin_Si Sino Escribir("! NO EXISTE NINGUN REGISTRO A MOSTRAR !") Fin_si Fin_Procedimiento VARIABLES Entero : opcion ACCION Registrar_Alumnos Hacer Hacer Escribir("---------------------") Escribir(" MENU ") Escribir("Ingresar alumno......[1] ") Escribir("Seleccionar alumno..[2] ") Escribir("Salir.......................[3] ") Escribir("---------------------") Escribir("Opcion..........[ ] ") Escribir("---------------------") Leer( opcion ) Mientras( opcion < 1 y opcion > 3 ) Segun_Sea( opcion ) Hacer caso 1 : ingresar_alumno( ) case 2 : seleccionar_alumno( ) case 3 : Salir( ) Fin_Segun Mientras( opcion < > 3 ) FIN_ACCION UNMSM-FISI . 10
  • 11. UNMSM – FISI Algorítmica I Solucionario 4: Registro multas Arreglo Caracter : cod_veh[8] Entero : num_cua Real : vel_max Real : vel_veh Real : imp_mul Fin_Registro multas : M[ 50 ] Entero : indice  0 Procedimiento ingresar_multa( ) Escribir("Sistema de Registro del Multas de Vehiculos..." ) Escribir("Ingrese los sigtes. datos del Vehiculo :" ) Escribir("Codigo : ") Leer_Cadena( M[indice].cod_veh ) Escribir("Cuadrante : ") Leer( M[indice].num_cua ) Escribir("Velocidad : ") Leer( M[indice].vel_veh ) Escribir("Veloc Max : ") Leer( M[indice].vel_max ) Escribir("Impuesto : ") Leer( M[indice].imp_mul ) indice  indice + 1 Fin_Procedimiento Procedimiento mostrar_forma1( ) Entero : i Si( indice > 0 ) Entonces Escribir("Infracciones a los Limites de Velocidad") Escribir("Vehiculo Registro(Km/h) Limite Para i Desde 0 Hasta indice-1 Hacer Mostrar_Cadena( M[ i ].cod_veh ) Escribir( M[ i ].vel_veh ) Escribir( M[i].vel_max ) Escribir( M[i].imp_mul ) Fin_Para Sino Escribir(" NO EXISTEN INFRACCIONES REGISTRADAS ") Fin_Si ") Fin_Procedimiento Procedimiento mostrar_cuadrante( Entero : num ) Entero : i Si( indice > 0 ) Entonces Escribir("Infracciones a los Limites de Velocidad") Escribir("Vehiculo Registro(Km/h) Limite Para i Desde 0 Hasta indice-1 Hacer Si( M[ i ].num_cua = num ) Entonces Mostrar_Cadena( M[ i ].cod_veh ) UNMSM-FISI ") . 11
  • 12. UNMSM – FISI Algorítmica I Escribir( M[ i ].vel_veh ) Escribir( M[i].vel_max ) Escribir( M[i].imp_mul ) Fin_Si Fin_Para Sino Escribir(" NO EXISTEN INFRACCIONES REGISTRADAS ") Fin_Si Fin_Procedimiento Procedimiento mostrar_forma2( ) Entero : cuad Escribir("Ingrese el numero del cuadrante") Leer ( cuad ) mostrar_cuadrante( cuad ) Fin_Procedimiento VARIABLES Entero : opcion ACCION Registrar_Multas Hacer Hacer Escribir("---------------------") Escribir(" MENU ") Escribir("Ingresar multa......[1] ") Escribir("Mostrar forma 1....[2] ") Escribir("Mostrar forma 2....[3] ") Escribir("Salir....................[4] ") Escribir("---------------------") Escribir("Opcion..................[ ] ") Escribir("---------------------") Leer( opcion ) Mientras( opcion < 1 y opcion > 4 ) Segun_Sea( opcion ) Hacer caso 1 : ingresar_multa( ) case 2 : mostrar_forma1( ) case 3 : mostrar_forma2( ) case 4 : Salir( ) Fin_Segun Mientras( opcion < > 4 ) FIN_ACCION UNMSM-FISI . 12