You are on page 1of 5

CURSO: ALGORITMOS Y ESTRUCTURA DE DATOS

SOLUCIONARIO: PC2 2013-I

http://diasslibres.blogspot.com/ PROBLEMA 1. Disee un algoritmo que permita almacenar para un conjunto de n alumnos (n<100), la siguiente informacin: cdigo (entero de 4 dgitos) y los promedios finales de los cursos que llev (sabiendo que a lo ms son 6 cursos, es decir no todos los alumnos llevaron los cursos). Luego se pide: a) Presente los cdigos de los alumnos que por lo menos tengan cuatro cursos aprobados. b) Presente los cdigos de los alumnos ordenados en forma creciente respecto al nmero de cursos desaprobados; en caso de igual nmero de cursos desaprobados, ordenados en forma creciente respecto al promedio de los cursos de cada alumno. SOLUCIN: Algoritmo problema_1 Var ind,curaprob,curdesaprob,cod:Arreglo[1..100] de entero promfin:Arreglo[1..100] prom:Arreglo[1..100,1..6] de real aux,cantcur,n,aux,i,j:entero promfin:real Inicio repetir leer(n) hasta_que(n>0^n<100) desde i1 hasta n repetir leer(cod[i]) hasta_que(cod[i]>=1000^cod[i]=<9999) repetir leer(cantcur) (*cantidad de cursos*) hasta_que(cantcur>0^cantcur=<6) promfin0.0 (*para el promedio de los cursos*) curaprob[i]0 (*para contabilizar los cursos aprobados*) curdesaprob[i]0 (*para contabilizar los cursos desaprobados*) desde j1 hasta cantcur repetir leer(prom[i,j]) hasta_que(prom[i,j]>=0.0^prom[i,j]=<20.0) promfinpromfin+prom[i,j]/cantcur si(prom[i,j]>=10.0) entonces curaprob[i]curaprob[i]+1 sino curdesaprob[i]curdesaprob[i]+1 fin_si fin_desde promfin[i,j]promfin fin_desde desde i1 hasta n ind[i]i fin_desde desde i1 hasta n (*rpta:a*) si(curaprob[i]>=4) entonces escribir("Cdigo:"cod[i]) fin_si fin_desde desde i1 hasta n-1 desde ji+1 hasta n si(cod[i]>cod[j]) entonces auxind[i]

CURSO: ALGORITMOS Y ESTRUCTURA DE DATOS

SOLUCIONARIO: PC2 2013-I

http://diasslibres.blogspot.com/ ind[i]ind[j] ind[j]aux sino si(cod[i]=cod[j]) entonces si(promfin[ind[i]]<promfin[ind[j]]) entonces auxind[i] ind[i]ind[j] ind[j]aux fin_si fin_si fin_si fin_desde fin_desde desde i1 hasta n (*rpta:b*) escribir ("Cdigo:"cod[ind[i]]) fin_desde Fin

CURSO: ALGORITMOS Y ESTRUCTURA DE DATOS

SOLUCIONARIO: PC2 2013-I

http://diasslibres.blogspot.com/ PROBLEMA 2. En el vivero Los lamos se tiene la produccin de 20 tipos de plantas durante 7 das. Disee un algoritmo que permita almacenar dichos datos y luego presente el(los) tipo(s) de planta(s) que tiene(n) la mayor produccin y el(los) da((s) en que se presenta(n). SOLUCION: Algoritmo problem_2 Var i,j,maxproducc:entero producc:Arreglo[1..7,1..20] de entero Inicio maxproducc0 desde i1 hasta 7 desde j1 hasta 20 repetir leer(producc[i,j]) hasta_que(producc[i,j]=>0) si(producc[i,j]>maxproducc) entonces maxproduccproducc[i,j] fin_si fin_desde fin_desde desde i1 hasta 7 (*rpta*) desde j1 hasta 20 si(maxproducc=producc[i,j]) entonces escribir("Da:",i,"tipo:"j) fin_si fin_desde fin_desde Fin

CURSO: ALGORITMOS Y ESTRUCTURA DE DATOS

SOLUCIONARIO: PC2 2013-I

http://diasslibres.blogspot.com/ PROBLEMA 3. Para el curso de Algo_Jala, se tiene 5 secciones, en cada seccin hay a lo ms 45 alumnos y por cada alumno se tiene los siguientes datos: Cdigo (entero de 3 dgitos), sexo (1: Femenino o 2: Masculino) y 4 notas de prcticas (0 a 20). Se pide que disee un algoritmo y crear el tipo de dato adecuado para almacenar la informacin anterior. Luego: a) Presente por cada seccin un listado ordenado en forma decreciente respecto al promedio de prcticas, indicando en dicho listado el cdigo, sexo y promedio de notas. b) Elimine los datos de aquellos alumnos cuyo promedio de prcticas sea menor a 6. SOLUCION: Algoritmo problem_3 Var ind,cod,sexo:Arreglo[1..45,1..5] de entero cant_alum:Arreglo[1..5] de entero prom:Arreglo[1..45,1..5] de real nota:Arreglo[1..45,1..4] de entero i,j,k:entero aux:real Inicio desde j1 hasta 5 repetir leer(cant_alum[j]) hasta_que(cant_alum[j]>=0^cant_alum[j]=<45) desde i1 hasta cant_alum[j] repetir leer(cod[i,j]) hasta_que(cod[i,j]>=100^cod[i,j]=<999) repetir leer(sexo[i,j]) hasta_que(sexo[i,j]=1^sexo[i,j]=2) prom[i]0.0 desde k1 hasta 4 repetir leer(nota[i,k]) hasta_que(nota[i,k]>=0^nota[i,k]=<20) prom[i,j]prom[i,j]+nota[i,k]/4 fin_desde fin_desde fin_desde desde j1 hasta 5 desde i1 hasta 45 ind[i,j]i fin_desde fin_desde desde j1 hasta 5 desde i1 hasta cant_alum[j]-1 desde ki+1 hasta cant_alum[j] si(prom[i,j]<prom[k,j]) entonces auxprom[i] ind[i,j]prom[k,j] ind[k,j]aux fin_si fin_desde fin_desde fin_desde desde j1 hasta 5 (*rpta:a*)

CURSO: ALGORITMOS Y ESTRUCTURA DE DATOS

SOLUCIONARIO: PC2 2013-I

http://diasslibres.blogspot.com/ desde i1 hasta cant_alum[j] en_caso (sexo[ind[i,j]]) 1: escribir(cod[ind[i,j],"Femenino",prom[ind[i,j]]) 2: escribir(cod[ind[i,j],"Masculino",prom[ind[i,j]]) fin_caso fin_desde fin_desde desde j1 hasta 5 (*rpta:b*) desde i1 hasta cant_alum[j] si(prom[ind[i,j]<6) entonces ki mientras(k<cant_alum[j]) hacer cod[ind[k,j]cod[ind[k+1,j] sexo[ind[k,j]sexo[ind[k+1,j] prom[ind[k,j]prom[ind[k+1,j] kk+1 fin_mientras cant_alum[j]cant_alum[j]-1 fin_si fin_desde fin_desde Fin

You might also like