You are on page 1of 50

Universidad de Pamplona

Facultad de Ingenieras y Arquitectura


Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
Programacin 2
Objetivos
Desarrollar habilidades en la definicin y utilizacin de estructuras estticas de datos, como mecanismo de programacin
para la manipulacin de grandes volmenes de informacin.
Utilizar un lenguaje de programacin que permita la definicin de las estructuras de datos estticas tales como rreglos
!vectores y matrices", registros y vectores de registros.
Contenidos
1. Introduccin
#.#. $a programacin imperativa
#.%. &structuras de control !repaso de conceptos"
#.'. &structuras de datos estticas!(onceptualizacin"
#.'.#. rreglos !Unidimensionales o vectores, bidimensionales o matrices, multidimensionales"
#.'.%. )egistros
#.'.'. (ombinacin de estructuras !rreglos de registros"
#.*. &structuras dinmicas de datos !conceptualizacin de listas, arboles, grafos"
#.+. ,rogramacin modular !la funcin como fundamento de la programacin modular"
2. Estructuras de datos estticas
2.1. Arreglos
2.1.1. Arreglos Unidimensionales o Vectores
%.#.#.#. (onceptualizacin
%.#.#.%. Definicin de vectores en un lenguaje de programacin
%.#.#.'. (aptura, almacenamiento, recorridos y procesamiento de datos en vectores
%.#.#.*. ,aso de vectores como parmetros a una funcin
%.#.#.+. plicacin del concepto en la resolucin de problemas
2.1.2. Cadenas de caracteres !tring"
%.#.%.#. $as cadenas de caracteres como un caso particular de los vectores
%.#.%.%. (aptura y almacenamiento de caracteres y de cadenas
%.#.%.'. -anipulacin de vectores de caracteres !cadenas"
%.#.%.*. .unciones predefinidas para la manipulacin de cadenas de caracteres
%.#.%.+. plicacin del concepto en la resolucin de problemas
2.2. Arreglos bidimensionales o #atrices
%.%.#. (onceptualizacin
%.%.%. Definicin de -atrices en un lenguaje de programacin
%.%.'. (aptura, almacenamiento, recorridos y procesamiento de datos en -atrices
%.%.*. ,aso de -atrices como parmetros a una funcin
%.%.+. plicacin del concepto en la resolucin de problemas
2.$. %egistros
%.'.#. (onceptualizacin
%.'.%. Definicin de registros en un lenguaje de programacin
%.'.'. (aptura, almacenamiento y procesamiento de datos en registros
%.'.*. plicacin del concepto en la resolucin de problemas
2.&. Combinacin de estructuras estticas de datos
%.*.#. rreglos y matrices como campos dentro de un registro
%.*.%. rreglos de registros
$. Arc'ivos
'.#. (onceptualizacin
'.%. &ntrada y salida de datos mediante archivos
'.'. plicacin del concepto en la resolucin de problemas
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
(ibliogra)*a %ecomendada
.undamentos de ,rogramacin, lgoritmos, &structuras de datos y /bjetos, $uis 0oyanes guilar, 1ercera edicin.
&ditorial -c2ra3 4ill.
.undamentos de ,rogramacin, lgoritmos y &structuras de datos, $uis 0oyanes guilar, 5egunda edicin. &ditorial
-c2ra3 4ill.
.undamentos de ,rogramacin, $ibro de problemas, $uis 0oyanes guilar, &ditorial -c2ra3 4ill.
1urbo (6(77 '.# -anual de referencia, 4erbert 5childt, -c2ra3 4ill
%esumen de notaciones de las estructuras de control
&structuras
de control
$ineales o
secuenciales
Entrada de datos
!alida de datos
Asignacin
8o $ineales +e seleccin o
condicionales
)epetitivas
Para
#ientras ,ue
-acer mientras
&structuras de control
8ombre Diagrama de flujo 5eudocdigo &n (
&ntrada o captura de
datos
b
$eer b scanf ! 9:d; , <b "=
5alida o impresin de
datos
a
>mprimir a printf !9cadena de
formateo ; , a "=
signacin
a = b+c
a ? b 7 c a ? b 7 c =
&structura de
seleccin o
condicional
C ond ici n si no
5i condicin entonces
...... >nstrucciones
para ...... cuando la
condicin sea ......
verdadera
if ! condicin " @
...... >nstrucciones en
c ...... para cuando
la ....... condicin sea
....... verdadera
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
5ino
....... >nstrucciones
para ....... cuando la
condicin ....... sea falsa
.in si
A else @
...... >nstrucciones en
c ...... para cuando
la ....... condicin sea
........ falsa
A=
&structura repetitiva
,ara
i =1 !n ! 1
,ara i?# hasta n inc # haga
..... >nstrucciones a repetir
fin para
for ! i ?# = iB?n = i?i7# "@
..... >nstrucciones a repetir
A=
&structura repetitiva
-ientras que
Condicin
no
si
-C condicin haga
..... >nstrucciones a repetir
fin -C
3hile ! condicin " @
..... >nstrucciones a repetir
A=
&structura repetitiva
4acer -ientras
Condicin
si
no
4acer
..... >nstrucciones a repetir
-C condicin
Do @
..... >nstrucciones a repetir
A 3hile ! condicin "=
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
P%O.%A#ACI/0 #O+U1A% 2U0CIO0E!"
#. 4acer la funcin .actorial.

>
=
=
0 #### $ " 2 1
0 0
%
n si n x x x
n si
n
%. (ree la funcin ,otencia

= =
<
>
=
=
=

0 0
0
1
0 & '
0 0 1
0 0 0
1
y y x si definido no
y si
x
y si x x
y y x si
y y x si
x
y
y y
'. (alcule la siguiente formula Seno x
x
k
k
k
k
' & ' &
' &%
=
+
+
=

1
2 1
2 1
0
1(
*. &scriba una funcin llamada digfinal que tenga un parmetro de entrada llamado nmero y que entregue como
resultado el dDgito de las unidades del nmero. ,or ejemplo, si el nmero es %'*, el resultado es *.
+. &scribe una funcin que tome ' parmetrosE dos de tipo enteros y uno de tipo carcter. $a funcin deber sumar,
restar, multiplicar o dividir los valores de los dos primeros parmetros dependiendo del cdigo indicado en el tercer
parmetro, y devolver el resultado. !el carcter ser F7G, FHF, F I G, y F6 G"
J. &scribe una funcin que devuelva el !a" factorial, !b" nHsimo nmero de .ibonacci, de su argumento.
K. &scriba una funcin que imprima los divisores y la suma de los divisores de todos los enteros que se encuentran
entre dos valores m y n dados por el usuario. ,or ltimo la funcin debe regresar cul fue el nmero cuya suma de
divisores fue mayor. ,or ejemplo, si m=100 y n=110, entonces la salida serE
iDivisores suma
#LL
#
% * + #L %L %+ +L #LL %#K
. . .
##L# % + #L ## %% ++ ##L %#J
M. 5e dice que dos nmeros a y b son 9amigos; si cada uno de ellos es la suma de los divisores del otro. ,or ejemplo,
los ms pequeNos son %%L y %M*= comprobOmosloE
DivisoresDe!%%L" ? !#, %, *, +, #L, ##, %L, %%, **, ++, ##L"
5umaDivDe!%%L" ? %M*
DivisoresDe!%M*" ? !#, %, *, K#, #*%"
5umaDivDe!%M*" ? %%L
a. escriba una funcin que recibiendo dos nmeros devuelva si son amigos o no
b. escriba una funcin que tenga como entrada un nmero natural n y que FescribaG todas las parejas de nmeros
amigos que ePistan menores que n.
Q. 4aga un programa que despliegue un men que ayude en la operacin de la pizzerDa 9Domino (icom;. &l programa
debe contener dos funcionesE
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
,edidoE solicita al usuario el tamaNo de la pizza que desea ordenar y el nmero de ingredientes que debe contener, y
(alculaE determina el precio de la pizza y el tiempo de entrega del pedido realizado.
$as pizzas chicas !FcG" cuestan KL pesos, las medianas !FmG" QL, las grandes !FgG" ##L y las familiares !FfG" #'L. dems, cada
ingrediente solicitado cuesta #L pesos.
&l tiempo de entrega de las pizzas es de %L minutos, a menos que sea una pizza familiar o que tenga ms de '
ingredientes, en cuyo caso el tiempo de entrega es de 'L minutos.
#L. !II" 4acer un programa utilizando funciones que visualice el tringulo de ,ascal.
#
# #
# % #
# ' ' #
# * J * #
# + #L #L + #
# J #+ %L #+ J #
# K %# '+ '+ %# K #
)ecuerde que, por ejemplo, la tercera lDnea est dada por los combinatoriosE
2
0
C
2
1
C
2
2
C
Utilice una funcin enteraE combinaciones(r, k) que regrese las combinaciones de r tomadas de R en R. 5uponga que r
representa el rengln del tringulo y R la columna del mismo.
&% ' %
%
k r k
r
C
r
k

=
&sta funcin, a su vez, utiliza otra funcin auPiliarE factorial (r)
##. 4acer un programa en $enguaje ( de forma modular que calcule los nmeros narcisistas del # al #LLLL, el programa
deber generar una lista de aquellos nmeros que cumplan con el requisito de ser narcisista.
Un nmero narcisista es un 8mero de n dDgitos que resulta ser igual a la suma de las potencias de orden n de sus
dDgitos.
&jemploE # ? #
#
#+' ? #S 7 +S 7 'S.
Q*K* ? Q
*
7 *
*
7 K
*
7 *
*
&l programa deber contener las siguientes funcionesE
Una funcin que cuente el nmero de dDgitos de un numero entero
Una funcin potencia para calcular el resultado del dDgito elevado a dicha potencia.
Una funcin donde se desglosar el nmero en cifras, calcule la suma de potencias y diga si el numero es o no
narcisista.
#%. ,ara resolver las siguientes preguntas de la # a la + considere la funcin funcion# y el arreglo 2 dado
rreglo 2
+ #* '* +J % *J K %' JK QM % MQ
int funcion#!int PTU, int n, int v "@
int r ? L, R ? J=
for! i ? L= iBn= i77"@
if! PT i U ? ? v"@
r ? i=
R ? R 7#=
A=
A=
(
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
return! P T r U "=
A=
,regunta )ta
# Diga cual es el valor de la variable r para la funcin funcion#, con el siguiente llamado
a?funcion#!2,#%,%Q"= cuando el valor de i es K.
% Diga el valor que retorna la funcin con el siguiente llamado a?funcion#!2,K,MQ"=
' (ual debe ser el valor de p en el siguiente llamado a?funcion#!2,#%,p"= para que la
funcin retorne QM
* (on que valor termina la variable R con el siguiente llamado a?funcion#!2,#%,%"=
+ (on que valor queda a despues de ejecutarse la siguiente asignacin
a ? !funcion#!2,#%,%"I#L" H +=
#'. $a impresin en pantalla al ejecutar el siguiente cdigo en $enguaje esE
include Bstdio.hV
void incrementa ! int variable "=
main!" @
int P ? ''=
incrementa !P"=
printf ! Wla variable P vale ahora :dXnW, P "=
A
void incrementa ! int variable" @
variable ?variable7#=
A
a" $a variable P vale ahora ''
b" $a variable P vale ahora '*
c" $a variable P vale ahora '+
d" $a variable P vale ahora '%
e" $a variable P vale ahora '#
#*. Una variable localE
a" &Piste a lo largo de la ejecucin de todo el programa.
b" &Piste durante la ejecucin de la funcin en la que fue definida.
c" (onserva su valor entre sucesivas llamadas a la funcin en la que fue definida.
d" Debe definirse fuera de cualquier funcin.
e" 8o puede devolver ningn valor.
)
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
)esumen de &structuras de datos
&structuras
de Datos
&stticas
rreglos
Unidimensionales o vectores
Yidimensionales o matrices
-ultidimensionales
)egistros
(ombinaciones
)egistros con campos que son
arreglos
rreglos de registros
Dinmicas $istas encadenadas
rboles
2rafos en general
5e denominan estructuras estticas aquellas colecciones de datos cuyo nmero de datos se define en tiempo de diseNo, es
decir cuando se est escribiendo el cdigo del programa y por eso durante la ejecucin del programa la coleccin de datos
no podr incrementarse, es decir que si una estructura est diseNada para almacenar +L datos, en tiempo de ejecucin no
podr incrementarse este tamaNo, por lo tanto solo podr almacenar esos +L datos.
-ientras que las estructuras dinmicas son colecciones de datos que en tiempo de ejecucin pueden incrementar el nmero
de miembros !datos" que pertenecen a la estructura &ste es el caso de las listas encadenadas para lo cual se requiere
conceptos !que no son del alcance de esta materia" como la asignacin dinmica de memoria.
&n algunos lenguajes se permite que en tiempo de ejecucin se cambie el tamaNo de algunas estructuras estticas como
los vectores.. pero para evitar ambigZedad de conceptos, esto no se tendr en cuenta. &n este curso las estructuras
estticas no cambian de tamaNo en tiempo de ejecucin.
Dentro de las estructuras de datos estticas estn los arreglos que son colecciones de datos del mismo ti3o4
referenciadas con un solo nombre, y que para acceder a cada uno de los datos de la coleccin se hace uso de subDndices.
(uando solo se necesita un subDdice para acceder a los datos de la coleccn, a estas estructuras se les llama arreglos
unidimensionales o vectores. 5i se necesitan dos subDndices se les llama arreglos bidimensionales o matrices y si es
necesario tres o ms subDndices se les conoce como arreglos multidimensionales.
A%%E.1O! U0I+I#E0!IO0A1E! VEC5O%E!"
Un vector o arreglo unidimesional es una coleccin de datos del mismo tipo, referenciada con un solo nombre y que para
acceder a cada uno de sus datos, se necesita un subDndice que en este caso indica la posicin !de orden" donde se
encuentra almacenado un dato, dentro de la coleccin.
*
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
2"$ $( 22 )( 21 $( 12*
A
1 2 " $ 0 n+1 # # # # #
,ombre de la coleccin de datos
,ombre del -ector
.ubndice que indica la /osicin
donde se encuentra almacenado
un dato dentro de la coleccin'0ector&
1ato que est2 almacenado en la
cuarta /osicin de la coleccin '0ector&
A314
A3n+14
A3"4
2"$5 $(5225)(5 etc son datos del mismo ti/o
'en este caso todos son enteros&5 que est2n almacenados
en esta coleccin '0ector o arreglo unidimensional&5
llamada A y que tiene ca/acidad /ara almacenar n datos
)ecuerde que todos los ejercicios se deben realizar de forma modular
#. 4acer un programa en $enguaje ( para llenar un vector de #L posiciones, para posteriormente determinar cuantos
nmeros son positivos y cuantos negativos.
%. 4acer un programa en $enguaje ( para llenar un vector de #+ posiciones para posteriormente determinar el
nmero menor y la posicin que ocupa.!modif. un vector de 8 posiciones 98 dado por teclado;"
'. 4acer un programa en $enguaje ( para llenar un vector de 8 posiciones !8 dado por teclado" para posteriormente
determinar el promedio de las posiciones pares y el producto de las impares.
*. 4acer un programa en $enguaje ( para llenar dos vectores de 8 posiciones !8 dado por teclado" para
posteriormente, crear un tercer vector con la suma de los dos anteriores.
+. 4acer un programa en $enguaje ( para llenar un vector de n posiciones para posteriormente, invertirlo sobre si
mismo.
J. 4acer un programa en $enguaje ( para crear dos vectores ! y Y" de cualquier longitud !no necesariamente de
longitudes iguales" y llenarlos= una vez hecho esto imprimir y determinar cual de los dos vectores tiene el nmero
mayor.
K. 4acer un programa en $enguaje ( para llenar un vector de 8 posiciones !8 dado por teclado" y posteriormente
solicitar un numero 9[; para determinar cuantas veces esta 9[; repetido dentro del vector.
M. 4acer un programa en $enguaje ( para llenar un vector de 8 posiciones !8 dado por teclado" y posteriormente
solicitar un numero 9[; y un numero 9\; para reemplazar todos los valores 9[; con ;\; dentro del vector.
Q. 4acer un programa en $enguaje ( para, >nsertar todos los valores de un vector ]# en un vector ]% !debe leer el
tamaNo de los dos vectores"
#L. 4acer un programa en $enguaje ( para, >nsertar todos los valores de un vector ]# en un vector ]% a partir de una
posicin determinada en el vector ]% sin perder los valores de ]%. !debe leer el tamaNo de los dos vectores"
##. 4acer un programa en $enguaje ( para llenar un vector de 8 posiciones !8 dado por teclado", para posteriormente
crear un segundo vector con el espejo del primero
&j.E
Y &spejo
6
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#%. 4acer un programa en $enguaje ( para llenar dos vectores de 8 posiciones !8 dado por teclado" para
posteriormente hallar un tercer vector con los valores del primero que estn en el segundo.
#'. 4acer un programa en $enguaje ( para llenar dos vectores de 8 posiciones !8 dado por teclado" para
posteriormente hallar un tercer vector con los valores del primero que no estn en el segundo.
#*. $eer un vector de enteros de n datos !n dado por teclado y #BnB%LL" y clasificar los datos del vector en dos
vectores uno con los nmeros primos y otro con los nmeros perfectos.
Un nmero es primo si solo tiene dos divisores, # y Ol mismo, ejemplos #,%,',+,K,## etc
Un nmero es perfecto si la suma de sus divisores propios es igual a Ol mismo. &jemplo el J,%M,etc
,or ejemplo para un vector dado por teclado como el siguiente
%*L %+ K *L %M #K *+ J L * +
$os datos clasificados en el vector de primos esE
%K #K +
^ el vector de perfectos es
%MJ
#+. &n la piscina de la universidad se va a realizar un campeonato de clavados para n deportistas !n dado por teclado".
$os deportistas sern calificados por un jurado de #L personas. ,ara calcular su puntuacin se determina el
promedio de los puntajes dados por jurado calificador pero con la nica salvedad que la peor y la mejor nota no se
tienen en cuenta.
(ree un vector con el promedio de las calificaciones y luego determine el promedio mas alto y la mas bajo de los
deportistas
&jemploE
,rom? !*.Q7K,J7+,+7K,Q7*,J7M,*7+,*7J,%"6M
$as calificaciones ',# y Q,L no son tenidas en cuenta por ser la ms alta y la ms baja
7
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#J. 4acer un programa en $enguaje ( para llenar un vector de 8 posiciones !8 dado por teclado", para
posteriormente, ordenarlo de mayor a menor.
#K. 4acer un programa en $enguaje ( para llenar % vectores ]# y ]% de 8 posiciones !8 dado por teclado", para
posteriormente, ordenarlo de ma6or a menor de )orma 3aralela usando a ]# como vector base.
#M. 4acer un programa en $enguaje ( para leer el cdigo, la edad y el salario de 8 empleados !8 dado por teclado" e
imprimirlo en orden de salario
#Q. 4acer un programa en $enguaje ( para que lea dos vectores de diferente nmero de elementos, los ordene y
posteriormente los mezcle en un tercer arreglo guardando el orden.
)estriccinE no se deben unir los arreglos en desorden, ni copiar un arreglo completo, es decir, los elementos que
se almacenen en el tercer arreglo se deben ir guardando en orden.
%L. 4acer un programa en $enguaje ( que lea dos vectores de igual tamaNo y cree un nuevo vector con los datos de
los dos primeros pero intercalados. ,or ejemplo si los dos vectores sonE
%*L %+ K *L %M #K
'*+ %' % %+ *+ K%
&l vector resultante esE
donde se almacenan las ventas mensuales de una empresa.
&labore una funcin que muestre los siguientes datosE
a" _&n quO mes se dieron las ventas mPimas de la empresa`
b" _ cunto ascendieron las ventas mPimas`
c" _(ul fue el total de las ventas`
d" _(ul fue el promedio de las ventas`
%*. Un casino desea llevar a cabo unas estadDsticas sobre el juego de ruleta. 5e solicita un programa modular que
cuente el nmero de veces que cada nmero es ganador en una jornada y al final del dDa imprima un reporte con lo
siguienteE
a" _(untas veces result ganador cada elemento de la ruleta`
b" _(ules elementos no resultaron ganadores en toda la jornada`
c" _(ul fue el nmero de cada color que gan ms veces`!suponga que slo hay uno"
d" _(ul fue el elemento que gan en ms ocasiones`
)ecuerde que la ruleta est formada por KL elementos. &Pisten del # al '* rojos, del # al '* negros, el L y el LL. &l
casino desconoce el nmero de juegos de una jornada. $os datos que el casino proporcionar son los siguientesE
nmero, color
nmero, color
...
-1, X
DondeE
nmero representa el nmero correspondiente al elemento ganador, con 0 nmero 34
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
donde el L se representa como un L rojo y el LL se representa como un L negro.
Color representa el color correspondiente al elemento ganador. conE R ? rojo, ? negro
-1,X representan el fin de la jornada
%+. Una compaNDa ha clasificado a sus n !# n +L" empleados dentro de los grupos # y %. (ada empleado del grupo
# recibir, a partir de ahora, un aumento de a%+L.LL a la semana sobre su sueldo actual, mientras que a cada uno
de los del grupo % slo se le dar a#+L.LL adicionales por semana. $a informacin que se proporciona de cada
empleado esE clave del empleado !comprendida entre #LL y %+LL, inclusive", grupo al que pertenece !# o %" y
sueldo semanal actual !entre a'LL.LL y aJLLL.LL". 5i un empleado del grupo # con el nuevo sueldo gana
semanalmente ms que el sueldo promedio del grupo, entonces debe cambiar al grupo %.
nalice, diseNe y codifique un programa modular queE
$ea la informacin de los n empleados e imprima la clave, grupo y sueldo semanal nuevo para cada
empleado, actualizando el grupo si es el caso.
(alcule el sueldo promedio de los empleados por grupo y calcule tambiOn el promedio general de todos,
sin considerar el grupo.
>ndique cuntos empleados cambiaron del grupo # al %.
0
1
2
"
##
n+1
cla0e gru/o sueldo
,ombre del 0ector de enteros
que almacena las cla0es 'cdigos&
de los em/leados
,ombre del 0ector de enteros
que almacena el gru/o
al cual /ertenece cada em/leado
,ombre del 0ector de n8meros
reales que almacena el sueldo actual
de cada uno de los em/leados
.ubndice
de cada uno
de los 0ectores
gru/o324
gru/o al que
/ertenece el
tercer
em/leado
cla0e324
cdigo del
tercer
em/leado
gru/o3n+14
gru/o al que
/ertenece el
8ltimo
em/leado
sueldo304 es el sueldo actual
del /rimer em/leado
sueldo324 es el sueldo actual
del tercer em/leado
sueldo3n+14 es el sueldo actual
del 8ltimo em/leado
0
1
2
"
##
n+1
0
1
2
"
##
n+1
%J. 5e tienen n alumnos !# n +L" de los cuales se conoce la clave y la calificacin final. nalice, diseNe y codifique
un programa modular queE
$ea dicha informacin, la cual se da ya ordenada en forma descendente, con respecto a la clave.
>mprima la clave y calificacin de todos los alumnos que obtuvieron calificacin superior al promedio del grupo.
>mprima la calificacin que obtuvieron los alumnos cuyas claves proporcionar el usuario. 5e sabr que el
usuario ya no quiere conocer ms calificaciones cuando, en lugar de una clave, proporcione un cero. Utilice
bs!"eda binaria para buscar las claves que el usuario solicita.
11
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
%K. 5e tiene un conjunto de n parejas de datos [i, ^i donde cada pareja representa las coordenadas del punto i de un
polDgono irregular de n lados. 5uponga que las coordenadas se proporcionarn en orden adyacente. &labore una
funcin para leer el nmero de lados del polDgono, leer las coordenadas de los puntos y obtener el rea del
polDgono irregular utilizando la siguiente frmulaE
#rea = $(X0%X1)&('0-'1 ) % (X1%X()&('1-'()%. . .% (Xn-1%X0)&('n-1-'0)])(
5uponga que los Xi ,'i son reales y n es entero con 1 n *0.
%M. Una cooperativa de productores de naranjas almacena el total de toneladas cosechadas durante el ltimo aNo en 8
parcelas !# 8 +L". &n cada parcela se pueden cultivar dos tipos de naranjasE para jugo y para comer. 5e
conoce el total de toneladas cosechadas de cada uno de los tipos de naranjas. 5i en una parcela no se hubiera
cosechado alguno de los tipos, entonces habr L.
$a informacin se almacena en un arreglo como se muestra en el siguiente ejemploE
100 (00 )00 0 600 *00
. . . . . .
0 1 2 " $ ( 2,+2 2,+1
9A: +1
Parcela 1
Parcela 2 Parcela " Parcela ,
,aran;as /ara
;ugo
,aran;as /ara
comer
100 (00 )00 0 600 *00
. . . . . .
0 1 2 " $ ( 2,+2 2,+1
9A: +1
Parcela 1
Parcela 2 Parcela " Parcela ,
,aran;as /ara
;ugo
,aran;as /ara
comer
&n la parcela # se cosecharonE #LL toneladas de naranjas para jugo y +LL toneladas de naranjas para comer.
&n la parcela % se cosecharonE JLL toneladas de naranjas para jugo y L toneladas de naranjas para comer.
8/1E /bserve que la informacin de una misma parcela ocupa posiciones consecutivas en el arreglo.
5e le pide que analice, diseNe y codifique un programa, usando mdulos, que puedaE
a" $eer la informacinE 8 !# 8 +L" y las toneladas por tipo de naranja de cada una las parcelas.
b" (alcular e imprimir el total de la produccin por parcela.
c" &liminar la informacin de una parcela. &l dato requerido para esta opcin es el nmero de parcela a eliminar.
d" Yuscar e imprimir el nmero de una parcela !si hubiera" que no haya tenido produccin de ninguno de los tipos
de naranjas. &s decir, durante el ltimo aNo su produccin total fue L.
%Q. 4acer un programa en $enguaje ( para $eer dos vectores de #% posiciones denominados prod# y prod%. Dichos
vectores almacenarn la cantidad de unidades producidas de cada producto, mes a mes. dicionalmente, leer un
tercer vector denominado costou de dos posiciones, el cual almacenara el costo unitario de los dos productos.
2enerarE
(rear una funcin que permitaE en un cuarto vector denominado costot de #%
posiciones, calcular y almacenar el costo de la produccin total, mes a mes, asDE
(osto 1otal ? !(antidad Unidades del ,rod#I ]alor Unitario ,rod#" 7 !(antidad Unidades del ,rod% I
]alor Unitario ,rod%"
(rear una funcin que calcule y retorne el promedio de cada uno de los cuatro
trimestres del vector costot.
(rear una funcin que calcule y retorne el mes, donde se encuentra el mayor valor
del vector costot. !si ePisten dos iguales, se asume como mayor el primero"
'L. 4acer un programa en $enguaje ( para solucionar el siguiente problemaE $a universidad de ,amplona cuenta con
equipo de 1enis de 8 deportistas!8 es un nmero dado por teclado" identificados con los cdigos de los
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
estudiantes y se desea formar el equipo de 2olf con la nica condicin que no pueden pertenecer a este nuevo
equipo los que ya pertenecen a la otra seleccin. )ealice las siguientes funcionesE
$lenado de la informacin del equipo de tenis.
ceptacin y llenado del vector para el equipo de golf, para un nmero desconocido de estudiantes.
>mprimir el vector de los aceptados en el equipo de golf
0ota7 &l llenado para el equipo de golf se realizar hasta que el cdigo del estudiante sea H# o llegue a un cupo
mPimo de %L estudiantes aceptados para el equipo.
'#. 5e lee la informacin de #LL estudiantes, en tres vectores
&n el vector se almacena $ 8/1 D&$ &51UD>81&
&n el vector Y se almacena $ ())&)
&n el vector ( se almacena &$ (/D>2/ del estudiante
&Pisten las siguientes carreras adscritas cada una a una facultad.
.acultad (arrera
>ngenierDas #. >ng 5istemas
>ngenierDas %. >ng >ndustrial
>ngenierDas '. >ng -ecatronica
(iencias &conmicas *. (ontadurDa
(iencias &conmicas +. dmn. empresas
(iencias &conmicas J. &conomDa
5alud K. -edicina
5alud M. 8utricin
5e debe calcular e imprimir
a" (uantos estudiantes hay en cada facultad
b" &l cdigo del estudiante con la nota ms alta
en cada .acultad
c" &l promedio de notas de los estudiantes por
carrera
'%. 5e desea registrar la informacin de cdigo y temperatura de +L ciudades )ealizar funciones paraE
$eer los vectores
$eer por teclado la temperatura donde desea vivir una persona hasta cuando se digite L, e imprimir los
posibles cdigos de las ciudades que tienen dicha temperatura, en caso contrario imprimir 98o ePiste ciudad;.
(alcular e imprimir el cdigo de la ciudad con mayor temperatura.
/rdenar los dos vectores teniendo en cuenta la temperatura en orden ascendente. 8otaE los dos vectores
deben ser ordenados al tiempo de forma paralela
''. De los #LL alumnos de programacin >, se desea almacenar la siguiente informacin, para cada uno de ellos, en
tres vectores que corresponden a la siguiente informacionE
(digo
&dad
\ona !$os datos sern T#. Urbano %. )uralU"
$a zona permite definir el valor de matricula asDE
\ona]alor
%+LL.LLL.oo
##.LLL.LLL.oo
&l valor de matricula tendr un descuento, del 'L: solo para los estudiantes menores de edad. !un menor de edad
es el estudiante que tiene menos de #M aNos"
)ealizarE !implementando funciones"
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#. $eer la informacin de los estudiantes en los vectores !cdigo, edad, zona"
%. (alcular e imprimir el valor de la matricula de cada estudiante
(ontar los estudiantes menores de edad, que residen en la zona Urbana y )ural.
'*. Dado un vector ]# de tipo entero de tamaNo n, donde n se da por teclado, hacer un programa en lenguaje ( que
realice lo siguienteE
. $lene el vector ]# a travOs de una funcin
Y. >nvierta el vector ]# sin utilizar otro vector !en el mismo"
(. 2enere un vector ]% que ser el contenido de las posiciones impares de ]# ya
invertido a travOs de una funcin.
D. >mprima el vector ]% por medio de una funcin imprimir en forma ascendente.
&jemploE
]#
]# invertido
]%
'+. Una empresa de rosas desea llevar el control de sus ventas en el mes de la mujer cuenta con la siguiente
informacin (digo del tipo de rosa, (antidad cultivada, (antidad ]endida y precio de venta. ,ara 8 tipos de rosas
!8 dado por teclado". )ealice las siguientes funcionesE
#. $lenado de la informacin.
%. &l cdigo y la cantidad en unidades del producto ms vendido.
'. &l cdigo y la cantidad en unidades del producto menos producido.
*. &l total de las ventas.
'J. Dados % vectores ]# y ]% de tipo entero de tamaNo n y m, donde n y m se da por teclado, hacer un programa en
lenguaje ( que realice lo siguienteE
. $lene los vectores ]# y ]% con una funcin llenar.
Y. 2enere un vector ]' que es el resultado de concatenar !Unir" ]# y ]% a travOs de una
funcin
(. 2enere un vector ]* a partir de ]', donde ]* contiene aquellos nmeros perfectos que
ePisten en ]'.
8otaE Un nmero perfecto es aquel nmero tal que la suma de sus divisores propios es igual al mismo nmero. ^
los divisores propios de un nmero son todos sus divisores ePcepto el mismo nmero.
&jemploE
]#
*J #% %M JL +
L# % ' * +
]%
%*+ *QJ
L# %
]'
*J #% %M JL + % *+ *QJ
L# % ' * + J K M
]*
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
J%M *QJ
L# %
'K. )ealice un programa en ( para un supermercado que vende 8 productos !8 dado por teclado" cada producto
posee su cdigo y su respectivo precio, usted y su equipo de programadores debe realizarE
. Una funcin para llenar la informacin de los productos que se venden en el
supermercado !(digo y precio".
Y. Una funcin que ordene los cdigos de los productos en orden descendente !Debe
ordenar los dos vectores cdigo y precio de forma paralela".
(. Una funcin que calcule el valor que debe pagar un cliente, conociendo el cdigo
del articulo y la cantidad, el numero total de los artDculos que lleva un cliente es indeterminado la lectura
termina cuando el cdigo del articulo sea L
'J. )ealice un programa en ( para llevar el control de las ventas de una tienda, donde se deben llenar tres vectores 9.actu;
8umero de .actura, 9(ant; (antidad de artDculos llevados y 9]alor; ]alor de la .actura, el tamaNo de los vectores esta dado
por un numero 8 dado por teclado.
)ealice de .orma -odularE
#. $lenado de >nformacin.
%. Determine el nmero de la factura con mayor valor.
'. Determine el promedio de artDculos llevados en cada factura.
*. >mprimir los nmeros de factura y el valor de estas que estOn por encima del promedio de artDculos !calculado en el
punto '".
+. (ual es la factura que lleva mayor cantidad de artDculos y su valor es el menor en caso de ePistir varias facturas
con igual cantidad
'K.
CA+E0A! +E CA%AC5E%E!
Una cadena de caracteres no es ms que un arreglo unidimensional!vector" de caracteres, es decir que en cada casilla del
vector se hay un carcter. diferencia de otros tipos de vectores, las cadenas se manipulan sabiendo que para toda cada
ePiste un carcter dentro de la cadena que indica el final de dicha cadena, este caracter se conoce como el carcter nulo y
su valor es representado como F X L G, es asD como se determina donde inicia una cadena !en la casilla L" y donde termina
!hasta encontrar una casilla del vector cuyo contenido sea el carcter nulo".
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
< o l a =0 > y
cad
1 2 " $ 0 n+1 # # # # #
,ombre de la cadena
Car2cter que indica el ?inal de la cadena
cad314
cad3n+14
cad3"4
@<olaAes el contenido de la cadena cad
Bos caracteres que se encuentren /osteriores
al car2cter nulo C = 0 C5 no Dacen /arte de la cadena cad#
A /esar de que la ca/acidad de la cadena es mayo
'n caracteres&5 la cadena cad inicia en cad304
y termina donde encuentre el car2cter nulo
)ecuerde que todos los ejercicios se deben realizar de forma modular y si no se indica se asume que las cadenas son de
maP +L caracteres
#" 4acer un programa en $enguaje ( que lea una cadena de caracteres y determine la longitud de esta.
%" 4acer un programa en $enguaje ( que lea una cadena de a lo ms %L caracteres e imprima todos los caracteres
que se encuentran en una posicin par.
'" 4acer un programa en $enguaje ( que lea una cadena de caracteres y la escriba al revOs.
*" 4acer un programa en $enguaje ( que lea una frase de a lo ms, +L caracteres y cuente cuntas veces aparece
la letra FaG en la frase.
+" &labore un programa que lea una frase y cuente cada una de las vocales minsculas o maysculas que contiene.
J" 4acer un programa en $enguaje ( que lea una cadena de caracteres y la convierta a maysculas !-odf. a
minsculas"
K" 4acer un programa en $enguaje ( que lea una cadena de caracteres y la corte en palabras escribiendo cada
palabra en una lDnea. 5e supone que las palabras se separan slo por blancos.
M" 4acer un programa en $enguaje ( que lea dos cadenas de caracteres en forma separada y luego las compare,
determinando si son iguales o diferentes. !idOnticas o mezcla"
Q" 4acer un programa en $enguaje ( que lea una cadena de caracteres y realice una copia de esta.
#L" 4acer un programa en $enguaje ( que concatene dos cadenas, debe leer el nombre y el apellido de forma
separada y unir estas dos en una sola cadena.
##" 4acer un programa en $enguaje ( que lea una frase de a lo ms, +L caracteres y cree una segunda cadena con la
primera palabra de la frase original que empiece con la letra FbG, si ePiste.
#%" 4acer un programa en $enguaje ( que lea una cadena de caracteres y elimine los espacios en blanco.
#'" 4acer un programa en $enguaje ( que lea dos cadenas de caracteres en forma separada y luego las una, en una
nueva cadena pero intercalando palabra por palabra entre las dos cadenas.
todos deportistas conocDan prefieren creyendo milagros
los lo pero seguir en
5u programa debe escribirE todos los deportistas lo conocDan pero prefieren seguir creyendo en milagros
#*" 4acer un programa en $enguaje ( que lea una cadena de caracteres y llamar a un funcin que la modifique de la
siguiente maneraE se deben cambiar maysculas por minsculas, minsculas por maysculas y dDgitos por puntos.
#+" 4acer un programa en $enguaje ( que lea una cadena de caracteres, e indicar si la cadena leDda es o no un
palDndromo !se lee igual de izquierda a derecha, que de derecha a izquierda". &jE Daba le arroz a la zorra el abad
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#J" 4acer un programa en $enguaje ( que lea una palabra, mPimo de #L caracteres, y escriba, en orden alfabOtico,
todas las letras de ella. &n caso de que se repita una letra se debe imprimir tantas veces como ocurra.
,or ejemplo, la palabra pelele debe escribirse como eeellp.
#K" 4acer un programa en $enguaje ( que lea una palabra, mPimo de #L caracteres, y escriba, en orden alfabOtico,
todas las letras de ella. &n este caso slo se debe escribir una vez cada letra, o sea, no se escribirn las
repeticiones.
,or ejemplo, la palabra pelele debe escribirse como elp
#M" 4acer un programa en $enguaje ( para decodificar una sucesin de aGs y bGs que aparece codificada por medio de
un conjunto de parejas de dDgitos y letras donde el dDgito indica el nmero de veces que se repite la letra que lo
sucede. &l programa debe leer en una lDnea la sucesin codificada para despuOs decodificarla. 5i la sucesin
codificada leDda esE 'a*b%a
su programa debe escribirE aaabbbbaa
8otasE
$os nmeros son de un slo dDgito !no hay #L,##, ...".
,uede haber tantas sucesiones de aGs y bGs como se desee.
$as letras no necesariamente vienen alternadas.
&n la lDnea de lectura, no hay ningn espacio.
(onsidere que la sucesin decodificada ser de longitud menor o igual a ML caracteres.
#Q" 4acer un programa en $enguaje ( que lea una frase y una palabra y que cuente cuntas veces aparece la palabra
leDda dentro de la frase, 6a sea como una 3alabra com3leta o como 3arte de otra 3alabra. $a frase y la palabra
tienen una longitud mPima de +L caracteres.
%L" 4acer un programa en $enguaje ( que lea una frase y una palabra y que cuente cuntas veces aparece la palabra
leDda dentro de la frase como una 3alabra com3leta. $a frase y la palabra tienen una longitud mPima de +L
caracteres.
%#" 4acer un programa en $enguaje ( que lea una frase de a lo ms, +L caracteres y que, si su longitud es menor a
+L, le aNada tantos espacios al final como sea necesario hasta que alcance los +L caracteres.
%%" &l teclado de su computadora est descompuesto y cada vez que oprime la letra +s, Osta se imprime tres veces en
vez de una. 4acer un programa en $enguaje ( que reciba como dato de entrada una lDnea tecleada en su
computadora y que genere e imprima una cadena resultado sin ePceso de +s,. &l programa tambiOn debe funcionar
si la lDnea original no contiene ninguna +s,.
%'" nalice, diseNe y codifique un programa queE
a" $e pida al usuario el aNo actual.
b" $ea una serie de )egistros de (ontribuyentes !)(". &l final de datos estar dado por .>8 o .in o fin.
c" ,ara cada uno de los )( recibidos debe imprimir la edad en aNos de la persona.
&l )( de una persona est formado por * caracteres en maysculas !inicial del primer apellido, primera vocal del
primer apellido, inicial del segundo apellido e inicial del primer nombre, J nmeros !los dos ltimos del aNo de
nacimiento, mes y dDa", un nmero y dos caracteres en mayscula que representan una clave.
%*" ,lataforma envDa sus mensajes codificados para que el enemigo no los descubra. nalice, diseNe y codifique un
programa para ,lataforma que reciba un tePto !mPimo +L caracteres" codificado, genere una cadena de
caracteres con el tePto decodificado y la imprima.
&l tipo de codificacin que utiliza ,lataforma para escribir sus mensajes consiste en sustituir las vocales por
nmeros, dejando los dems caracteres igual, de la siguiente formaE
a #
e %
i '
o *
u +
&jemploE
1ePto codificadoE 1*m# #N*s c*nstr+'r l# c*nf'#nz# y s*l* m'n+t*s p#r# d%str+'rl#.
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
1ePto decodificadoE 1oma aNos construir la confianza y solo minutos para destruirla.
%+" 4aga un programa que lea n parejas de palabras, las cuales son antnimos. &l programa debe escribir las letras
comunes a las dos palabras. 5i una letra aparece ms de una vez en la palabra y en su antnimo, debe registrase
una sola vez. l final se debe imprimir el nmero del par que tiene ms letras en comn y la cantidad de letras en
comnE
,or ejemploE
interesante aburrido ira
gordo flaco o
alegre triste er
alto bajo ao
,ar con ms letras en comnE es el # y tiene ' letras en comn
%J" $eer dos cadenas.
(alcular de la primera cadena el carcter que ms se repite.
(alcular de la segunda cadena el carcter que ms se repite.
)eemplazar el carcter que ms se repite de la segunda cadena por el carcter ms repetido de la primera
cadena.
&jemploE
(D&8 #
,& $ & $ & XL
(aracter ms repetido &
(D&8 %
( 5 XL
(aracter ms repetido
)&5U$1D/
(& 5 & XL
%K" $eer una cadena de caracteres de mPimo +L caracteres y cree dos nuevas cadenas con las palabras en
maysculas y minsculas !(ada palabra en la cadena esta escrita en su totalidad en mayscula o en minscula"
&jE

&$ p e r r o & 5 2 ) 8 D & XL
(adenas )esultantesE
Y
&$ & 5 2 ) 8 D & XL
(
pe r r o XL
%M" )ealizar un programa ( que permita leer dos cadenas y hacer una funcin para cada uno de los siguientes itemsE
(alcular la longitud de cada una.
5i la longitud de (#?longitud de (% entonces copiar la cadena (% en (#.
&jemplo. (#? 4^ 5/$XL
(%? ]>&)8&5XL
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
>gual longitud entonces (#? ]>&)8&5XL
5i la longitud de (# B longitud de (% entonces concatenar las dos cadenas en una
tercera.
&jemplo (#?&$ ,)&]>/XL
(%? &51 ,) 5() (>8(/XL
(#B(% entonces ('? &$ ,)&]>/ &51 ,) 5() (>8(/XL
5i la longitud de (# V longitud de (% entonces mezclar en forma intercalada las dos
cadenas.
&jemplo. (#? 4/^ U8 &5,&(>$ ,) ,5&)XL
(%? &5 D>XL
(#V(% entonces ('? 4/^ &5 U8 D> &5,&(>$ ,) ,5&)XL
%Q" $eer una cadena de caracteres de mPimo +L caracteres y posteriormente convertir el principio y fin de cada
palabra en su equivalente en mayscula.
&jE

$ a c a s a e 5 b o n i t a y 2 r a n d e XL
(adena )esultanteE

$ ( a s & 5 Y o n i t ^ 2 r a n d & XL
1abla de cdigos sciiE
J+ a QK
Y JJ b QM
( JK c QQ
bb. bb
\ QL z #%%
'L" Dadas tres frases !cadenas de caracteres" asDE la primera frase contiene un conjunto de palabras en ingles que
representa un diccionario de palabras en ingles. $a segunda frase contiene un conjunto de palabras en espaNol
que representan la traduccin de las palabras en ingles contenidas en la primera frase. $a tercera frase contiene
palabras en ingles que se desean traducir a espaNol.
&jemploE
,rimera fraseE yes you this open file 3hen friends hello
5egunda fraseE si usted este abrir archivo cuando amigos hola
1ercera fraseE hello friends
)esultadoE hola amigos
4aga un programa que realice lo siguienteE
a. $ea las tres frases
b. travOs de una funcin, traduzca la tercera frase e imprima su
contenido en espaNol.
8/1E por cada palabra en ingles de la primera frase ePiste una palabra en espaNol en la segunda frase, en la
misma posicin como se muestra en el ejemplo y, las palabras de la tercera frase son del mismo tamaNo que las de
la primera frase.
'#. Dada una cadena leDda por teclado que almacene una frase. )ealice un programa en c que construya dos nuevas
cadenas con las dos palabras ms largas que contiene la frase original.
1
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
&l programa elaborado debe contener las siguientes funciones=
a. $eer la frase inicial
b. &ncuentre la longitud de una palabra
c. (onstruya la cadena con la palabra ms larga.
d. (onstruya la cadena con la segunda palabra ms larga.
e. .uncin principal
A%%E.1O! (I+I#E0!IO0A1E! #A5%ICE!"
Una -atriz o arreglo bidimesional es una coleccin de datos del mismo tipo, referenciada con un solo nombre y que para
acceder a cada uno de sus datos se necesita dos sub*ndice que indican la posicin !la fila y la columna" donde se
encuentra almacenado un dato, dentro de la coleccin.
&n este caso los datos estn organizados en dos dimensiones !.ilas y columnas" y por esta razn se requiere de dos
subDdices para ubicar un dato en particular. Uno de los subDndices indicar la fila donde se encuentra el dato y el otro
subDndice la columna.
"#( 2#* 22#0 $1#"
9
1 2 0 c+1
# # # # #
,ombre de la coleccin de datos
,ombre de la 9atriE
.ubndice que enumera las ?ilas de
la coleccin de datos 'matriE&
.ubndice que enumera las columnas de
la coleccin de datos 'matriE&
Fila 1
9314324
93043c+14
"#(5 2#*5 (#$5 10#25 etc son datos del mismo ti/o
'en este caso todos son n8meros reales&5
que est2n almacenados en esta coleccin
'matriE o arreglo bidimensional&5
llamada 9 y que tiene ca/acidad /ara almacenar ? > c datos
Fs decir que la matriE tiene ? ?ilas y c columnas
(#$ 10#2 0#( $#"
1$#" 7#7 2#2 *#0
###
0
1
2
$#" 2#7 0#0 "#2 ?+1
Columna 2
93?+143c+14
#. Dada una matriz de 'PJ hacer un programa en $enguaje ( para llenarla y posteriormente, sumar todos sus
valores.
%. Dada una matriz de *P+ hacer un programa en $enguaje ( para llenarla y posteriormente, determinar la cantidad
de valores positivos y negativos dentro de la matriz
'. Dada una matriz de *P+ hacer un programa en $enguaje ( para llenarla hasta la fila ' y posteriormente, hallar la
suma de cada columna y colocarlo en la fila *.
*. Dada una matriz de +P+ hacer un programa en $enguaje ( para llenarla y posteriormente, hallar la traza !la suma
de la diagonal principal"
+. Dada una matriz de +P+ hacer un programa en $enguaje ( para llenarla y posteriormente, hallar la suma de la
diagonal secundaria
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
J. Dadas dos matrices de +PM hacer un programa en $enguaje ( para llenarlas y posteriormente, construir una
tercera matriz con la suma de las dos anteriores.
K. Dada una matriz de JPJ hacer un programa en $enguaje ( para llenarla y posteriormente, determinar si es un
cuadrado mgico. ,ara ser un cuadrado mgico debe cumplir las siguientes reglasE la suma de la diagonal principal,
segundaria, de las filas, columnas deben dar en todas lo mismo.
M. Dada una matriz de *P* hacer un programa en $enguaje ( para llenarla y posteriormente, hallar el menor valor
dentro de la matriz y la posicin que ocupa.
Q. Dada una matriz de *P* hacer un programa en $enguaje ( para llenarla y posteriormente, determinar si es una
matriz identidad. ,ara ser matriz identidad debe cumplir con las siguientes reglasE 1odos los elementos de la diagonal
principal son # y los dems deben ser L.
#L. Dadas dos matrices una de +P' y otra de 'P% hacer un programa en $enguaje ( para llenarlas y posteriormente,
crear una tercera matriz con la multiplicacin de ambas.
##. Dada una matriz de *P* hacer un programa en $enguaje ( para llenarla y posteriormente, intercambiar los
contenidos de la fila # con la '.
#%. &labore un programa que lea una matriz de m [ n y genere una segunda matriz con las columnas como renglones
y los renglones como columnas.
,or ejemplo, si la matriz que da el usuario esE
*K #'+
%L JQK
'# %J*
entonces el programa debe escribir la matriz transpuestaE
*% '
KL #
#J %
'Q J
+K *
#'. Una matriz cuadrada se dice que es simOtrica si !i, j" ? !j, i" para todo i, j dentro de los lDmites de la matriz.
&labore un programa que lea una matriz y diga si es simOtrica o no.
#*. Una empresa tiene n empleados que trabajan en tres departamentos distintos !#LL#, #LL%,#LL'" se ha elaborado
un registro de cada uno de ellosE cedula, edad, sePo, salario, departamento y aNos de antigZedad.
&labore un programa en $enguaje ( que permita determinarE
8mero de empleados hombres y mujeres.
(edula de la persona con el salario mas bajo.
8mero de personas por departamento
(edula de la persona ms antigua de la empresa.
(edula de la persona ms joven de la empresa.
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
0
1 2 " $ (
datos
,ombre de la 9atriE
CGdulas de los
em/leados
columna 0
Fdades
columna 1
Columna 2H .e>o
1=<ombre
2=9u;er
Columna "
.alarios
Columna $
1e/artamento
Columna (
AIos de antigJedad
0
1
2
"
###
n
Cada ?ila contiene los
datos de un em/leado
CGdula del /rimer
em/leado
datos304304
CGdula del cuarto
em/leado
datos3"4304
.e>o del segundo
em/leado
datos314324
.alario del /rimer
em/leado datos3043"4
1e/artamento al que
/ertenece el segundo
em/leadoH datos3143$4
AIos de antigJedad
del ultimo em/leado
datos3n43(4
Para /oder usar una matriE en este caso
todos los datos 'cGdula5 edad5 se>o5 salario5
de/artamento5 y aIos de antigJedad5
tiene que ser del mismo ti/o 'en este caso enteros&
#+. &n el municipio de ]ista.ea se realizaron los comicios para la eleccin de alcalde, en el proceso participaron #M'*
votantes a cada uno de los cuales se les registro la siguiente informacinE
(edula, sePo, nmero del candidato por quien voto.
la eleccin se presentaron tres candidatos= usted como encargado de la oficina de registraduria debe elaborar un
programa que permita establecerE
&l candidato ganador
8mero de votos por candidato y en blanco !L"
8mero de hombres y mujeres votantes
Determine el porcentaje de votacin para cada candidato y si el ganador no posee mas del +L: el
programa debe informar que se debe realizar una segunda ronda con los dos candidatos que obtuvieron mayor
votacin.
#J. &n unas elecciones presidenciales del paDs, la registraduria va a sistematizar el conteo de votos= se leen los
siguientes datosE nmero de mesa, votos por el candidato +*, KM y QM, votos en blanco y nulos. &l total de mesas fue de
%LL.'*+ en todo el paDs determinarE
$a cantidad de votos de cada candidato
&l nmero total de votos nulos
&l nmero total de votos en blanco
&l gran total de la votacin
&l porcentaje de abstinencia si el potencial de electores es de MLLLLLL de habitantes.
#K. 5e desea registrar en una matriz la votacin para presidente !c de votos". &l paDs esta compuesto por ##
departamentos 5e tiene #M candidatos !representado en las columnas" 2uardar en un vector el porcentaje de votacin
de cada candidato. DetermineE
&l !los" candidato!s" que obtuvo !obtuvieron" mayor votacin
&l candidato con menos votos ePpresar en porcentaje
$os candidatos que fueron penalizados !dotacin menor o igual al +:".
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#M. &n el prestigioso colegio 9&l arca de 8oe; estudian #Q'+ alumnos. llD solo cursan + asignaturas y solo hay tres
cursos J,K y M de cada uno se ha registrado la siguiente informacin correspondiente al segundo bimestreE (digo del
estudiante, curso, nota asignatura #, nota asignatura %, nota asignatura ', nota asignatura *, nota asignatura +.
Usted debe hacer un hacer un programa en $enguaje ( que permita establecerE
&l promedio de cada estudiante.
&l promedio de cada curso
&l codigo del mejor estudiante del colegio
&l promedio general del colegio
>mprimir en orden decendente los cursos deacuerdo al promedio que se obtuvo en cada uno de
ellos
#Q. &n una empresa se va procesar la informacin de los #%*L empleados de cada uno ellos se conocenE
(digo, sePo, salario bsico, departamento al cual pertenece.
$os departamentos sonE
L# (ontabilidad
L% dministracin
L' -ercadeo
L* 5istemas
5e debe determinarE
(uantas mujeres y cuantos hombres hay en cada departamento
(uantos empleados ganan menos de #LLLLL
(uantas mujeres ganan ms de +LLLLL
(ual es el hombre y la mujer que ganan ms.
(ual es el hombre y la mujer que ganan menos.
%L. &n un banco de la ciudad hay #*+M clientes que poseen cuenta corriente. $os saldos de las cuentas se actualizan
al final del dDa alimentando el computador con las transacciones de todo el dDa, para cada cuenta se permite mPimo una
transaccin se leeE
8mero de cuenta, (edula del (liente, 5aldo nterior, ]alor de la transaccin, 1ipo de transaccin !# deposito % (heque
girado"
5e desea imprimirE
&l listado de cuentas con el saldo actualizado
(uantas cuentas y quienes son sus titulares, quedaron con saldo en rojo !5aldo negativo"
(ual es el total de dinero de sus clientes que posee el banco al final del dDa.
(ual es el cliente que tiene ms dinero en su cuenta y de cuanto es el monto
(uanto suman los cheques girados al final del dDa
%#. &n una empresa se van a procesar *'KK facturas de ventas del mes= allD solo se venden + artDculos con los
siguientes precios unitarios y cdigos.
(haquetas a KLLLL c6u cdigo L#
,antalones a '*LLL c6u cdigo L%
(amisas a %KLLL c6u cdigo L'
(orreas a #M+LL c6u cdigo L*
(orbatas a #MLLL c6u cdigo L+
5olo ePisten J vendedores !#,%,',*,+,J" para cada factura se leeE
c de vendedor
c de pantalones vendidos
c de camisas vendidas
c de correas vendidas
c de corbatas vendidas
c de chaquetas vendidas
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
$os descuentos por factura se manejan asDE
(haquetas de + a %L unidades vendidas descuento del M: y ms del %L el #': de descuento
,antalones mas de #+ el #M: de descuento
(amisas mas de 'L el #+: de descuento
(orreas no tienen descuento
(orbatas el ': de descuento para cualquier cantidad.
(alcularE
cuanto ascienden las ventas netas del mes
(uanto se recaudo por concepto de >] si en todas las ventas es del #J:
(ual es el vendedor que obtuvo mayor monto en las ventas
(ual es el artDculo que ms ingresos produjo para la empresa
(uanto se gano cada vendedor por comisin si los porcentajes se aplican al valor neto de la venta
!sin >]" asDE
De L a +LLLLLL comisin ##.+:
De +LLLLLL a %+LLLLLL comisin #K.M:
-s de %+LLLLLL comisin %L:
(ual es el promedio de ventas por factura para cada vendedor.
%%. !I" &labore un programa que lea una matriz de ' [ ' y calcule la inversa usando el mOtodo de 2aussH0ordan.
%'. !I" )esuelva el siguiente sistema de ecuaciones linealesE
% P d %y 7 z ? #
HP 7 y 7 z ? L
HP 7'y 7 +z ? L
%*. Una empresa automotriz tiene cinco agencias y cuenta con la informacin acerca de las ventas mensuales de
automviles logradas el aNo pasado por cada una de Ostas. partir de estos datos la empresa construy la siguiente
matriz ventasE
1oma
s
Vallejo Perisu
r
del
Valle
Orient
e
Ener
o
2ebr
ero
. . .
0ovi
emb
re
+ici
emb
re
&labore un programa para contestar las siguientes preguntasE
a. _(ul fue el total de ventas en el aNo de la agencia $omas`
b. _(ul fue el promedio de ventas en el mes de diciembre`
c. _CuO agencia tuvo mayores ventas en el mes de mayo`
d. _&n quO mes se registraron las menores ventas del aNo, considerando todas las agencias`
%+. &labore un programa que genere las tablas de multiplicar del # al #L en un solo arreglo de dos dimensiones y
posteriormente imprima dicho arreglo.
%J. 5e tienen los resultados de las ltimas elecciones a gobernador en el departamento X, el cual est conformado por
+ municipios. &n dichas elecciones participaron * candidatos. !+[*"
&labore un programa queE
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
a" $ea e imprima una tabla indicando los votos obtenidos en cada municipio por los * candidatos.
b" (alcule el total de votos recibidos por cada candidato y el porcentaje del total de votos emitidos.
c" (alcule el candidato ms votado.
d" 5i un candidato recibi ms del +L: de los votos, indicar que es el ganador. 5i ningn candidato recibi ms del
+L: de los votos, el programa debe imprimir los dos candidatos ms votados, que sern los que pasen a la segunda
ronda de las elecciones.
%K. Una agencia automotriz distribuye quince modelos diferentes de coches y tiene diez vendedores. 5e desea un
programa que escriba un informe mensual de las ventas por vendedor y modelo, asD como el nmero de automviles
vendidos por cada vendedor y el nmero total de cada modelo vendido por todos los vendedores. simismo, para
entregar el premio al mejor vendedor, necesita saber cul es el vendedor que ms coches ha vendido.
$os datos se proporcionan por dDa !'L dDas", todos los vendedores informan la cantidad de coches que vendieron de
cada modelo ese dDa, el final de datos de las ventas del dDa se conoce por un L. $os vendedores no necesariamente
informan sus ventas en orden, ni por orden de vendedor ni de modelo.
%M. Un observatorio astronmico requiere de un programa que analice una fotografDa del cielo tomada por la noche. $a
informacin de la fotografDa est almacenada en forma de tabla, donde cada elemento representa la cantidad de luz que
se registr para cada punto. $os valores registrados van del L al %L, por ejemploE
$a persona encargada de analizar la informacin supone que hay una estrella en !i, -" siE
el punto no se encuentra en las orillas de la fotografDa !primero o ltimo rengln o columna", y
(a$i, -. % a$i - 1, -. % a$i % 1, -. % a$i, - - 1. % a$i, - % 1.) / 30
5e espera como resultado del anlisis, una tabla b con un 9I; en las parejas !i, -" en las que se supone que hay una
estrella. &l resto de la tabla debe quedar lleno de espacios. $a tabla b que resulta del ejemplo anterior esE
&labore un programa queE
a. $ea las dimensiones de la tabla m y n con !1 m, n (0".
b. $ea los valores de cada elemento de la tabla a.
c. (onstruya la tabla b.
d. >mprima la tabla b.
%Q. Una compaNDa de transportes que tiene sucursales en %L ciudades del paDs, quiere saber la distancia que recorre
un chofer al ir de una ciudad a otra. $os datos referentes a las distancias estn indicados como se muestra a
continuacinE
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
DondeE
disti, - V L representa que hay carretera de la ciudad i a la ciudad j y la distancia ePistente entre ambas ciudades.
disti, - ? L si i diferente a j, representa que no hay carretera entre la ciudad i y la ciudad j.
5e le pide que elabore un programa paraE
$eer la tabla de distancias, determinando usted la mejor disposicin de los datos. !slo es necesario
leer una parte de la matriz"
$eer la ciudad de origen a y la ciudad destino b.
&ncontrar la distancia que recorre el chofer al ir de la ciudad a a la ciudad b. 5i no ePiste carretera
directa, entonces deber encontrar una ciudad intermedia c, para hacer el recorrido de la ciudad a a la ciudad c y de
la ciudad c a la cuidad b.
5i no ePiste ninguna ruta posible para llegar de a a b, deber escribir un mensaje. De otro modo,
escriba el total de Rilmetros recorridos para llegar al destino.
5i hay varias ciudades intermedias entre a y b, encuentre la ruta ms corta.
'L. $os datos de una compaNDa referentes a las ventas de sus +L artDculos, vendidos por sus #L vendedores estn
agrupados como se indica a continuacinE
cla#rt1, cla0en1, cant1
cla#rt(, cla0en(, cant(
. . .
cla#rtn, cla0enn, cantn
-1, -1, -1
DondeE
cla#rti representa la clave del artDculo vendido en la iHOsima venta, !con 0 cla#rti 41"
cla0eni representa la clave del vendedor que hizo la iHOsima venta, !con 0 cla0eni 1"
canti es la cantidad de artDculos de clave clarti, vendidos por el vendedor cla]eni en la iHOsima venta.
Dicha compaNDa desea que usted elabore un programa que realice lo siguienteE
a" $ea las ventas realizadas.
b" >mprima un reporte con las siguientes caracterDsticasE
1otal de ]entas
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
donde cada toti,j representa el total de ventas del artDculo i vendido por el vendedor j.
c" >mprima el total de artDculos vendidos por clave.
d" >mprima el total de artDculos vendidos por vendedor.
e" >mprima la clave del artDculo menos vendido por el vendedor de clave *.
'#. Una fbrica de bombas hidrulicas tiene una matriz con los insumos necesarios para la produccin de un conjunto
de motores. ,or ejemplo, suponiendo que la planta produce K motores y se utilizan M insumos en diferentes cantidades
para su produccin, la matriz serDaE
nalizando la matriz anterior, podrDamos ver que para producir un motor del tipo ' es necesario utilizar + unidades del
insumo #, #L unidades del insumo %, #+ unidades del insumo ', #L unidades del insumo +, #+ unidades del insumo J y +
unidades del insumo K.
,or otro lado se tiene un arreglo con los costos unitarios en pesos de cada insumoE
(osto de >nsumos
5e tiene otro arreglo con los pedidos a surtir en el presente mesE
,edidos del mes de cada motor
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
1ambiOn se tiene un ltimo arreglo con la ePistencia actual de cada uno de los insumosE
&Pistencia de >nsumos
&labore un programa paraE
a" $eer el nmero m de motores que fabrica la planta !mPimo +L".
b" $eer el nmero n de insumos necesarios para la fabricacin de los motores !mPimo +L".
c" $eer los datos de la matriz de >nsumos6-otor.
d" $eer los datos del arreglo de costos unitarios de insumos.
e" $eer los datos del arreglo de pedidos del mes de cada motor.
f" $eer los datos del arreglo de insumos ePistentes en la planta.
g" /btener e imprimir un arreglo de m elementos, con el costo de produccin de cada motor. 5uponga que el
costo de produccin de un motor consiste en sumar el producto de insumos necesarios por el costo unitario de
cada insumo.
h" /btener e imprimir un arreglo de n elementos, con la cantidad de unidades de cada insumo, necesaria
para cumplir con los pedidos del mes.
i" /btener e imprimir un arreglo de n elementos, cuyos datos indiquen cul es el costo total por concepto de
cada insumo para cumplir con los pedidos del mes.
j" /btenga e imprima el costo total !tomando en cuenta todos los insumos" para cumplir con la produccin
del mes.
R" /btenga e imprima un arreglo de n elementos, con la diferencia de los insumos necesarios para la
produccin mensual menos los insumos ePistentes en la planta, con el fin de poder surtir dichos insumos a
tiempo.
'%. 4acer un programa en $enguaje ( que lea un listado de nombres en una matriz y luego los ordene en orden
alfabOtico.
''. 4acer un programa en $enguaje ( que procese las notas de un grupo de estudiantes, debe empezar solicitando la
cantidad de alumnos y de notas a ingresar, almacenar el nombre del estudiante y las notas que obtuvo, tenga en cuenta
que debe utilizar % matrices, una tipo char para los nombres y otra tipo flota para las notas.
Determine nombre del estudiante con el promedio ms alto
Determine nombre del estudiante con el promedio ms bajo
4acer un programa en $enguaje ( que lea una lista de paDses con sus respectivas capitales en dos matrices, y
posteriormente lea el nombre de un paDs o capital e imprima su correspondiente.
'*. &n una empresa de taPis se desea registrar la informacin de las 8 !8 dado por teclado" carreras realizada por sus
mviles!taPis" a los clientes de la empresa, ePisten + 1aPis. Dada la siguiente informacinE (digo del taPi, cOdula del
cliente, tipo de servicio y valor del servicio. Donde E
2
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
DetermineE
(ual es el valor total producido por cada taPi.
(ual es el servicio que ms se usa.
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
Cue cliente paga ms por un servicio.
&jemplo de representacin de la informacin en forma de matriz !arreglo bidimensional"E
8
m
er
o
de
l
ta
Pi
(Odula (liente 1ipo servicio ]alor
L% MML'LQLL L' +LLL
L' JLJ%'MQL L# %+LL
L# KQ#%LKJ+ L% 'LLL
b
b
b.
bb. b.. bb..
'+. 5e lee la informacin de #LL estudiantes, el cdigo, la nota final, el departamento !#. 5>51&-, %.
&$&(1)e8>(, '. 1&$&(/-U8>((>/8&5", y el ciclo de formacin al que pertenece !# para los ,rimeros +
semestres y % para los + ltimos semestres".
)epresentando esta informacin en una matriz...
5e debe calcular e imprimir
(uantos estudiantes hay en cada departamento
&l cdigo del estudiante con la nota ms alta
&l promedio de notas de los estudiantes de primer ciclo, y segundo ciclo
'J. $eer una matriz de 'P*, las filas representan los productos L,#,% y las columnas representan las sucursales
L,#,%,'... en cada celda de la matriz se registra la cantidad mensual vendida de productos de la empresa. 5e tiene
adems un vector de ' posiciones con el costo de venta de cada producto.
(alcular e imprimir un vector de * posiciones con el valor total vendido por sucursal
(alcular e imprimir la sucursal que ms dinero recaudo.
L # % ' * ]ector costo de
productos
L # % ' + # #LLLL
# % # % % % #+LLL
% ' + + ' * +LLL
1otal
]endido
++LLL J+LLL M+LLL Q+LLL JLLLL
'K. Un concesionario de automviles alquila sus vehDculos por dias, dependiendo del tipo de vehDculo los precios son
asiE
1ipo L# .amiliar valor a%L.LLL diarios
1ipo L% Deportivo valor a'L.LLL diarios
1ipo L' (amioneta valor a+L.LLL diarios
)ealice un programa en ( que almacene la siguiente informacin (edula, 1ipo de vehDculo, Dias, 1otal a pagar, para 8
clientes !8 es un numero desconocido" &l llenado de la informacin termina cuando la cedula del cliente es L.
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
los clientes con mas de M dias de alquiler en cualquier tipo se les hace un descuento del +: sobre el valor total.
)ealice con .uncionesE
.uncin de $lenado ! 5olo puede solicitar cedula, 1ipo de vehDculo y dias"
.uncin valor a pagar por cliente !almacenar este valor en la matriz"
]alor promedio de alquiler por tipo y general.
(ual es el tipo de vehDculo que mas se alquila.
&jemplo de -atrizE
(Odula 1ipo de ]ehDculo DDas ]alor a ,agar
'M. $a universidad de ,amplona desea llevar un registro de los QJ estudiantes deportistas vinculados a las selecciones
de la universidad. &Pisten ' selecciones
C
d
ig
o
0ombre
#L
#+
.tbol
#L
'L
)ugby
#L
*+
1aeR3ondo
De cada estudiante se conoceE (Odula, 5ePo!# 4ombre, % -ujer", &dad, (digo de la 5eleccin a la que
pertenece.
)ealice con funcionesE
$lenado de la matriz
Determine el porcentaje de 4ombres y mujeres !de toda la matriz".
Determine la seleccin con el deportista ms joven.
Determine el nmero de deportistas por seleccin.
'Q. Una empresa de celulares quiere llevar el control de todos los planes que a vendido. &Pisten +%M clientes y de ellos se
conoceE (Odula, 5ePo !# 4ombre, % -ujer", 1ipo de ,lan !L# .amiliar, L% &studiante y L' (orporativo", 8mero de (elular y
minutos consumidos.
$os ,lanes son los siguientesE
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
)ealiceE
#. -ain
%. .uncin $lenado de la matriz que almacena los datos mencionados.
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
'. .uncin que imprima el total que debe pagar cada cliente !debe tener en cuenta que al valor hay que sumarle
los minutos ePtra si estos ePisten".
*. .uncin que determine quien consume ms minutos hombres o mujeres.
+. .uncin cual es el cliente que ms paga en su factura
8otaE ,or cada minuto que se ePceda un cliente en su plan debe pagar los minutos adicionales a '+L pesos cada
uno.
%E.I!5%O!
$os registros a diferencia de los arreglos son colecciones de datos que pueden albergar datos de diferentes tipos.
los datos que pertenecen a dicha coleccin se les denominan campos y se referencia con un nombre diferente para cada
uno de los campos. ,ara tener acceso a cada uno de los datos de la coleccin !registro se hace uso de la notacin de punto
asDE nombreregistro.nombrecampo.
F
$()*6
codigo
Pe/ito /ereE
nombre
edad se>o 17 9
estatura
1560
,ombre de la coleccin de
datos que /ueden ser de di?erente ti/o
,ombre del registro
Cam/o cdigo 'n8mero entero&
Cam/o nombre
'cadena de caracteres&
Cam/o edad
'n8mero entero&
Cam/o se>o
'caracter&
Cam/o estatura
'n8mero real&
F#estatura
F#se>o
F#codigo
F#edad
F#nombre
$()*65APe/ito PereEA5175A9A5 1560
son los datos que Dacen /arte
de esta coleccin 'registro& y que
?recuentemente son de di?erente ti/o
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
Otro ejem3lo de registros
A
$()*6
codigo
Pe/ito /ereE
nombre
edad se>o
17 9
nota $#(
K
$(2"
codigo
Luanita Laimes
nombre
edad se>o
1* F
nota "#*
A es el nombre
del registro
K es el nombre
del registro
A#codigo
entero
K#codigo
entero
A#nombre
cadena de
caracteres
A#edad
entero
A#nota
n8mero real A#se>o
caracter
K#nota
,8mero real
%egistros Anidados
)egistros en los cuales uno de sus campos tambiOn es registro
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
A
$()*6
codigo
Pe/ito /ereE
nombre
edad se>o
"( 9
nota $#(
A es el nombre
del registro
A#codigo
entero
A#nombre
cadena de
caracteres
A#edad
entero
A#nota
n8mero real
A#se>o
caracter
?ecDan
1
dia
) mes
17*0 anio
A#?ecDan
que tambiGn
es un registro
A#?ecDan#da
entero
A#?ecDan#mes
entero
A#?ecDan#anio
entero
MM Fn lengua;e c
NincludeOstdio#DP
struct t?ecDaQ
int dia5mes5anio!
R!
struct testudianteQ
int codigo!
cDar nombre3$04!
int edad!
cDar se>o!
?loat nota!
t?ecDa ?ecDan!
R!
int mainQ
testudiante A5K!
R
%egistros con vectores
&jemplo de registros en los cuales uno de sus campos es un vector
A
$()*6
codigo
Pe/ito /ereE
nombre
edad se>o
"( 9
nnotas
"
A es el nombre
del registro
A#codigo
entero
A#nombre
cadena de caracteres
A#edad
entero
A#nnota
entero que indica
el n8mero de notas
que tiene el estudiante
A#se>o
caracter
?ecDan
1
dia
) mes
17*0 anio
A#?ecDan
que tambiGn
es un registro
A#?ecDan#da
entero
A#?ecDan#mes
entero
A#?ecDan#anio
entero
MM Fn lengua;e c
NincludeOstdio#DP
struct t?ecDaQ
int dia5mes5anio!
R!
struct testudianteQ
int codigo!
cDar nombre3$04!
int edad!
cDar se>o!
int nnotas!
?loat notas3104!
?loat de?initi0a!
t?ecDa ?ecDan!
R!
int mainQ
testudiante A5K!
R
"#( 1#( $#0
####
notas
de?initi0a
"#0
0 1 2 10
A#notas324
real
A#notas304
real
A#de?initi0a
real
Vectores de registros
Un vector para el cual cada una de sus casillas almacena un registro
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
curso
$()*6
codigo
Pe/ito PereE
nombre
se>o
9
nnotas
"
?ecDan
1
dia
)
mes
17*0 anio
"#( 1#( $#0
####
notas
de?initi0a
"#0
0 1 2 10
"$(
codigo
Luanita Laimes
nombre
se>o
F
nnotas
2
?ecDan
27
dia
2
mes
1760 anio
"#( $#(
####
notas
de?initi0a
$#0
0 1 2 10
codigo
nombre
se>o
nnotas
?ecDan
dia
mes
anio
####
notas
de?initi0a
0 1 2 10
codigo
nombre
se>o
nnotas
?ecDan
dia
mes
anio
####
notas
de?initi0a
0 1 2 10
0 1 ########### n+1
curso es el nombre
del 0ector con ca/acidad
/ara almacenar in?ormacin
de n estudiantes
curso 314#nombre
curso 304#codigo
curso 3n+14#notas314
curso 3n+14#se>o
.ubndices del 0ector
curso
curso314#?ecDan#mes
curso314#?ecDan#anio
curso3i4#notas324
i
curso314#de?initi0a
#. $a informacin de todos los empleados de una cierta compaNDa est almacenada en una variable llamada
9empresa; definida como un arreglo de registros. $a informacin con que se cuenta de cada empleado esE nombre,
sePo y sueldo. &scriba la declaracin para el registro y el arreglo 9empresa;.
(onsiderando las declaraciones que hizo, escriba las instrucciones en ( paraE
a" >mprimir el nombre y el sePo del cuarto empleado.
b" >mprimir los nombres de todos los empleados que ganan ms de a%,+LL.LL
c" 5umar al sueldo del tercer empleado a%,LLL.LL.
%. 5e tiene un arreglo de una dimensin en el que cada uno de sus elementos tiene la siguiente estructuraE
(
$

]
&
8/-Y)& 5&-&51)& -1&)>5
&n -1&)>5 se almacena informacin acerca de las J calificaciones obtenidas por un alumno en el semestre
indicado por 5&-&51)& !entero". 5uponiendo que en el arreglo ya se almacena la informacin completa de n
alumnos y que est ordenado en forma ascendente por clave, escribaE
a" $a definicin del registro y la declaracin de la variable donde se guarda la informacin de los n alumnos.
b" Una funcin que busque en el arreglo una determinada clave, si Osta ePiste regrese como valor el lugar en el
arreglo donde se encuentra. 5i la clave buscada no ePiste deber regresar un d#. Utilice bsqueda binaria.
c" Un mdulo que calcule el promedio de un cierto alumno.
d" Un mdulo que imprima la clave, nombre, semestre y promedio de un determinado alumno.
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
e" ,or ltimo, escriba parte del programa principal donde se lean 2 claves y, utilizando los mdulos anteriores, se
escriban los datos de los 2 alumnos correspondientes.
'. &n la &scuela 5uperior el valor de la matrDcula de los #MLL estudiantes se determina segn el nmero de materias
que cursan. &l costo de cada materia es a *LL. 5e ha establecido un programa para estimular a los estudiantes, el
cual consiste en lo siguienteE si el promedio obtenido por un estudiante en el ltimo periodo es mayor o igual que
*.L, se le har un descuento del 'L: sobre el valor de la matrDcula y no se le cobrara >]= si el promedio obtenido
es menor que *.L deber pagar el valor de la matrDcula completa, la cual incluye el #L: de >].
/btenerE
a. $a estructura con la informacinE promedio, nombre, nmerofdefmaterias, capturada.
b. &l listadoE promedio, nombre, nmerofdefmaterias y valor a pagar de los estudiantes con 'L: de
descuento
c. &l valor recaudado por concepto de >].
*. &n el gran premio de >ndianapolis, #LL participantes !cada uno" debe realizar ' tiempos de clasificacin. $a
informacin de cada corredor debe ser registrada en una estructura con los siguientes camposE
(digo
8ombre
1iempos T'U !vector de tipo estructura, donde cada posicin tendr los siguientes
campos hora, minutos y segundos d ,ermite almacenar los ' tiempos de clasificacin"
(ategorDa !#. 8ovatos o %.,rofesional"
5ePo !#. 4ombre o %. -ujer"
)ealizarE !implementando funciones"
#. $eer la informacin de cada participante en el vector de #LL posiciones de tipo
estructura.
%. (alcular e imprimir, el nombre del competidor con el menor tiempo en las carreras
de clasificacin en 2eneral.
'. (alcular e imprimir, el nombre del competidor con el mayor tiempo en las carreras
de clasificacin en la categorDa de los novatos.
*. (alcular e imprimir, el nombre del competidor con el mayor tiempo en las carreras
de clasificacin en la categorDa profesional.
+. &scriba un programa en $enguaje ( permita almacenar la siguiente informacin para un censo poblacional en un
municipioE
8ombre de la persona !(adena de caracteres"
8mero de documento de identidad !&ntero largo"
1ipo de documento !F(G ? (Odula, F1G ? 1arjeta de >dentidad"
.echa de nacimiento !(ompuesto por tres enteros uno para el dDa, otro para el mes y otro para el aNo"
&dad !&ntero que debe guardar los g/5 cumplidos de la persona"
&l programa debe definir una estructura !registro" para almacenar la informacin de cada persona censada, para
esto se utilizar un arreglo de registros del tipo definido anteriormenteE 5e sabe que el municipio tiene mPimo
#LLL habitantes.
&l programa deber realizar con funciones cada una de las siguientes tareas !una funcin para cada tarea"E
a" $eer la informacin del censo para cada persona !8ombre, documento, tipo, fecha",
&[(&,1/ $ &DD.
b" (alcular la edad de las personas censadas, leyendo antes por teclado la fecha
actual y retornar el promedio de edad de todos los censados.
c" /rdenar la informacin de las personas ascendentemente de acuerdo a la edad y
mostrar el listado ordenado.
8otaE )ecuerde que el ordenamiento de un arreglo de registros se realiza de manera similar al de un arreglo
normal.
J. Un grupo consta de n alumnos !mPimo +L", donde cada alumno cursa + materias. $a informacin con que se
cuenta de cada alumno es el cdigo !entero" y las + calificaciones !reales" de igual valor.
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
4aga un programa que, utilizando un arreglo de registrosE
a" lea la informacin de cada alumno y calcule la definitiva
b" (alcule el promedio general de todos los estudiantes.
(uente cuantos estudiantes estn por encima del promedio general
K. (rear un progama en ( que permite introducir cierta informacin relativa a los vuelos diarios que parte de un
aeropuerto en un ]ector formado por registros !estructuras". (ada registro contendr la siguiente informacin sobre
el vuelo correspondienteE
a" 8mero de vuelo !no tiene que coincidir con el Dndice del arreglo"
b" 4ora de partida !que a su vez tiene dos camposE 4oraE Lb%' y -inutoE Lb+Q"
c" /rigen del vueloE (adena de caracteres
d" Destino del ]ueloE (adena de caracteres
e" 8umero de pasajerosE &ntero
Una vez introducido los datos de todos los vuelos se preguntar si desea obtener informacin de algn vuelo. &n
caso de que el usuario responda afirmativamente se pedir el nmero de vuelo. &l programa buscar el vuelo en
el arreglo y acceder a la informacin que contiene a partir de su nmero de vuelo, mostrando por pantalla todos
sus datos.
&l programa se ejecutar repetitivamente hasta que el usuario indique que no desea obtener ms informacin de
ningn vuelo. )ealizar funciones paraE
a" >ntroducir la informacin de los vuelos en el arreglo
b" Yuscar un vuelo en el arreglo
c" ]isualizar un vuelo en pantalla
M. $os organizadores del mundial de ftbol le solicitan a un grupo de programadores al cual usted pertenece, un
programa para almacenar la informacin de los#J equipos que jugaran '% partidos.
Utilice las siguientes estructurasE
E,ui3o7 (digo !entero largo", ,aDs !carcter +L posiciones", goles !entero", tarjetas amarillas !entero", tarjetas
rojas!entero".
Partido7 (digo ,artido!entero largo", fecha!D6-6 enteras", estadio!carcter +L posiciones", &quiposT%U !]ector %
posiciones &structura".
Partido
Cod Partido
Pais
FecDa Fstadio Fqui/os
Cod Sar;etas
amarillas
Sar;etas
To;as
(ree las siguientes funcionesE
2uncin 1lenar
2uncin #ultas $as tarjetas amarillas tienen un costo de %+L dlares y las rojas +LL dlares indique el total en
multas por partido y por equipo en ese partido.
2uncin .anador >mprima el nombre del ganador de cada partido o empate.
2uncin .oleador >mprima el nombre del equipo goleador del mundial.
Q. (onsidere la siguiente definicin y declaraciones
struct estudiante
>ndique para cada uno de las siguientes ePpresiones en (, si
"
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
@
char nombreT%LU, apellido T%LU=
flota califT*U=prom
A=
6I declaracion de la variables I6
struct estudiante est#, est%=
es correcta o no. &n caso de ser incorrecta diga brevemente
por quO.
a" printf!9:s;, est#"=
b" int i,s?L
for !i?L=i B*=i 77"
s?s califTiU=
c" est%.prom ? est#.prom=
d" if !calif ?? calif"
printf!9>guales;"=
e" if !est# ?? est%"
printf!9>guales;"=
f" if !est#.nombre ??
est%.nombre"
printf!9>guales;"=
g" est%.prom?*
#L. )ealice un programa en ( para controlar los datos de los pacientes de un hospital donde se manejan los datos
bsicos de los enfermos.
Pacientes7 (Odula, 8ombre, &dad, 1elOfono, &stado del ,aciente !# /bservacin, % (irugDa, ' &n tratamiento",
1iempo !&structura >nterna", ]alor a pagar, (Odula del Doctor signado.
5iem3o
8mero de DDas, 8mero de meses, 8mero de Nos
II 1iempo es una estructura que almacenar el nmero de dDas, meses y aNos que lleva un paciente en el hospital
!suma que los meses son de 'L dDas"
)ealiceE
$lenar la informacin de los pacientes !el hospital puede aceptar mPimo a JL
pacientes o hasta que la cOdula del paciente sea L".
>ndicar el nombre de los pacientes que se deben operar por un determinado doctor
!la cOdula del doctor dada por teclado".
Determinar el valor a pagar de un paciente determinado !la cOdula del paciente
dada por teclado"E Debe pasar los datos de la estructura 1iempo a DDas y si el estado es /bservacin por cada
dDa internado en el hospital debe pagar *.LLL. 5i el estado es (irugDa por cada dDa internado en el hospital
debe paga J.LLL y si el estado es 1ratamiento por cada dDa internado en el hospital debe pagar +.+LL.
Determinar el porcentaje de pacientes en /bservacin, (irugDa y tratamiento
&l paciente de mayor edad que estO en tratamiento
##. Una factura tDpicamente contiene la siguiente informacinE 8o de factura, fecha, cliente, valor total, porcentaje >] y
un conjunto de items para los cuales se tiene un cdigo, nombre de articulo, una cantidad, valor unitario.
$
CGdula
,ombr
e
Fdad
SelG?on
o
Fstado Siem/o -alor a /agar
CC
doctor
1as 9eses AIos
Pacient
e
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
Dada las siguientes estructuras de datos en forma de registrosE
5truct tfecha @
>nt dia, mes, anio=
A=
struct titem@
int codigoE
char nombreprodT%LU=
int cantidad=
float valorunitario=
A=
struct tfactura@
int no=
char nombreclienteT*LU=
tfecha fecha=
titem productosT%LU=
float subtotal=
float total=
A=
Una papelerDa tiene almacenada la informacin de sus facturas !de un aNo" en un vector de registros de mPimo
%LLL posiciones
tfactura facturasT%LLLU=
&labore un programa en c con las siguientes funcionesE
Una funcin que capture los datos de facturas hasta que el nmero de factura sea
cero. (omo cada factura tiene un conjunto de items, para cada item capturar el cdigo, nombre del producto,
cantidad y valor unitario hasta que el cdigo del producto sea cero. (on los datos de los items calcular el
subtotal de la factura y el total a pagar, almacenndolos en los respectivos campos del registro factura.
4acer una funcin que calcule el total recaudado por la papelerDa en cada uno de
los meses del aNo, para ello guardar la informacin en un vector de #% posiciones.
4acer una funcin que calcule el total recaudado por concepto de >]. !toda factura
tiene un #J: de >]"
#%. De acuerdo a la siguiente estructura de datos !registro"
5truct 1empleado@
>nt codigo, horastrabajadas=
(har nombreT*LU=
.loat salario, ventas, bonificacion=
A=
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#. Defina una variable global WempleadosW que es un arreglo de registros de tipo
W1empleadoW.
%. (onstruya un programa en (, que capture mediante una funcin, los datos bsicos
!codigo, nombre, horastrabajadas y ventas" de 8 empleados y liquide el salario de cada empleado de acuerdo
a las siguientes condicionesE
(ada hora se le paga a a+LLL pesos
5i las ventas son menores de #LLLLL pesos, se da una bonificacin del +: sobre
las ventas
5i las ventas estn entre #LLLLL y +LLLLL pesos, se da una bonificacin del M:
sobre las ventas
5i las ventas son mayores de +LLLLL pesos se da una bonificacin del #L: sobre
las ventas
'. 4allar el salario promedio mediante una funcin que retorne dicho valor.
-ediante una funcin, >mprimir en pantalla los datos de todos los empleados
#'. $a empresa de buses Yerlinas desea llevar el control de sus pasajeros por la temporada navideNa. De ellos se
conoceE (Odula, 8ombre, edad, destino, peso equipaje. &l valor del tiquete esta sujeto al destino y al peso del
equipaje segn la siguiente tabla
1odos los pasajeros tienen derecho a llevar #+ hg de equipaje y por cada Rilo adicional se incrementa el %: del
valor del tiquete por cada Rilo adicional
)ealiceE
-ain
$lenado.
(antidad de pasajeros por destino.
&l promedio de equipaje por pasajero en cada ruta.
&l cliente que ms paga por ePceso de equipaje.
8ota el llenado de la estructura es hasta que la cOdula del pasajero sea igual a L
II solo se permiten mPimo *L pasajeros por ruta
#*. &n una agencia de turismo, las 8 personas que van a pagar el importe de su tiquete aOreo o terrestre, llegan a la
caja y sacan una bolita de color, que les dir el descuento que tendrn sobre el total de su pasaje. 5e sabe que si
el color de la bolita es roja el cliente obtendr un *L: de descuento= si es amarilla un %+: y si es blanca no
obtendr descuento. $a captura de informacin termina cuando el valor del tiquete terrestre o aOreo sea L.
5e desea saber usando estructurasE
&l tiquete con la informacin bsica del cliente y con el valor a pagar.
$a cantidad que pagaron los clientes que viajan por tierra cada dDa.
&l valor de los descuentos generados por la bolita roja en el dDa.
&l nmero de personas que no obtuvieron descuento en el dDa
&l porcentaje de clientes con tiquete aOreo que sacaron la bolita amarilla
#+. Un centro de recreacin quiere sistematizar la informacin de sus +'* socios de cada uno de ellos se conoce la
siguiente informacinE
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
!ocio7 8ombre, Documento de >dentidad, 5ePo !4ombre !#", -ujer !%"", .echa de >ngreso !&structura >nterna",
8umero de Yeneficiarios, &stado (ivil !5oltero !L", casado !#"".
2ec'a7 DDa, -es, No.
%ealice7
Declaracin de la &structura.
-ain
.uncin de $lenado.
Una funcin que cuente y retorne la cantidad de 5ocios solteros con ms de + beneficiarios e
imprima el nombre de chichos socios.
,orcentaje de socios 4ombres y mujeres.
)ecaudo por concepto de mensualidad del total de los socios, dependiendo de la tabla. 1odos los
socios con ms de #+ aNos de antigZedad tienen un descuento del +: sobre el valor a pagar.!Debe
preguntar la fecha actual solo una vez para calcular los aNos de antigZedad"
$
.ocio
,ombre 1ocument
o
.e>o FecDa Kene?iciarios Fstado Ci0il
1ia 9es AIo
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
#J. $a biblioteca de la Universidad necesita complementar un programa en ( con el uso de registros que le permita
tener un control sobre los prestamos. unque el programa ya ePiste, se requiere aNadirle unas cuantas funciones
que ud tiene que implementar. ,ara ello se describe a continuacin como est organizada la informacin dentro del
soft3are ePistenteE 5e tiene un vector de registros con la informacin de los estudiantesE cdigo, nombre, telOfono,
semestre en el que se encuentra matriculado el estudiante, el nmero de libros que tiene prestados el estudiante y
los datos de los libros que tiene prestado.... es decir un vector de registros de tipo libro.
(ada prOstamo esta registrado con la informacin del libro que tiene un cdigo de inventario, un titulo, un autor y
una fecha de entrega !dia, mes y aNo"
&l encabezado del programa ePistente
es el siguiente
8include9stdio.':
8include9stdlib.':
8include9conio.':
struct t)ec'a;
int dia4mes4anio<
&n el cuerpo del programa ya se tiene muchas instrucciones, pero se resumen las
siguiente, que se consideran importantes para el trabajo que ud como programador tiene
que realizar
8o necesita hacer la captura de datos por teclado, puesto que la informacin ya est en la
memoria del computador, en el vector de tipo testudiantes y la variable nest que ya tiene el
valor correspondiente.
int main";
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
=<
struct tlibro;
int noinv< 66nmero de inventario
c'ar titulo>1??@<
c'ar autor>&?@<
t)ec'a )ec'aentrega<
=<
struct testudiante;
int codigo<
c'ar nombre>&?@<
int tele)ono<
int sem< 66semestre en que se
encuentra matriculado el estudiante
int n3< 66nmero de libros
prestados
tlibro 3restamo>1?@< 66vector para
guardar los datos de los libros que
tiene prestados el estudiante
=<
testudiante estT#LLLU= 66 vector donde se guarda la informacin de los estudiantes
ePistentes en la universidad
int nest= 66 total de estudiantes que se registraron en la universidad
int diaactual, mesactual,anioactual,lv,semestre,total,pos=
......
printf!9,or favor teclee la fecha actual Xn;"=
printf!9 Dia E 9"= scanf!9:d;, <diaactual"=
printf!9 -es E 9"= scanf!9:d;, <mesactual"=
printf!9 NoE "= scanf!9:d;, <anioactual"=
lv ? clv!diaactual,mesactual,anioactual,nest,est"=
printf!9ePisten :d libros con la fecha de entrega vencida;"=
printf!9por semestre los estudiantes realizan la siguiente cantidad de prestamos;"=
for !semestre?#=semestreB?#L= semestre?semestre7#"@
total?contarporsemestre!nest,est,semestre"=
printf!9total de libros prestados por los estudiantes de :d semestre es
:d;,semestre,total"=
A=
pos?buscar!nest, est"=
printf!9 el estudiante con ms libros prestados es :s con cdigo, :d y estudia en el
semestre :d;, estTposU.nombre, estTposU.codigo, estTposU.sem"=
.....
=
4acer las siguientes funciones
#. Una funcin que dadas dos fechas !dia,mes y ano" devuelva un d# si la primera fecha es anterior
que la segunda, un cero si las fechas son iguales y un # si la primera fecha es posterior a la segunda. &l prototipo
de funcin esE
int cmpfecha !int diaP, int mesP, int anioP, int diay, int mesy, int anioy"
%. Utilice la anterior funcin para hacer otra funcin llamada 9clv; !contar libros vencidos" que
devuelva el total de
libros, cuyo prOstamo ya se venci, es decir cuya fecha de entrega ya paso. ,ara ello la funcin recibe la fecha actual, y
los datos de los estudiantes. 1enga en cuenta la forma del llamado realizada en el main.
'. )ealice una funcin que devuelva la posicin del vector donde se encuentra el estudiante que
tiene ms libros prestados. 1enga en cuenta la forma del llamado realizada en el main.
*. )ealice una funcin que dado el nmero de un semestre, devuelva el total de libros que tienen prestado los
estudiantes de ese semestre. 1enga en cuenta la forma del llamado realizada en el main.
#K. Dada la informacin de 8 estudiantes, donde 8 se da por tecladoE
(digo del estudiante
8ombre del estudiante
5ePo del alumno !# ? -asculino, % ? .emenino"
(digo de la carrera a la cual pertenece
Donde la carrera se da en la siguiente tablaE
#>ngenierDa 5istema
%>ngenierDa -ecnica
'>ngenierDa &lectrnica
(ada estudiante ve + materias, por cada materia se da la siguiente informacinE
(digo de la materia
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
8ombre de la materia
(digo del profesor de la materia
Definitiva de la materia
(odifique un programa en forma modular utilizando registros que realice lo siguienteE
a. Una funcin que lea la informacin de cada estudiante y la almacena en registros
b. Una funcin que calcule y retorne el cdigo de la carrera que tiene mas cantidad de hombres
c. Una funcin que calcule y retorne cual es el estudiante con mejor promedio
d. Una funcin que calcule y retorne cdigo de la carrera con mejor promedio
Fstudiante
Cdigo del
estudiante
,ombre del
estudiante
.e>o Cdigo de la
carrera
9aterias3(4
Cdigo de la
materia
,ombre de la
materia
Cdigo del
/ro?esor
1e?initi0a de
la materia
A%C-IVO!
#. )ealice un programa que lea un archivo de tePto codificado !codificado.tPt" y que genere otro archivo con la
decodificacin del tePto !decodificado.tPt". $a decodificacin consiste en sustituir la primera F3G de cada lDnea por FaG, la
segunda F3G por FeG, la tercera F3G por FiG, la cuarta F3G por FoG y la quinta F3G por FuG. 5i hubiera ms de + F3G en una lDnea,
deber iniciarse nuevamente con la FaG. &l programa debe utilizar una funcin que decodifique una lDnea.
&jemploE 5i el archivo de entrada fuera
$3 c3sta de c3tric3s h3ele rico. ,onl3 sobr3
l3 m3sa
&l archivo de salida deber contenerE
$a cesta de cDtricos huele rico. ,onla sobre
la mesa
%. &n un archivo se tiene informacin sobre los miembros de un coro. $a informacin que se tiene de cada uno esE
8ombre.
,arte de vozE soprano, alto, tenor o grave.
&PtensinE alta o baja
&scribaE
a. $a definicin del registro y la declaracin de la variable para guardar la informacin de los miembros
del coro.
b. Un mdulo para leer la informacin del archivo y almacenarla en el vector.
c. Un mdulo que calcule el porcentaje de miembros del coro que tienen una determinada parte de voz.
d. Un mdulo que calcule el porcentaje de los miembros de una cierta parte de voz que tienen una
determinada ePtensin. ,or ejemplo, el porcentaje de los tenores que tienen ePtensin baja.
e. Un mdulo que dado un nombre escriba su parte de voz y ePtensin.
f. Un mdulo que calcule el total de miembros de cada una de las * partes de voz.
$
Universidad de Pamplona
Facultad de Ingenieras y Arquitectura
Gua de Programacin II Primer semestre 2010
-------------------------------------------------------------------------------------------------------------
g. $a definicin del registro y la declaracin de la variable para guardar la informacin de los miembros
del coro.
h. Un mdulo para leer la informacin del archivo y almacenarla en el vector.
i. Un mdulo que calcule el porcentaje de miembros del coro que tienen una determinada parte de voz.
j. Un mdulo que calcule el porcentaje de los miembros de una cierta parte de voz que tienen una
determinada ePtensin. ,or ejemplo, el porcentaje de los tenores que tienen ePtensin baja.
R. Un mdulo que dado un nombre escriba su parte de voz y ePtensin.
l. Un mdulo que calcule el total de miembros de cada una de las * partes de voz.
(

You might also like