Introduccion A La Programacion Estructurada en C
Introduccion A La Programacion Estructurada en C
Introduccion A La Programacion Estructurada en C
me
www.FreeLibros.me
Introducción a la programación
estructurada en C
Primera edición
Revisión técnica
Luis Arturo Jim énez Mendoza
Escuela Superior de Ingeniería Mecánica
y Eléctrica (ESIM E), Zacatenco
Instituto Politécnico Nacional
Prentice Hall
M éxico • A rgentina • B rasil • C olom bia • C osta R ica • C hile • E cuador
E spaña • G uatem ala • Panam á • Perú • P u erto R ico • U ruguay • V enezuela
www.FreeLibros.me
D ito s d e c a ta lo g a c ió n b ib lio g ráfica
ISBN: 978-607-32-0600-6
Á rea: C om putación
Edición en español
Prentice Hall es una m arca registrada de Pearson Educación de M éxico, S.A. de C.V.
Reservados todos los derechos. Ni la totalidad ni parte de esta publicación pueden reproducirse,
registrarse o transm itirse, por un sistem a de recuperación de información, en ninguna forma ni por
ningún m edio, sea electrónico, m ecánico, fotoquím ico, m agnético o electroóptico, por fotocopia,
grabación o cualquier otro, sin perm iso previo por escrito del editor.
El préstam o, alquiler o cualquier otra forma de cesión de uso de este ejem plar requerirá tam bién la
autorización del editor o de sus representantes.
ISB N 978-607-32-0600-6
ISB N e-book 978-607-32-0601-3
ISB N e-chapter 978-607-32-0602-0
Prentice Hall
es una marca de
PEARSON
www.pearsoneducacion.net ISBN: 978 -607 -3 2 -0600-6
www.FreeLibros.me
Dedicado a Gabriel
www.FreeLibros.me
www.FreeLibros.me
C o n t e n id o
P re s e n ta c ió n x iii
C a p ítu lo 1 In tro d u c c ió n a l le n g u a je C 1
www.FreeLibros.me
vi C o n te n id o
C a p ítu lo 3 P ro g ra m a c ió n e s t r u c tu r a d a 37
C a p ítu lo 4 E s t r u c tu r a s d e c o n tro l s e le c t iv a s 59
C a p ítu lo 5 E s t r u c tu r a s d e c o n tro l r e p e t it iv a s 93
www.FreeLibros.me
C o n te n id o
C a p ítu lo 7 D a to s d e t ip o e s t ru c tu r a d o 167
C a p ítu lo 8 F u n c io n e s (p r o g r a m a c ió n m o d u la r) 197
C a p ítu lo 9 E je rc ic io s re s u e lt o s 231
www.FreeLibros.me
C o n te n id o
www.FreeLibros.me
C o n te n id o ix
www.FreeLibros.me
X C o n te n id o
www.FreeLibros.me
C o n te n id o xi
www.FreeLibros.me
C o n te n id o
ín d ic e d e e je rc ic io s r e s u e lt o s 357
ín d ic e d e e je m p lo s 359
ín d ic e d e t a b la s 362
www.FreeLibros.me
P r e s e n t a c ió n
El m é to d o d e e n se ñ a n z a s e b a s a e n el a n á lis is d e u n p ro b le m a y la d e sc rip c ió n
d e lo s p a so s n e c e sa rio s p a ra lle g a r a la so lu c ió n . E l o b je tiv o p rin c ip a l es
m o stra r c o n d e ta lle c ó m o c re a r u n p ro g ra m a y c ó m o e n te n d e rlo . T o d o e sto
se c o m p le m e n ta c o n e je m p lo s y e je rc ic io s re s u e lto s , d e sg lo sa d o s e n c in c o
p a rte s p a ra u n a m e jo r c o m p re n sió n . T a m b ié n s e p re s e n ta la d e sc rip c ió n
d e la s o p e ra c io n e s, lo s d a to s , la c o d ific a c ió n y la e je c u c ió n d e l c ó d ig o ,
a d em ás d e u n a e x p lic a c ió n d e ta lla d a d e l p ro c e d im ie n to .
www.FreeLibros.me
x iv Presentación
F in a lm e n te , s e a n e x a u n lis ta d o d e to d o s lo s e je rc ic io s y d e lo s e je m p lo s q u e se
in c lu y e n e n el lib ro .
www.FreeLibros.me
Introducción
al lenguaje C
1.1 Conceptos
www.FreeLibros.me
Capítulo 1 In troducción al le n g u a je C
Es im p o rta n te re c o rd a r q u e la c o m p u ta d o ra fu n c io n a c o n al m e n o s d o s tip o s
de m e m o ria : la in te rn a , p rin c ip a l o R A M , y a lg ú n d isp o sitiv o d e m e m o ria
e x te rn a (o se c u n d a ria ). L a p rim e ra es a la q u e el p ro c e s a d o r a c c e d e p a ra re a liz a r
sus o p e ra c io n e s; la se g u n d a s e e m p le a p a ra a lm a c e n a r a rc h iv o s d e m a n e ra
p e rm a n e n te .
E n la m e m o ria in te rn a s e c a rg a n lo s d a to s y el p ro g ra m a e n le n g u a je m á q u in a
q u e e je c u ta rá la C P U (a l p ro g ra m a q u e e s tá e n e s ta d o d e e je c u c ió n s e le
lla m a proceso). L a m e m o ria e x te rn a o s e c u n d a ria es c u a lq u ie r d is p o s itiv o de
a lm a c e n a m ie n to — d isc o s fle x ib le s, C D , D V D , c in ta s m a g n é tic a s , m e m o ria flash,
B lu eR ay , e tc é te ra — e n el q u e es p o sib le a lm a c e n a r a rc h iv o s.
www.FreeLibros.me
1.3 Etapas d e d e sa rro llo d el so ftw a re
E l lenguaje m áq u in a es u n p ro g ra m a e s c rito e n c e ro s y u n o s, m u y le ja n o a
n u e stra fo rm a d e e x p re sió n , p e ro es el ú n ic o q u e e n tie n d e el p ro ce sa d o r.
P ro g ram a d o r es el té r m in o u tiliz a d o p a ra d e n o m in a r a la p e rs o n a d e d ic a d a a
e sc rib ir p ro g ra m a s. F re c u e n te m e n te , u n a a p lic a c ió n o s is te m a s e e la b o ra p o r
e q u ip o s e n te ro s d e p ro g ra m a d o re s.
A n á lisis
Diseño
Programación
Codificación
Prueba
Mantenim iento
D ocument aci ón
www.FreeLibros.me
Capítulo 1 In troducción al le n g u a je C
1.4 El lenguaje C
“C es u n le n g u a je d e p ro g ra m a c ió n d e p ro p ó s ito g e n e ra l, a s o c ia d o d e m o d o
u n iv ersal al s is te m a o p e ra tiv o U N IX .” [Jo y a n es].
www.FreeLibros.me
1.5 Elem entos d e un p rogram a en C (conceptos básicos)
1.5.1 Identificadores
E n u n p ro g ra m a s ie m p re o p e ra n d iv e rso s e le m e n to s c re a d o s p o r el p ro g ra m a d o r
(v a ria b le s, c o n sta n te s , fu n c io n e s , e tc é te ra ) o b ie n c re a d o s e n b ib lio te c a s
d e fu n c io n e s (c o m ú n m e n te lla m a d a s lib re ría s ) ju n to c o n el le n g u a je , c o m o la
fu n c ió n p r i n t f . C a d a u n o d e e sto s e le m e n to s re q u ie re u n n o m b re e x c lu siv o p a ra
d ife re n c ia rs e d e o tro s e le m e n to s u sa d o s e n el m is m o p ro g ra m a ; a d ic h o s n o m b re s
se les lla m a id e n tific a d o re s.
A Nombre Nombre_alumno X1
Identificador Explicación
3i d E l p r i m e r c a r á c t e r debe s e r una l e t r a
Al umno# El c a r á c t e r # no e s p e r m i t i d o
C od i go alumno El e s p a c i o en b l a n c o no es p e r m i t i d o
C o di g o -a l u mn o El carácter - no e s p e r m i t i d o
www.FreeLibros.me
Capítulo 1 In troducción al le n g u a je C
E n u n p ro g ra m a s ie m p re s e p ro c e s a n d a to s, lo s c u a le s p u e d e n s e r d e d istin ta
n a tu ra le z a . D e p e n d ie n d o d e s u tip o , s e re p re s e n ta rá y a lm a c e n a rá el d a to e n la
m e m o ria d e la c o m p u ta d o ra d e u n a m a n e ra e sp e c ífic a ; es d e cir, el tip o d e d a to
d e te rm in a la c a n tid a d d e m e m o ria re q u e rid a p a ra a lm a c e n a rlo . A c o n tin u a c ió n se
lista n lo s tip o s d e d ato s b á sic o s d e C , a s í c o m o la c a n tid a d d e m e m o ria q u e p u e d e
re q u e rir c a d a u n o . C a b e s e ñ a la r q u e estas c a n tid a d e s s o n la s m á s u s u a le s , y a q u e
p u e d e n v a ria r d e u n c o m p ila d o r a o tro ; el ra n g o d e a lg u n o s d e e sto s tip o s d e d ato s
b á sic o s p u e d e n v a ria r si s e u tiliz a n lo s m o d ific a d o re s d e tip o c o m o sh o rt, lo n g ,
sig n e d , u n sig n e d .
char
in t
float
do u b le
1.5.3 Variables
P a ra p o d e r e je c u ta r u n p ro g ra m a , es n e c e s a rio q u e lo s d a to s e s té n a lm a c e n a d o s,
ju n to c o n la s in stru c c io n e s, e n la m e m o ria . M u c h a s v e c e s, d ic h o s d a to s s o n
p ro p o rc io n a d o s p o r el u s u a rio d e l p ro g ra m a d u ra n te la e je c u c ió n d e l m is m o o
b ie n s e rá n el re s u lta d o d e l p ro c e s a m ie n to d e o tro s d a to s. E s d e c ir, n o s ie m p re es
el p ro g ra m a d o r q u ie n d e fin e lo s d a to s , y su s v a lo re s n o s ie m p re s e c o n o c e n de
a n te m a n o . ¿ C ó m o e n to n c e s s e p u e d e a lm a c e n a r d a to s q u e n o s e c o n o c e n d e sd e el
in ic io ? C o n el u so d e v a ria b le s.
U n a v a ria b le es u n e s p a c io e n la m e m o ria q u e el p ro g ra m a d o r re s e rv a c o n el
fin d e a lm a c e n a r e so s d a to s “ d e s c o n o c id o s ” c u a n d o e m p ie z a la e je c u c ió n d e un
p ro g ra m a o q u e p u e d e n ir c a m b ia n d o d u ra n te e s e p ro c e so . P a ra p o d e r re s e rv a r
tan to s e sp a c io s c o m o s e re q u ie ra n es n e c e s a rio d e c la ra r la s v a ria b le s.
D e claració n d e variables
L a d e c la ra c ió n d e v a ria b le s c o n s is te e n re s e rv a r lo s e sp a c io s d e m e m o ria q u e
re q u ie re el p ro g ra m a p a ra su e je c u c ió n ; p a ra e llo es n e c e s a rio e s p e c ific a r e l tip o
de d a to , a s í c o m o el id e n tific a d o r c o n q u e s e le h a rá re fe re n c ia p o ste rio rm e n te .
www.FreeLibros.me
1.5 Elem entos d e un p rogram a en C (conceptos básicos)
Cantidad
de m e m o ria
Tipo Descripción requerid a Rango
Al macena un c a r á c t e r . Puede
char 1 byte -128 a 127
a lm a c e n a r un v a l o r c on s i g n o .
unsigned Al macena un c a r á c t e r o un v a l o r
1 byte 0 a 255
char s in signo.
Define un v a l o r n u m é r i c o e n t e r o
in t 2 bytes -32767 a 32768
(sin fr a c c ió n ) .
En p u n t o f l o t a n t e d e l d o b l e de
tamaño d e l float (más c i f r a s 1. 7x10-308 a
double 8 bytes
s ig n i f i c a t iv a s para l a fra cció n 1. 7x10 +308
o mayor p a r a e l e x p o n e n t e ) .
Define un e n t e r o c on s i g n o ,
-2,147,483,648 a
long u s u a l me nt e d e l d o b l e de tamaño 4 bytes
2, 147, 4 8 3 , 64 7
al in t.
L a sin ta x is p a ra la d e c la ra c ió n d e v a ria b le s e n C .
<tipo_dato> <identificador>;
E je m p lo s d e d e c la ra c ió n d e v a ria b le s:
www.FreeLibros.me
Capítulo 1 In troducción a l le n g u a je C
C ó m o reservar m em oria
C u a n d o s e d e c la ra u n a v a ria b le e n u n c o m p ila d o r c o m o C , el p ro g ra m a d o r no
n e c e sita c o n o c e r la d ire c c ió n a b so lu ta d e la c e ld a o las c e ld a s e n la s q u e v a a
a lm a c e n a r lo s d a to s d e s u p ro g ra m a ; s im p le m e n te d e c la ra su s v a ria b le s y el
c o m p ila d o r s e e n c a rg a d e l resto . L a sig u ie n te fig u ra m u e s tra d e m a n e ra d e sc rip tiv a
(n o e x a c ta ) c ó m o q u e d a ría la m e m o ria lu e g o d e h a b e r d e c la ra d o g rá fic a m e n te las
v a ria b le s d e los e je m p lo s a n te rio re s.
0 1 2 3 4 5 6 7 8 9
a a j
10 11 12 13 14 15 16 17 18 19
b b b b c c c c
20 21 22 23 24 25 26 27 28 -
d d d d
S u p o n ie n d o q u e c a d a c e ld a m id ie ra u n b y te , los e sp a c io s so m b re a d o s re p re se n ta n
la re se rv a c ió n d e m e m o ria q u e s e h a h e c h o d e a c u e rd o c o n la d e c la ra c ió n de
v a ria b le s d e lo s e je m p lo s. E l id e n tific a d o r a o c u p a la s c e ld a s 3 y 4 (2 b y te s p o r se r
e n tero ). D e ig u al fo rm a s e re se rv a ro n las c eld as 10, 11, 12 y 13 (4 b y te s p o r s e r un
v a lo r rea l) p a ra el id e n tific a d o r b , a s í c o m o la s c e ld a s d e la 15 a la 18 p a ra c y d e la
2 2 a la 25 p a ra d\ fin a lm e n te s e re s e rv ó la c e ld a 9 (1 b y te p o r s e r c a rá c te r) p a ra j.
R e su m ie n d o : u n a v a ria b le es u n e sp a c io e n la m e m o ria c u y o c o n te n id o p u e d e
c a m b ia r d u ra n te la e je c u c ió n d e u n p ro g ra m a ; es d e cir, c u a n d o d e c la ra m o s u n a
www.FreeLibros.me
1.5 Elem entos d e un p rogram a en C (conceptos básicos)
v a ria b le , s e a s ig n a u n e s p a c io e n la m e m o ria p a ra a lm a c e n a r e n él a lg ú n v a lo r
q u e sa b e m o s p u e d e c a m b ia r d u ra n te el p ro c e s a m ie n to d e d a to s q u e el p ro g ra m a
lle v a rá a c a b o c u a n d o s e e je c u te .
1.5.4 Constantes
U n a c o n sta n te s e u tiliz a c u a n d o s e c o n o c e d e a n te m a n o el v a lo r d e a lg ú n d a to
p e ro a d e m á s s e s a b e q u e e s te d a to n o d e b e c a m b ia r. P o r e je m p lo s e p u e d e p e n sa r
q u e e n u n p ro g ra m a (n o im p o rta p a ra q u é sirv a é ste ) s e re q u ie re tra b a ja r c o n el
v a lo r d e tt;sa b e m o s q u e tt g e n e ra lm e n te m a n e ja el v a lo r d e 3 .1 4 1 6 y q u e n o
p u e d e te n e r o tro . S e ría iló g ic o p e n s a r e n re s e rv a r u n e s p a c io p a ra u n a v a ria b le si
d ic h o v a lo r n o tie n e p o r q u é c a m b ia r e n el tra n s c u rs o d e l p ro g ra m a ; d e e s ta fo rm a ,
lo m á s c o n v e n ie n te s e ría d e fin ir u n a c o n sta n te p a ra a lm a c e n a r 3 .1 4 1 6 .
www.FreeLibros.me
Capítulo 1 In troducción a l le n g u a je C
PI constante r e a l , representa l a c a n t i d a d de 3 .1 41 6.
P o r o tro la d o , u n a c o n s ta n te ta m b ié n se p u e d e c re a r u tiliz a n d o la p a la b ra
re s e rv a d a const; si s e p ro c e d e d e e s ta m a n e ra , el d a to o c u p a u n e sp a c io en
m e m o ria c o m o si fu e ra u n a v a ria b le , e x c e p to p o rq u e s u c o n te n id o n o c a m b ia .
E jem p lo s:
c o n s t i n t NP=1506;
c o n s t f l o a t P I =3 . 1 4 1 6 ;
c o n s t c h a r CAR='a';
www.FreeLibros.me
1.6 Entrada y salida d e datos
L as p a la b ra s re s e rv a d a s d e C son:
U n p ro g ra m a es u n c o n ju n to d e in s tru c c io n e s q u e la c o m p u ta d o ra e je c u ta co n
el fin d e o b te n e r u n re s u lta d o o b ie n la s o lu c ió n a u n p ro b le m a d e te rm in a d o .
C asi sie m p re , e s te re s u lta d o s e o b tie n e a p a rtir d e l p ro c e s a m ie n to d e lo s d ato s.
G e n e ra lm e n te , lo s d a to s d e p e n d e n d e l u s u a rio y é s te te n d r á q u e c o n o c e r los
www.FreeLibros.me
Capítulo 1 In troducción al le n g u a je C
El le n g u a je C c u e n ta c o n la s fu n c io n e s s c a n f ( ) y p r i n t f ( ) p a ra e n tra d a y sa lid a
de d a to s re s p e c tiv a m e n te , la s c u a le s s e p u e d e n u tiliz a r a g re g a n d o el a rc h iv o de
c a b e c e ra M n c lu d e < std io .h > .
L a c o m p u ta d o ra d is p o n e d e d iv e rso s m e d io s p a ra p ro p o rc io n a r la s a lid a de
d a to s, c o m o la im p re s o ra , a rc h iv o s o el m á s u tiliz a d o : el m o n ito r. P re c is a m e n te
la fu n c ió n p rin tf( ) s e u tiliz a p a ra m o s tra r d a to s a trav é s d e e ste d is p o s itiv o . Su
sin tax is es la sig u ie n te :
d o n d e te x to y c a d e n a d e c o n tro l d e tip o s o n o p c io n a le s, d e p e n d ie n d o d e lo
q u e s e d e se e m ostrar. C a d e n a d e c o n tro l es u n a c a d e n a d e carac tere s “ % tip o ” q u e
in d ic a el tip o d e d a to a d e s p le g a r (lo re q u ie re la fu n c ió n p rin tf ( )) . P o r o tro
la d o , a rg u m e n to o a rg u m e n to s es el v a lo r o lo s v a lo re s q u e s e p re te n d e m o stra r, y
p u e d e n s e r v a ria b le s, c o n s ta n te s , e x p re sio n e s a ritm é tic a s , re s u lta d o s d e fu n c io n e s
o sim p le m e n te te x to q u e e l p ro g ra m a d e b e m o s tra r al u su a rio . A c o n tin u a c ió n se
m u e stra u n e je m p lo d e l u so y la e x p lic a c ió n .
in t a=7;
float b = 8 . 2 ;
c h a r c = ' s 1;
p r i n t f ( n96d” , a ) ; Se v i s u a l i z a un 7, qu e e s e l c o n t e n i d o de l a
v a r i a b l e a.
b m o s t r a d a como v a l o r r e a l ,
www.FreeLibros.me
1.6 Entrada y salida d e datos
Cadena de tipo D e s cr ip ci ó n
El d a t o es un e n t e r o d e c i m a l (in t).
%2 El d a t o es un e n t e r o .
El d a t o es un e n t e r o o c t a l .
El d a t o es un e n t e r o h e x a d e c i m a l .
El d a t o es un e n t e r o s i n s i g n o en d e c i m a l (unsigned i n t ) .
%c El d a t o es un c a r á c t e r (char).
%e El d a t o es un r e a l e x p r e s a d o en b a s e y e x p o n e n t e ( f l o a t ) .
El d a t o es un r e a l (float).
%s E l d a t o e s una cadena de c a r a c t e r e s qu e f i n a l i z a co n e l
carácter nulo \0 .
%lf El d a t o es r e a l de t i p o l o n g d o u b l e .
C o m o y a s e h a m e n c io n a d o , p rin tf( ) p u e d e m a n e ja r m á s d e u n a rg u m e n to , p a ra
ello es n e c e s a rio u s a r la s c a d e n a s d e tip o c o rre s p o n d ie n te s p o r c a d a a rg u m e n to
q u e s e re q u ie ra v isu a liz a r, c o m o e n el e je m p lo sig u ie n te :
p rin tff , a, b, c ) ;
p r i n t f ( U96d \ t %f \ t % c", a , b , c ) ;
www.FreeLibros.me
Capítulo 1 In troducción a l le n g u a je C
7 8.2 s
y a q u e la s e c u e n c ia d e e s c a p e \t q u e s e a ñ a d ió e n la lla m a d a a la fu n c ió n , in se rta
u n a ta b u la c ió n e n c a d a lu g a r e n q u e es c o lo c a d a .
L as se c u e n c ia s d e e s c a p e s o n ta m b ié n c a d e n a s d e c a ra c te re s q u e tie n e n un
sig n ific a d o e sp e c ia l d e p e n d ie n d o d e la c a d e n a q u e s e u tilic e . L a ta b la 1.3 q u e se
p re s e n ta a c o n tin u a c ió n m u e s tra la s se c u e n c ia s d e e s c a p e q u e u tiliz a el le n g u a je
C , a s í c o m o su a cc ió n .
8.2
S e c u e n c i a d e escape Descripción
\a Alarm a
\b Retroceso
\f A v a n c e de p á g i n a
\n R e t o r n o de c a r r o y avan ce de l í n e a
\r R e t o r n o de c a r r o
\t Tabulación
\v Tabulación v e r t i c a l
\\ Diagonal i n v e r t i d a
\? S i g n o de i n t e r r o g a c i ó n
r C o m illa s dobles
\ 000 Octal
\ xhh Hexadecimal
\0 Carácter nulo
www.FreeLibros.me
1.6 Entrada y salida d e datos
T a m b ié n es p o s ib le q u e e n a lg u n o s c a so s s e te n g a q u e m o s tra r a lg ú n v a lo r d e n tro
d e u n m e n s a je , c o m o en:
p r i n t f ("E l v a l o r de l a v a r i a b l e a e s %c/", a ) ;
E l v a l o r de l a v a r i a b l e a es 7
p e ro si m o d ific a m o s la fu n c ió n así:
7 Es e l v a l o r de l a v ariab le a
Ig u al q u e la fu n c ió n p r i n t f ( ) , la fu n c ió n s c a n f f ) re q u ie re la c a d e n a d e tip o
p o r c a d a v a ria b le o v a ria b le s q u e s e d e s e a leer, el s ím b o lo & es u n a p u n ta d o r q u e
“a p u n ta ” a la d ire c c ió n a s ig n a d a a la v a ria b le q u e v ie n e a c o n tin u a c ió n y é s ta se rá
el á re a d e m e m o ria d o n d e s e a lm a c e n a rá e s e d a to d e e n tra d a . E s in d is p e n s a b le
u tiliz a r e s te s ím b o lo , d e lo c o n tra rio , el v a lo r n u n c a s e rá g u a rd a d o e n la v a ria b le .
in t edad;
f loat e s t ;
p rin tf("T e cle a tu edad");
scanf("%d",&edad);
(continúa)
www.FreeLibros.me
Capítulo 1 In troducción al le n g u a je C
(continuación)
p rin tf("T e cle a t u e s t a t u r a ”) ;
s c a n f ( ”% f ” , & e s t ) ;
p r i n t f ( " T i e n e s %c/ años y m ide s %f m t s ." , e d a d , e s t ) ;
G e n e ra lm e n te lo s p ro g ra m a s in te ra c tú a n c o n el u s u a rio e n la le c tu ra d e d ato s.
Resum en
El le n g u a je q u e e s ta o b ra a b o rd a es el C , u n le n g u a je d e p ro g ra m a c ió n de
p ro p ó sito g e n e ra l.
A lg u n o s d e lo s e le m e n to s u tiliz a d o s e n u n p ro g ra m a s o n id e n tific a d o re s,
v a ria b le s, c o n sta n te s y c o m e n ta rio s.
Evaluación
I. D escriba los siguientes conceptos.
1. ¿ Q u é es u n p ro g ra m a ?
2 . ¿ Q u é es la C P U ?
3 . ¿ A q u é s e le lla m a so ftw a re ?
4. ¿ Q u é es la m e m o ria p rin c ip a l?
5 . ¿ Q u é es le n g u a je d e p ro g ra m a c ió n ?
www.FreeLibros.me
Ejercicios p ro p u e s to s 17
6 . ¿ Q u é es le n g u a je C ?
7 . ¿ Q u é le n g u a je s p u e d e n u s a rs e e n u n a c o m p u ta d o ra ?
8 . ¿ C u á le s s o n la s fo rm a s p a ra d e c la ra r u n a c o n sta n te ?
9. ¿ C ó m o s e d e c la ra u n a v a ria b le ?
Ejercicios propuestos
p r i n t f ( u %c \ A ) ; __________________
p rin tfr " , A ) ; ___________________
www.FreeLibros.me
Capítulo 1 In troducción a l le n g u a je C
2 . i n t B;
B=5;
p rin tff" " , B ) ; __________________
p r i n t f ( " %c __________________
fl=5 + '>4';
p r i n t f ( m %c/ " , B ) ; __________________
p r i n t f ( u %c " , B ) ; __________________
3 . ttdefine num 15
p r i n t f ( " %c/ °,num); _________________
p rin tt(" %c U,num); _________________
4 . ttdefine num 15
num=5+'A';
p r i n t f ( " %c/ °,num); ___________________
p rin tt(" %c U,num); ___________________
5 . ttdefine p p r i n t f
in t a =1 ,b= 2 ;
f l o a t x =3 , y - 4 ;
l o n g z=5;
short i n t f=6;
u n s i g n e d i n t i =9;
u n s i g n e d l o n g g=7;
d o u b l e h=8;
PC entero \ n " , a + b ) ; ___________________
p(" r e a l %f \ n " , ( f l o a t ) (a+b) ; ___________________
pC l a r g o % lf \ n " , z ) ; ___________________
p ( " s h o r t 96 d \ n " , f ) ; ___________________
p ( " u n s i g n e d i n t %c/ \ n " , i ) ; ___________________
p ( " u n s i g n e d l o n g % d \ n " , g ) ; ___________________
p ( " d o b l e % lf \ n " , h ) ; ___________________
s c a n t ( "%d",&a); ___________________
scant("% f",&a); ___________________
s c a n t ("%c",&a); ___________________
www.FreeLibros.me
Ejercicios p ro p u e s to s
2 . c h a r x;
l * l e e r x=3 */
scanf("%d",&x);
s c a n f ( ' ' % f n, & x ) ;
s c a n f f "% c", & x ) ;
3. f l o a t w;
/ * l e e r w=2.5 */
scanff"% d",& w );
s c a n f f "%c",&w );
www.FreeLibros.me
www.FreeLibros.me
Aritmética de C
E n e s te c a p ítu lo s e re v is a el u so d e o p e ra d o re s , s e m e n c io n a n lo s m ás
c o m u n e s, s u c la sific a c ió n y a lg u n o s e je m p lo s.
U n o p e ra d o r es u n s ig n o (s ím b o lo ) q u e in d ic a al c o m p ila d o r el tip o
d e o p e ra c ió n q u e s e e fe c tu a rá c o n lo s d a to s. E l le n g u a je C c u e n ta co n
d ife re n te s c a te g o ría s d e o p e ra d o re s , lo s m á s e le m e n ta le s s o n a r itm é tic o s ,
r e la c ió n a le s y ló g ic o s, y p o d e m o s e n c o n tra rlo s p rá c tic a m e n te en
c u a lq u ie r o tro le n g u a je , a u n q u e p o s ib le m e n te s e re p re s e n te n d e o tra
m an era. A d e m á s d e e sto s o p e ra d o re s , e x is te n o tro s q u e s o n p ro p io s d e C ,
y s e e x p lic a rá n m á s a d e la n te .
www.FreeLibros.me
22 Capítulo 2 A ritm ética d e C
p u e d e n m o d ific a r s u c o n te n id o c o n fo rm e s e re q u ie ra e n el p ro g ra m a m e d ia n te
n u ev as a sig n a c io n e s. S in e m b a rg o , c a b e a c la ra r q u e n o s ie m p re s e rá n e c e sa rio
d a rle s u n v a lo r in ic ia l (e je m p lific a re m o s e s to m á s a d e la n te ).
in t a = 3;
a = 5;
f loat b = 4 . 5 6 , c = 7 . 2 , d ;
d = b+c;
E n el p rim e r c a s o s e d e c la ra la v a ria b le e n te ra a y s u v a lo r in ic ia l es 3 ; e n la
se g u n d a a sig n a c ió n s e a lm a c e n a u n 5 e n la v a ria b le a , lo c u a l h a c e q u e el 3
a n te rio r s e p ie rd a . L a v a ria b le c o n se rv a sie m p re el ú ltim o v a lo r a sig n a d o .
char t = 1 r ';
E l o p e ra d o r a s ig n a c ió n = s e u tiliz a p a ra a lm a c e n a r u n v a lo r e n u n a v a ria b le . S i la
v a ria b le y a e s tá d e c la ra d a la s in ta x is d e a sig n a c ió n es la sig u ie n te :
L a a s ig n a c ió n s ie m p re s e rá d e d e re c h a a iz q u ie rd a , p o r lo ta n to , d e l la d o iz q u ie rd o
del o p e ra d o r a s ig n a c ió n sie m p re s e d e b e rá u tiliz a r u n a v a ria b le ; e n c u a n to al
valor, c o m o y a s e m e n c io n ó , p u e d e s e r o tra v a ria b le , u n a c o n sta n te , u n a e x p re sió n
a ritm é tic a o el re s u lta d o d e u n a fu n c ió n . S e m u e s tra n lo s sig u ie n te s e je m p lo s ,
a su m ie n d o q u e la s v a ria b le s y a e s tá n d e c la ra d a s:
m-5;
m =m +3;
www.FreeLibros.me
2.2 O p erado res aritm éticos 23
n-m ;
z=m+5;
w = s q r t(9 );
El le n g u a je C ta m b ié n p e rm ite a s ig n a r v a lo re s d e la s ig u ie n te fo rm a:
i n t m=n-z= 0 ;
Tipo d e datos
Operador Operación de los operandos Ejemplo Resultado
+ Suma Enteros y re a le s 3 + 2 5
(pueden s e r 3.3 + 5 8.3
d iferen tes). 8 . 2 + 7.1 15.3
- Resta Enteros y re a le s 3 - 2 1
(pueden s e r 3 . 3 - 5 -1.7
d iferen tes). 8.2 - 7.1 1.1
* M u ltip lica ció n Enteros y re a le s 3 * 2 6
(pueden s e r 3.3 * 5 16.5
d iferen tes). 8 . 2 * 7.1 5 8 .22
(continúa )
www.FreeLibros.me
Capítulo 2 A ritm ética d e C
(continuación)
/ D iv isió n Enteros y re a le s 3 / 2 1
(pueden s e r 3 . 3 / 5 0.66
d iferen tes). 8. 2 / 7. 1 1. 1549296
T odos lo s o p e ra d o re s a c e p ta n la c o m b in a c ió n d e tip o s d e d a to s , e x c e p to m ó d u lo %,
qu e s ó lo s e u tiliz a c o n o p e ra n d o s e n te ro s o c a rá c te r.
P b r o tro la d o , o b s e rv e ta m b ié n q u e e n lo s c a so s d e la s o p e ra c io n e s 3 / 2 y 3 % 2 e l
re s u lta d o es 1.
E sto es p o rq u e ta n to el c o c ie n te c o m o el re s id u o e n e s ta o p e ra c ió n so n
p re c is a m e n te 1. V eam os e s to e n el e je m p lo sig u ie n te :
1 *- (c o c ie n t e )
2¡3~
1 *- (re s id u o )
Y c o m o el o p e ra d o r re s id u o m a n e ja d a to s s ó lo d e tip o e n te ro , el re s u lta d o ta m b ié n
se rá d e tip o e n te ro . A s í q u e si el d iv is o r es m e n o r q u e el d iv id e n d o , n o s e d e b e
e sp e ra r u n re s u lta d o c o n p u n to d e c im a l, a u n q u e s í u n re s id u o ; p o r e je m p lo , el
re su lta d o d e la s ig u ie n te e x p re sió n :
1 % 4
se rá 1, y a q u e
0
4[Í4
1 *- (re s id u o )
www.FreeLibros.me
2.2 O p erado res aritm éticos
L a ta b la 2 .2 m u e s tra e s a p re c e d e n c ia :
( )
+, -
E n p rim e r lu g a r a p a re c e el o p e ra d o r ( ), d e b id o a q u e e n la s m a te m á tic a s
tra d ic io n a le s s e u tiliz a e s te s ím b o lo p a ra d e te rm in a r la p rio rid a d d e o p e ra d o re s
en e x p re sio n e s g ra n d e s . E n se g u n d o lu g a r s e e v a lú a n m u ltip lic a c ió n , d iv is ió n y
m ó d u lo , lo s tres c o n la m is m a p rio rid a d ; p o ste rio rm e n te s e e v a lú a n la s u m a y la
resta.
E x p re s i ó n Regl as
Nota: Para definir prioridad de operadores, C utiliza únicamente los símbolos ( ). Las { }
(llaves) y los [ ] (corchetes) en el lenguaje C no se utilizan para asociar. Su significado se
explicará más adelante.
www.FreeLibros.me
Capítulo 2 A ritm ética d e C
E x is te n o tro s o p e ra d o re s d e a s ig n a c ió n m u y p a rtic u la re s d e l le n g u a je C .
+=
*=
/=
%=
in t a= 1 0 ;
a+=2 ; a=a+2 ; 12
a-= 2 ; a=a- 2 ; 8
A* =2; a=a* 2 ; 20
a l =2 ; a=a! 2 ; 5
A%=2; a=a%2 ; 0
www.FreeLibros.me
2.4 O p erado res relaciónales
a=9;
a++;
su p o n ie n d o q u e la v a ria b le a s e h a d e c la ra d o p re v ia m e n te , e n la p rim e ra
in stru c c ió n s e le a s ig n a el v a lo r d e 9 y e n la s ig u ie n te s e in c re m e n ta s u v a lo r e n 1,
lo c u a l h a c e q u e la v a ria b le a a h o ra te n g a a lm a c e n a d o u n 10.
P o r o tro la d o ta m b ié n s e c u e n ta c o n el o p e ra d o r d e c re m e n to E s te o p e ra d o r
es lo c o n tra rio al a n te rio r, es d e cir, d is m in u y e e n 1 el v a lo r q u e te n g a la v a ria b le ,
c o m o e n el s ig u ie n te caso:
a =9;
a--;
L o s o p e ra d o re s ++ y - - s e p u e d e n u s a r c o m o p refijo s o su fijo s: s e p u e d e n u sa r
an tes o d e sp u é s d e la v a ria b le y a u n q u e e n a m b o s c a so s é s ta s e in c re m e n ta o
re d u c e e n 1, e x is te c ie rta d ife re n c ia e n la fo rm a d e u tiliz a rlo s .
V eam os lo s sig u ie n te s e je m p lo s:
1) a =W; 2) a =10
X=++a; x=a++;
E sto s o p e ra d o re s s e u tiliz a n p a ra e x p re s a r c o n d ic io n e s e n lo s p ro g ra m a s y a sí
d e te rm in a r el o rd e n e n q u e s e e je c u ta rá n las in s tru c c io n e s ; u n a c o n d ic ió n e n C es
u n a e x p re s ió n b o o le a n a c u y o re s u lta d o p u e d e s e r ú n ic a m e n te v e rd a d e ro o fa ls o .
L a ta b la 2 .4 m u e s tra lo s o p e ra d o re s re la c ió n a le s.
www.FreeLibros.me
Capítulo 2 A ritm ética d e C
Operador D e s cr ip ci ó n
== i g u a l que
!= no i g u a l que ( d i f e r e n t e de)
si a.=10) y b=5
a == b a i g u a l qu e b Falso (0)
a != b a diferen te de b V e r d a d e r o (1)
L o s o p e ra d o re s ló g ic o s && y 11 a c tú a n c o n d o s o p e ra n d o s; el o p e ra d o r / , c o n un
o p e ra n d o . S e re q u ie re q u e s e a n e x p re sio n e s ló g ic a s , g e n e ra lm e n te fo rm a d a s co n
los o p e ra d o re s re la c ió n a le s.
L o s o p e ra d o re s ló g ic o s s irv e n p a ra u n ir m á s d e u n a c o n d ic ió n e n u n p ro g ra m a y
p o d e r a s í fo rm a r c o n d ic io n e s m á s c o m p le ja s , c u y o re s u lta d o ta m b ié n p u e d e se r
ú n ic a m e n te c ie rto o falso , la ta b la 2.5 m u e s tra lo s o p e ra d o re s ló g ic o s.
www.FreeLibros.me
2.6 O p e ra d o r co n d icio n a l
Operador D e s cr ip ci ó n
Y (and) E l r e s u l t a d o de una o p e r a c i ó n y l ó g i c a s e r á
&& v e r d a d e r o s i ambos o p e r a n d o s son v e r d a d e r o s , de l o
con tra rio, será fa lsa .
II v e r d a d e r o s i a l g u n o de l o s operandos o l o s dos
son v e r d a d e r o s ; s i t o d o s so n f a l s o s , será fa ls a .
No ( n o t ) E l r e s u l t a d o de una o p e r a c i ó n no l ó g i c a sólo
l será verdadero s i el o p e ra nd o es f a l s o , de l o
con tra rio, será verdadero.
E je m p lo d e l re s u lta d o d e l u so d e o p e ra d o re s ló g ic o s.
Operación D e s cr ip ci ó n Resultado
E ste o p e ra d o r s e u tiliz a p a ra e x p re s a r c o n d ic io n e s e n u n p ro g ra m a y p u e d e
su stitu ir a la e s tru c tu ra d e c o n tro l if-e is e q u e s e e x p lic a m á s a d e la n te . El
o p e ra d o r re q u ie re u n a e x p re sió n ló g ic a , la c u a l s e e v a lú a y d e p e n d ie n d o si es
v e rd a d e ra o fa ls a s e e je c u ta n in stru c c io n e s d is tin ta s , el fo rm a to es el sig u ie n te :
www.FreeLibros.me
30 Capítulo 2 A ritm ética d e C
donde
(a> 10 ) ? 1 : 0;
d e p e n d ie n d o d e l v a lo r q u e s e le h a y a a s ig n a d o a la v a ria b le a , s e rá el v a lo r de
to d a la e x p re s ió n c o n d ic io n a l. P o r e je m p lo si a tie n e u n v a lo r d e 11 o m ay o r, el
re su lta d o s e rá 1; si la v a ria b le tie n e a lm a c e n a d o u n 10 o m e n o s, el re s u lta d o se rá
u n 0. S e m u e s tra el sig u ie n te e je m p lo :
a =3; b -4 ;
c = (a>b) ? a+b : a*b;
Si c a m b iá ra m o s lo s v a lo re s d e a y b p o r 8 y 6 re sp e c tiv a m e n te , el re s u lta d o d e la
a sig n a c ió n a c s e ría 14. S e e v a lú a si a es m a y o r q u e b , y c o m o es v e rd a d e ro , se
e je c u ta la e x p re s ió n q u e e s tá d e sp u é s d e l s ig n o ?; la s u m a d e a y b.
O p e ra d o r
< )
l &&
++, -- n
*, / , % ?:
www.FreeLibros.me
Resumen 31
C a b e a c la ra r q u e é sto s n o s o n lo s ú n ic o s o p e ra d o re s c o n q u e c u e n ta C . E s te
le n g u a je o p e ra c o n m u c h o s o tro s q u e s e u tiliz a n p a ra d is tin to s p ro p ó sito s;
c o m o el p re s e n te es u n te x to in tro d u c to rio , s e e s tu d ia rá n ú n ic a m e n te los
m e n c io n a d o s.
X= 3 * a + ( - - a ) - ( - a - 2 ) * 2 / 3
P úra a = 4 s e re s o lv e rá así:
X=12+(--a)-(-a-2)*2/3
X=12+(3)- ( - a - 2 ) *2/3
X = 1 2+ 3 -( -3 -2 )* 2 /3
X=12 + 3 - ( - 5 ) * 2 / 3
X=12+3+5*213
X=12+3+10/3
X=12+3+3.3
X=15+3.3
X=18.3
Resum en
E n e s te c a p ítu lo s e a n a liz a ro n lo s o p e ra d o re s q u e e x is te n e n el le n g u a je C . U n
o p e ra d o r es u n s ím b o lo q u e in d ic a al c o m p ila d o r el tip o d e o p e ra c ió n q u e se
lle v a rá a c a b o so b re lo s d a to s ; lo s m á s u su a le s s o n lo s a ritm é tic o s , re la c ió n a le s y
ló g ico s. A l re la c io n a rlo s c o n lo s d a to s s e fo rm a n e x p re sio n e s.
El o p e ra d o r d e a s ig n a c ió n s e u tiliz a p a ra a s ig n a r v a lo r a u n a v a ria b le . E l le n g u a je
C o fre c e a lg u n o s o tro s o p e ra d o re s d e a s ig n a c ió n p ro p io s d e l le n g u a je q u e lle v a n
im p líc ita s o p e ra c io n e s a ritm é tic a s c o m o +=, -= e n tr e o tro s.
www.FreeLibros.me
32 Capítulo 2 A ritm ética d e C
Evaluación
1. U n ___________________ es u n s ím b o lo q u e le in d ic a al c o m p ila d o r c ó m o se
h a n d e m a n e ja r lo s d ato s.
2 . L a ___________________ c o n s is te e n a s ig n a r u n v a lo r a u n a v a ria b le a n te s de
u tiliz a rla e n u n p ro g ra m a .
3 . ¿ C u á l d e las s ig u ie n te s es u n a o p e ra c ió n d e a sig n a c ió n ?
5 . E l o p e ra d o r ___________________ s e p u e d e u s a r s ó lo s o b re d a to s e n te ro s.
a) ( ) b) { } c) i j d ) &&
9 . C u a n d o s e c o m b in a n o p e ra d o re s re la c ió n a le s y ló g ic o s e n u n a e x p re sió n , é sta
p u e d e te n e r c o m o re s u lta d o s ó lo c ie rto o fa ls o , lo c u a l s ig n ific a q u e es u n a
e x p re sió n d e tip o ___________________ .
10. O p e ra d o r q u e e v a lú a u n a c o n d ic ió n y d e p e n d ie n d o si es c ie r ta o fa ls a e je c u ta
u n a d e te rm in a d a in s tru c c ió n u o t r a ____________________
mai n( )
{
i n t j =4, k = 3 , i = 2 ;
www.FreeLibros.me
Ejercicios p ro p u e s to s 33
float x=1. 5 , z = 2 . 4, t;
t=( ( f l o a t ) ( j * k ) / 2 ) ;
t++;
x*=++z;
t - = (x+=++i) ;
p r i n t f ( u\n e l v a l o r de t e s 96 f \ n u, t ) ;
getch();
return 0;
}
Ejercicios propuestos
1.
H i n d ú de < s t d i o . h >
mai n( )
{
in t a,b,c=3,d=2;
a= 8 - 5 * 3 + 2;
b= 7%3 + 4 * 2;
p rin tf(" v a l o r de a % d \ t v a l o r de b %d\n" , a , b ) ;
b%=a;
p r i n t f f " v a l o r de b %c/\t \ n n, b ) ; ____
b=( - 4 ) 963;
p r i n t f f " v a l o r de b % d \ t \ n * , b ) ; ____
2.
H i n d ú de < s t d i o . h >
mainf)
{
in t c=3, d=2;
c -= d++ * 3;
www.FreeLibros.me
34 Capítulo 2 A ritm ética d e C
3.
mai n( )
{
i n t c= 3,l;
c = (c * 2 - (1 = 4, - 1));
p rin tf(" v a l o r de c %d\t v a l o r de 1 %d\n” , c , l ) ; ______________
g e t c h f );
return 0;
}
4.
mai n( )
{
in t a=7, b - 3 , c=2, resultado;
resultado = ( ( b 96C) ¡ 2 ) +1 ;
resultado -= a;
r e s u l t a d o %= ++a;
p rin tf("\n el v a l o r de r e s u l t a d o = %c/\t a= %c/ ", r e s u l t a d o , a ) ;
getch();
return 0;
}
www.FreeLibros.me
Ejercicios p ro p u e s to s
1. a+b*c/d
2. a % 5 % 2 + c
3. (a+b) *c % d
4. ( d<65)&&(3==d)
5. a<=b || (3>a)
6. (c<=7+d) || (7>c)
7. (a>=d) && ( 2 - 1 4==c+1)
8. a % d % c
9. 3+5*d % 10
10. a/b % 2
11. -a*7
12. (a>d) && (b<c) || (d>5)
13. ( (a>b) || ( a<c )) && ( (a=c)
14. || (a>=b))
15. ( (a>=b) || (a<d)) && 16.
16. ( (a>=d) && (c>d))
17. I (a<=c) || (c>d)
www.FreeLibros.me
www.FreeLibros.me
Programación
estructurada
L a p ro g ra m a c ió n e s tru c tu ra d a es u n a té c n ic a p a ra c re a r p ro g ra m a s
sig u ie n d o c ie rta s reg la s q u e p e rm ite n m o d ific a rlo , le e rlo y m a n te n e rlo
fá c ilm e n te . E n tre la s c a ra c te rístic a s p rin c ip a le s d e e s ta m e to d o lo g ía se
in clu y e el e m p le o d e e s tru c tu ra s d e c o n tro l q u e r e a liz a n a c c io n e s so b re
las e s tru c tu ra s d e d a to s, la s c u a le s s e e x p lic a n m á s a d e la n te . E l p ro g ra m a
d e b e te n e r u n a s o la e n tra d a y u n a s o la sa lid a .
El p ro g ra m a c o n s ta g e n e ra lm e n te d e v a ria s fu n c io n e s. U n a fu n c ió n
es u n s u b p ro g ra m a c o n u n a ta re a e sp e c ífic a . E s to s su b p ro g ra m a s
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
(g e n e ra lm e n te p e q u e ñ o s) s e d is e ñ a n c o n el fin d e u tiliz a rs e n o s ó lo u n a v e z n i e n
un s o lo p ro g ra m a , s in o la s v e c e s q u e s e re q u ie ra n y e n c u a lq u ie r p ro g ra m a .
El le n g u a je C p ro p o rc io n a fu n d a m e n ta lm e n te d o s fo rm a s d e m a n e jo d e fu n cio n e s:
las in te rn a s y la s e x te rn a s.
L as fu n c io n e s in te rn a s s o n la s y a im p le m e n ta d a s e in c o rp o ra d a s e n el le n g u a je
de p ro g ra m a c ió n . P a ra p o d e r h a c e r u so d e e lla s , es n e c e s a rio in c lu ir el
a rc h iv o d e c a b e c e ra e s tá n d a r c o rre s p o n d ie n te (ta m b ié n lla m a d a b ib lio te c a ) al
q u e c o rre s p o n d a c a d a fu n c ió n . L a fo rm a d e h a c e r e s to es e s c rib ie n d o la d ire c tiv a
Uinciude g e n e ra lm e n te al p rin c ip io d e u n p ro g ra m a . L a ta b la 3.1 m u e s tra los
a rc h iv o s d e c a b e c e ra q u e u tiliz a re m o s e n e s te lib ro :
Ta b l a 3.1 Bibliotecas de C
A r c h i v o d e cabecera Descripción
stdio .h C o n t i e n e f u n c i o n e s de e n t r a d a y s a l i d a de d a t o s .
conio.h C o n t i e n e f u n c i o n e s de c o n s o l a qu e s i r v e n p a r a
i n t e r a c t u a r c on d i s p o s i t i v o s como l a p a n t a l l a y l o
el teclado.
m at h. h C on tien e f u n c i o n e s matemáticas y t r i g o n o m é t r i c a s .
N o s e e x p lic a rá n to d a s la s fu n c io n e s d e c a d a u n o d e e sto s a rc h iv o s d e b id o a q u e
c a d a u n o in c o rp o ra u n a g ra n c a n tid a d d e e lla s y el te m a e s tá fu e ra d e l a lc a n c e de
este lib ro , p e ro s e e s tu d ia rá n las m á s u sa d a s y s e irá n e x p lic a n d o c o n e je m p lo s
c o n fo rm e a v a n c e m o s e n lo s te m a s; a d e m á s e x is te n o tra s b ib lio te c a s c o n fu n c io n e s
qu e n o s e tra ta rá n e n el tex to .
P e ro ta m b ié n e x is te n la s fu n c io n e s e x te rn a s o d e fin id as p o r el u su a rio , q u e p u e d e n
se r d ise ñ a d a s p o r c a d a p ro g ra m a d o r d e a c u e rd o c o n su s p ro p io s re q u e rim ie n to s .
El te m a d e las fu n c io n e s e x te rn a s s e tra ta c o n m á s d e ta lle e n el c a p ítu lo 8,
d e d ic a d o a la s m ism a s.
Es p o s ib le u tiliz a r e n u n p ro g ra m a m ú ltip le s fu n c io n e s, p e ro s ie m p re d e b e h a b e r
u n a fu n c ió n p rin c ip a l, d e la c u a l d e p e n d e el c o n tro l d e l p ro g ra m a c o m p le to .
www.FreeLibros.me
3.1 Estructura de un programa en C
/ * e s t r u c t u r a de un p r o gr am a en C. */
# i n c l u d e < s t d i o . h>
void main( )
{
p r i n t f ( " M i p r i m e r program a");
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
l * e s t r u c t u r a de un programa en C . * /
# i n c l u d e < s t d i o . h>
mai n( )
{
p r i n t f ( " M i p r i m e r program a");
return 0 ;
El p re p ro c e s a d o r fo rm a p a ite d e l le n g u a je C y s e e n c a rg a d e lle v a r a c ab o
u n a e ta p a q u e a n te c e d e a la fa s e d e c o m p ila c ió n . P re v ia m e n te a la tra d u c c ió n
del p ro g ra m a p rin c ip a l, s e in stru y e al c o m p ila d o r p a ra q u e e je c u te e le m e n to s
d e n o m in a d o s d ire c tiv a s o d ire c tric e s d e p ro c e s a m ie n to . L as d o s d ire c tiv a s m ás
u su a le s s o n ttdefine e H i n c l u d e .
www.FreeLibros.me
3.3 Estructuras d e co n tro l
L o s a rc h iv o s d e c a b e c e ra g e n e ra lm e n te tie n e n la e x te n s ió n .h y c o n tie n e n c ó d ig o
fu e n te e n C .
t tinciude <stdio.h>
ttinciude "pru eba s. h"
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
3.3.1 Secuenciación
in stru cció n 1;
in stru cció n 2;
i n s t r u c c i ó n n;
U n p ro g ra m a q u e s e d is e ñ a ú n ic a m e n te m e d ia n te e s ta e s tru c tu ra d e c o n tro l,
g e n e ra lm e n te te n d rá c o m o in s tru c c io n e s e n tra d a s d e d a to s, a sig n a c io n e s
de c á lc u lo s re a liz a d o s c o n lo s d a to s d e e n tra d a y s a lid a s d e n u e v o s d ato s.
A c o n tin u a c ió n s e p re s e n ta n a lg u n o s e je rc ic io s re su e lto s.
Descripción
A p lic a r la o p e ra c ió n d e p ro m e d io .
M o stra r el re su lta d o .
Vari abl es
E1 Entero P r i m e r a edad.
E3 Entero T e r c e r a edad.
www.FreeLibros.me
3.3 Estructuras d e co n tro l
Codificación
/ *P r om ed i o de 3 e d ad es * /
t t i n c l u d e < s t d i o . h>
tíinclude< conio.h>
mai n( )
{
in t e1,e2,e3;
float prom;
p r i n t f ( " T e c l e a l a e d a d de l a t e r c e r a p e r s o n a " ) ;
s c a n f ( " 96 d " , & e 3 ) ;
prom=(e1+e2+e3)/3; l * t e n e r siempre p r e s e n te l a p re c e d e n c ia
de o p e r a d o r e s */
p r i n t f ( " E l p r o m e d i o de e d ad de l a s 3 p e r s o n a s e s %f ", prom);
Explicación
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
(continuación )
Ejecución
Descripción
A p lic a r la fó rm u la d e l tra p e c io .
M o stra r el re su lta d o .
Variabl es
H Real A ltura.
Codificación
l * A r e a de un t r a p e c i o * /
f t i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
{
float b , B , h , r ;
c l r s c r ( );
p r i n t f f “I n s e r t e l a m edi da de l a base menor\n");
scan fC % f',& b );
p r i n t f f "I n s e r t e l a m edi da de l a base m ayor\n");
s c a n f f "%f", &B) ;
p r i n t f f "I n s e r t e l a a ltu ra de su t r a p e c i o “) ;
s c a n f ( “*6fu, & h ) ;
www.FreeLibros.me
3.3 Estructuras d e co n tro l
r=(b+B) *h/2;
p rin tf("E l a r e a de s u t r a p e c i o e s %.2 f " , r ) ;
getch();
return 0 ;
Explicación
Ejecución
I n s e r t e l a m edi da de l a b a s e menor
3.2
I n s e r t e l a m edi da de l a b a s e mayor
5
Inserte l a a ltu ra de s u t r a p e c i o
7
El á re a d e l tra p e c io es 28.7.
Descripción
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
(continuación)
C a lc u la r e l s u e ld o b ru to .
C a lc u la r el m o n to p o r c o n c e p to d e d e d u c c io n e s.
C a lc u la r el m o n to p o r c o n c e p to d e p e rc e p c io n e s.
C a lc u la r e l s u e ld o neto .
M o stra r lo s re su lta d o s.
Vari abl es
H Entero C a n t i d a d de h o r a s t r a b a j a d a s .
Sh Real Sueld o p o r h o ra t r a b a j a d a .
Sb Real Sueld o b r u t o .
D Real T o t a l de d e d u c c i o n e s .
P Real T o t a l de p e r c e p c i o n e s .
Codificación
/*S a l a r i o de un t r a b a j a d o r * ¡
H include <stdio.h >
Uinclude <c o ni o. h >
mai n( )
{
float s n , s b , s h , d , p ;
i n t h;
e lr s e r ();
p rin tf("E scrib a la c a n t i d a d de h o r a s t r a b a j a d a s : \ n " ) ;
s c a n f ( " * 6d " , & h ) ;
p r i n t f ( " E s c r i b a l a pa g a x h o r a : \ n " ) ;
scanf("% f",&sh);
sb=h*sh;
d=sb*.1 2 ;
p = s b * . 15;
sn=sb+p-d ;
www.FreeLibros.me
3.3 Estructuras d e co n tro l
prin tf("T u s u e l d o b r u t o e s % . 2 f , \ n t u s d e d u c c i o n e s so n %. 2f ,
\n t u s p e r c e p c i o n e s s on %. 2 f \n e l n e t o e s 96. 2 f ' ' , s b , d , p , s n ) ;
getch();
return 0 ;
Explicación
Ejecución
Escriba l a c a n t i d a d de h o r a s t r a b a j a d a s :
20
E s c r i b a l a pa g a x h o r a :
40
Tu s u e l d o b r u t o e s 800. 00
t u s d e d u c c i o n e s s on 9 6 .00
t u s p e r c e p c i o n e s s on 120.00
e l n e t o e s 824. 00
Descripción
S o lic ita r lo s 4 n ú m e ro s a p ro m e d ia r.
A p lic a r la o p e ra c ió n p a ra c a lc u la r el p ro m e d io .
M o stra r el re su lta d o .
(continúa)
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
(continuación)
Variabl es
A Entero o re a l Primero a p ro m e d ia r.
B Entero o re a l Segundo a p r o m e d i a r .
C Entero o re a l Tercero a p ro m e d ia r.
D Entero o re a l Cuarto a p r o m e d ia r .
Codificación
l * P r o gr a ma p a r a p r o m e d i a r 4 números*/
#include<stdio.h>
# i n c l u d e < c o n i o . h>
main ()
{
float a , b , c , d , t o t ;
c lrs c rO ;
p r i n t f ( " Inserte el 1er numero a p r o m e d i a r \n\n\a")
s c a n f ( U96 f u, & a ) ;
p r i n t f f ” Inserte el 2 do numero a promediar \n\n\a")
s c a n f ( H96 f " , & b ) ;
prin tf(" Inserte el 3 e r numero a p r o m e d i a r \n\n\a")
s c a n f ( u% f " , & c ) ;
p r i n t f f " Inserte el 4tO numero a p r o m e d i a r \n\n\a")
s c a n f ( u% f " , & d ) ;
tot=(a+b+c+d) /4;
p r i n t f f ' E l promedio es % . 2 f * , t o t ) ;
getchf);
return 0;
Explicación
E ste p ro g ra m a fu n c io n a e s e n c ia lm e n te c o m o el p ro m e d io d e la s tre s e d ad es
e x p lic a d o a n te rio rm e n te ; es d e cir, s e s o lic ita n lo s n ú m e ro s y s e a lm a c e n a n e n a ,
www.FreeLibros.me
3.3 Estructuras d e co n tro l
L a d ife re n c ia s e v e ría e n la p re s e n ta c ió n d e l p ro g ra m a , y a q u e c a d a v e z q u e
se s o lic ita u n n ú m e ro a p ro m e d ia r, a v a n z a ría d o s sa lto s d e lín e a y a d e m á s se
e sc u c h a ría u n “b¿p” .
Ejecución
Inserte e l 1 e r numero a p r o m e d i a r
3
I n s e r t e e l 2do numero a p r o m e d i a r
5
I n s e r t e e l 3 e r numero a p r o m e d i a r
8
I n s e r t e e l 4 t o numero a p r o m e d i a r
6
E l promedio es 5.50
Eje r c ic io 3.5 Calcule el m onto de las ventas del día de una pastelería
Descripción
D efin ir el p re c io d e c a d a p ro d u c to o ta m a ñ o d e p a ste l.
M o stra r el re su lta d o .
Vari abl es
G Constante r e a l P r e c i o p o r p a s t e l grande.
P Constante r e a l P r e c i o p o r p i e z a de pan.
G Entero Número de p a s t e l e s g r a n d e s v e n d i d o s .
(c o n tin ú a )
www.FreeLibros.me
50 Capítulo 3 Prog ram ació n estructurada
(continuación)
Vari abl es
Ch Entero Número de p a s t e l e s c h i c o s v e n d i d o s .
Tot Real T o t a l de v e n t a .
Codificación
/*VENTA DE PASTELES */
tt i n c l u d e < c o n i o . h>
tt i n c l u d e < s t d i o . h >
ttdefine G 150.00
ttdefine M 100.00
Udefine CH 5 0 .00
ttdefine P 2 . 2 0
mai n( )
{
í n t g,m ,ch,p;
ftoat t o t ;
clrs c rf);
p r i n t f ( " I n t r o d u z c a e l numero de p a s t e l e s GRANDES v e n d i d o s \ n " ) ;
s c a n f ( "%¿" , & g ) ;
p r i n t f ( uI n t r o d u z c a e l numero de p a s t e l e s MEDIANOS v e n d i d o s \ n " ) ;
s c a n f ( " M ", &m) ;
p r i n t f ( " I n t r o d u z c a e l numero de p a s t e l e s CHICOS v e n d i d o s \ n " ) ;
s c a n f ( "%¿" , & c h ) ;
p r i n t f ( " I n t r o d u z c a e l numero de PANES v e n d i d o s \ n u) ;
s c a n f ( " % i u,&p) ;
tot=(G*g)+(M*m)+(CH*ch)+(P*p);
p r i n t f ( uSu v e n t a t o t a l e s de %. 2 f ” , t o t ) ;
getch();
return 0;
>
www.FreeLibros.me
3.3 Estructuras d e co n tro l
Explicación
D e sp u é s d e lo s a rc h iv o s d e c a b e c e ra s e d e fin e n la s c o n sta n te s g, m, c h , p co n
sus re sp e c tiv o s v a lo re s, e n lo s c u ales s e a lm a c e n a el p re c io d e lo s d ife re n te s
ta m a ñ o s d e p a ste le s. S e s o lic ita la c a n tid a d d e p a s te le s v e n d id o s g ra n d e s ,
m e d ia n o s , c h ic o s y p a n e c illo s; re s p e c tiv a m e n te s e g u a rd a n e n g , m, c h y p .
P o s te rio rm e n te s e a s ig n a el re s u lta d o d e l c á lc u lo d e l to ta l d e v e n ta s a tot, el cu al
c o n siste e n la s u m a d e lo s p ro d u c to s d e l p re c io d e c a d a p a ste l p o r el d e p a ste le s
v e n d id o s. A l final s e m u e s tra el re s u lta d o .
Ejecución
I n t r o d u z c a e l numero de p a s t e l e s GRANDES v e n d i d o s
9
I n t r o d u z c a e l numero de p a s t e l e s MEDIANOS v e n d i d o s
7
I n t r o d u z c a e l numero de p a s t e l e s CHICOS v e n d i d o s
4
I n t r o d u z c a e l numero de PANES v e n d i d o s
50
Su v e n t a t o t a l e s de 2 360.00
Eje r c ic io 3.6 Realice las cuatro operaciones básicas con dos núm eros
Descripción
P é d ir d o s v a lo re s c o n lo s q u e s e lle v a rá n a c a b o la s c u a tro o p e ra c io n e s.
Vari abl es
a Entero o re a l P r i m e r o p e r an d o.
b Entero o re a l Segundo o p e r an d o.
Codificación
/ *MINICALCULADORA */
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
(c o n tin ú a )
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
(continuación)
main ()
{
float a,b;
c lrs c rO ;
s c a n t ( u% f " , & a ) ;
p r i n t f ( " \ n T e c l e a t u s egu ndo numero ");
s c a n f ( u% f \ & b ) ;
p r i n t f ( " \nLos r e s u l t a d o s s on : % . 2 f % . 2 f % . 2 f
2f ",a+ b,a-b,a*b,a/b);
getchf);
return 0 ;
Explicación
Ejecución
T e c l e a t u p r i m e r numero 32
T e c l e a t u segundo numero 54
L os r e s u l t a d o s s on : 86.00 -22.00 1 728.00 0 . 5 9
Resum en
E n e s te c a p ítu lo s e e s tu d ia ro n la s p a rte s m ín im a s q u e u n p ro g ra m a e n C d e b e
te n e r d e a c u e rd o c o n la m e to d o lo g ía d e la p ro g ra m a c ió n e stru c tu ra d a .
www.FreeLibros.me
Evaluación 53
L a p ro g ra m a c ió n e s tru c tu ra d a es u n a té c n ic a p a ra c re a r p ro g ra m a s m e d ia n te
c ie rta s reg la s q u e p e rm ite n q u e u n p ro g ra m a s e p u e d a m o d ifica r, le e r y m a n te n e r
fá c ilm e n te . S u c a ra c te rís tic a p rin c ip a l es el u so d e e s tru c tu ra s d e c o n tro l.
U n p ro g ra m a d e b e te n e r u n a s o la e n tra d a y u n a s o la sa lid a , y p o r lo g e n e ra l c o n s ta
d e v a ria s fu n c io n e s o su b p ro g ra m a s.
E x is te n fu n c io n e s in te rn a s, la s c u a le s y a v ie n e n im p le m e n ta d a s e n el le n g u a je ,
a d em ás fu n c io n e s e x te rn a s , q u e s o n d ise ñ a d a s p o r el p ro g ra m a d o r.
A u n q u e u n p ro g ra m a p u e d e te n e r m ú ltip le s fu n c io n e s, d e b e e x is tir la fu n c ió n
p rin c ip a l - m a i n - ; d e sd e é s ta s e u tiliz a n las fu n c io n e s in te rn a s y e x te rn a s.
Evaluación
I. C onteste las siguientes preguntas.
1. L a ___________________ es u n a té c n ic a q u e b a jo c ie rta s reg la s p e rm ite crear,
m o d ificar, le e r y m a n te n e r p ro g ra m a s fá c ilm e n te .
2 . U n a ___________________ es u n s u b p ro g ra m a c o n u n a ta re a p re d e te rm in a d a .
4. A l c o n ju n to d e a rc h iv o s d o n d e s e e n c u e n tra n im p le m e n ta d a s la s fu n c io n e s se
le d e n o m in a ___________________ .
5 . ¿ C u á l d e lo s s ig u ie n te s es e je m p lo d e u n a rc h iv o d e c a b e c e ra ?
a) p r i n t f b) i n c l u d e c) c o n i o . h d ) define
6 . S i d e s e a re a liz a r o p e ra c io n e s m a te m á tic a s c o m o ra íz c u a d ra d a o p o te n c ia , p o r
e je m p lo , s e d e b e in c lu ir la b ib lio te c a l l a m a d a ____________________
www.FreeLibros.me
Capítulo 3 Prog ram ació n estructurada
8 . ¿ C u á l es el n o m b re d e la fu n c ió n , a p a rtir d e la c u a l in ic ia la e je c u c ió n ?
a) v o i d b) s c a n t C) s t r i n g . h d ) main
9 . ¿E s in d is p e n s a b le p a ra s u e je c u c ió n q u e u n p ro g ra m a te n g a c o m e n ta rio s ?
a) c ie rto b) falso
E x p liq u e p o r q u é ____________________________________________________________
e in ic ia n c o n el s í m b o l o ____________________
www.FreeLibros.me
Ejercicios propuestos 55
Ejercicios propuestos
www.FreeLibros.me
56 Capítulo 3 Prog ram ació n estructurada
5 . D ib u ja r u n c u a d ro d e a ste risc o s d e 4 x 4.
1.
main()
{
in t a= 5 , b = 3 , c = 1 0 , d= 5 5 ;
c=a+b*b-6 ;
d = c - 10 %4 * 3 / 6 ;
b=b*d+c;
b - 15;
getch();
return 0;
a ________________________
b ________________________
c ________________________
d ________________________
2 .
ttin clu d e < std io .h >
ttdefi ne M 3
main()
{
in t a= 5 , b = 8 , c ;
c=4 *a 96b ;
c=c-M;
www.FreeLibros.me
Ejercicios propuestos 57
b=a + c -M ;
a=b*M;
p r i n t f ( " % d \ n * d \ n 96 d \n " , a , b , c ) ;
getch();
r e t u r n 0;
a ___________________
b ___________________
3.
Hiñel u d e <stdio.h >
üinclude <c o ni o. h >
m a in ( )
{
in t a=5,b=3,c=10,d=55;
c = a + b * b -6 ;
d=c-10*4*316;
b=b*d+c;
b=15;
p rin tf ( "96d\n%d\n96d\n%d\n", a , b , c, d ) ;
getch();
return 0 ;
a ___________________
b ___________________
c _____________________
d ___________________
www.FreeLibros.me
58 Capítulo 3 Prog ram ació n estructurada
4.
H iñ e l u d e < s td io .h >
U in c lu d e < co n io .h >
ttdefine M 3
m a in ( )
{
in t a= 5 , b= 8 , c ;
c=4 *a%b;
c= c-M ;
b=a+c -M;
a=b*M;
getch();
retu rn 0;
www.FreeLibros.me
Estructuras
de control selectivas
A q u í s e m e n c io n a n la s d ife re n te s fo rm a s d e m a n e ja r u n a s e le c c ió n ,
c la sific a n d o la e s tru c tu ra p o r s u u so c o m ú n .
U n a c o n d ic ió n b o o le a n a es u n a e x p re s ió n q u e p u e d e te n e r c o m o
re su lta d o s ó lo el v a lo r d e v e rd a d e ro o d e falso .
L a c o n d ic ió n p u e d e u tiliz a r d a to s d e tip o e n te ro , re a l o c a rá c te r y se
fo rm a n g e n e ra lm e n te u tiliz a n d o lo s o p e ra d o re s re la c ió n a le s , p o r
e je m p lo a > b , 5 = = b.
www.FreeLibros.me
Capítulo 4 Estructuras d e co n tro l selectivas
E s a q u e lla q u e d e sp u é s d e e v a lu a r u n a c o n d ic ió n d e te rm in a s u v a lo r, q u e es
v e rd a d e ro o fa ls o , y só lo si el re s u lta d o d e la c o n d ic ió n es v e rd a d e ro s e re a liz a rá
la in s tru c c ió n o in stru c c io n e s d e fin id a s p a ra la c o n d ic ió n , s u sin ta x is es la
sig u ien te:
1.
if (condición 1 )
in stru cció n 1;
2.
if (condición 1 )
{
in stru cció n 1;
in stru cció n 2;
in stru cció n 3;
{
float c a l i , cal2, cal3, prom;
p r i n t f (" Dame l a c a l i f i c a c i ó n d e l p r i m e r examen p a r c i a l " ) ;
s c a n f f "%f" , A c a l 1);
www.FreeLibros.me
4.1 Estructura selectiva simple ( i f )
p rin tf ("Aprobo");
g e t c h f );
return 0 ;
mai n( )
{
i n t num;
p r i n t f ( " I n d i c a s i e l numero e s p o s i t i v o , n e g a t i v o o c e r o \ n v) ;
p r i n t f ( " Dame e l \ n ");
scanf("% i",&num );
if(num==0 )
p r i n t f ( " Es c e r o \ n n) ;
if(num >0 )
p r i n t f ( " Es p o s i t i v o \ n " ) ;
if(num <0 )
p r i n t f ( " Es n e g a t i v o \ n u) ;
g e t c h f );
return 0 ;
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
In d e p e n d ie n te m e n te d e la c o n d ic ió n q u e s e c u m p la , el p ro g ra m a e v a lu a rá
las tre s c o n d ic io n e s, p e ro s e im p rim irá el te x to s ó lo d o n d e la c o n d ic ió n se a
v erd a d era .
Eje r c ic io 4.1 Leer un núm ero por el teclado y evaluar si es par o impar
Descripción
In tro d u c ir u n n ú m ero .
Im p rim ir si el n ú m e ro es p a r o im p ar.
V a ria b le s
N om bre T ip o U so
n Entero V a lo r a r e v i s a r
Codificación
/* P a r o i m p a r * /
itin e l u d e < s t d i o . h >
t t i n e l u d e < c o n i o . h>
mainf)
{
i n t n;
c l r s c r f );
p rin tf( "P a r o i m p a r . \ n \ n u ) ;
p rin tff "E s c r i b e e l numero: ” );
s c a n f ( H%d",&n) ;
if(n % 2 == 0 )
p r i n t f ( ' ,E l numero %c/ e s p a r . ” ,n);
www.FreeLibros.me
4.2 Selectiva d o b le ( i f - e ls e )
if (n % 2 /= <d)
p r i n t f ( " E l numero %d e s i m p a r . n);
g e t c h f );
return 0;
;
Explicación
Ejecución
1.
P a r o impar.
E s c r i b e e l numero 8
E l numero 8 e s p a r .
2 .
P a r o impar.
E s c r i b e e l numero 15
E l numero 15 e s p a r
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
1.
if (condición )
in stru cció n ;
else
in stru cció n ;
2.
if (condición )
{
in stru cció n 1;
in stru cció n 2;
}
else
{
in stru cció n 3;
in stru cció n 4;
/*Aprobo o r e p r o b o * /
ttinclude <stdio.h >
Hiñel u d e <c o ni o. h >
mai n( )
{
flo a t c a l i , c a l 2 , c a l 3, prom;
p r i n t f ( " Dame l a c a l i f i c a c i ó n d e l p r i m e r examen p a r c i a l " ) ;
s c a n f ( " * f " , & c a l 1);
p r i n t f ( " Dame l a calificación del segundo examen p a r c i a l " );
s c a n f ( " * f " , & c a l2 );
p r i n t f ( " Dame l a calificación del t e r c e r examen p a r c i a l " );
s ca n f("* f",& cal3 );
prom = ( c a l i + cal2 + cal3) / 3;
i f (prom >= 6 0 )
www.FreeLibros.me
4.2 Selectiva d o b le ( i f - e ls e )
E n e s te e je m p lo n u e v a m e n te s e c a lc u la el p ro m e d io d e l a lu m n o , el re s u lta d o de
la v a ria b le prom s e rá el v a lo r q u e s e u tilic e e n la c o n d ic ió n . S i el c o n te n id o d e la
v a ria b le prom es m a y o r o ig u a l q u e 6 0 (c o n d ic ió n v e rd a d e ra ) s e im p rim e A p ro b o y
su re s p e c tiv o p ro m e d io , d e lo c o n tra rio prom s e e n c u e n tra e n tre 0 y 5 9 (c o n d ic ió n
la lsa ), p o r lo q u e s e im p rim irá R e p ro b o c o n s u p ro m e d io re sp e c tiv o .
I * E l e g i r c u á l c o n v e r s i ó n r e a l i z a r s i de k i l ó m e t r o s a m e t ro s o v i c e v e r s a */
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
m ain ()
{
flo at z , y ;
i n t op;
p r i n t f ( " C o n v e r s i ó n de kms a m ts o mts a k m s \ n " ) ;
p r i n t f ( " S i d e s e a s h a c e r l a c o n v e r s i ó n de kms a m ts e l i g e l a
o p c io n 1 y de mts a kms e l i g e l a o p c io n 2 \ n " ) ;
s c a n f(" % d " ,& o p );
if(o p = = 1)
{
p r i n t f ( " Dame l o s k i l ó m e t r o s a c o n v e r t i r \ n " ) ;
s c a n f ( n% f u, & z ) ;
y = z * 1000 ;
p r i n t f (" l a c o n v e r s i ó n a m e t ro s e s
}
e ls e
{
p r i n t f ( " Dame l o s m e t ro s a c o n v e r t i r \ n " ) ;
s c a n f ( n% f \ & y ) ;
z = y 110 0 0 ;
(continúa )
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
p r i n t f ( " La c o n v e r s i ó n a k i l ó m e t r o s e s 96 f \ n " , z ) ;
(c o n tin u a c ió n )
}
getch();
return 0 ;
}
N o ta : C a b e s e ñ a la r q u e al e le g ir la o p c ió n 1, s e re a liz a rá la c o n v e rsió n de
k iló m e tro s a m e tro s, p e ro al e le g ir la o p c ió n 2 u o p rim ir c u a lq u ie r te c la d ife re n te
a 1 s e re a liz a rá la c o n v e rsió n d e m e tro s a k iló m e tro s.
E je rc ic io s re s u e lt o s
Descripción
In tro d u c ir el a ñ o e n q u e n a c iste .
V a ria b le s
N om bre T ip o U so
an i o Entero Año de n a c i m ie n t o
Codificación
/* AñO BI SIE ST O */
#include< stdio.h>
# i n c l u d e < c o n i o . h>
www.FreeLibros.me
4.2 Selectiva d o b le ( i f - e ls e )
m ain(){
i n t anio;
clrscrf);
p rin tf( "I n d i c a s i e l a n i o en q u e n a c i s t e f u e b i s i e s t o \ n \ n " );
p rin tff "En q u e a n i o n a c i s t e " );
scanff & an io ) ;
if( a n i o % 4 == 0 )
p rin tff “E l a n i o en q u e n a c i s t e e s b i s i e s t o \ n \ n " ) ;
else
p rin tff "El a n i o en q u e n a c i s t e NO e s b i s i e s t o \ n \ n " );
g etch();
return 0 ;
Explicación
Ejecución
1.
In d ic a s i e l a n io en que n a c i s t e f u e b i s i e s t o .
En que a n i o n a c i s t e 1980.
E l a n i o e n que n a c i s t e e s b i s i e s t o .
2.
In d ic a s i e l a n io en que n a c i s t e f u e b i s i e s t o .
En que a n i o n a c i s t e 1985.
E l a n i o e n que n a c i s t e NO e s b i s i e s t o .
Descripción
S e le c c io n a r u n a o p c ió n .
E v a lú a la c o n d ic ió n .
(c o n tin ú a )
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
(continuación )
R e a liz a el c á lc u lo .
M u e stra el re su lta d o .
Variables
N om bre Tipo Uso
Opc Entero O p c ió n d e c o n v e r s i ó n .
g Real Grados.
con Real C onversión.
Codificación
/ * o F - oC o oC a oF */
# include< stdio.h>
üinclude< conio.h>
m ain()
{
flo at g , c on ;
i n t opc;
e lrser();
p rin tff "C o n v e r s i o n e s d e g r a d o s d e t e m p e r a t u r a " ) ;
p rin tff " \ n [ 1 JoF - oC \ n [ 2 ] o C - o F \ n \ n " );
p rin tf( "S e l e c c i o n a una o p c i o n ) ;
scanf( "%c/", &opc ) ;
if( o p c == 1 )
{
p rin tff " I n t r o d u c e l o s oF = " ) ;
s c a n f f "% f", &g ) ;
con = ( g -3 2 ) 1 1 .8 ;
p rin tff "%f0 F = %f0C ", g , con ) ;
}
else
{
p rin tff "I n t r o d u c e l o s oC = " ) ;
s c a n f f "%f", &g ) ;
c o n = g * 1 . 8 + 32;
p rin tff "%f0C = % f0F", g , con );
www.FreeLibros.me
4.3 Selectiva d o b le anidada
g etch();
return 0 ;
}
Explicación
Ejecución
1.
C o n ve rsio n es de g r a d o s de te m p e r a tu r a .
[ 1 ] o F - oC
( 2 ] 0 C - 0F
S e l e c c i o n a una o p c i o n 1
I n t r o d u c e l o s oF = .
oF = oC
2 .
C o n ve rsio n es de g r a d o s de te m p e r a tu r a .
[1]0F - oC
[ 2]0 C - 0F
S e l e c c i o n a una o p c i o n 2
I n t r o d u c e l o s oC = .
oC = oF
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
/*P o s i t i v o , n e g a t i v o o c e r o * !
tíinclude< stdio.h>
f t i n c l u d e < c o n i o . h>
main()
{
i n t num;
p r i n t f ( " I n d i c a s i e l n u m e ro e s p o s i t i v o , n e g a t i v o o c e r o \ n n) ;
p r i n t f ( "Dame e l n u m e r o \ n " ) ;
s c a n f f "%c/", &num) ;
if(num==0 )
p rin tf(" E s cero\n");
else
i f ( n u m > 0)
p rin tf("E s p o sitiv o \n ");
else
p r in tf( " E s n e g a tiv o \n " );
getch f);
return 0 ;
}
www.FreeLibros.me
4.3 Selectiva d o b le anidada
Ej e m p l o 4.6 Leer dos núm eros y si son iguales m ultiplicarlos; si el prim ero
es mayor que el segundo, que se resten; si el prim ero es
m enor que el segundo, que se sumen
t t in c lu d e < s t d i o . h >
iti n e l ude < c o n i o . h>
m a in ( )
{
i n t n u m i,num 2 , r e s u l ;
p r i n t f ( " Dame e l p r i m e r “) ;
s c a n f f " * d ", &num1 ) ;
p r i n t f ( " Dame e l se g u n d o " ) ;
s c a n f ( "% c/\ &num2 ) ;
if (num i — num2 )
{
r e s u l = numi * num2 ;
p r i n t f ( " L a m u l t i p l i c a c i ó n de l o s núm eros e s * d " , r e s u l ) ;
}
e ls e
if (num i > num2 )
{
r e s u l = numi - num2 ;
p r i n t f ( " L a r e s t a de l o s nú m ero s e s * d " , r e s u l ) ;
}
e ls e
{
r e s u l = numi + num2 ;
In ic ia p id ie n d o lo s d o s v a lo re s, a c o n tin u a c ió n s e c o m p a ra si s o n ig u a le s , si e sto
es v e rd a d e ro , s e re a liz a la m u ltip lic a c ió n d e lo s n ú m e ro s y y a n o s e e v a lú a n las
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
sig u ie n te s c o n d ic io n e s s a lie n d o d e l a n id a m ie n to , si la c o n d ic ió n 1 fu e fa ls a se
e v alú a la c o n d ic ió n 2 y s e c o m p a ra si el p rim e r n ú m e ro es m a y o r q u e el se g u n d o ,
si e s to s e c u m p le s e re s ta n lo s v a lo re s y s e sa le d e l a n id a m ie n to . E n c a s o d e q u e la
c o n d ic ió n 2 s e a falsa, s e e je c u ta n la s in stru c c io n e s a c o n tin u a c ió n d e l ú ltim o e i s e .
E je rc ic io s re s u e lt o s
Descripción
V a ria b le s
N om bre T ip o U so
11 Entero Lado 1 t r i á n g u l o .
12 Entero Lado 2 t r i á n g u l o .
13 Entero Lado 3 t r i á n g u l o .
Codificación
/ * C l a s i f i c a c i ó n de t r i á n g u l o s * /
# in c lu d e < s t d io .h >
t iin c lu d e < c o n io .h >
m a in ( )
{
in t 1 1 , 12, 13;
c lr s c r ( ) ;
p r i n t f ( " C l a s i f i c a un t r i a n g u l o \ n \ n ”) ;
p r in t f ( " E s c r ib a l o s la d o s d e l t r ia n g u lo : ■ ) ;
scan f("%d % c/\ & 1 1 , 8 ,12, 8 1 3 ) ;
p r i n t f ( u\ n " ) ;
if( 1 1 == 1 2 && 1 2 = 13 )
p r i n t f ( "E l t r i a n g u l o e s E q u i l á t e r o " ) ;
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
else
i f ( 1 2 == 1 3 || 1 2 == 1 3 || 1 3 == 11 )
p rin tff "E l t r i a n g u l o e s I s o s c e l e s " ) ;
else
p rin tff "El t r i a n g u l o e s E s c a l e n o " ) ;
getch();
return 0 ;
}
Explicación
Ejecución
1.
C l a s i f i c a un t r i a n g u l o .
E s c r i b e l o s l a d o s d e l t r i a n g u l o 7 7 7.
El t r i a n g u l o e s E q u i l á t e r o .
2 .
C l a s i f i c a un t r i a n g u l o .
E scribe l o s la d o s d el tr ia n g u lo 5 3 9 .
El t r i a n g u l o e s E s c a le n o .
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
El tip o d e d a to d e la e x p re s ió n s ó lo p u e d e s e r e n te ro o c a rá c te r; p o r lo ta n to , las
o p c io n e s d e b e rá n c o in c id ir c o n el tip o d e d a to d e la e x p re sió n .
s w i t c h c o m p a ra e l v a lo r d e la e x p re s ió n c o n c a d a u n a d e la s o p c io n e s e n el
o rd e n e n q u e s e e n c u e n tra n . C a d a o p c ió n s e re p re s e n ta c o n la p a la b ra re s e rv a d a
case, p o r lo ta n to h a b rá ta n to s c a s e c o m o o p c io n e s. U n a v e z q u e e n c u e n tra la
ig u a ld a d d e la e x p re s ió n c o n u n a o p c ió n s e re a liz a rá n las in s tru c c io n e s q u e e s tá n a
c o n tin u a c ió n d e l c a s e h a s ta e n c o n tra r u n b r e a k ; si n o e n c u e n tra n in g ú n v a lo r ig u al
a la e x p re sió n , re a liz a rá la in s tru c c ió n a s ig n a d a al d e f a u i t , si é s te e x iste .
S e d e b e rá u tiliz a r la p a la b ra re s e rv a d a b r e a k al te rm in o d e c a d a c a s e p a ra
in te rru m p ir la e s tru c tu ra y n o re v is a r las s ig u ie n te s o p c io n e s.
C o m o s e m e n c io n ó a n te rio rm e n te , el d e f a u i t s e e je c u ta rá c u a n d o la e x p re sió n
n o c o in c id a c o n n in g u n a o p c ió n . S in e m b a rg o , s e rá d e c is ió n d e l p ro g ra m a d o r
in c lu irla o n o e n s u p ro g ra m a , y a q u e é s te es o p c io n a l. L a s in ta x is es:
sw itch (expresión)
{
case 1: in s t r u c c i ó n 1;
break;
case 2 : in s t r u c c i ó n 2 ;
break;
c a s e n : i n s t r u c c i ó n n;
break;
d efault:
i n s t r u c c i ó n n +1 ;
}
ü in c lu d e < stdio.h>
ttin c lu d e <conio.h>
main()
{
c h a r d i a;
p r i n t f ( " E l i g e un d í a d e l a s e m a n a : \ n L u n e s = L \ n M a r t e s = M\n
M i é r c o l e s = I \ n J u e v e s = J \ n V i e r n e s = V \ n Saba d o
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
= S \ n Domingo = D") ;
s c a n f ( U96C" , & d i a ) ;
sw itch(dia)
{
case ' L ' : p r i n t f ("it i u) ;
break;
case p r i n t f (" it 2 " ) ;
break;
case 'I': p rin tf (" it 3 " ) ;
break;
case ' J ' : p r i n t f i"# 4 " ) ;
break;
case 'V : p rin tf r# 5");
break;
case ’S ' : p r i n t f ("it 6 " ) ;
break;
case ' D ' : p r i n t f ("it 7 " ) ;
break;
}
g etch();
return 0 ;
}
/*C alculadora*/
t t i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
main()
{
in t x,y,o p ;
fl oat z ;
p rin tf(" C a lc u la d o r a b a s ic a e l i g e l a operación a r e a l i z a r \ n " );
(c o n tin ú a )
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
(continuación)
p r i n t f ( " 1 =Suma, 2 = R e s t a , 3 = M u l t i p l i c a c i o n , 4 = D i v i s i o n \ n " ) ;
scanf("% d",& op);
s w i t c h (op )
{
c a s e 1 :p r i n t f ( " S u m a \ n " ) ;
p r i n t f ( "Teclea e l p rim er \n " );
scanf("% i",& x);
p r i n t f ( "Teclea e l segundo \ n " ) ;
scanf("% i",& y);
z =x +y ;
p r i n t f ( " La suma es% f",z^;
break;
c a s e 3 : p r i n t f ( "M u í t i p l i c a c i o n \ n " ) ;
p r i n t f ( "Teclea e l p rim er \n " ) ;
s c a n f ( " 96 i " , 8 , x ) ;
p r i n t f ( "Teclea e l segundo \n " );
sca n f("te",& y);
z=x*y;
p r i n t f ( " La m u l t i p l i c a c i ó n es% f" , z ) ;
break;
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
}
getch();
return 0 ;
}
E je rc ic io s re s u e lto s
Descripción
S o lic ita r lo s v a lo re s.
M o stra r el área.
Variables
Nombre Tipo Uso
ni Real Op era nd o 1.
n2 Real Op era nd o 2.
r Real R esultado.
op Carácter Cpción o p e r a c i ó n .
Codificación
I'CALCULADORA*I
t t i n c l u d e < s t d i o . h>
i t i n e 1 u d e < c o n i o . h>
(c o n tin ú a )
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
(continuación)
m a in ()
{
flo at n 1 , n 2 , r ;
c h a r op ;
e lrser();
p rin tff "F i g u r a s g e o m e t r i c a s \ n \ n " ) ;
p rin tf ( "E l i j a s u figura ( 1. t r i a n g u l o \ n 2 . r e c t a n g u l o \ n 3.
c u a d r a d o ,\n 4. c i r c u l o ) : \n \n " );
scanff U96 C " , & o p ) ;
swi t c h ( op )
{
case ' V : p r i n t f f " \ndame l a b a s e y l a a l t u r a " ) ;
s c a n f ( “%f%f" , &n 1 , &n2 ) ;
p r i n t f ( " \ n e l a r e a e s % . 2 f " , n 1 *n 2 / 2 ) ;
break;
case ' 2 ' : p r i n t f ( " \ndame l a b a s e y l a a l t u r a " ) ;
s c a n f ( "%f%f “ , 8,n 1 , &n2 ) ;
p r i n t f ( " \ n e l a r e a e s \ . 2 f " , n 1 *n 2 ) ;
break;
case ' 3 ' : p r i n t f ( " \ndame e l l a d o " ) ;
s c a n f f "%f" ,& n 1 ) ;
p r i n t f ( ” \ n e l a r e a e s %.2 f " , n 1 *n 1) ;
break;
case ' 4 ' : p r i n t f f " \ndame e l r a d i o " ) ;
s c a n f f " * f " , & n 1) ;
p r i n t f f " \ n e l area e s % .2 f " , 3 . 1416*n1*n1) ;
break;
d efault: p r i n t f f “O p c i ó n i n c o r r e c t a " ) ;
}
g etch f);
return 0 ;
}
Explicación
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
Ejecución
Figuras g eom étricas
E l i j a s u figura ( 1. t r i a n g u l o
2 . rectángulo
3. cuadrado
4. c i r c u l o ) :
dame l a b a s e y l a a l t u r a 2 3
el area es 3.00
Descripción
In tro d u c ir la s h o ra s tra b a ja d a s.
In tro d u c ir el p u e s to q u e d e se m p e ñ a .
In d ic a r el s a la rio re a l; si el tra b a ja d o r g a n a m á s d e $ 8 ,0 0 0 a la se m a n a re d u c ir
20% d e s u sa la rio .
Variables
Nombre Tipo Uso
op C arácter Puesto.
sal Real Salario t o ta l.
sdes Real Salario descu en to .
h Entero Número d e h o r a s .
Constantes
Nombre Tipo Uso
D Entero P recio hora d i r e c t o r .
G Entero P recio hora g e r e n te .
S Entero P recio hora s u p e r v is o r .
EV Entero P recio hora e j e c u t i v o .
SEC Entero P recio hora s e c r e t a r i a .
(c o n tin ú a )
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
(continuación)
Codificación
# i n c l u d e < s t d i o . h>
tíinclude<conio.h>
tídefine D 600
tídefine G 450
Hdefine S 300
ttdefine EV 150
ttdefine SEC 80
m ain(){
flo at s d e s , sal;
i n t h;
c h a r op ;
clrscr();
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
p r i n t f ( " T u s a l a r i o c o n e l 20 p o r c i e n t o d e d e s c u e n t o e s :
$ %.2 f ", s d e s ) ;
}
else
p r i n t f ( " T u s a l a r i o e s : $ 96 . 2 f " , s a l ) ;
g etch ();
return 0 ;
}
Explicación
E n e s te p ro g ra m a s e s o lic ita n d o s d a to s al u su a rio : la c a n tid a d d e h o ras
tra b a ja d a s y el p u e sto . A c o n tin u a c ió n s e c a lc u la el s a la rio b ru to ; y si é s te es
m a y o r q u e $ 8 ,0 0 0 s e h a rá u n d e s c u e n to d e l 2 0 % . F in a lm e n te s e m u e s tra el
s a la rio neto .
Ejecución
1.
NOMINA
Horas t r a b a j a d a s e n l a s e m a n a : 2
I n d ic a e l p u e s t o que de se m p eñ a s:
D = D irector
G = G erente
S = Supervisor
E = E j e c u t i v o de v e n t a s
T = Secretaria
D
Tu s a l a r i o e s : $ 1 2 0 0 . 0 0
2.
NOMINA
Horas t r a b a j a d a s e n l a s e m a n a : 30
I n d ic a e l p u e s t o que de se m p eñ a s:
D = D irector
G = G erente
S = Supervisor
E = E j e c u t i v o de v e n t a s
T = Secretaria
S
Tu s a l a r i o c o n e l 20 p o r c i e n t o d e d e s c u e n t o e s : $ 7 2 0 0 . 0 0
www.FreeLibros.me
Capítulo 4 Estructuras de control selectivas
Descripción
In tro d u c ir d ía y m e s d e n a c im ie n to .
M o stra r el s ig n o z o d ia c a l q u e le c o rre sp o n d a .
Variables
Nombre Tipo Uso
dia Entero Dia de n a c i m i e n t o .
mes Entero Mes de n a c i m i e n t o .
Codificación
m ain() {
i n t d í a , mes;
c l r s c r ( );
p rin tff "Se m o s t r a r a t u s i g n o z o d i a c a l \ n \ n " );
p rin tff "Cuando n a c i s t e ? (dd/mm) " );
scanf( "%c//%cT, & d i a , &mes ) ;
p rin tf( "\nTu s i g n o z o d i a c a l e s : " );
s w i t c h ( mes ) {
case 1 : i f ( d ía <= 20 ) p r in t f ( "C a p r i c o r n i o " ) ;
e ls e p r in t f f "A c u a r i o " ) ;
b reak;
case 2 : i f ( d í a <= 2 0 ) p r i n t f f "A c u a r i o " ) ;
else p r in tf( "P i s c i s " ) ;
break;
c a s e 3: i f ( d í a <=20 ) p r i n t f f " P is c is " );
else p r in tff "Aries" );
break;
c a s e 4: i f f d í a <= 20 ) p r i n t f f "Aries" ) ;
www.FreeLibros.me
4.4 Selectiva m ú ltip le ( s w it c h - c a s e )
Explicación
(continúa)
www.FreeLibros.me
Capítulo 4 Estructuras d e co n tro l selectivas
(continuación)
Ejecución
Se m o s t r a r a t u s i g n o z o d i a c a l .
Cuando n a c i s t e ? (dd/mm) 5 4
Tu s i g n o z o d i a c a l e s A r i e s
Resum en
www.FreeLibros.me
Evaluación 85
Evaluación
2 . ¿ C u á n ta s o p c io n e s d e re s p u e s ta p u e d e te n e r u n a c o n d ic ió n b o o le a n a ?
4 . ¿E s v á lid o e v a lu a r u n a c o n d ic ió n d e s e le c c ió n y si es fa ls a e v a lu a r o tra
c o n d ic ió n ?
6 . L a in s tru c c ió n d e f a u i t , ¿ e s in d is p e n s a b le e n el s w i t c h l
9 . E stru c tu ra d e c o n tro l q u e , d e sp u é s d e e v a lu a r u n a c o n d ic ió n , si su v a lo r es
v e rd a d e ro re a liz a u n a o m á s a c c io n e s.
a) S e le c tiv a s im p le b) S e le c tiv a d o b le
c ) S e le c tiv a m ú ltip le d) S e le c tiv a d o b le a n id a d a
www.FreeLibros.me
86 Capítulo 4 Estructuras d e co n tro l selectivas
E n e s te ju e g o d e a z a r p a rtic ip a n d o s p e rs o n a s b u s c a n d o u n g a n ad o r. L as re g la s so n
las sig u ie n te s:
Ejercicios propuestos
i.
I*Compra de c a m i s a s * /
#i n c l u d e < s t d i o . h >
#i n c l u d e < c o n i o . h >
m ain()
{
i n t num_camisas;
flo at p r e c , t o t _ c o m p , t o t _ p a g ;
p r i n t f ("CAMISAS P O L O \ n I n g r e s a e l p r e c i o d e l a c a m i s a " ) ;
s c a n f ("*6f”, & p r e c ) ;
p r i n t f ( " I n g r e s a e l n u m e ro d e c a m i s a s a c o m p r a r " ) ;
s c a n f ( " W " ,& n u m _ c a m is a s ) ;
tot_com p=num _cam isas*prec;
if (num_camisas>=3)
else
www.FreeLibros.me
Ejercicios propuestos
}
p rin tf ( " E l t o t a l a p a g a r e s d e $%f", t o t _ p a g ) ;
g etch();
return 0 ;
}
m a in ()
{
flo at co mpra, d e s c , t o t _ p a g ;
p rin tf ("LINDA ALMACEN\nIngresa e l t o t a l d e t u compra
s c a n t ("%f",&compra);
if (compra>1 0 0 0 )
{
desc=compra*. 2 ;
}
e l s e desc=0 ;
tot_pag=com pra-desc ;
p r i n t f ( " T o t a l a p a g a r : \n $ ^ f\ n G R A C I A S POR TU
PREFERENCIA", t o t _ p a g ) ;
getch ();
return 0 ;
}
¡ * C a p ita l con i n t e r e s e s * /
#i n c l u d e < s t d i o . h >
#i n c l u d e < c o n i o . h >
m a in ()
{
flo at p _ i n t , c a p , t o t _ i , c a p f ;
c h a r op ;
p r i n t f ("BANCO N ACI ON AL\ nIn gre sa t u c a p i t a l ");
www.FreeLibros.me
Capítulo 4 Estructuras d e c o n tro l selectivas
1.
/*H o s p i t a l * /
ü in c lu d e < stdio.h>
ü i n c l u d e < c o n io . h>
#de fine e1 25
Udefine e 2 16
#de fine e 3 20
#de fine e 4 32
main()
{
i n t ti p o e n f , edad, d i a s ,c o s t o t ;
p r i n t f ( " HOSPITAL CERCA DEL C I E L O \ n I n d i c a t u
www.FreeLibros.me
Ejercicios propuestos
p r i n t f ( " E l c o s t o d e t u t r a t a m i e n t o y e s t a n c i a e s d e $ %c/" , c o s t o t )
g etch();
return 0 ;
}
/ * L l a n t a s m a rc a X * /
H include < stdio.h>
U in c lu d e <conio.h>
main()
{
n _ ll;
flo at t o t ;
p r i n t f ( " L la n ta s X\n );
s c a n f ("% d",& n_ll);
if (n_ll<5)
{
www.FreeLibros.me
90 Capítulo 4 Estructuras d e c o n tro l selectivas
t o t = n _ l l *300;
p r i n t f ("E l p r e c i o de cada l l a n t a e s de $ 3 0 0 . 0 0 \ n T o t a l a
p a g a r : \ n $ ____ \nGRACIAS POR TU PREFERENCIA" , t o t ) ;
}
if ( ( n_n>= 5)& &( __________
{
tot= n_ll*250;
p r i n t f ("E l p r e c i o de cada l l a n t a e s de $ 2 5 0 . 0 0 \ n T o t a l a
p a g a r : \n$%f\nGRACIAS POR TU P R E F E R E N C I A " , t o t ) ;
}
if ( n _ ll > 10)
{
p r i n t f ("E l p r e c i o de cada l l a n t a e s de $ 2 0 0 . 0 0 \ n T o t a l a
p a g a r : \n$%f\nGRACIAS POR TU P R E F E R E N C I A " , t o t ) ;
}
getchf);
return 0 ;
}
I*H or as e x t r a s * /
#i n c l u d e < s t d i o . h >
ü i n c l u d e <conio.h>
m ain()
{
i n t ht;
fl o a t p p h , t p , h e , p e , p d , p t ;
p r i n t f ("EMPRESA P A T I T 0 \ n I n g r e s a e l pa go p o r h o r a " ) ;
s c a n f ( B96 f " , _____ ) ;
p r i n t f ( " I n g r e s a e l n u m e ro d e h o r a s t r a b a j a d a s " ) ;
s c a n f ( " W , _____ ) ;
if ( ht<=40)
{
tp=ht*pph;
}
www.FreeLibros.me
Ejercicios propuestos 91
he=ht-4Q;
if (he<=8)
{
pe=he*pph*2 ;
}
else
{
pd= 8* pp h* 2;
p t = ( h e - 8 ) *____ *3;
pe=pd+pt;
}
p r i n t f ( " E l t o t a l a p a g a r e n e l s u e l d o e s : \ n $ 9óf" , t p ) ;
getchf);
return 0 ;
}
www.FreeLibros.me
www.FreeLibros.me
Estructuras
de control repetitivas
L a ite ra c ió n es in d e fin id a c u a n d o n o s e c o n o c e d e a n te m a n o el n ú m e ro d e
v eces q u e s e re p e tirá a lg u n a a c c ió n ; p o r e je m p lo , c u a n d o s e p re g u n ta al
www.FreeLibros.me
94 Capítulo 5 Estructuras d e c o n tro l repetitivas
expresión 1;
w h ile (expresión 2 )
{
in stru cció n 1;
e x p r e s i ó n 3;
}
donde:
expresión 1 sie m p re s e rá el v a lo r d e in ic io d e la v a ria b le d e c o n tro l
(a sig n a c ió n ).
expresión 2 es la c o n d ic ió n b o o le a n a .
expresión 3 es la fo rm a e n q u e c a m b ia la v a ria b le d e c o n tro l (a s ig n a c ió n ).
in stru cció n 1 in s tru c c io n e s a e je c u ta r
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
{
in t c;
c l r s c r f );
c=1;
while(c<=10)
{
p rin tff" ",c );
c=c+ 1 ;
www.FreeLibros.me
5.1 Estructura rep etitiva w h i l e
}
getchf);
return 0 ;
}
# i n c l u d e < s t d i o . h>
ttinelude<conio. h>
main()
{
i n t I , S;
c lr s c r ();
1=1; S=0;
while(I<=5)
{
S = S+ I;
I = 1+1;
(c o n tin ú a )
www.FreeLibros.me
Capítulo 5 Estructuras d e c o n tro l repetitivas
^ (c o n tin u a c ió n )
t f i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
{
i n t p,num;
char re sp = 's';
c l r s c r f );
p =i ;
p r i n t f f " Dame un n um e r o " );
s c a n f ( “%€/", &num);
w hile(resp= = 's')
{
p =p*num;
p rin tf(" \n dame o t r o numero ");
scanf("%d",&num);
p rin tff" \n I n g r e s a r o t r o numero s / n ");
s c a n f f U96C" , & r e s p ) ;
(c o n tin ú a )
www.FreeLibros.me
5.1 Estructura rep etitiva w h i l e
}
p r i n t f (" e l t o t a l de l a m u ltip lica ció n e s %c/ " , p ) ;
getchf);
return 0;
}
# i n c l u d e < s t d i o .h>
f t i n c l u d e < c o n i o . h>
mai n( )
{
in t i,n ; c lrs c rf);
p r i n t f ( " D A M E EL NUMERO DE TABLA : " ) ;
scanf("% d",&n);
í= i;
w h ile(i< = 10)
{
p r i n t f ( " \ n %c/*%c/=%c/ " , n , i , n * i ) ;
i ++;
}
getch();
return 0;
}
www.FreeLibros.me
Capítulo 5 Estructuras d e c o n tro l repetitivas
Se d e c la ra n d o s v a ria b le s: la n p a ra in d ic a r el n ú m e ro d e la ta b la q u e s e v a a
e la b o ra r y la ¿ p a ra re a liz a r el c ic lo d e 1 a 10 p a ra la m u ltip lic a c ió n ; n e n to n c e s
g u a rd a el n ú m e ro d e la ta b la . E l c ic lo q u e v a d e 1 a 10 m u e s tra el n ú m e ro n,
el n ú m e ro ¿ y el re s u lta d o d e m u ltip lic a r n*i.
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
mai n( )
{
in t i,n ; c lrs c rf);
p r i n t f ( " D A M E EL NUMERO DE TABLA DE MULTIPLI CAR: ");
s c a n f ( U96 d " , & n ) ;
i=1;
w h i l e ( i < = 10 ) ;
{
p r i n t f ( " \ n 96d*96d=9td ' , n , i , n * i ) ;
i++;
}
getch();
return 0;
}
www.FreeLibros.me
5.1 Estructura rep etitiva w h i l e 99
1)
c= 1 0 ;
w h i l e (c<21)
{
p r i n t f ( ■ %c/ ", c ) ;
c=c+ 2 ;
}
2)
c=10;
w h i l e (c<21)
{
c=c+ 2 ;
p r i n t f ( " %c/ " , c ) ;
}
3)
c=70;
w hile (c<21)
p r i n t f f " %c/ ", c ; ;
c=c+2 ;
Ej e m p l o 5.6 Sumar los números pares y multiplicar los números impares hasta
que la suma sea mayor que 50 y el producto sea mayor que 150
# i n c l u d e < s t d i o . h>
Uinclude<conio.h>
mai n( )
i n t num,suma=0 , p r o d = 1 ;
c lrs c rf);
(c o n tin ú a )
www.FreeLibros.me
100 Capítulo 5 Estructuras d e c o n tro l repetitivas
[continuación)
while(suma<=50 || prod<=150)
{
p r i n t f f " \n \ t DAME EL NUMERO ENTERO: ");
s c a n f ( " * 6 d u,&num);
i f ( n u m 96 2 ==0 )
suma=suma +num;
else
prod=prod*num;
}
p r i n t f f " \ n \ t LA SUMA ES : %c/ " , s u m a ) ;
p r i n t f ( " \ n \ t EL PRODUCTO ES : %c/ u, p r o d ) ;
g etch();
return 0 ;
}
E n e s te e je m p lo s e u sa n d o s v a ria b le s d e c o n tro l q u e s o n d o s a c u m u la d o re s , d a d o
q u e la ite ra c ió n d e p e n d e d e d o s c o n d ic io n e s: q u e sum se a m e n o r o ig u a l q u e 50
y que prod se a m en o r o ig u al q u e 150. P ara u n ir la d o s se u tiliza el o p e ra d o r | (or) q u e
fu n c io n a d e la sig u ie n te fo rm a : e v a lú a y si u n a d e la s c o n d ic io n e s es v e rd a d e ra se
e je c u ta d e n u e v o e l c ic lo , el c ic lo te rm in a c u a n d o a m b a s c o n d ic io n e s s e a n fa lsa s.
E je rc ic io s re s u e lt o s
Descripción
L e e r u n n ú m ero .
www.FreeLibros.me
5.1 Estructura rep etitiva w h i l e
L ee r n ú m e ro s a rb itra rio s.
Variables
Nombre Tipo Uso
num Entero Número d e l q u e s e d e b e n o b t e n e r m ú l t i p l o s .
numC Entero Número a e v a l u a r .
cont Entero Cu en ta l o s m ú l t i p l o s .
Codificación
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
mai n( )
{
i n t num, numC, cont=0;
c lrs c rf);
p r i n t f f " Dame un numero p a r a b u s c a r s us m ú l t i p l o s *);
scanf( &num) ;
while(cont<=4)
{
p r i n t f ( " \n\tDame un n um e r o " );
scanf(&num C) ;
i f ( numC96num==0 )
{
p r i n t f ( U9ed e s m ú l t i p l o " ,numC);
cont++;
}
}
getch();
return 0;
Explicación
S e s o lic ita u n n ú m e ro y s e g u a rd a e n num , q u e s e rv irá p a ra b u s c a r su s m ú ltip lo s .
A c o n tin u a c ió n s e a n a liz a la c o n d ic ió n e n la q u e s e p re g u n ta si c o n t es m e n o r o
ig u al q u e 4 ; c o n t a lm a c e n a la c u e n ta d e l n ú m e ro d e m ú ltip lo s e n c o n tra d o s.
(continúa)
www.FreeLibros.me
102 Capítulo 5 Estructuras d e c o n tro l repetitivas
[continuación)
Ejecución
Dame un numero p a r a b u s c a r s us m ú l t i p l o s
5
7
6
6 es m ú l t i p l o
9
154
154 e s m ú l t i p l o
8
8 es m ú l t i p l o
70
70 e s m ú l t i p l o
expresión 1;
do
{
in stru cció n 1;
e x p r e s i ó n 3;
} w h ile(e xpresión 2);
donde:
expresión 1 es la a s ig n a c ió n d e in ic io .
expresión 3 es la a s ig n a c ió n d e v a ria c ió n .
www.FreeLibros.me
5.2 Estructura rep etitiva d o - w h i l e 103
# i n c l u d e < s t d i o . h>
ttinclude<conio. h>
main()
{
float num,cuenta,sum;
c lr s c r ();
sum=0 ;cuenta= 0 ;
do
( c u e n t a - 1) ) ;
getch();
return 0 ;
}
www.FreeLibros.me
104 Capítulo 5 Estructuras d e c o n tro l repetitivas
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
tidefine p r e c i o 5
mai n( )
{
f l o a t 1;
c h a r R;
e lrse r();
do
{
p r i n t f ( u cuantos l i t r o s s on ");
s c a n f ( "% f" , & 1 ) ;
p r i n t f ( " \ n e l pa go e s de %.2 f " fl* p re c io );
p r i n t f ( ” \n O t r o c a l c u l o s/n ");
scanf('% c",&R);
}while(R==,s ' ) ;
g e t c h f );
return 0;
}
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
www.FreeLibros.me
5.2 Estructura rep etitiva d o - w h i l e 105
i ++;
} w h ile (i< = 10) ;
getchf);
return 0 ;
E je rc ic io s re s u e lto s
Descripción
G e n e ra r u n n ú m e ro a le a to rio .
C o m p a ra rlo s.
M o stra r e l re su lta d o .
Variables
c Entero C o n t a d o r de i t e r a c i o n e s .
(c o n tin ú a )
www.FreeLibros.me
106 Capítulo 5 Estructuras d e c o n tro l repetitivas
(continuación)
Codificación
t t i n c l u d e < s t d i o . h>
tíinclude< conio.h>
# i n c l u d e < s t d l i b . h>
mai n( )
{
in t c= 0 , nu s u a r i o, n u m c o m ; clrs c r();
randomize()
numcom=1 +random( 1 0 0 );
do {
p r i n t f ( " \ n Dame un numero e n t e r o : ");
s c a n f f "%c/", & n u s u a r i o ) ;
if(nusuario>numcom)
p r i n t f ( " \n t u numero e s mayor a l m í o ”) ;
else
p r i n t f ( " \n t u numero e s menor a l m í o ”) ;
c=c+ 1 ;
}
w h i l e ( nusu ari o! =numc om && c < 5 ) ;
if (nusuario==numcom)
p rin tf("\n ¡Fe licid a d e s! L o l o g r a s t e en in te n to s",c);
else
p r i n t f (" M ejor s u e r t e p a r a l a p r ó x im a " ) ;
getch();
return 0 ;
Explicación
www.FreeLibros.me
5.2 Estructura rep etitiva d o - w h i l e
Ejecución
(E je m p lo si s e g e n e ra a le a to ria m e n te el 11).
Dame un numero e n t e r o : 50
t u numero e s mayor a l mió
Dame un numero e n t e r o : 5
t u numero e s menor a l mío
Dame un numero e n t e r o : 21
t u numero e s mayor a l mió
Dame un numero e n t e r o : 10
t u numero e s menor a l mío
Dame un numero e n t e r o : 11
¡ F e l i c i d a d e s ! L o l o g r a s t e en 5 i n t e n t o s
E je rc ic io s re s u e lto s
E je rc ic io 5.3 Leer números desde el teclado y sumar los primeros cinco impares
Descripción
Pfedir u n n ú m ero .
V erificar si es im p a r y su m a rlo .
M o stra r re su lta d o .
Vari abl es
(c o n tin ú a )
www.FreeLibros.me
108 Capítulo 5 Estructuras d e c o n tro l repetitivas
[continuación)
Codificación
/* Sumar c i n c o números i m p a r e s , l e í d o s d e s de e l t e c l a d o . */
t t i n c l u d e < s t d i o . h>
tíinclude< conio.h>
mai n( )
{
in t suma=(d, num, c o n t =0 ;
c l r s c r f );
do{
p r i n t f ( " \n Dame un numero n) ;
s c a n f f "%cT, &num);
i f (nu m% 2 ==1 )
{
suma+=num;
cont++;
}
}while(cont< 5);
p r i n t f ( " \ n \ n \ t L a suma de 5 números i m p a r e s e s %c/ " ,s u m a ) ;
getch();
return 0;
}
Explicación
Ejecución
Dame un numero 2
Dame un numero 5
Dame un numero 3
Dame un numero 1
www.FreeLibros.me
5.3 Estructura rep etitiva f o r 109
Dame un numero 6
Dame un numero 9
8
un numero 4
i
Dame un numero 1
L a suma de 5 números i m p a r e s e s 29
for ( expresión 1; e x p r e s i ó n 2; e x p r e s i ó n 3)
in s tru c c ió n 1
donde:
2 sie m p re te n d rá q u e s e r u n a e x p re s ió n b o o le a n a . A l ig u a l q u e e n la s a n te rio re s
e stru c tu ra s re p e titiv a s, la s p a rte s d e la e s tru c tu ra for so n sim ila re s.
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
mai n( )
{
in t i;
c l r s c r ( );
(continúa)
www.FreeLibros.me
110 Capítulo 5 Estructuras d e c o n tro l repetitivas
(continuación)
f o r ( i =1 5 ; i > 0 ; i - - )
p r in tf ( "W \ i ) ;
g etch f);
return 0;
# i n c l u d e < s t d i o . h>
#include<conio.h>
mai n( )
{
char l e t r a ;
clrscr();
fo r(le tra = 'Z ';le tra > = 'A ';le tra --)
p r i n t f ( "%c\t " , l e t r a ) ;
getchf);
return 0;
}
S e d e c la ra la v a ria b le l e t r a , d e tip o c a rá c te r, q u e in ic ia c o n el v a lo r d e Z.
L a c o n d ic ió n in d ic a q u e s e rá v á lid a m ie n tra s l e t r a s e a u n v a lo r m a y o r o ig u al
q u e A , y s e d is m in u y e d e u n o e n uno.
www.FreeLibros.me
5.3 Estructura rep etitiva f o r
{
in t i,n ; c lrs c rf);
p r i n t f f " D A M E EL NUMERO DE TABLA DE MULTIPLI CAR : ");
scanf("% d",&n);
f o r ( i = 1 ;i < = 1 0 ; i++)
p r i n t f f * \n %c/*%c/=%c/ B, n , i , n * i ) ;
g e t c h f );
return 0;
}
R e su m ie n d o , la d e fin ic ió n d e w h i i e , d o - w h i le y f o r p u e d e s e r e q u iv a le n te en
c ie rto s c a so s. A c o n tin u a c ió n s e c o m p a ra n la s tres.
www.FreeLibros.me
112 Capítulo 5 Estructuras d e c o n tro l repetitivas
1.
f o r ( e x p r e s io n 1 ; e x p r e s io n 2 ; e x p r e s io n 3 )
in s t r u c c ió n 1 ;
2 .
e x p r e s i o n l;
w h ile ( e x p r e s io n 2 )
{
in s t r u c c ió n 1 ;
e x p r e s io n 3 ;
}
3.
e x p r e s i o n l;
do {
in s t r u c c ió n 1 ;
e x p r e s io n 3 ;
} w h ile ( e x p r e s io n 2 ) ;
E je rc ic io s re s u e lt o s
Descripción
V a ria b le s
N o m b re T ip o Uso
I E n tero G u ard a e l c o n t a d o r .
www.FreeLibros.me
5.3 Estructura rep etitiva f o r 113
Codificación
U m a r e o de l a p a n ta lla c on a s t e r i s c o s
#i n e l u d e <stdio.h >
itinel u d e <c o ni o. h >
ttinclude <dos.h>
mai n( )
{
in t i;
clrscrO ;
{
g o t o x y ( i , 1) ;
p r i n t f ( u* u) ;
}
for ( i = 1 ; i <=24; i++)
{
gotoxy( 8 0 , i ) i
p r i n t f (***);
del ay( 20);
}
for ( i = 8 0 ; í >=1 ; i - - )
{
g o t o x y ( i ,24);
p r i n t f (***);
}
for ( i =24; i>=1 ; i — )
{
gotoxy( 1 , i ) ;
p r i n t f ( u* u) ;
d e la y(20) ;
}
g e t c h f );
return 0;
(c o n tin ú a )
www.FreeLibros.me
114 Capítulo 5 Estructuras d e c o n tro l repetitivas
(continuación)
Explicación
E n e s te c a s o n o se le e n v a lo re s d e sd e el te c la d o y a q u e s e c o n o c e n las
c o o rd e n a d a s d e l m arg e n : e l e x tre m o su p e rio r iz q u ie rd o tie n e la s c o o rd e n a d a s
1,1 y el in fe rio r d e re c h o 8 0 ,2 4 ; a d e m á s , el s ím b o lo a d ib u ja r y a s e d e fin ió y
es u n a s te ris c o . L o s c ic lo s v a n d e 1 a 8 0 p a ra la p a rte su p e rio r e in fe rio r, y de
1 a 2 4 p a ra lo s lad o s.
Ejecución
* * * * * * * * * * * * * * * * *
* *
* *
* *
* * * * * * * * * * * * * * *
N o t a : L a im a g e n s e m o s tra rá se g ú n la d im e n s ió n y re s o lu c ió n d e l m o n ito r.
Resum en
E n e s te c a p ítu lo s e re v is a ro n la s o p c io n e s d e l le n g u a je C p a ra e je c u ta r v a ria s
v eces u n a in s tru c c ió n . L a ite ra c ió n c o n s is te e n re p e tir u n a o v a ria s
in stru c c io n e s, y es c o n tro la d a c o n u n a e x p re s ió n q u e u s u a lm e n te es u n a
c o n d ic ió n b o o le a n a .
C u a n d o s e c o n o c e d e a n te m a n o c u á n ta s v e c e s s e re a liz a rá la re p e tic ió n s e le
lla m a ite ra c ió n d e fin id a ; c u a n d o n o s e c o n o c e el n ú m e ro d e re p e tic io n e s se
le lla m a ite ra c ió n in d e fin id a .
www.FreeLibros.me
Ejercicios propuestos 115
Evaluación
1 . ¿ Q u é es u n c ic lo o re p e tic ió n ?
2 . ¿ Q u é es u n c ic lo d e fin id o ?
3 . ¿ Q u é es u n c ic lo in d e fin id o ?
5 . ¿ P a ra q u é s e u s a u n c o n ta d o r?
6 . ¿ P a ra q u é s e u s a u n a c u m u la d o r?
7 . ¿ C u á n d o s e h a c e u n c ic lo in fin ito ?
8 . ¿ E n q u é c a s o s e re c o m ie n d a u s a r w h i le y c u a n d o d o - w h i i e l
9 . ¿ Q u é su c e d e si al finalizar el e n c a b e z a d o d e l f o r se co lo c a ; (p u n to y c o m a )?
* * * *
* * * *
* * * *
Ejercicios propuestos
www.FreeLibros.me
116 Capítulo 5 Estructuras d e c o n tro l repetitivas
4. Im p rim ir lo s c o lo re s u sa n d o lo s n ú m e ro s d e l 1 al 1 0 0 c o n la fu n c ió n
t e x t c o l o r f ).
9. C a lc u la r la s u m a d e u n a s e rie d e n ú m e ro s le íd o s p o r te c la d o .
# in c lu d e < s t d io .h>
ttin clu d e< co n io . h>
www.FreeLibros.me
Ejercicios propuestos
m ain()
{
i n t _________ , ____
su m a= 0;
c lr s c r f);
f o r ( c o n t a d o r =1; ;contador++)
suma=suma+contador;
p r i n t f ( " L a suma e s : ", sum a);
getch();
r e t u r n 0;
2 . E le v a r X a u n a p o te n c ia Y.
# i n c l u d e < s t d i o . h>
# in c lu d e < c o n io . h>
m ain()
{
in t c o n t,x ,y ,re s;
c lrs c rf);
res= ;
p r i n t f ( " \ n E s c r i b a e l No. q u e s e e l e v a r a a u n a p o t e n c i a :
s c a n f ( u*6 d " , );
p r i n t f ( " \ n A q u e p o t e n c i a e l e v a r a e l numero % c/: ",x);
scan f(* % d ",& y);
forf ; c o n t < = y ; c o n t ++)
res=res*x;
p r i n t f ( " \ n E l %c/ e l e v a d o a l a p o t e n c i a e s : % d " ,______
getchf) ;
return 0;
3 . C a lc u la r e l fa c to ria l d e u n n ú m ero .
# i n c l u d e < s t d i o . h>
U in clu d e< co n io .h >
m ainf)
{
i n t cont, x;
www.FreeLibros.me
118 Capítulo 5 Estructuras d e c o n tro l repetitivas
lo n g ;
c l r s e r f );
s c a n f ( "_______" , & x ) ;
Fact =1;
f o r ( c o n t = 1 ; c o n t < = x ; _________)
f a c t =cont*f a c t ;
getch();
return 0;
4 . Im p rim ir lo s n ú m e ro s d e l 100 al 0.
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
m a i n ()
{
o;
c lrs c rf);
c=100;
w h i l e (________;
{
p r i n t f f "*6d " , c ) ;
}
g e tc h f);
return 0;
# i n c l u d e < s t d i o . h>
m a in f)
{
in t c,sum a;
c—
www.FreeLibros.me
Ejercicios propuestos 119
c l r s c r ( );
while(c<=100)
{
-suma+c;
=c+1;
}
p r in t f ("la suma de l o s p r i m e r o s c i e n números e s %c/ " ,suma) ;
getch();
return 0;
}
# i n c l u d e < s t d i o . h>
U i n c l u d e < c o n i o . h>
mai n( )
{
c,son;
c lrs c rf);
son= ;
w h i l e ( c < 1M )
{
p r i n t f ( " 96d“ , c ) ;
son=son+ 1 ;
}
p r i n t f (" \ n E l numero de i m p a r e s e s %c/ ", son);
getch();
return 0;
}
7 . Im p rim ir lo s n ú m e ro s d e l 1 al 125. C a lc u la r la s u m a d e to d o s lo s n ú m e ro s
p a re s p o r u n la d o y, p o r o tro , la d e to d o s lo s im p a re s.
t t i n c l u d e < s t d i o . h>
Uinclude<conio.h>
mai n( )
www.FreeLibros.me
120 Capítulo 5 Estructuras d e c o n tro l repetitivas
{
in t i, sumapar, s umai mp ar;
c lrs c rf);
s umapar=____ ;
s umai mp ar=______;
1 =1 ;
do
{
if(i*2= = 0)
s umapar =sumapar+____ ;
else
sumaimpar=sumaimpar+i ;
i=i+1;
}while(i<=125) ;
p r i n t f (" \nLa suma de l o s números e s %c/ ", s u m a p a r ) ;
1.
t t i n c l u d e < s t d i o . h>
üinclude<conio.h>
main()
{
float d,n;
in t c=0 ;
c l r s c r f );
p r i n t f ( " N u m e r o de d í g i t o s de una c i f r a \ n \ n " ) ;
g o t o x y ( 1 0 , 2 ) ; p r i n t f ( " N ú m e r o s de d í g i t o s de una c i f r a " ) ;
g o t o x y ( 1 0 , 4 ) ; p r i n t f ( " D a m e una c i f r a : ");
s c a n f ( U96 f " , & n ) ;
do
{
d=nl10;
n= n/ 1 0 ;
www.FreeLibros.me
Ejercicios propuestos
c++;
}w hile(d>=1) ;
g o t o x y ( 1 Q , 6 ) ; p r i n t f ( " E l numero de c i f r a s e s * t d " , c ) ;
getch();
r e t u r n 0;
}
m a in ( )
{
i n t num;
clrscr() ;
p r i n t f ( " m o s t r a r e l cu a d ra d o de un numero l e i d o d e l t e c l a d o .
p r i n t f ( " s e d e t i e n e con - 1 \ n \ n " ) ;
do
{
p r i n t f (" \ndame un numero " ) ;
s c a n f ( U96d",&num) ;
p r i n t f (" %c/ ", num*num) ;
}w hile(num !=-1) ;
getch();
r e t u r n 0;
}
www.FreeLibros.me
122 Capítulo 5 Estructuras d e c o n tro l repetitivas
for(m=0;m<=59;m++)
f or(s=1;s<=59;s++)
{
g o t o x y f 15,10);
p r i n t f ( u %c/:%c/:%c/ " , h , m , s ) ;
d e l a y ( 1000 ) ;
sound(15);
}
getch();
nosound( );
return 0;
}
4.
Hiñel u d e <stdio.h >
main()
in t c , n , r , x = 20 ;
c l r s c r f );
p r i n t f ( " C o n v e r t i r un numero de b a s e 10 a base 2 \ n \ n " );
p r i n t f ( ”dame un numero " ) ;
s c a n t ( " %c/" , & n ) ;
do
{
c=n/ 2 ;
r=n%2;
g o t o x y ( x , 5);
p r i n t f ( "%c/", r ) ;
n-c;
}while (c>= 1 ) ;
getch();
return 0;
}
www.FreeLibros.me
Ejercicios propuestos 123
5.
ttinclude <stdio.h >
ttinclude <c o ni o. h >
m a i n ()
{
char y = 'b ',x ;
{
x=y+3;
p rin tf C * c \ n m, x ) ;
y=y+l;
}
getch();
return 0;
}
6.
itinel u d e <stdio.h >
ttinclude <c o ni o. h >
m a i n ()
{
i n t y= 1 , x ;
w h ile (y<=1 0 )
{
x=y*y;
p rin tf ( m* d \ n m, x ) ;
y=y+2 ;
}
getch();
return 0;
}
7.
www.FreeLibros.me
124 Capítulo 5 Estructuras d e c o n tro l repetitivas
m a i n ()
{
i n t num=1 0 ;
w h ile (num!= 1 )
{
if ( num%2==0)
{
num=num/2 ;
}
e l s e num=num*3+1;
p rin tf ( "96 d \ n " , num);
}
getch();
return 0;
}
www.FreeLibros.me
O .P ÍT t J f .G ( ?
Datos de tipo
estructurado.
Arreglos
www.FreeLibros.me
126 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
P b r e je m p lo , si s e re q u ie re u n a lis ta p a ra a n o ta r la s c a lific a c io n e s d e c in c o
a lu m n o s, e l a rre g lo s e rá d e tip o e n te ro , p o d ría lla m a rs e L is C a lif (q u e es u n
n o m b re a rb itra rio c o m o el d e c u a lq u ie r v a ria b le ), y s e rá d e ta m a ñ o 5. S u
d e c la ra c ió n q u e d a ría así:
i n t L i s C a l i f [5];
El a c c e s o a u n e le m e n to s e lle v a a c a b o m e d ia n te el n o m b re d e l a rre g lo y un
ín d ic e q u e s e ñ a la u n a p o s ic ió n e sp e c ífic a e n el a rre g lo .
E n C , la e n u m e ra c ió n d e e le m e n to s s e in ic ia e n 0, d e ta l fo rm a q u e el ín d ic e en
L is C a lif te n d rá v a lo re s d e 0 a 4 y s e p o d ría v e r así:
L is C a lif 0 1 2 3 4
0 1 2 3 4
O b s e rv e q u e el n ú m e ro d e la c e ld a es in d e p e n d ie n te d e l c o n te n id o . E n el ín d ic e es
p o sib le u tiliz a r v a ria b le s, c o n sta n te s o e x p re sio n e s a ritm é tic a s , s ie m p re q u e se a n
de tip o e n te ro , p a ra h a c e r re fe re n c ia a la p o s ic ió n d e u n e le m e n to co m o :
R e c u e rd e q u e el re s u lta d o d e la o p e ra c ió n q u e h a c e re fe re n c ia al ín d ic e d e b e se r
s ie m p re u n n ú m e ro e n te ro . E n el sig u ie n te e je m p lo s e m u e s tra u n a rre g lo d e tip o
c a rá c te r al q u e s e le a s ig n a n lo s v a lo re s d e a , b y c.
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales
ftoat p e s o [ 4 ] ;
s c a n f ( " 96 f " , & p e s o [ 1 ] ) ;
5.35 peso
s c a n f ("*60" , & L i s C a l i f [ Q ] ) ;
L is C a lif[ij= 0 ;
I n t L i s C a l i f [ J ={10, 5, 8, 9, 4};
www.FreeLibros.me
128 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
for ( i =0;i<=4;i++)
p r i n t f f " %c/\ L is C a liffi]);
# i n c l u d e < s t d i o . h>
Udefine TAMAN10 7
mai n( )
{
f l o a t e s t a t u r a [ T A M A N 10];
in t i;
f o r ( i = 0 ; i < = 6 ;i++)
{
p r i n t f ( " Dame l a e s t a t u r a %c/ ", i+1);
s c a n f ( "%cT, & e s t a t u r a [ i ] ) ;
}
p rin tf(u num estatura \ n n) ;
f o r ( i =0; i <TAMAN10; i++)
p rin tff" %c/ %f \ n " , i +1 , e s t a t u r a [ i ] ) ;
E je rc ic io s re s u e lt o s
Descripción
In ic ia liz a r a rre g lo .
Im p rim ir lo s n ú m e ro s d e la s p o sic io n e s in d ic a d a s.
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales 129
V a ria b le s
N o m b re Tipo U so
vec V ecto r r e a l A lm a cen a l o s n ú m ero s.
Codificación
# i n c l u d e < s t d i o . h>
H in clu de< conio .h>
mai n( )
{
in t v e c [ 5]={3 ,5 , 7 , 9 , 2 } ;
c l r s c r f );
p r i n t f ( " \n p o s i c i ó n 0 %c/ " , v e c [ 0 ] ) ;
p r i n t f ( " \n p o s i c i ó n 3 %d *, v e c [ 3 ] ) ;
p r i n t f ( " \n p o s i c i ó n 4 %c/ " , v e c [ 4 ] ) ;
getch();
return 0 ;
Ejecución
p o s ic ió n 0 3
p o s ic ió n 3 9
p o s ic ió n 4 2
Explicación
Descripción
Pfcdir el n ú m e ro a b uscar.
R e a liz a r la b ú sq u e d a e n to d o el a rre g lo .
www.FreeLibros.me
130 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
Vari abl es
Nombre Tipo Us o
vec Vector r e a l Al macena números p a r a b u s c a r e n t r e
e llo s.
i Entero V a r i a b l e de c o n t r o l p a r a l a estructura
re p e titiv a .
n Entero Número a b u s c a r .
b Entero (booleano) A l m a ce na e l v a l o r de l a bandera.
Codificación
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
{
in t v e c [ 5 ] = { 3 , 5 , 7 , 9 , 2 } , i , n, b= 0, p;
c l r s c r f );
p rin tf("T e cle a el valor a buscar ") ;
s c a n f ( " 96 Í “ , & n ) ;
for(i= 0;i< 5;i+ + )
i f ( v e c [ i ] ==n)
{
b=1;
p =¿;
}
if(b = = i)
p r i n t f ( ” \ n E l numero M s i s e e n c u e n t r a en l a p o s i c i ó n
% i u, n , p ) ;
e lse
p r i n t f ( ” \ n E l numero M no s e e n c u e n t r a " , n ) ;
getchf);
return 0;
}
Ejecución
Teclea e l valor a buscar 9
E l numero 9 s i s e e n c u e n t r a en l a po sició n 3
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales
Explicación
C u a n d o la c o n d ic ió n es v e rd a d e ra , b to m a el v a lo r d e 1, p to m a el v a lo r d e la
p o sic ió n . A l s a lir d e l c ic lo s e re v is a si b c o n tie n e 1; si es c ie rto , s e im p rim e q u e sí
se e n c o n tró y e n q u é p o sic ió n .
Descripción
D efin ir la lista .
V erificar la p o sic ió n .
M o s tra r la su m a.
Vari abl es
Nombre Tipo Us o
Codificación
# i n c l u d e < s t d i o . h>
iti n e l u d e< c o n i o . h >
üdefine C 10
m a i n ()
{
i n t l i s t a [ C ] = { 1 , 1 2 , 3 , 1 2 , 0 , 4 , 5 , 7,9 ,2};
in t suma=0 , i = 0 ;
c l r s c r f );
p r i n t f ( " \ n E l e m e n t o s en p o s i c i o n e s p a r e s \ n *);\
do{
(continúa)
www.FreeLibros.me
132 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
i f ( i% 2 = 0 )
{
p r i n t f ( " \ n *d \ l i s t a [ i j ) ;
sum a+ = lista[i];
}
i++;
} w h i le ( i < C ) ;
p r i n t f ( " \ n l a suma de e s o s números e s *d ", s u m a ) ;
getch();
return 0;
Explicación
U n a v e z d e fin id a la lista , s e in ic ia liz a n e n c e ro las v a ria b le s q u e c o n te n d rá n la
su m a y la q u e re c o rre n lo s v e c to re s suma e i , re s p e c tiv a m e n te . S e v e rific a si el
v a lo r d e ¿ es par, y d e s e r a s í s e m u e s tra y s e su m a . A c o n tin u a c ió n , in d e p e n d ie n te
del v a lo r d e l ín d ic e , é ste s e in c re m e n ta h a sta re c o rre r to d o el a rre g lo . A l final se
m u e stra la s u m a d e lo s n ú m e ro s d e la p o s ic ió n par.
Ejecución
Elementos en p o s i c i o n e s p a r e s
1
0
3
5
9
l a suma de e s o s números e s 18
Eje r c ic io 6.4 Leer elem entos, imprimir, sum ar y contar los elem entos de una
posición par; si el número contenido es impar indicar la posición
Descripción
E v a lu a r si la p o s ic ió n es par.
Si es v e rd a d e ro , e v a lu a r si el n ú m e ro es im p ar.
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales
Variables
Nombre Tipo Us o
Codificación
/*Leer ele m e ntos, i m p r i m i r , sumar y c o n t a r l o s e l e m e n t o s de
la p o s ic ió n par, s i e l numero e s i m p a r e i n d i c a r l a po sició n .
*1
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
ttdefine C 10
i n t main()
{
in t lis ta C [C ];
in t suma=0 ,c = 0 , i = 0 , n;
c lrs c rO ;
p r i n t f ( " \n C u a n t o s e l e m e n t o s s e l e e r á n (no mas de 1 0 ) \ t ");
s c a n f ( H%du, & n ) ;
f o r ( i = 0 ; i < n; i + + )
s c a n f ( 'W ,& lista C [i]);
c lrs c rO ;
p r i n t f ( ” \tposicion \tnum ero\n");
i= 0;
do {
if(i%2==0)
i f ( l i s t a c i i 7 / 2 * 2 / = l i s t a C [ i ])
{
p rin tf ("\n\t\t ■, i , l i s t a C [ i ] ) ;
sum a+ = listaC[i];
c++;
}
i ++;
}while(i< n) ;
(c o n tin ú a )
www.FreeLibros.me
134 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(c o n tin u a c ió n )
p r i n t f ( n\n so n %d y l a suma de e s o s números e s %d " , c , s u m a ) ;
getch();
return 0 ;
Explicación
Se p re g u n ta la c a n tid a d d e n ú m e ro s a a lm a c e n a r e n n e n el a rre g lo . A
c o n tin u a c ió n s e le e n y s e a lm a c e n a n e n l i s t a c . S e in ic ia liz a d e n u e v o ¿ p a ra
re c o rre r el a rre g lo y v e rifica r: p rim e ro si la p o s ic ió n es par, si es v e rd a d e ro se
e v alú a si el n ú m e ro es im p a r (u n a fo rm a d e v e rific a r si el n ú m e ro es im p a r es
d iv id ir e n tre d o s y lu e g o m u ltip lic a rlo p o r 2: si es ig u a l al o rig in a l es par, d e lo
c o n tra rio es im p a r). S i es v e rd a d e ro s e im p rim e la p o s ic ió n e n q u e s e e n c u e n tra y
el n ú m e ro ; a d e m á s s e h a c e la s u m a d e l m is m o y s e c u en ta.
F in a lm e n te m u e s tra la c a n tid a d d e n ú m e ro s im p a re s e n p o s ic ió n p a r y la s u m a de
ellos.
Ejecución
Cuant os e l e m e n t o s s e l e e r á n (no mas de 10) 5
Posición numero
0 1
4 5
Descripción
S o lic ita r la c a n tid a d d e n ú m e ro s a a lm a c e n a r.
L e e r n ú m e ro s.
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales
R e a liz a r la b ú sq u e d a.
B o rra r e l n ú m e ro m o v ie n d o lo s e le m e n to s.
A g re g a r el n ú m e ro .
Variabl es
Nombre Tipo Us o
Codificación
/* En un a r r e g l o b u s c a r un e l e m e n t o , b o r r a r elemento, agregar. */
H i n d ú de < s t d i o . h >
H include < stdlib.h>
ftinclude < c o n i o 2 .h>
Hdefine MAX 700
Hdefine p p r i n t f
Hdefine s s c a n f
mai n( )
{
i n t lista[M A X ];
i n t n ,buscar,b o rra r,i, b ;
do
{
p( "Numero de e l e m e n t o s a a l m a c e n a r *);
sC * d ',& n );
}whil e(n<0\\n>MAX) ;
for(i=Q;i< n;i+ +)
(c o n tin ú a )
www.FreeLibros.me
136 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
{
p("elemento ");
s ( u* d " , & l i s t a [ i ] ) ;
}
c l r s c r f );
P ( ' \ n \ n •);
fo r(i= 0 ;i< n ;i+ + )
p ( ■ %d \ l i s t a l i j ) ;
/* b ú s q ue d a */
i=0;b=0;
p ( " \ n numero a b u s c a r n) ;
s ( " %d u, & b u s c a r ) ;
while(i<n&&b==0 )
{
if(b u s c a r= = lis ta [ij)
b = l;
e lse
Í++;
}
if(b==1)
p ( " e l e m e n t o e n c o n t r a d o en %c/ \ n " , i ) ;
e lse
p ( ne l e m e n t o no e n c o n t r a d o \ n " ) ;
IIborrar, se busca e l elemento y se e s c r i b e e l ú l t i m o e l e m e n t o en su
lugar, dism inuir n
/* b ú s q ue d a d e l número a b o r r a r */
i=0;b=0;
p ( " \ n numero a b o r r a r n) ;
s (" %d u, & b u s c a r ) ;
while(i<n&&b==0 )
{
if(b u s c a r= = lis ta [ij)
b=1;
e lse
i ++;
}
if(b==1)
{
l i s t a [ i ] = l i s t a [ n - 1 ];
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales
}
p ( u \ n \ n a) ;
f o r ( i = 0;i<n;i++)
p(' ‘ , l i s t a [ i ] );
/*insertar al final */
p ( " \ n numer o a i n s e r t a r ");
s ( U96d ” , & b u s c a r ) ;
lista [n ]= b u sca r;
n++;
p ( n\ n \ n * ) ;
P C *d \ l i s t a [ i ] ) ;
return 0;
Explicación
P re g u n ta c u á n to s e le m e n to s s e rá n a lm a c e n a d o s e n el a rre g lo y s e a lm a c e n a el
v alo r e n la v a ria b le n , se le e n y a lm a c e n a n e n l i s t a . A c o n tin u a c ió n se
p re g u n ta el n ú m e ro a b u s c a r y s e a lm a c e n a e n la v a ria b le buscar. S e r e a liz a un
c ic lo p a ra c o m p a ra r c o n c a d a u n o d e lo s e le m e n to s d e l a rre g lo ; e n c a s o d e se r
ig u ales s e c a m b ia el v a lo r d e la b a n d e ra b a 1, y s e s a le d e l c ic lo ; al s a lir d e l c ic lo
se p re g u n ta si la b a n d e ra b es 1. S e im p rim e elemento e n c o n tr a d o y si n o , lo
c o n tra rio .
y s e a lm a c e n a el e le m e n to e n la p o s ic ió n ¿ .A l te rm in a r la s o p e ra c io n e s se
m u e stra el a rre g lo c o n lo s e le m e n to s.
Ejecución
Numero de e l e m e n t o s a a l m a c e n a r 6
elemento 3
elemento 1
[continua)
www.FreeLibros.me
138 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
elemento 6
elemento 7
elemento 4
elemento 2
3 1 6 7 4 2
numero a b u s c a r 7
e l e me nt o e n c o n t r a d o en 3
numero a b o r r a r 6
3 17 4 2
numero a i n s e r t a r 58
31 7 4 2 58
*/
ttinclude <stdio.h >
ttinclude < stdlib.h>
ttinclude < c o n i o 2 .h>
ttdefine MAX 700
ttdefine p p r i n t f
ttdefine s s c a n f
i n t n=-1 ;
void l l e n a r ( i n t 1 [])
{
in t i;
do
{
p ( ”numero de e l e m e n t o s a a l m a c e n a r ");
s(''% d\&n);
www.FreeLibros.me
6.2 Vectores o arreglos u nid im en sion ales 139
f o r ( i = 0 ; i <n; i ++)
{
p ( "elem ento ");
s C * r,* l[i]);
}
}
vo id m o s t r a r ( in t 1 [J)
{
in t i;
pr i nt f C %d',Hi]);
}
v o id b u s c a r ( i n t b, in t 1 [])
{
in t ¿ = 0 , b a n d e r a=0;
bandera=1;
else
i++;
}
if(bandera= = 1)
else
v o i d a g r e g a r f i n t num, in t 1 [ ])
{
l[n]=num;
n++;
vo id b o r r a r f i n t p o s , i n t 1 [])
{
in t i;
www.FreeLibros.me
140 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
for (i=pos;i<n;i++)
l[i]= l[i+ 1 ];
i n t menu()
{
in t opc;
clrscr();
p r i n t f ( u menu\n 1. l l e n a \ n 2. m u e s t r a \ n 3. b u s c a \ n 4. a g r e g a r \ n 5.
elim ina \n 6. s a lir\n \t ");
s ( ' *6d \ & o p c ) ;
r e t u r n opc;
{
in t lis ta [M A X ];
i n t buscado,b;
in t o p c , num,pos;
c l r s c r f );
do{
opc=menu();
switch(opc)
{
case 1:11 l l e n a r e l arreg lo
lle n a r(lis ta );
break;
case 2 : m o s t r a r ( l i s t a ) ;
break;
c a s e 3: / /b ús que da
p ( u \n numero a b u s c a r ") ;
s ( V96d" , & b u s c a d o ) ;
buscar(buscado, l i s t a ) ;
break;
c a s e 4: / /agregar
p rin tff" numero a a g r e g a r a l a lis ta ");
s("*6d",&num);
a g r e g a r (n u m , l i s t a ) ;
www.FreeLibros.me
6.3 M atrices o arreglos bid im ensionales
break;
case 5 : ¡ ¡ b o r r a r
p ( n p o sició n a e lim in ar ");
s (" %d u, & p o s ) ;
b o rra r(p o s,lista );
break;
c a s e 6: p r i n t f ( " adiós ") ;
break;
}
getch();
} w h i l e ( o p c ! =6);
in t m a tr iz l[3][2];
E n u n a rre g lo d e n ú m e ro s e n te ro s d e tre s re n g lo n e s y d o s c o lu m n a s (3 X 2 ) se
p o d ría n v e r a s í lo s ín d ic es:
0,0 0,1
1,0 1,1
2,0 2,1
C u a n d o s e a lu d e a la m a triz c o m p le ta , c o m o d u ra n te la a s ig n a c ió n o la im p re s ió n
d e v a lo re s, e n g e n e ra l s e h a c e d e m a n e ra s im ila r a c u a n d o s e a lu d e a u n a rre g lo
www.FreeLibros.me
142 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
u n id im e n s io n a l, c u id a n d o s o la m e n te q u e s e h a g a re fe re n c ia a lo s ín d ic e s de
re n g ló n y c o lu m n a . L a in ic ia liz a c ió n s e re a liz a d e la s ig u ie n te m an e ra:
i n t m a t r i z [ 3 ] [ 2 ] = {1, 2 , 3 , 4 , 5 , 6 } ; o
i n t m atriz[3][2]= {
{1, 2 }
{3,4}
{5,6}
};
A la a c c ió n d e m a n ip u la r to d o s lo s e le m e n to s d e u n a m a triz s e le p u e d e lla m a r
rec o rrid o , y é s te s e lle v a a c a b o u tiliz a n d o d o s c ic lo s for a n id a d o s, y a q u e es
n e c e sa rio re c o rre r la s c o lu m n a s p a ra c a d a u n a d e la s filas. P o r e je m p lo , p a ra
a sig n a r a to d o s los e le m e n to s d e la m a triz u n v a lo r d e sd e el tec la d o :
f o r ( i = 0 ; i < = 2 ;i++)
f o r ( j =0 ; j <=1; j ++)
sca n f("% d ",& m a triz [i][j]);
p r i n t f ( " % d ", m a t r i z [ i ] [ j J ) ;
P a ra im p rim ir to d o s lo s v a lo re s d e l a rre g lo e n el m is m o o rd e n e n q u e s e le y e ro n
los d a to s, se g ú n el e je m p lo a n te rio r:
f o r ( i = 0 ; i < = 2 ;i++)
f o r ( j =0 ; j <=1 ;j ++)
p r i n t f ( U96d", m a t r i z [ i J [ j ] ) ;
www.FreeLibros.me
6.3 M atrices o arreglos bid im ensionales 143
f o r ( j =0 ; j <=2 ; j ++)
f o r f i = 0 ;i<= 1 ;i++)
p r i n t f f U96d\t° , m a t r i z [ j ] [ i j ) ;
f o r ( i = 0 ; i <=1 ;i++)
f o r ( j =0 ; j <=2 ; j ++)
p r i n t f f "%cP , m a t r i z [ j ] [ i ] ) ;
f o r ( i = 0 ;i<= 2 ;i++)
f o r f j =0 ; j <=1 ; j ++)
printf('*d\t',m atriz[i][j]);
y p a ra im p rim ir lo s v a lo re s c o lu m n a p o r c o lu m n a p u e d e s e r así:
f o r ( i = 0 ; i <=2 ; i ++)
f o r f j =0 ; j <=1 ; j ++)
p r i n t f f n96d”, m a t r i z [ j J [ i ] ) ;
o ta m b ié n
f o r f j =0 ; j <=2 ; j ++)
f o r ( i = 0 ;i<= 1 ;i++)
printff,&matriz[i][jj);
E je rc ic io s re s u e lto s
Descripción
In d ic a r la fu n c ió n d e n ú m e ro s a le a to rio s.
A lm a c e n a r lo s n ú m e ro s g e n e ra d o s.
M o stra r la m a triz .
(c o n tin ú a )
www.FreeLibros.me
144 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
Variabl es
Nombre Tipo Us o
J Entero R e c o r r e c ol um nas .
Codificación
main()
{
in t tab la [3 ][2 ], i,j;
c l r s c r ( );
random ize();
f o r ( i = 0 ; i <3; i++)
f o r ( j =0 ; j <2 ; j ++)
t a b l a [ i ] [ j ]=1 +r and om( 2 5 ) ;
f o r ( i = 0 ; i <3; i ++)
{
f o r ( j = 0 ; j < 2 ;j++)
p r i n t f f " \ t%d", t a b l a [ i ) [ j ] ) ;
p r i n t f f " \ n " );
}
getchf );
return 0 ;
}
Explicación
Se d e c la ra la m a triz in d ic a n d o el n ú m e ro d e re n g lo n e s y d e c o lu m n a s;
a c o n tin u a c ió n c o n lo s d o s c ic lo s s e re c o rre n la s p o sic io n e s d e la m is m a
a lm a c e n a n d o u n n ú m e ro a le a to rio . C o m o s e e x p lic ó a n te s, random g e n e ra
n ú m e ro s e n tre 0 y 2 4 y s e le s u m a u n o p a ra q u e s e a n e n tre 1 y 2 5 . A l fin a liz a r
se m u e s tra la m a triz .
www.FreeLibros.me
6.3 M atrices o arreglos bid im ensionales 145
Ejecución
13
4
13
24
Descripción
D efin ir el ta m a ñ o d e la se g u n d a m a triz .
V erificar q u e s e a n d e la m is m a d im e n sió n .
L le n a r la m a triz , p rim e ro u n a y lu e g o la se g u n d a.
S u m a r la s d o s m a tric e s.
M o stra r el re s u lta d o d e la su m a.
Variables
Nombre Tipo Us o
I, j Entero í n d i c e s p a r a r e n g l ó n y columna.
c o l _ 1 , r en _ 1 , c o l _ 2 , ren _ 2 Entero D i m e n s i ó n de l a s m a t r i c e s .
C on s t a n t e s
Nombre Uso
Renglón Número de r e n g l o n e s .
Codificación
/* Suma de m a t r i c e s */
U i n c l u d e < s t d i o . h>
(c o n tin ú a )
www.FreeLibros.me
146 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
# i n c l u d e < c o n i o . h>
ttdefine col umna 4
ttdefine r e n g l ó n 4
mai n( )
{
i n t m1 [ r e n g l o n ] [ c o l u m n a ] ,m2 [ r e n g l o n ] [ c o l u m n a ] , m 3 [ r e n g l o n ] [ c o l u m n a ] ;
i n t i , j , c o l _ 1, r en _ 1, c o l _ 2 , r e n _ 2 , p o s X , p o s Y , p X _ 1 , pX_2;
i n t band_1 ;
clrs c r();
do
{
p r i n t f ( "\n\t M atriz 1, dame e l numero de r e n g l o n e s y c o l u m n a s " ) ;
s c a n f ( u%d ^ d ” ,&ren _ 1 , & c o l _ 1 ) ;
p r i n t f f ” \ n \ t M a t r i z 2, dame e l numero de r e n g l o n e s y c o l u m n a s ");
s canf (" *ed %du, & r e n _ 2 , & c o l _ 2 ) ;
i f ( r e n _ 1 ==ren_ 2 & & co l _ 1 ==col_ 2 )
b a n d _ 1 =Q;
else
{
b a n d _ 1 =1 ;
p r i n t f ( " n ú m e r o s de d a t o s i n v á l i d o s ”) ;
}
} v á iile (b a n d _ 1);
c l r s c r ( );
pX_1=Q;
te x tco lo r(5 );
g o t o x y ( 6 , 7);
/* l l e n a r l a p r i m e r a m a t r i z */
c p rin tf("m a triz 1 ") ;
posX=5;posY=9;
f o r ( i = 0 ; i < r e n _ 1 ;i++)
{
f o r ( j =0 ; j < c o l _ 1 ; j ++)
{
gotoxy(posX,posY);
p r i n t f (" ");
s c a n f ( ”*6d" ,&m1 [ i ] [ j ] ) ;
posX+=2;
www.FreeLibros.me
6.3 M atrices o arreglos bid im ensionales 147
}
posX=5;
posY+=2;
}
pX_2=35;
g o to xy(4 0 ,7 );
/* l l e n a r l a s e g u n d a m a t r i z */
c p r i n t f ( " m a t r i z 2 ");
p o s X =40; p o s Y =9;
f o r ( i =0 ; i <ren_ 2 ; i ++)
{
f o r ( j =0 ; j < c o l _ 2 ; j ++)
{
gotoxy(posX ,posY ) ;
p rin tfC ");
s c a n f ( " % d " , &m2 [i ] [ j J ) ;
posX+=2;
}
posX=40;
posY+=2;
}
/* su m ar */
f o r ( i =0 ; i <ren_ 1 ; i ++)
f o r ( j =0 ; j <col_ 1 ;j++)
m 3 [ i ] [ j ] = m 1 [ i] (j J+m2[i] [ j J;
p os X= 30;p osY =3 0 ;
gotoxy( 28, 28);
textco lo r(5 );
/ * m o s t r a r suma */
c p r i n t f (" R e s u l t a d o " ) ;
f o r ( i = 0 ; i < r e n _ 1 ; i ++)
{
f o r ( j =0 ; j < c o l _ 1;j++)
{
g o t o x y (p o s X , p o s Y) ;
p rin tf("% d \t",m 3 [i][j]);
posX+=3;
}
p o s X =30;
(c o n tin ú a )
www.FreeLibros.me
148 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
p o s Y +=3;
}
getch();
return 0;
}
Explicación
Ejecución
M atriz 1, dame e l numero de r e n g l o n e s y columnas 2 3
M atriz 2, dame e l numero de r e n g l o n e s y columnas 2 3
m atriz 1 m atriz 2
1 2 3 1 1 1
4 5 6 1 1 1
Resultado
2 3 4
5 6 7
v o i d e s c r i b e ( i n t m1 [ r e n g l ó n ] [ c o l u m n a ] , i n t r e n _ 1 , i n t c o l _ 1)
{
in t i,j,p o sX ,p o sY ;
posX=3Q; po sY =3 0;
www.FreeLibros.me
6.3 M atrices o arreglos bid im ensionales 149
{
f o r ( j =0 ;j < c o l _ 1 ;j ++)
{
g o t o x y ( p o s X , p o s Y) ;
p rin tf('% d \ f,m H i][j]);
posX+=3;
}
posX=30;
p o s Y +=3;
}
}
v o i d l l e n a r f i n t m [ r e n g l ó n ] [ c o l u m n a ] , i n t r e n , i n t c o l , i n t pX)
{
i n t i , j f posX,posY;
p o s X =5+pX; p o s Y = 9 ;
f o r ( i = 0 ;i<ren;i++)
{
f o r ( j =0; j < c o l ; j ++)
{
g o t o x y (p o s X ,p o s Y ) ;
p rin tff" ");
s c a n f ( B96d", & m [ í ] [ j ] ) ;
posX+=2;
}
posX=5+pX;
p o s Y +=2 ;
}
}
v o i d s u m a r ( i n t m1 [ r e n g l ó n ] [ c o l u m n a ] , i n t m2 [ r e n g l ó n ] [ c o l u m n a ] , i n t
m3[renglón] [colum na], i n t ren _ 1 ,in t col_ 1 )
{
in t i, j ;
f o r ( i =0 ; i <ren_ 1 ;i++)
www.FreeLibros.me
Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
f o r ( j =0 ; j <col_ 1 ; j ++)
m 3 [i][j]= m 1 [i][j]m 2 [i][jl;
e s c r i b e ( m 3 , r e n _ 1, c o l _ 1);
mai n( )
{
char opr;
i n t m1 [ r e r i g í o n ] [ c o lu mn aJ ,m 2 [ r e n g l o n ] [ c o l u m n a ] , m 3 [ r e n g l o n ] [ c o l u m n a ]
i n t i , j , c o l _ 1 , r en _ 1, c o l _ 2 , r e n _ 2 , p o s X , p o s Y , p X _ 1 , p X _ 2 ;
i n t band_1 ;
c lrs c rf);
do
{
p r i n t f f ”\n\t M atriz 1, dame e l numero de r e n g l o n e s y c o l u m n a s ")
s c a n f ( u%d %d " , & r e n _ 1 , & c o l _ 1) ;
p r i n t f f " \n\t M a triz 2, dame e l numero de r e n g l o n e s c ol umnas ") ;
s c a n f ( U96d %c/" , & r e n _ 2 , & c o l _ 2 ) ;
i f ( r e n _ 1 — ren_ 2 & & c o l _ 1 ==col_ 2 )
b a n d _ 1 =Q;
else
{
b a n d _ 1 =1 ;
p r i n t f f " n ú m e r o s de d a t o s i n v á l i d o s ”) ;
}
}w hile(band_ 1) ;
c lrs c rf);
pX_1=0;
t e x t c o lo r ( 5 );
g o t o x y ( 6 , 7);
cp rin tf("m a triz 1 ”) ;
11e n a r ( m 1 , r en _ 1, c o l _ 1, p X _ 1);
pX_2=35;
g o t o x y (40, 7);
cp rin tf("m a triz 2 ”) ;
l l e n a r (m2,ren_2, c o l _ 2 , p X _ 2 ) ;
sumar (m1 ,m2,m3, ren _ 1 , c o l _ 1 );
g e t c h f );
return 0 ;
www.FreeLibros.me
6.4 A r r e g l o d e c aractere s y c a d e n a d e caracteres
G e n e ra lm e n te s e d ic e q u e es a rre g lo d e c a ra c te re s c u a n d o lo q u e s e a lm a c e n ó so n
c a ra c te re s y n o e x is te el c a rá c te r n u lo al fin al ( / 0 ). C u a n d o el a rre g lo d e c a ra c te re s
te rm in a c o n el c a rá c te r n u lo s e lla m a c a d e n a d e c a ra c te re s . A m b o s fu n c io n a n d e
fo rm a s im ila r a lo s a rre g lo s n u m é ric o s , p a rtie n d o d e la b a s e d e q u e c a d a c a rá c te r
o c u p a n o rm a lm e n te u n by te.
0 1 2 3
char s a l u d o [ 4 ] ;
y la a s ig n a c ió n será:
saludo [0] = 'H ';
saludo [ 1 J = 'O ';
saludo [2 ] =
saludo [3] = 'A ';
D e sd e el te c la d o s e d e fin e así:
p r i n t f ( "%c", s a l u d o [ 0 ] ) ;
O tra fo rm a d e le e r y m o s tra r c a ra c te re s es m e d ia n te la s fu n c io n e s q u e a
c o n tin u a c ió n s e d e sc rib e n ; el e je m p lo 6.3 m u e s tra u n a a p lic a c ió n d e la s m ism a s.
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
(c o n tin ú a )
www.FreeLibros.me
152 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
m in ( ) (continuación)
{
in t C uent aCar=0;
c h a r Cadena;
w h ile (Cadena!=EOF)
{
Cadena=getchar();
i f ( C ad en a — ' a ')
++CuentaCar;
}
p r i n t f ( " \ n A p a r e c i e r o n %c/ veces l a l e t r a 'a ' ",CuentaCar);
getchf);
return 0 ;
t t i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
# i n c l u d e ( c t y p e .h )
mai n( )
ii
c h a r Cadena;
p r i n t f ( ” \n E s c r i b a s u nombre: ');
w h ile (Cadena!=EOF)
{ Cadena=getchar( ) ;
p u t c h a r ( t o u p p e r ( Cadena));
i
/
getchf);
return 0 ;
www.FreeLibros.me
6.4 A rre g lo d e caracteres y caden a d e caracteres 153
El p ro g ra m a le e rá u n n o m b re , c a rá c te r p o r c a rá c te r h a s ta q u e o p rim a C trl+ Z .
Ya q u e s e u só la fu n c ió n getchar, c o n v ie rte a m a y ú s c u la c a d a c a rá c te r
c o n fo rm e s e le e y al fin al lo im p rim e .
Funciones g e t c h ( ) y g e t c h e ( ) E stas fu n c io n e s n o s e in c lu y e n e n el e s tá n d a r de
C , p e ro s e in c o rp o ra n e n la m a y o ría d e lo s c o m p ila d o re s.
Cadena de caracteres
L as c ad e n as d e c a ra c te re s su e le n te n e r u n c a rá c te r al final q u e in d ic a la te rm in a c ió n
d e la c a d e n a (se c o n o c e c o m o c a rá c te r n u lo , y e n c ó d ig o A S C II es 0 ). E n C , la
lo n g itu d d e u n a rre g lo d e c a d e n a d e c a rá c te r s e d e fin e p o r el ta m a ñ o d e la c a d e n a
m ás u n o , p a ra a lm a c e n a r el c a rá c te r n u lo . P a ra le e r u n a c a d e n a se p u e d e u tiliz a r
scanf, a n o ta n d o s ó lo el n o m b re d e l a rreg lo , y p a ra m o stra rlo s e u tiliz a p rin tf.
char A [ 5 ] ;
s c a n f ( U96SU, & A ) ;
H 0 L A '\0 '
0 1 2 3 4
p rin tf A);
P a ra el c a s o e n q u e s e d e s e e le e r u n a c a d e n a d e c a ra c te re s c o m o G abriela
M árquez, si s e u tiliz a la fu n c ió n s e a lm a c e n a rá s ó lo la p a la b ra G a b rie la ,
scanf
ya q u e e s ta in s tru c c ió n d e ja d e le e r al e n c o n tra r u n e s p a c io e n b la n c o . P a ra eso s
caso s es p re fe rib le u tiliz a r la fu n c ió n g e t s ( ) .
L a función g e t s ( ) p e rm ite le e r u n a c a d e n a , in c lu y e n d o e sp a c io s e n b la n c o ,
te rm in a n d o c o n el c a rá c te r d e fin d e lín e a (e n te r). L a función p u t s ( ) im p rim e u n a
c a d e n a d e c a ra c te re s , in c lu y e n d o el c a rá c te r d e fin d e lín e a , a s í q u e el a p u n ta d o r
se ñ ala el in ic io d e l s ig u ie n te re n g ló n .
www.FreeLibros.me
154 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
mai n( )
{
c h a r Mi Nombre[ 5 0 ] ;
p rin tf("\n E s c r i b a su nombre: ");
gets(MiNombre);
p r i n t f ( "\n\n Hola, mi nombre e s " ) ;
puts ( MiNombre) ;
g e t c h f );
return 0;
}
char s t r c p y ( c h a r c a d e n a l, c h a r cadena2 ) ;
L a fu n c ió n to m a el c o n te n id o d e c a d e na 2 y lo a lm a c e n a e n c a d e n a i . C a de n ai debe
se r d e ta m a ñ o ig u a l o m a y o r a c a d e n a 2 , y a q u e a lm a c e n a c o m p le ta m e n te h a s ta el
c a rá c te r d e te rm in a c ió n d e c a de n a 2 .
www.FreeLibros.me
6.4 A rre g lo d e caracteres y caden a d e caracteres 155
c h a r s t r n c a t ( c h a r c a d a ñ a l , c h a r c a d e n a 2 , i n t n)
T o m a el n ú m e ro d e c a ra c te re s d e fin id o e n n, de c a d e na 2 y lo d e p o s ita e n la
cadañal, a p a rtir d e l c a rá c te r d e fin d e cadañal, so b re sc rib ie n d o el c a rá c te r
d e fin d e cadañal.
i n t s t rc m p ( c o n s t c h a r c a d a ñ a l , c o n s t char cadena2 )
T o m a el c o n te n id o d e cadañal y lo c o m p a ra c o n el c o n te n id o d e cadena2 .
Función s t r l e n f ) D e v u e lv e el n ú m e ro d e c a ra c te re s d e u n a c a d e n a , h a s ta el
q u e a n te c e d e al c a rá c te r n u lo , d e te rm in a c ió n d e c ad en a.
E je rc ic io s re s u e lto s
Descripción
L e e r c a d a u n o d e lo s c a ra c te re s.
M o stra r la c a d e n a d e c a ra c te re s leíd a.
Vari abl es
(c o n tin ú a )
www.FreeLibros.me
156 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(c o n tin u a c ió n )
Codificación
/ * C a p t u r a de u n a c a d e n a d e c a r a c t e r e s c o n s c a n f */
U i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
v o id m a in ()
in t i= 0 ;
clrscrf);
p r i n t f f " \nIntroduzca una cadena de caracteres ( n o mas de 18) \n*) ;
do
{
s c a n f ( "%c" , &car);
i f ( c a r ! = ' \ n ')
{
c a d [i]= ca r;
¿++;
}
getchf);
Explicación
Se le e u n c a rá c te r, s e a lm a c e n a e n el v e c to r cad, e n la p o s ic ió n 0 se
in c re m e n ta el ín d ic e , s e e v a lú a la c o n d ic ió n y si el c a rá c te r le íd o es d ife re n te
d e fin d e n u e v a lín e a , s e re p ite el c ic lo . A l fin a liz a r el c ic lo s e c o lo c a el fin de
c a d e n a y a c o n tin u a c ió n s e m u e s tra la c a d e n a d e c a ra c te re s leíd a.
Ejecución
Introduzca una cadena de caracteres ( n o mas d e 18)
Ga b y
www.FreeLibros.me
6.4 A rre g lo d e caracteres y caden a d e caracteres 157
Descripción
M o s tra r c a d a u n o d e lo s re su lta d o s.
Variables
Codificación
#include<stdio.h>
# i n c l u d e < c o n i o . h>
# i n c l u d e < s t r i n g . h>
tídefine MAX 20
mai n( )
{
c h a r c ad[ MAX] , c a r ;
i n t i=0, j ;
clrs c rf);
p r i n t f f " \ n I n t r o d u z c a una cadena de c a r a c t e r e s (no mas de 18) \n");
do
{
s c a n f ( " %c" , & c a r ) ;
i f ( c a r l = x\n ')
{
cad[i]= car;
i++;
}
} w h ile ( c a r ! = '\ n ');
c a d [ i ] = ' \ 0 ' ; / ¡ C o l o c a n d o fin de cadena
(continúa)
www.FreeLibros.me
158 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
(continuación)
c l r s c r f );
/* i m p r i m i r A S C I I */
p r i n t f ( " \ n L a cadena c a p t u r a d a e s : %s", cad);
p r i n t f ( " \n A S C II c o r r e s p o n d i e n t e \ n " );
f o r ( j = 0 ; j <i ; j ++)
p r i n t f ( u\ t % d * , c a d [ j ] ) ;
p r i n t f ( ” \n L a l o n g i t u d de l a c ad e n a , c o n t a d a con i e s : %cT, i ) ;
p r i n t f ( " \n L a l o n g i t u d de l a c a d e na medi da co n s t r l e n e s : %c/",
s t r le n ( c a d ) );
p r i n t f ("\ n La lo n g it u d de l a r r e g l o c a d e s : %c/", s iz e o f (cad)) ;
p r i n t f ( ” \n L a d i r e c c i ó n donde s e e n c u e n t r a l a c a d e na c a p t u r a d a e s :
%d",&cad);
getch();
Explicación
Ejecución
I n t r o d u z c a una cadena de c a r a c t e r e s (no mas de 18)
gaby marquez
L a c a d e na c a p t u r a d a es
gaby marquez
103 97 98 121 32 109 97 114 113 117 101
122
L a l o n g i t u d de l a c adena, c o n t a d a c on i es: 12
n L a l o n g i t u d de l a c a d e na medi da c on s t r l e n es: 12
La l o n g i t u d d e l a r r e g l o c a d e s 20
La d i r e c c i ó n de l a cadena c a p t u r a d a e s : 2293584
www.FreeLibros.me
6.4 A rre g lo d e caracteres y caden a d e caracteres 159
Descripción
L e e r n o m b re.
L ee r le tra a co n tar.
M o stra r re su lta d o .
Variabl es
i Entero Recorre e l a r r e g l o de c a r a c t e r e s .
Codificación
/* M u e s t r a menú p a r a c a p t u r a de nombre y c u e n t a l e t r a s */
mai n( )
{
in t to ta l,i;
c h a r nombre[ 4 0 ] , l e t r a ;
c lrs c r();
p r i n t f f " \nDame e l n o m b r e \ n " ) ;
no mb re[ 0 ] = ' \ 0 ' ;
g e t s (nombre);
fflush(stdin) ;
p r i n t f ( ” \n Cua l l e t r a s e va a c o n t a r \ n " ) ;
s c a n f f "%c", & l e t r a ) ;
total= 0 ;
f o r ( i =0 ; i < s t r l e n ( n o m b r e ) ; i ++)
{
i f (letra==nom bre[i))
total++;
(c o n tin ú a )
www.FreeLibros.me
160 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
[continuación)
}
prin tf("\n La le tr a - %c - s e e n c o n t r ó %¿ v e c e s en e l nombre:
96 s \ n " , l e t r a , t o t a l , n o m b r e ) ;
getch();
return 0;
Explicación
Se s o lic ita u n n o m b re y a c o n tin u a c ió n s e lim p ia la e n tra d a e stá n d a r; la c a d e n a
es a lm a c e n a d a e n la v a ria b le nombre , d e sp u és s e le e e n le tra el c a rá c te r a c o n ta r; la
v aria b le total llev ará la su m a d e las o casio n e s q u e s e en cu e n tre . E n el c u e rp o del
c ic lo s e e n c u e n tra la in s tru c c ió n s trie n , q u e d e v u e lv e el n ú m e ro d e c a ra c te re s
leíd o s. A l final s e m u e s tra el c a rá c te r y el n ú m e ro d e o c u rre n c ia s, a s í c o m o
el n o m b re . E s im p o rta n te m e n c io n a r q u e s e c o n sid e ra n d ife re n te s la s le tra s
m a y ú sc u la s y la s m in ú s c u la s .
Ejecución
Dame e l nombre
g a b r i e l a marquez
Cual l e t r a s e va a c o n t a r
a
La l e t r a - a - s e e n c o n t r ó 3 v e c e s en e l nombre: g a b r i e l a marquez
Descripción
L ee r el c arác ter.
E v a lu a r si es n ú m ero .
Si n o es n ú m e ro , e v a lu a r si es le tra .
Si es le tra , e v a lu a r si es m a y ú sc u la .
Variabl es
Nombre Tipo Us o
www.FreeLibros.me
6.4 A r r e g l o d e c aractere s y c a d e n a d e caracteres
Codificación
/*I d e n t i f i c a s i un c a r á c t e r e s una l e t r a del a l f a b e t o o un d í g i t o */
mai n( )
{
char car;
p r i n t f ( " \ n C a p t u r e un c a r a c t e r \ n " ) ;
s c a n f ( " %c" , & c a r ) ;
i f (is d ig it(c a r))
p r i n t f ( " \ n E l c a r á c t e r c a p t u r a d o e s un d i g i t o \ n " ) ;
else {
i f (isa lp h a (ca r))
p r i n t f ( " \ n E l c a r á c t e r c a p t u r a d o e s una l e t r a del a lfa b e t o " ) ;
i f (isu ppe r(car))
p r i n t f (" y es m a y u s c u la \n ");
e lse
p r i n t f (" y es m i n u s c u l a \ n " );
}
getchf);
return 0;
Explicación
Ejecución
C a p t u r e un c a r á c t e r
S
E l c a r á c t e r c a p t u r a d o e s una l e t r a d e l a l f a b e t o y es mayúscula
www.FreeLibros.me
162 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
Resum en
P a ra te n e r a c c e s o a u n e le m e n to s e u tiliz a u n ín d ic e , q u e in d ic a la p o s ic ió n del
a rre g lo a c o n su lta r, ta m b ié n s e u s a p a ra a s ig n a r v a lo re s.
E n la b ib lio te c a s t r i n g . h s e e n c u e n tra n fu n c io n e s p a ra la m a n ip u la c ió n
d e c a d e n a s d e c a ra c te re s , c o m o u n ir d o s c a d e n a s d e c a ra c te re s , c o m p a ra r dos
c a d e n a s o c o p ia r u n a c a d e n a s o b re o tra.
Evaluación
I. Conteste las siguientes preguntas.
1. ¿ Q u é es u n a rre g lo ?
3 . ¿ C o n q u é n ú m e ro in ic ia la n u m e ra c ió n d e u n a rre g lo ?
7 . ¿ C ó m o s e e s c rib e p a ra a s ig n a r u n v a lo r e n u n a rre g lo ?
www.FreeLibros.me
Ejercicios p ro p u e s to s 163
8 . ¿E s p o s ib le q u e el a rre g lo te n g a u n a , d o s o m á s d im e n sio n e s ?
10. ¿E s p o s ib le c o m p a ra r d o s c a d e n a s d e c a ra c te re s y d e c ir c u á l tie n e m a y o r
lo n g itu d ?
11. ¿ C ó m o s e o rd e n a n lo s c a ra c te re s ?
E s c rib a u n p ro g ra m a q u e a lm a c e n e u n a lis ta d e c in c o n o m b re s , d ig a cu ál
n o m b re es el m a y o r y c u án to s c a ra c te re s tie n e.
Ejercicios propuestos
1. L ee r e im p rim ir el n o m b re c o m p le to d e u n a lu m n o , c o n su c a rre ra
y c ó d ig o .
4. C o n ta r el n ú m e ro d e v o c a le s q u e a p a re c e n e n u n a c a d e n a d e c a ra c te re s.
7. A lm a c e n a r e n tre s a rre g lo s p a ra le lo s in fo rm a c ió n d e p ro v e e d o re s:
e n u n o el n o m b re d e l p ro v e e d o r; e n o tro , la c iu d a d e n q u e tra b a ja ,
y e n el te rc e ro el n ú m e ro d e a rtíc u lo s q u e v e n d ió . R e a liz a r la s sig u ie n te s
o p e ra c io n e s: m o s tra r u n p ro v e e d o r p o r a rtíc u lo , b o rra r u n p ro v e e d o r,
in s e rta r u n n u e v o p ro v ee d o r.
8 . L ee r lo s e le m e n to s d e u n a rre g lo d e 3 x 6 y m o s tra r lo s e le m e n to s d e c a d a
re n g ló n e n u n a c o lu m n a .
www.FreeLibros.me
164 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
9. L e e r u n a fe c h a , p e d ir u n n ú m e ro d e d ía s q u e s e s u m a a e s a fe c h a , m o s tra r
la fe c h a final.
11. O rd e n a r c in c o c a d e n a s d e tex to .
{
i n t A[MAX] , B[ MAX], u n i d o s [ M A X ] f l A , l B , l C , i , j , k ;
/* l l e n a r l o s arreg los */
p ( " \ n c u a n t o s e l e m e n t o s en e l arreg lo A ");
s('% d ',& lA );
f o r ( i =0 ; i <1 A ; i ++)
s C * d ',& A [iJ);
p ( " \ n c u a n t o s e l e m e n t o s en e l a r r e g l o B ") ;
s ( ____________________ ) ;
f o r ( i =0; i < l B ; i + + )
s C % d ”, & B [ i ] ) ;
/* comprobar l o n g i t u d de a r r e g l o s */
1C=1A+1B;
í f ( ______ ;
{
p(" d e ma s i ad o s e l e m e n t o s " ) ;
e x it ( 0);
}
I* i n s e r t a r */
i = 0 ; j =0; k=0;
w h i l e f i < l A & & j <1B)
{
if(A [i]< B [j¡)
{
un i d o s [___ ] =A[___ J ;
www.FreeLibros.me
Ejercicios p ro p u e s to s 165
i - M-;
}
else
{ u n id o s[k j= B [j];
j+ + ;
>
k++;
}
if(i= = lA )
w h i l e f j <1B)
{
u n i d o s [ k ] = B [ j ];
j ++;
k ++;
}
else
w h ile (i< lA )
{
u n i d o s [ k ] = A [ i ];
i ++;
k ++;
}
/* m o s tra r r e s u l t a d o */
s y s t e m ( uP A U S E " ) ;
return 0;
1 .
H i n d ú de < stdio.h>
H include < stdlib.h>
{
in t i;
p r i n t f ( ” \ n " );
www.FreeLibros.me
166 Capítulo 6 Datos d e t ip o estructurado. A rre g lo s
f o r f i = 0 ;i<cant;i++)
p r i n t f f U96C \ t B, t i t u l o [ i ] ) ;
p r i n t f f " \ n ”) ;
}
i n t main()
{
i n t n;
c h a r f r a s e [ 2 0 ];
p r i n t f f " \nEscriba e l titu lo de un l i b r o \ n u) ;
getsffrase);
p r i n t f f " \nEscriba l a c a n t i d a d de c a r a c t e r e s a i m p r i m i r de esa
fra s e \ n " );
s c a n f ( " t e n, & n ) ;
i m p r i m e N c a r a d e r e s (n , f r a s e ) ;
getchf);
return 0 ;
www.FreeLibros.me
O .F ÍT tJ Í.G /
Datos de tipo
estructurado
7.1 Estructura
stru c t id entificador_estructura
{
Tipo_dato identificador_cam po1;
Tipo_ dato id entificador_cam po2;
www.FreeLibros.me
168 Capítulo 7 D atos d e t ip o estructurado
};
D onde
identif¡cador_ e s t r u c t u r a es el n o m b re d e la e stru c tu ra ; e n el c u e rp o d e l m is m o
(d e n tro d e las lla v e s) s e e n c u e n tra n lo s c a m p o s q u e c o n te n d rá n la e s tru c tu ra , c a d a
u n o c o n s u re s p e c tiv o tip o d e d a to . S e m u e s tra u n e je m p lo a c o n tin u a c ió n :
s t r u c t agenda
{
char nombre[30];
i n t edad;
};
s t r u c t agenda alumno, p r o f e s o r ;
i n t a;
char b , c ;
s t r u c t agenda
{
char nombre[ 30];
i n t edad;
}alumno, p r o f e s o r ;
E n d o n d e s e h a c e re fe re n c ia al id e n tific a d o r d e la v a ria b le , se g u id o d e l o p e ra d o r
p u n to (.) q u e es el o p e ra d o r d e m ie m b ro s d e e stru c tu ra . O b ie n , si s e d e s e a
in g re sa r lo s d a to s d e sd e el te c la d o :
www.FreeLibros.me
7.1 Estructura 169
s c a n f ( "%s", & a l u m n o . n o m b r e ) ;
s c a n f ( "% i" , & a l u m n o . e d a d ) ;
p a ra im p rim ir lo s d a to s leíd o s:
p r i n t f f "%s", a l u m n o . n o m b r e ) ;
p r i n t f f "%2 ' , a l u m n o . e d a d ) ;
mai n( )
{
s t r u c t agenda
{
c h a r no mb re[ 3 0 ] ;
in t edad;
}alumno, p r o f e s o r ;
c l r s c r ( );
/* in ic ia liz a r */
a l u m n o . no mb re[ 0 ] = ' 0 ';
alumno.edad=0 ;
pro fesor.n om bre[0]= '0 ';
p r o f e s o r . edad= 0 ;
/*asignación */
p rin tf(" dame e l nombre d e l alumno " ) ;
s c a n f f "%s", &al umno.nombre[ 0 ] ) ;
p rin tf(" di me l a e d ad " ) ;
s c a n f f "%d", & a l u m n o . e d a d ) ;
p rin tff" dame e l nombre d e l p r o f e s o r ") ;
s c a n f f " % s \ & p r o f e s o r .nombre);
p r i n t f f " dime l a e d ad " ) ;
(continúa)
www.FreeLibros.me
170 Capítulo 7 D atos d e t ip o estructurado
(continuación)
s c a n f ( " 96 d " , & p r o f e s o r .e d a d ) ;
/* im p r im ir */
c lr s c r f);
p r i n t f f " \n n o m b re \t \t e d a d \n " ) ;
p r i n t f f " % s\ t % d \ n " , alu m n o . n o m b re ,a lu m n o . e d a d ) ;
p r i n t f f " %s\ , p r o f e s o r .n o m bre, p r o f e s o r . e d a d ) ;
getch();
retu rn 0 ;
}
t t in c lu d e < s t d i o . h >
H iñ e lu d e < c o n io .h >
s t r u c t agenda
{
c h a r n om bre[ 3 0 ] ;
flo at e s t a t u r a ;
};
m a in ( )
{
s t r u c t agenda alu m n o ;
c lr s c r f );
/* i n i c i a l i z a r */
alu m n o . n om bre[ 0 ) = ' 0 ' ;
alu m n o . e s t a t u r a = 0 ;
/* a s ig n a c ió n */
www.FreeLibros.me
7.1 Estructura
/* i m p r i m i r */
c l r s c r ( );
p r i n t f f " \ n n o m b r e \ t \ t \ n " );
p r i n t f f " %s \ t96. 2 f \ n ‘' , alumno, no mb re, a lu m n o . e s t a t u r a ) ;
g e t c h f );
return 0 ;
mainf)
{
struct
{
c h a r no mb re[ 3 0 ] ;
in t c a l i f i c a c i ó n [3 ] ;
}alumno[MAX];
c l r s c r f );
in t i,j,n ;
/* i n i c i a l i z a r */
(c o n tin ú a )
www.FreeLibros.me
172 Capítulo 7 D atos d e t ip o estructurado
[continuación)
/* a g r e g a r e l e m e n t o s */
i= 0 ;
p r i n t f ( u \n c u a n t o s e l e m e n t o s s e i n s e r t a r a n \t");
scanf(*%d",&n);
while(i<n)
{
p rin tff" \ndame e l nombre %c/ " , i + 1) ;
s c a n f ( "%s" , & a l u m n o [ i ] . no mb re [ 0 ] ) ;
for (j=0;j<3;j++)
{
p rin tf(" dame l a c a l i f i c a c i ó n %c/ " , j + 1 ) ;
s c a n f ( ,>96du, & a l u m n o [ i ] . c a l i f i c a c i ó n [ j ] ) ;
}
i ++;
}
/* i m p r i m i r */
p r i n t f f ■\ n \ t n o m b r e \ t \ t c a l i f i c a c i ó n 1 \t c a l i f i c a c i o n
2 \ t c a l i f i c a c i o n 3 \ n \ n " );
f o r ( i = 0 ; i < n; i + + )
{
p rin tff"\t %s " , alumno [ i ] . n o m b r e ) ;
f o r f j =0; j <3;j ++)
{
p r i n t f f " \ t 96l 0 d " , alumno [ i ]. c a l i f i c a c i ó n [ j ] ) ;
}
p r i n t f ( " \ n " );
}
getchf);
return 0 ;
www.FreeLibros.me
7.1 Estructura 173
El a c c e s o a la v a ria b le s e lle v a a c a b o c o lo c a n d o el n o m b re d e la m is m a , la
p o sic ió n y a c o n tin u a c ió n el n o m b re d e l c a m p o d e la e s tru c tu ra a usar.
Estructuras anidadas
s t r u c t nombre_com
{
char nombre[30];
char a p e l l i d o p a t [ 1 5 ] ;
char a p e l l i d o m a t [ 1 5 ] ;
};
s t r u c t agenda
{
s t r u c t nombre_com nombrec;
in t c a l i f i c a c i ó n [3] ;
float e s t a t u r a ;
} alumno [ MAX] ;
www.FreeLibros.me
174 Capítulo 7 D atos d e t ip o estructurado
o b ie n , si s e d e s e a in g re s a r lo s d a to s p o r te c la d o :
s c a n f ( "%s", & a l u m n o [ 0 ] . n o m b r e c . n o m b r e ) ;
s c a n f ( "%s", & a l u m n o [ 0 ] . nombrec. a p e l l i d o p a t ) ;
s e a n f ( U96 s " , & a l u m n o [ 0 ] . n o m b r e c . a p e l l i d o m a t ) ;
s c a n f f "%¿" , & a l u m n o [ 0 ] . e d a d ) ;
s c a n f ( U96f " , & a l u m n o [ 0 ] . e s t a t u r a ) ;
p a ra im p rim ir lo s d a to s leíd o s:
p r i n t f f "%s", a lu m n o [ 0 ] . n o mb r e _ c . n o m b r e ) ;
p rin tf , a l u m n o [ 0 ] . n o mb r e _ c . a p e l l i d o p a t ) ;
p r i n t f f 11%s", a lu m n o [ 0 ] . n o mb r e _ c . a p e l l i d o m a t ) ;
p r i n t f ( "%¿", a lu m n o [ 0 ] . e d a d ) ;
p rin tf( 2 f " , a lu m n o [ 0 ] . e s t a t u r a ) ;
mai n( )
{
in t j;
s t r u c t nombre_com
{
c h a r no mb re[ 3 0 ] ;
c h a r a p e l l i d o p a t [15];
c h a r a p e l l i d o m a t [15];
};
s t r u c t agenda
www.FreeLibros.me
7.1 Estructura 175
s t r u c t nombre_com nombrec;
in t c a l i f i c a c i ó n [3];
float e s t a t u r a ;
}alumno;
/* i n i c i a l i z a r */
a l u m n o . n o m b r e c . n omb re[ 0 ]= ' \ 0 ' ;
a l u m n o . n o m b r e c . a p e l l i d o p a t [ 0 / = ' \ 0 ';
a l u m n o . n o m b r e c . a p e l l i d o m a t [ 0 ] = ' \ 0 ';
for (j=*;j<3;j++)
alum no. c a l i f i c a c i ó n [j 7 =0 ;
a l u m n o . e s t at u r a= ( d;
/* a g r e g a r un e l e m e n t o */
p r i n t f ( u \ndame e l nombre ") ;
s c a n f ( " % s \ &alumno.nombrec.nombre);
p r i n t f f " \n a p e llid o paterno ");
s c a n f ( "%s", & a l u m n o . n o m b r e c . a p e l l i d o p a t ) ;
p rin tff" \ n a p e l l i d o materno ");
s c a n f ( " 96s",&alumno. nombrec . a p e l l i d o m a t ) ;
for (j=0;j<3;j++)
{
p rin tf(" dame l a c a l i f i c a c i ó n %c/ ” , j + 1 ) ;
s c a n f f "%c/", &a lu mn o . c a l i f i c a c i ó n [ j J ) ;
}
p r i n t f f " dame l a e s ta tu r a " );
s c a n f f "%f“ , & a l u m n o . e s t a t u r a ) ;
/* i m p r i m i r */
p r i n t f f " \n nom bre\t\tcalificacion 1 \t ca lificación 2 \tcalifica cion
3 \ t e s t a t u r a \ n \ n " );
p r i n t f f " %s ", al um no .n o mb r ec .n o mb re ) ;
p r i n t f f " %s ", a l u m n o . n o m b r e c . a p e l l i d o p a t ) ;
p r i n t f f " %s ", a l u m n o . n o m b r e c . a p e l l i d o m a t ) ;
{
p r i n t f f " M ^ d " , a lu m n o . c a l i f i c a c i ó n [ j ] ) ;
}
(c o n tin ú a )
www.FreeLibros.me
176 Capítulo 7 D atos d e t ip o estructurado
(continuación)
p r i n t f ( " \ 2f " , alum no.estatura);
getch();
return 0;
}
L a d e fin ic ió n d e b e e s ta r d e c la ra d a a n te s d e s e r u sa d a fu e ra d e la s fu n c io n e s. L a
sin ta x is es:
typedef tip o de d a t o i d e n t i f i c a d o r ;
p o r e je m p lo :
typedef i n t Entero;
E n t e r o Num;
p a ra u n a e s tru c tu ra
typedef s tru c t{
i n t numero;
www.FreeLibros.me
7.1 Estructura 177
E n t e r o n;
}Tipo;
Tipo números;
typedef i n t Entero;
typedef s tru c t{
f loat numReal;
E n t e r o n;
}Tipo;
mai n( )
{
E n t e r o a;
T i p o b;
c l r s c r f );
a=1 0 ;
b.n=1;
b. numReal =1 .10;
p rin tff" %c/ %c/ %f", a,b.n,b.num Real);
g e t c h f );
return 0 ;
www.FreeLibros.me
178 Capítulo 7 D atos d e t ip o estructurado
Ejercicios resueltos
Descripción
In ic ia liz a r lo s e le m e n to s.
In g re s a r d ato s.
M o stra rlo s.
Variabl es
Codificación
/* us o de t y p e d e f ( t i p o de d a t o de v a r i a b l e ) */
typedef s t r u c t
{
c h a r no mb re[ 3 0 ] ;
char a p e llid o p a t[ 1 5 ] ;
www.FreeLibros.me
7.1 Estructura 179
c h a r a p e l l i d o m a t [15];
}Nombre_com;
typedef struct
{
Nombre_com nombrec;
in t c a l i f i c a c i ó n [3];
float e s t a t u r a ;
}Al umno;
mai n( )
{
in t i,j,n ;
Al umno l A l u m n o [ M A X ] ;
/* i n i c i a l i z a r */
for(i=0;i< MAX;i+ +)
{
1 A 1 u m n o [ i ] . n o m b r e c . n omb re/ 0 ] = 1\ 0 ';
lA lu m n o [i] .nom brec.ap ellid opat[0 ]= '\ 0 ';
l A l u m n o [ i ] . nombrec. a p e l l i d o m a t [ 0 / = '\ 0 ' ;
for ( j =0 ;j <3 ;j ++ )
l A l u m n o [ i ] . c a l i f i c a c i ó n [ j ]=0;
l A l u m n o [ i ] . estatura=0;
/* a g r e g a r e l e m e n t o s */
i= 0 ;
p r i n t f f " \n C u a n t o s e l e m e n t o s s e i n s e r t a r a n \ t u) ;
s c a n f ( " 96d"J & n ) ;
while(i<n)
{
p r i n t f f " \ndame e l nombre %d " , i + 1 ) ;
s c a n f ( U96Sn, &1Alumno [ i ] . n omb rec . nombre) ;
p r i n t f ( " \ n a p e l l i d o p a t e r n o %c/ ” , i + 1 ) ;
s c a n f ( ' ,96Su, & l A l u m n o [ i ] . n o m b r e c . a p e l l i d o p a t ) ;
p r i n t f ( " \ n a p e l l i d o mat er no %c/ ” , i + 1 ) ;
s c a n f ( B96 s " , & l A l u m n o [ i ] . n omb rec . a p e l l i d o m a t ) ;
(c o n tin ú a )
www.FreeLibros.me
180 Capítulo 7 D atos d e t ip o estructurado
(continuación)
fo r ( j= * ;j< 3 ;j+ + )
{
p r i n t f (" dame l a c a l i f i c a c i ó n %c/ " , j + 1 ) ;
s c a n f ( 096dn, & l A l u m n o [ i ] . c a l i f i c a c i ó n [ j J ) ;
}
p r i n t f ( ■ dame l a e s t a t u r a " );
s c a n f ( "%f" , & l A l u m n o [ i ] . e s t a t u r a ) ;
i++;
/* im p r im ir */
p r i n t f (" \ n n o m b r e \ t \ t c a l i f i c a c i ó n 1 \ t c a l i f i c a c i o n 2 \ t
c a lific a c ió n 3 \t e s t a t u r a \n \n " ) ;
f o r ( i= 0;i< n ;i+ + )
{
p r i n t f (" %s " , l A l u m n o [ i ] . n o m b r e c . n o m b r e ) ;
p r i n t f (" %s " , l A l u m n o [ i ] . n o m b r e c . a p e l l i d o p a t ) ;
p r i n t f (" %s " , l A l u m n o [ i ] . n o m b r e c . a p e l l i d o m a t ) ;
f o r ( j =0; j <3 ; j + +)
{
p r i n t f (" \t*68d",lA lum no[i] . c a l i f i c a c i ó n [j ]);
}
p r i n t f ( " \ t% . 2 f " , l A l u m n o [ i ] . e s t a t u r a ) ;
p r in t f( " \n " ) ;
}
getch();
retu rn 0 ;
Explicación
www.FreeLibros.me
7.1 Estructura
A c o n tin u a c ió n s e p re g u n ta c u á n to s e le m e n to s s e a lm a c e n a rá n e n el a rre g lo y el
n ú m e ro s e a lm a c e n a e n n ; s e p id e n lo s d a to s y fin a lm e n te s e m u e s tra n e n p a n ta lla .
Ejecución
Cuant os e l e m e n t o s se i n s e r t a r a n 2
dame e l nombre 1 Juan
a p e llid o paterno 1 Perez
a p e l l i d o mat er no 1 López
dame l a calificación 1 99
dame l a calificación 2 78
dame l a calificación 3 86
dame e l nombre 2 Lu is
a p e llid o paterno 2 Ibarra
a p e l l i d o mat er no 2 Gómez
dame l a calificación 1 85
dame l a calificación 2 97
dame l a calificación 3 68
calificación 3 estatura
Juan p e r e z lop ez 99 78
86 1.79
Luis Ibarra Gómez 85 97
68 1.59
/* e s t r u c t u r a s a n i d a d a s usando a p u n t a d o r e s */
ttinclude <stdio.h >
üinclude <c o ni o. h >
üinclude < s t d l i b . h>
(c o n tin ú a )
www.FreeLibros.me
182 Capítulo 7 D atos d e t ip o estructurado
[continuación)
s t r u c t t_nombr e{
c h a r nom[ 1 0 J;
c h a r apem[ 1 0 J;
c h a r a p e p [ 1 0 J;
};
s t ru c t t_datos{
s t r u c t t _nombr e nombrec;
in t edad;
};
mai n( )
{
s t r u c t t_datos n[3];
c lrs c r();
leerNombre(&n[0J);
imprimirNombref&n[ 0 ] ) ;
getchf);
{
p r i n t t f " \n nombre " );
s c a n t ( n %s", nn->nombrec. nom);
p r i n t f f " \n a p e l l mat n) ;
s c a n t ( ” %s",nn->nombrec.apem);
p r i n t f f " \n ape p a t ");
s c a n t (" %s", nn->nombrec. a p e p ) ;
p r i n t f f " \n edad ");
s c a n t ( u %d",&nn->edad);
getchf);
}
www.FreeLibros.me
7.1 Estructura 183
{
p rin tff" nombre: %s", nn- >nombrec. nom);
p rin tff" ap p a t e r n o : %s", n n - > n o m b r e c . a p e p ) ;
p rin tf(" ap m a t e r n o : %s", nn- >nombrec. apem);
p r l n t f ( u edad: %c/" , n n - > e d a d ) ;
/* manej o de e s t r u c t u r a s a n i d a d o s c on a r r e g l o s */
H i n d ú de < s t d i o . h >
H include <c o ni o. h >
Hdefine MAX 10
typedef s t r u c t {
c h a r nombre[ 2 0 ];
char a p e llp [ 10J ;
char apellm [10] ;
}nomc;
typedef s t r u c t {
nomc nom;
c h a r d i r e c c i o n [ 1 5 ] , t e l [ 1 0 ];
}persona;
typedef s t r u c t {
persona pers;
i n t n;
} registrop;
(c o n tin ú a )
www.FreeLibros.me
184 Capítulo 7 D atos d e t ip o estructurado
(c o n tin u a c ió n )
mai n( )
{
r e g i s t r o p d a t o s [ M A X ];
in t i;
c lrs c rf);
p rin tf("\n d a t o s de alumn os \ n ");
p r i n t f ( m c u a n t o s alumn os s e i n g r e s a n ");
s c a n f ( " % d u, 8, d a t o s [ 0 ] . n ) ;
fflush(stdin) ;
for ( i = 0 ; i < d a t o s [ 0 J . n; i ++ )
{
p r i n t f ( " \n dame e l nombre ");
g e t s ( d a t o s [ i ] . p e r s . nom. nombre) ;
g e t s ( d a t o s [ i ] . p e r s . t e l );
}
/* m o s t r a r */
c l r s c r f );
p r i n t f ( " \ t nombre\t a p e l l i d o s \ t d i r e c c i o n \ t \ t t e l e f o n o \ n u) ;
{
p r i n t f ( " \ t %s \ t 11, d a t o s [ i ] . p e r s . nom. n o m b r e ) ;
p r i n t f ( " \ t *6S\t” , d a t o s [ i ] . p e r s .nom. a p e l l p ) ;
p r i n t f ( n \ t 9¿ s \ t " , d a t o s [ i J . p e r s . nom. a p e l l m ) ;
p r i n t f ( "% s\t", d a t o s [ i ] . p e r s . d i r e c c i ó n ) ;
p r i n t f ( U96 S \ n \ n u , d a t o s [ i ] . p e r s . t e l ) ;
}
getchf);
return 0 ;
www.FreeLibros.me
7.2 Apuntadores 185
7.2 A puntadores
E l a p u n ta d o r d e b e d e c la ra rs e in d ic a n d o el tip o d e d a to al q u e a p u n ta e
in ic ia liz a rs e a n te s d e s e r u tiliz a d o .
El le n g u a je C u s a lo s a p u n ta d o re s e n la m a n ip u la c ió n d e d a to s sim p le s,
arre g lo s, e stru c tu ra s y fu n c io n e s; e n e s te p u n to s e e x p lic a n los d a to s sim p le s
y la a ritm é tic a .
Al m o m e n to d e s e r d e c la ra d o , al a p u n ta d o r s e le in d ic a el tip o d e l d a to al q u e
a p u n ta . E l a p u n ta d o r es u n tip o d e d a to sim p le q u e s ie m p re s e a s o c ia a o tro tip o
q u e p u e d e se r s im p le o e stru c tu ra d o . P o r e je m p lo , a p u n ta r a fioat, a p u n ta r a
e stru c tu ra , a p u n ta r u n tip o d e fin id o p o r el u su a rio , e tc é te ra .
D o n d e T ip o d a t o , es el tip o d e d a to , q u e p u e d e s e r s im p le o e stru c tu ra d o ;
* (a ste risc o ) in d ic a q u e la v a ria b le a lm a c e n a u n a d ire c c ió n d e m e m o ria ;
i d en t i fi c a d o r es el n o m b re a s ig n a d o a la v a ria b le .
in t *apint;
float *apfloat;
in t d a to l;
f loat d a t o 2 ;
apint=&dato1 ;
apf loat =&dat o 2 ;
www.FreeLibros.me
186 Capítulo 7 D atos d e t ip o estructurado
*a p i n t =3;
*apfioat = 3 . 2 ;
A h o ra d a t o i a lm a c e n a el v a lo r 3, y d a t o 2 a lm a c e n a 3.2 . E s im p o rta n te a s ig n a r a
los a p u n ta d o re s la d ire c c ió n d e la s v a ria b le s a n te s d e h a c e r o p e ra c io n e s.
V eam os u n e je m p lo .
/* 1. manejo de a p untadores
septiembre 2010 */
Itin e l u d e <stdio.h>
Uinclude <conio.h>
main()
{
I* d e c l a r a c i ó n de v a r i a b l e s y apuntador a e s e t i p o de v a r i a b l e */
i n t datol;
i n t * a p i n t;
float d a t o 2 ;
float *apfloat;
c lr s c r f);
/* Asignando l a d i r e c c i ó n a l o s a p u n t a d o r e s */
a p i n t = &dato 1 ;
apfioat = &dato 2 ;
/* Asignando v a l o r e s a l a s v a r i a b l e s */
* a p i n t = 3;
*apfioat = 3 .2;
www.FreeLibros.me
7.2 A p u n t a d o r e s
/ * modificando l a s v a r i a b l e s */
* a p i n t = 45;
*apfloat = 5 1 . 3 ;
getch();
return 0 ;
>
* a p t i n t = 3;
*apfloat = 3 . 2 ;
*a p i n t = *a p i n t % 2 ;
*apfloat = *apfloat+1 0 ;
C o n e sto , d a t o i a lm a c e n a u n 1 q u e es el re s id u o y d a t o 2 a lm a c e n a 13.2. E s
im p o rta n te o b s e rv a r q u e u n a p u n ta d o r es u n a d ire c c ió n e n m e m o ria y es u n v a lo r
e n te ro , p e ro u n a p u n ta d o r n o es u n e n te ro .
P a ra o p e ra c io n e s d e in c re m e n to o d e c re m e n to s e p u e d e p ro c e d e r así:
*a p i n t = ++(*apint) ;
*apfloat = - - ( a p f l o a t ) ;
www.FreeLibros.me
188 Capítulo 7 D atos d e t ip o estructurado
R e s u lta n d o e n d a t o i el v a lo r 2 y e n d a to 2 el v a lo r 12.2.
/* 2 . a r i t m é t i c a de a pu ntadores */
Itin e l u d e <stdio.h>
Hiñelude <conio.h>
main()
{
/* d e c l a r a c i ó n de v a r i a b l e s y apuntador a e s e t i p o de v a r i a b l e */
i n t datol;
i n t * a p i n t;
float d a t o 2 ;
float *apfloat;
c lr s c r f);
/* Asignando l a d i r e c c i ó n a l o s a p u n t a d o r e s */
a p i n t = &dato 1 ;
apfloat = &dato 2 ;
* a p i n t = *a p i n t % 2 ;
www.FreeLibros.me
7.2 Apuntadores 189
/* o p e r a d o r de i n c r e m e n t o y d e c r e m e n t o */
*apint = ++(*apint);
*apf loat = - - ( * a p f l o a t ) ;
getch();
return 0 ;
El re s u lta d o d e e s te e je m p lo s e v e así:
datol valor i n i c i a l 3
dat o2 valor i n i c i a l 3.2
datol residuo 2 1
datol incrementado 2
dato2 de cr em en ta do 12.20
Ej e m p l o 7.8 Leer en una estructura anidada los datos del nom bre com pleto
y la edad, accediendo m ediante un apuntador a estructura
/* manej o de e s t r u c t u r a s co n a p u n t a d o r e s */
(c o n tin ú a )
www.FreeLibros.me
190 Capítulo 7 D atos d e t ip o estructurado
(icontinuación)
tíinclude < stdlib.h>
m a i n ()
{
s t r u c t t_nombr e{
c h a r nom[ 1 0 ];
c h a r apem[ 1 0 ] ;
c h a r a p e p [ 1 0 J;
};
s t r u c t t_datos{
s t r u c t t _nombr e nombrec;
in t edad;
};
s tr u c t t_datos *nn;
s t r u c t t _ d a t o s n;
c lrs c rf);
nn=&n;
www.FreeLibros.me
Evaluación 191
Resum en
L a e s tru c tu ra c o n s is te e n u n c o n ju n to d e v a ria b le s a g ru p a d a s c o n u n n o m b re ; las
v a ria b le s p u e d e n s e r d e l m is m o o d e d ife re n te tip o d e d a to s. G e n e ra lm e n te , lo s
d ato s e stá n re la c io n a d o s .
Evaluación
www.FreeLibros.me
192 Capítulo 7 D atos d e t ip o estructurado
3 . U n a e s tru c tu ra c o n s is te e n u n c o n ju n to d e v a ria b le s q u e p u e d e n s e r d e
d ife re n te tip o d e dato .
Sí ( ) No ( )
4. ¿ P u e d e u n a e s tru c tu ra c o n te n e r o tra ?
Sí ( ) No ( )
7 . ¿ T ie n e el a p u n ta d o r u n tip o d e d a to ?
Sí ( ) No ( )
8 . ¿ E s p o s ib le h a c e r o p e ra c io n e s a ritm é tic a s u sa n d o a p u n ta d o re s ?
S í( ) No ( )
9 . C u a n d o el o p e ra d o r & a n te c e d e a u n a v a ria b le , e n to n c e s d e v u e lv e la
___________________ d e la v a ria b le .
Ejercicios propuestos
www.FreeLibros.me
Ejercicios p ro p u e s to s
3 . M u e stre la s p o b la c io n e s d e u n c o n tin e n te .
4. O b te n g a el to ta l d e h a b ita n te s d e u n o d e lo s c o n tin e n te s.
5 . M u e stre el p ro m e d io d e la e d a d d e lo s h a b ita n te s p o r p o b la c ió n , p a ís y
c o n tin e n te .
6 . M u e stre to d a la in fo rm a c ió n p o r c o n tin e n te , p a ís y p o b la c ió n .
s tru c t Pizza{
in t tam;
float p r e c i o ;
c h a r i n g [ 3 ] [15];
};
mai n( )
{
s t r u c t P i z z a p e d i d o s [10];
i n t in d ice= 0,o p c ,c o n t,i;
do{
do{
c l r s c r f );
p r i n t f f "**************** PIZZAS *************\n \ n \ n \ n " ) ;
p r i n t f ("1. H a c e r p e d i d o \ n 2 . m o s t r a r \ n 3 . S a l i r \ n \ n Q u e desea
hacer?: ");
scanf("%d",&opc);
} w h i l e ( o p c ! =1 && o p c ! =2&&opc!=3);
i f ( o p c = = 1)
www.FreeLibros.me
194 Capítulo 7 D atos d e t ip o estructurado
{
c lrscr();
p rin tf("\n t a m a n i o de su p i z z a ? \ n \ n \ n \ n " ) ;
p rin tf("1 . Chica\n2. Mediana\n3. Grande\n\n\nOpcion: \ t ");
s c a n f ( "%c/\& p e d i d o s [ í n d i c e ] . t a m ) ;
//*********** A P L I C A R PRECIO
i f ( p e d i d o s [ í n d i c e ] . tam==1 )
p e d i d o s [ í n d i c e ] .precio= 45;
i f ( p e d i d o s [ í n d i c e ] . tam==2 )
p e d i d o s [ í n d i c e ] .precio=70;
e ls e p e d id o s[ín d ice ] .precio= 100;
//************ e s c o g e r INGREDIENTES
cont=0 ;
do{
c l r s c r f );
p r i n t f ( u\n i n g r e d i e n t e s de s u p i z z a ? (máximo 3 ) \ t " ) ;
p r i n t f ("1. Jamon\n2. Tocino\n3. Elote\n4. Jalapenio\n5.
Salchich a
\n6. E x t r a q u e s o\ n 7 . Listo\n\n\nAgregar
ingredien te: ");
s c a n f f "%c/” , & i ) ;
if(i= = 1) s t r c p y ( p e d i d o s [ í n d i c e ] . i n g f c o n t J , "J amón") ;
if(i= = 2) s t r c p y (p e d i d o s [í n d i c e ] . i n g f c o n t ] , " T o c i n o " );
if(i= = 3) s t r c p y (p e d i d o s [í n d i c e ] . i n g [ c o n t ] , " E l o t e " );
i f ( i==4) s t r c p y ( p e d i d o s [ í n d i c e ] . i n g [ c o n t ] , " J a l a p e n o " ) ;
if(i= = 5) s t r c p y (p e d i d o s [ í n d i c e ] . i n g [ c o n t ] , " S a l c h i c h a " ) ;
if(i= = 6) s t r c p y ( p e d i d o s [ í n d i c e ] . i n g f c o n t ] , "Queso");
p r i n t f ( " \ n l n g r e d i e n t e a g r e g a d o ") ;
cont++;
getch();
} w h i l e ( c o n t < 3 && o p c l = 7 ) ;
c l r s c r f );
p r i n t f ( "Esta l i s t o su p e d i d o " ) ;
í n d i c e ++;
}
if(opc==2)
{
f o r ( i = 0 ; i < i n d i c e ; i++)
www.FreeLibros.me
Ejercicios p ro p u e s to s 195
}
y
} w h i l e ( o p c ! =3);
2 . l i s t e lo s p ro fe s o re s c o n to d o s su s d ato s.
3 . B u s q u e u n p ro fe s o r y m u e s tre su s d ato s.
www.FreeLibros.me
www.FreeLibros.me
Funciones
(programación modular)
L a p ro g ra m a c ió n m o d u la r es u n a té c n ic a q u e c o n s is te e n s e p a ra r u n
p ro b le m a e n las d ife re n te s ta re a s q u e s e q u ie re n re so lv e r, d a n d o o rig e n
a la c re a c ió n d e m ó d u lo s (p e q u e ñ o s p ro g ra m a s a lo s q u e lla m a re m o s
fu n c io n e s), d o n d e c a d a m ó d u lo o fu n c ió n s e d ise ñ a , s e c o d ific a y se
p ro c e sa d e m a n e ra in d e p e n d ie n te .
A m a n e ra d e e je m p lo , su p o n g a m o s q u e s e d is e ñ a u n p ro g ra m a q u e
c a lc u la el s u e ld o d e l tra b a ja d o r d e u n a e m p re sa . P e n s a r e n el p ro b le m a
de in ic io a fin es d e m a s ia d o c o m p le jo , y a q u e im p lic a m u c h o s c á lc u lo s.
P o r lo tan to , es m e jo r d iv id irlo d e tal fo rm a q u e e n la e ta p a d e a n á lis is
se id e n tifiq u e n las d istin ta s ta re a s a re s o lv e r p a ra c a lc u la r u n su eld o :
p o r e je m p lo , c u á n to s e d e b e p a g a r d e IM S S , c u á n to d e IS P T , c u á n to de
h o ras ex tra , si es q u e la s tu v o , e tc é te ra . S e p o d ría d is e ñ a r u n a fu n c ió n
(o m ó d u lo ) in d e p e n d ie n te p a ra c a d a u n a d e e sta s ta re a s y al fin al “ a rm a r”
to d as e sta s fu n c io n e s e n u n s o lo p ro g ra m a .
www.FreeLibros.me
198 Capítulo 8 Funciones (prog ram ación m odular)
• R e d u c ir la c o m p le jid a d d e l p ro g ra m a ( “ d iv id e y v e n c e rá s ” ).
• E lim in a r c ó d ig o d u p lic a d o .
• C o n tro la r fá c ilm e n te lo s e fe c to s d e lo s c a m b io s.
• O c u lta r d e ta lle s d e im p le m e n ta c ió n .
• R e u tiliz a r c ó d ig o .
• F a c ilita r la le g ib ilid a d d e l c ó d ig o .
D u ra n te el p re s e n te te x to s e h a e s ta d o in v o c a n d o v a ria s d e la s fu n c io n e s
p red e fin id a s e n d istin to s e je m p lo s: p o r e je m p lo p r i n t f , s c a n f , c i r s c r , e n tre o tras.
El o b je tiv o d e e s te c a p ítu lo e s tá o rie n ta d o a e x p lic a r al le c to r la fo rm a d e c re a r
sus p ro p ia s fu n c io n e s.
Función main ( )
Es la fu n c ió n p rin c ip a l y p u e d e c o n te n e r d e p o c a s a m u c h a s lín e a s ; su p a p e l es
c o o rd in a r a las o tra s fu n c io n e s m e d ia n te lla m a d a s o in v o c a c io n e s. E l sig u ie n te
d ia g ra m a m u e s tra la je r a r q u ía q u e e x is te e n u n p ro g ra m a m o d u la r e n le n g u a je C ,
www.FreeLibros.me
8.1 F u n cio n e s 199
en el c u a l s e p u e d e v e r q u e s ie m p re d e b e e x is tir u n a fu n c ió n main y é s ta p u e d e
h a c e r u so d e c u a lq u ie r c a n tid a d d e fu n c io n e s, y a s e a n c re a d a s p o r el u s u a rio o
p re d e fin id a s e n el le n g u a je . L a s fu n c io n e s in v o c a d a s p o r main p u e d e n lla m a r a su
v ez o tra s fu n c io n e s.
8.1 Funciones
C o m o y a s e m e n c io n ó , c a d a fu n c ió n s e d is e ñ a d e m a n e ra in d e p e n d ie n te . L a
a c c ió n d e d is e ñ a r o c re a r u n a fu n c ió n e n C es c o n o c id a ta m b ié n c o m o d e fin irla y,
se g ú n el p ro p ó sito e sp e c ífic o , la s fu n c io n e s p u e d e n s e r d ise ñ a d a s d e la s sig u ie n te s
m an eras:
www.FreeLibros.me
200 Capítulo 8 Funciones (prog ram ación m odular)
El e n to rn o d e c u a lq u ie r fu n c ió n es la fu n c ió n p o r la q u e e s in v o ca d a. P o r e je m p lo ,
si mai n in v o c a a u n a fu n c ió n d is e ñ a d a c o n p a so d e p a rá m e tro s y q u e re g re s a un
valor, e n to n c e s mai n es el e n to rn o d e é sta , y s e rá main la q u e le p ro p o rc io n e la
in fo rm a c ió n (p a rá m e tro s) q u e d ic h a fu n c ió n re q u ie ra y la q u e re c ib a el v a lo r q u e
d ic h a fu n c ió n d e v u e lv a . L a e s tr u c tu ra g e n e ra l p a ra d e fin ir u n a fu n c ió n e n C es:
{
* v ariab les lo c a le s ;
c u e r p o de l a función;
* re tu rn dato;
E l * sig n ific a q u e p u e d e n o n o a p a re c e r, d e p e n d ie n d o d e l d is e ñ o d e la fu n c ió n .
Concepto Explicación
L ista de Es una l i s t a de v a r i a b l e s c on s u s r e s p e c t i v o s t i p o s
parámetros de d a t o s qu e u t i l i z a el s i g u i e n t e formato: t i p o l
param etrol, tip o 2 param etro2,. . . , Cuando e x i s t e n ,
é s t o s son l o s d a t o s qu e debe r e c i b i r l a función
c uando se l e invoque.
Cuerpo de l a Son l a s s e n t e n c i a s o i n s t r u c c i o n e s qu e e j e c u t a r á
función la f u n c i ó n c a d a vez qu e sea i n v o c a d a .
V ariables lo c a le s L a s c o n s t a n t e s y v a r i a b l e s d e c l a r a d a s d e n t r o de l a
f u n c i ó n s on l o c a l e s a la misma y no e x i s t e n f u e r a de
e lla .
Valor devuelto Mediante l a p a l a b r a r e s e r v a d a r e t u r n s e puede
por l a función devolver e l r e s u l t a d o de l a función, si e s qu e l a
función re q u ie re re g re sa rlo .
www.FreeLibros.me
8.1 Funciones
In ic ie m o s e x p lic a n d o la fo rm a m á s s e n c illa d e e m p le a r fu n c io n e s: s in p a so de
p a rá m e tro s ni d e v o lu c ió n d e valor.
void id e n t if ic a d o r ( )
{
v ariab les lo c a le s ;
c u e r p o de l a función;
d onde:
vo id P a la b ra re s e rv a d a q u e e n u n a fu n c ió n in d ic a q u e é s ta só lo
e je c u ta su s in stru c c io n e s s in d e v o lv e r n a d a a s u e n to rn o .
id entificado r N o m b re q u e el p ro g ra m a d o r e lig e p a ra la fu n c ió n y c o n el cu al
la in v o c a rá p o ste rio rm e n te .
( ) L o s p a ré n te s is s o n p a rte d e la s in ta x is d e u n a fu n c ió n : si e stá n
v a cío s, s ig n ific a q u e la fu n c ió n n o re c ib e p a rá m e tro s.
v o i d sumal ( )
{
float a , b , c ;
v o id main( )
{
suma 1 ( ) ;
www.FreeLibros.me
202 Capítulo 8 Funciones (prog ram ación m odular)
E n e s te e je m p lo s e p ro g ra m ó la fu n c ió n sumai y d e n tro d e la m is m a s e d e c la ra n
tres v a ria b le s lo c a le s: a , b y c. L as in s tru c c io n e s a sig n a d a s a la fu n c ió n sumai
so n s o lic ita r v a lo re s al u su a rio , a lm a c e n a rlo s e n a y ó re s p e c tiv a m e n te ; c a lc u la r
la s u m a d e é sto s y a lm a c e n a rla e n c; fin a lm e n te m o s tra r el v a lo r d e c. L a fu n c ió n
sumai h a c e to d o lo n e c e s a rio p a ra s u m a r d o s n ú m e ro s . P rá c tic a m e n te , la ú n ic a
ta re a d e mai n es in v o c a r a la fu n c ió n p a ra q u e e lla s e o c u p e d e l re s to . C o m o se
p u e d e v e r e n el e je m p lo , la lla m a d a a sumai e s u n a s e n te n c ia m á s d e main.
Es im p o rta n te te n e r p re s e n te q u e la e je c u c ió n d e c u a lq u ie r p ro g ra m a c re a d o
m e d ia n te fu n c io n e s, s e in ic ia rá s ie m p re e n la fu n c ió n main.
R )r otro lado, c ab e señ alar q u e sumai h a ce u so d e las funciones p rin tf y scanf, que
tam bién so n funciones, a u n q u e éstas están predefinidas e n e l leng u aje C . E sto nos
indica q u e n o só lo main p u e d e invocar a las funciones, sino q u e e n tre e llas tam b ién
pueden invocarse. L a ventaja d e las fu n cio n es es q u e u n a v ez diseñ ad as p u ed en
utilizarse las veces q u e se requiera, sólo b asta co n invocarlas y ejecu tarán las ins
trucciones q u e tengan asignadas. L as fu n cio n es p r i n t f o scanf se p u e d e n em p lea r
infinidad d e veces. C ad a vez q u e se req u ie re le e r o m o strar alg ú n d ato en un p ro g ram a
se invocan y listo; lo m ism o sucede co n las fu n cio n es q u e el p ro g ram a d o r diseña.
C o m o s e m e n c io n ó a n te rio rm en te , u n p ro g ra m a m o d u la r o co n fu n c io n e s d e b e
co n ta r in v ariab le m e n te c o n u n a fu n c ió n mai n , la c u a l c o n tro la la a p a ric ió n de
c u alq u ie r otra fu n ció n . L a e je c u c ió n d e u n p ro g ra m a in ic ia c o n lo q u e c o n tie n e mai n,
pero e n c u a n to é sta llam a a a lg u n a otra fu n ció n , s e e je c u ta n las in stru c c io n e s de
esta últim a. U n a v ez c o n c lu id a la fu n c ió n q u e s e invocó, s e re g re sa el c o n tro l a la
fu n ció n main y s e c o n tin ú a c o n la sig u ien te lín e a h a sta te rm in a r s u co n te n id o . E n el
sig u ien te d ia g ra m a las flechas in d ic a n el o rd e n e n q u e s e lleva a c a b o la ejecu ció n .
void fu n c io n X ( ) v o i d mai n ( )
{ {
in stru cció n 1; in stru cció n 1;
f u n c i o n X ( );
in stru cció n 4;
www.FreeLibros.me
8.1 Funciones
S in e m b a rg o , la s fu n c io n e s p u e d e n s e r in v o c a d a s n o s ó lo d e sd e m a i n , sin o
q u e ta m b ié n s e p u e d e n in v o c a r d e sd e c u a lq u ie r o tra fu n c ió n y s u e je c u c ió n
se lle v a a c a b o d e m a n e ra sim ila r. E s to s e p u e d e o b s e rv a r e n el d ia g ra m a
sig u ien te:
in stru cció n 1;
in stru cció n 2;
f u n c io n Y ();
www.FreeLibros.me
204 Capítulo 8 Funciones (prog ram ación m odular)
v o i d prom( )
{
i n t n, i;
float c , p=0 ;
p r i n t f ( " C u a n t a s m a t e r ia s se l e van a p r o m e d i a r a l alumno?");
s c a n t C"%¿", & n ) ;
f o r ( i =1 ; i< =n ;i ++)
{
p r i n t f ("T eclea l a c a l i f i c a c i ó n ”) ;
s c a n t ( "% f", & c ) ;
p=p+c;
}
p= p ln ;
p r i n t f ( " E l p r o m e d i o d e l alumno e s : % f", p);
v o i d main( )
{
in t resp;
do{
prom( ) ;
}
w h i l e ( resp== 1 ) ;
E n e s te p ro g ra m a s e p u e d e a p re c ia r m e jo r la v e n ta ja e n el u so d e fu n c io n e s, ya
que prom s e d is e ñ ó u n a s o la v e z y e n el mai n s e in v o c a rá la s v e c e s q u e el u su a rio
n e c e site o d e c id a o b te n e r el p ro m e d io in d iv id u a l d e u n c o n ju n to d e a lu m n o s sin
sa lir d e l p ro g ra m a .
www.FreeLibros.me
8.2 Funciones q u e devuelven valores 205
V ariables locales
1. S ó lo p u e d e n s e r re c o n o c id a s y u tiliz a d a s p o r la fu n c ió n e n la q u e e stá n
d e c la ra d a s ; n in g u n a o tra, ni s iq u ie ra main, q u e es el p ro g ra m a p rin c ip a l, tie n e
a c c e so a la s v a ria b le s lo c a le s d e c la ra d a s e n o tra fu n c ió n .
2 . L o s e sp a c io s re s e rv a d o s e n m e m o ria p a ra v a ria b le s lo c a le s e s tá n d isp o n ib le s
só lo e n el m o m e n to e n q u e s e e s tá e je c u ta n d o la fu n c ió n d o n d e fu e ro n
d e c la ra d a s, u n a v e z q u e s e te rm in a la e je c u c ió n d e la fu n c ió n d e s a p a re c e n d e
la m e m o ria , lo q u e o c a s io n a q u e, d e sp u é s d e a lm a c e n a r lo s d a to s d e e n tra d a
y m o s tra r lo s re s u lta d o s e n la s fu n c io n e s sumai y prom q u e s e d is e ñ a ro n , e sto s
d ato s s e p ie rd a n y n o e x is ta fo rm a d e re c u p e ra rlo s .
A n a liz a n d o lo s d o s e je m p lo s q u e h e m o s re v is a d o , ¿ q u é d e b e ría h a c e rs e si
el re s u lta d o d e la s u m a d e d o s n ú m e ro s s e re q u ie re p a ra a lg ú n o tro c á lc u lo
fu e ra d e la fu n c ió n s u m a l? O b ie n , ¿ q u é s e d e b e rá a g re g a r al p ro g ra m a si
d e sp u és d e p ro m e d ia r a c a d a a lu m n o s e n e c e s ita ra c a lc u la r el p ro m e d io
g e n e ra l d e to d o s lo s a lu m n o s? C o m o e s tá n d ise ñ a d o s e sto s p ro g ra m a s s e ría
im p o s ib le , d e b id o a q u e los re s u lta d o s s e e n c u e n tra n e n v a ria b le s lo c a le s,
d e ta l m a n e ra q u e e n c u a n to s e te rm in a n a m b a s fu n c io n e s c a d a re s u lta d o q u e
g e n e ra n d e sa p a re c e .
P á ra p o d e r d is p o n e r d e lo s re s u lta d o s , in c lu s o c u a n d o s e h a te rm in a d o la fu n ció n ,
d e b em o s u tiliz a r o tro tip o d e fu n c io n e s.
www.FreeLibros.me
206 Capítulo 8 Funciones (prog ram ación m odular)
tipo_dato id e n tific a d o r ( )
{
d e c l a r a c i ó n de v a r i a b l e s l o c a l e s ;
c u e r p o de l a función;
return (v alor);
Tipo_dato S i u n a fu n c ió n v a a d e v o lv e r u n v a lo r, e n to n c e s d e b e in ic ia r c o n el
tip o d e d a to q u e d e v o lv e rá , q u e p u e d e s e r c u a lq u ie r tip o p rim itiv o
in t, flo at, ch ar, e tc é te ra .
retum E s la p a la b ra re s e rv a d a q u e “ en v ía” el v a lo r q u e la fu n c ió n
d e v u e lv e a la fu n c ió n q u e la m a n d a lla m a r; el v a lo r es u n d ato ,
a s í q u e p u e d e s e r u n a v a ria b le , u n a e x p re sió n a ritm é tic a , e tc é te ra ,
in c lu s o lo q u e o tra fu n c ió n d e v u elv a.
float suma 1 ( )
{
float a , b , c ;
p rin tf("te cle a e l prim er *):
s c a n fC W '& a );
p rin tf("te cle a el segu ndo "):
s c a n f ( "% f" , & b ) ;
c=a+b;
r e t u r n c;
v o id main( )
{
float r e s ;
res=suma 1 ( ) ;
p rin tf ("E l r e s u l t a d o e s % f", res);
www.FreeLibros.me
8.2 Funciones q u e devuelven valores 207
El m is m o p ro g ra m a c o n a lg u n a s v a ria c io n e s:
float sumal ( )
{
float a ,b ;
p r i n t f ( " t e c l e a e l p r i m e r ");
s c a n f ( " 96f ”,&a);
p r i n t f ( “t e c l e a e l segundo ");
sc a n f( "% f" ,& b ) ;
r e t u r n a+b;
}
void m ain( )
{
p r i n t f ( " E l r e s u l t a d o e s %f", s u m a l ( ) ) ;
}
www.FreeLibros.me
208 Capítulo 8 Funciones (prog ram ación m odular)
float s u m a l ( )
{
flo at a , b ;
p r i n t f ( " t e c l e a e l p rim e r ");
s c a n f ( u% f n, & a ) ;
p r i n t f ( " t e c l e a e l segundo " );
s c a n f ( " * 6f n,&b) ;
r e t u r n a+b;
}
void main( )
{
p r i n t f ( " El r e s u l t a d o e s %f " , sum al( ) +suma1 ( ) ) ;
}
float prom( )
{
i n t n, i ;
float c, p= 0 ;
www.FreeLibros.me
8.2 Funciones q u e devuelven valores 209
{
p r i n t f ("T eclea l a c a l i f i c a c i ó n " );
scanf("% f",&c);
p=p+c;
}
P=Pln;
r e t u r n p;
v o id main( )
{
in t resp, c= 0;
float promg
do{
promg = promg + prom( ) ;
p rin tf("S i d e s e a s p r o m e d i a r o t r o alumno t e c l e a 1");
scanf("% i",&resp);
if(re sp )
c++;
}
w h i l e ( r e s p — 1) ;
p r i n t f (" E l promedio g e n e r a l de l o s %c/ alumn os es % f", c , promg l e );
V eam os u n n u e v o e je m p lo p a ra o b s e rv a r c ó m o u n a fu n c ió n p u e d e s e r lla m a d a p o r
o tra fu n c ió n , n o n e c e s a ria ni e x c lu s iv a m e n te p o r el main.
float s u ma b as es f )
{
float bm,BM;
p r i n t f ( " Dame l a b a s e menor ");
s c a n f f "% f" , &bm);
p r i n t f ( " Dame l a base mayor");
(c o n tin ú a )
www.FreeLibros.me
210 Capítulo 8 Funciones (prog ram ación m odular)
(c o n tin u a c ió n )
s c a n f ( '% f ■,&BM);
r e t u r n (bm+BM);
}
float area ( )
{
float h;
p r i n t f ( ”Dame l a a l t u r a u) ;
scanf("* 6f " , & h ) ;
r e t u r n sumabases( ) * h / 2 ;
}
v o id m a i n ( )
{
p r i n t f ( "% f" , a r e a ( ) ) ;
}
L a fu n c ió n main in v o c a a la fu n c ió n a re a , e n é s ta s e p id e la a ltu ra y lu e g o
in v o ca a la fu n c ió n sumabases, la c u a l s o lic ita el v a lo r d e la s b a se s y re g re sa
el re s u lta d o d e la s u m a a area, q u e es la q u e la lla m a e n su d e fin ició n ;
c u a n d o area re c ib e el v a lo r d e sumabases lo u tiliz a p a ra c o n c lu ir el c á lc u lo ,
y a su v e z re g re sa el re s u lta d o a main y a h í s e im p rim e .
U n a fu n c ió n c o n p a so d e p a rá m e tro s es a q u e lla q u e a d e m á s d e s e r in v o ca d a
re q u ie re in fo rm a c ió n p o r p a rte d e l s u b p ro g ra m a q u e la lla m a . E s ta in fo rm a c ió n
se re fie re a lo s d a to s d e e n tra d a q u e s e n e c e s ita n p a ra q u e la fu n c ió n tra b a je .
www.FreeLibros.me
8.3 Funciones con paso d e parám etros
H a y d o s fo rm a s d e p a s a r d ato s a la s fu n c io n e s: p a so p o r v a lo r y p o r re fe re n c ia .
E stas fu n c io n e s p u e d e n te n e r u n o o v a rio s p a rá m e tro s q u e p u e d e n e n tre g a rse
só lo p o r valor, s ó lo p o r re fe re n c ia o d e a m b a s fo rm a s. L o s p a rá m e tro s p u e d e n
se r d e u n m is m o tip o d e d a to s o d e tip o s d e d a to s d ife re n te s, se g ú n s e re q u ie ra
en el d is e ñ o d e la fu n c ió n : p o r e je m p lo , u n a fu n c ió n p u e d e re c ib ir ú n ic a m e n te
d ato s e n te ro s o, si a s í s e re q u ie re , r e c ib ir d a to s d e tip o e n te ro , re a l o c arác ter.
I
declaración d e variables locales;
cuerpo d e la función;
return (valor);
)
L o n u e v o e n el d is e ñ o d e la m is m a es el c o n te n id o d e lo s p a ré n te sis:
void main( )
{
float n 1 , n 2 , c;
p r i n t f ( "Dame e l p rim e r v a l o r " ) ;
(c o n tin ú a )
www.FreeLibros.me
212 Capítulo 8 Funciones (prog ram ación m odular)
(continuación)
s c a n f ( (" * 6f " , & n 1 ) ;
p ri n t f( " D a m e e l segundo v a l o r " ) ;
scanf(("*f",& n2 );
c=suma3(n1,n 2 ) ;
p r i n t f ( ”La suma e s % f", c ) ;
}
www.FreeLibros.me
8.3 Funciones con paso d e parám etros 213
Los p a rá m e tro s p o r v a lo r re c ib e n u n a c o p ia d e lo q u e v a le n lo s a rg u m e n to s;
su m a n ip u la c ió n es in d e p e n d ie n te , es d e cir, u n a v e z fin a liz a d a la fu n c ió n , los
a rg u m e n to s c o n tin ú a n c o n el v a lo r q u e te n ía n an te s.
E je m p lo 8.7 Crear la función para sum ar dos números, pero con ligeros
cam bios a m ain para que el programa calcule la suma de cuatro s
{
r e t u r n a+b;
v o id main( )
{
float n 1 , n2, n3, n4, c;
p r i n t f ( "Dame e l p r i m e r v a l o r " ) ;
s c a n t ( ( ' % f , & n 1) ;
p r i n t f ( " Dame e l segundo v a l o r “) ;
scant(("% f",&n2 );
p r i n t f ( " Dame e l tercer valor");
s c a n t ( ( n96f" ,&n3) ;
(c o n tin ú a )
www.FreeLibros.me
214 Capítulo 8 Funciones (prog ram ación m odular)
(c o n tin u a c ió n )
p rin tf(" D a m e e l c u a rto v a l o r " ) ;
s c a n f ( ( "%f" , & n 4 ) ;
C=suma3(suma3(n1,n 2 ) , s u m a 3 ( n 3 , n 4 ) ) ;
p r i n t f (" La suma e s c);
}
L a p rim e ra e n e je c u ta rs e es la lla m a d a a s u m a 3 ( n i , n 2 ) , la c u a l d e v u e lv e
un v a lo r, la s e g u n d a fu n c ió n e n e je c u ta rs e es s u m a 3 ( n 3 , n 4 ) y re g re s a un
se g u n d o v a lo r. E sto s d o s v a lo re s s o n to m a d o s c o m o a rg u m e n to s d e la fu n c ió n
s u m a 3 ( s u m a 3 ( n i , n 2 ) >s u m a 3 ( n 3 f n 4 ) ) , y to d o s e a lm a c e n a e n c p a ra d e sp u és
in t cu a d ra d o (in t x)
{
retu rn fx * x);
in t cu b o fin t y)
{
return cuadrado(y)*y;
v o id m a in ( )
{
in t opc, n;
www.FreeLibros.me
8.3 Funciones con paso d e parám etros 215
s c a n f f ( "%¿" , & o p c ) ;
p r i n t f ( " Dame e l numero a e l e v a r 1') ;
s c a n f ( ( "%¿" , & n ) ;
switch(opc)
{
ca se 1: p r i n t f ( " ^ d " , cuadrado( n ) ) ;
break;
c a s e 2 : p r i n t f ( "%cP, c u b o ( n ) ) ;
break;
d e f a u l t : p r i n t f ( " ERROR") ;
}
}
Si e n el main s e s e le c c io n a la o p c ió n 1, s e e je c u ta r á c u a d r a d o , la c u a l re c ib e un
valor, lo m u ltip lic a p o r sí m is m o y d e v u e lv e el re s u lta d o a main. E n c a s o d e q u e
se a s e le c c io n a d a la o p c ió n 2, s e in v o c a rá a cubo, é s ta a s u v e z in v o c a a cuad rado ,
el c u a l re c ib e el re su lta d o , lo m u ltip lic a p o r el p a rá m e tro y d e v u e lv e el c ub o a
main. O b s e rv e q u e ta n to main c o m o cubo h a c e n u n a lla m a d a a c u a d r a d o : c u a lq u ie r
fu n c ió n p u e d e in v o c a r a o tra.
L a fo rm a d e p a s a r p a rá m e tro s d e u n a fu n c ió n a o tra q u e s e h a e s ta d o e m p le a n d o
en lo s e je m p lo s e x p lic a d o s h a s ta a h o ra s e d e n o m in a p a so p o r v a lo r. E n e s te tip o
d e p a so d e p a rá m e tro s, las fu n c io n e s lla m a d a s re c ib e n a trav é s d e lo s p a rá m e tro s
ú n ic a m e n te c o p ia d e l c o n te n id o d e lo s a rg u m e n to s y n o tie n e n la c a p a c id a d de
m o d ific a r s u v a lo r. V eam os u n e je m p lo .
Ej e m p l o 8.9 Realizar una función que intercam bie dos valores entre sí
# i n c l u d e < s t d i o . h>
v o i d i n t e r c a m b i o ( i n t x, i n t y)
{
in t aux;
aux=x;
x=y;
(c o n tin ú a )
www.FreeLibros.me
216 Capítulo 8 Funciones (prog ram ación m odular)
(c o n tin u a c ió n )
y=aux;
}
void main()
{
i n t n 1, n 2 ;
scanf("%d %cT, &n1 ,&n 2 ) ;
i n t e r c a m b i o (n 1 , n 2 ) ;
p r i n t f ( uLos v a l o r e s son n 1 = %d y n 2 = %c/", n 1 , n 2 ) ;
}
Los v a l o r e s son n 1 = 9 y n 2 = 10
www.FreeLibros.me
8.3 Funciones con paso d e parám etros 217
E l o p e ra d o r * e s u n a p u n ta d o r q u e “ a p u n ta ” a la d ire c c ió n d e la v a ria b le p a sa d a
c o m o a rg u m e n to . S e u tiliz a ta n to e n la d e c la ra c ió n d e lo s p a rá m e tro s fo rm a le s
d e la fu n c ió n c o m o e n el c u e rp o d e la m is m a . D e b e a p a re c e r a n te s d e l n o m b re de
un p a rá m e tro fo rm a l e n la c a b e c e ra p a ra in d ic a r q u e d ic h o p a rá m e tro s e rá p a sa d o
p o r re fe re n c ia , y d e b e a p a re c e r e n el c u e rp o d e la fu n c ió n a n te p u e s to al n o m b re
d e u n p a rá m e tro fo rm a l p a ra a c c e d e r al v a lo r d e la v a ria b le e x te rn a a la fu n c ió n y
re fe re n c ia d a p o r el p a rá m e tro fo rm a l.
O b se rv e el sig u ie n te e je m p lo , q u e es u n a v e rs ió n d e l p ro g ra m a a n te rio r. A q u í se
u tiliz a el p a so p o r re fe re n c ia , lo c u a l lu e g o d e la e je c u c ió n p re s e n ta re su lta d o s
d ife re n te s a lo s d e la v e rs ió n c o n p a so d e p a rá m e tro s p o r valo r:
# i n c l u d e < s t d i o . h>
v o id i n t e r c a m b i o ( i n t *x, i n t *y)
{
void main()
{
in t n 1,n 2 ;
O
(c o n tin ú a )
www.FreeLibros.me
218 Capítulo 8 Funciones (prog ram ación m odular)
(continuación)
scanf("%d %cT, &n1 ,&n 2 ) ;
inte rca m bio(& n 1 , &n2 ) ;
p r i n t f ( " L o s n ue vo s v a l o r e s son n 1 = %d y n 2 = *td", n 1 , n 2 ) ;
}
L a e je c u c ió n d e l p ro g ra m a es ig u a l al p ro g ra m a a n te r io r in ic ia e n el main
so lic ita n d o d o s v a lo re s q u e s e a lm a c e n a n e n m y n 2 . S u p o n g a q u e el u su a rio
te c le a 5 y 8. E sta s v a ria b le s s o n “ e n tre g a d a s ” a la fu n c ió n i n t e r c a m b i o , y c o m o
p a sa n p o r re fe re n c ia , d e e s e p u n to e n a d e la n te lo q u e su c e d a c o n x y y d e n tro d e la
fu n c ió n a fe c ta rá d ire c ta m e n te a lo s a rg u m e n to s — es d e cir, a m y n 2 — , p o r lo q u e
al fin a liz a r la fu n c ió n el m e n s a je q u e s e m o s tra rá e n p a n ta lla será:
Los n ue vo s v a l o r e s son n1 = 8 y n2 = 5
Ej e m p l o 8.11 Realizar una función que intercambie dos valores entre números,
utilizando un parámetro por valor y otro por referencia
void f u n c f i n t a , i n *b)
{
a=a+5;
*b= *b +2;
}
vo id m a i n ( )
{
i n t x,y;
scanf("%d %c/", &x,&y);
f u n c f x , &y ) ;
p r i n t f ( " E l v a l o r de x e s de %d y e l de y e s de %c/", x , y ) ;
}
www.FreeLibros.me
8.3 Funciones con paso d e parám etros 219
El v a l o r de x e s de 3 y e l de y e s de 9
C o m o x e n tr ó p o r v a lo r n o s e a fe c tó s u d a to o rig in a l; e n c a m b io y e n tró p o r
re fe re n c ia y c u a lq u ie r m o d ific a c ió n al p a rá m e tro b le a fe c ta . P o r e llo , al c o n c lu ir
la fu n c ió n , e in c lu s o fu e ra d e e lla , y te r m in ó c o n 9.
E je rc ic io s re s u e lto s
Función m a in
Descripción
In v o ca r la fu n c ió n menú.
In v o ca r la fu n c ió n se g ú n la o p c ió n e le g id a .
In v o ca r u n a fu n c ió n d e a c u e rd o c o n la e le c c ió n .
Variabl es
www.FreeLibros.me
220 Capítulo 8 Funciones (prog ram ación m odular)
[continuación)
Función m e n ú
Descripción
L ee r el v a lo r d e la o p c ió n .
R e g re sa r a la fu n c ió n m ain e l v a lo r e le g id o .
V a ria b le s
N o m b re T ip o U so
Op Entero A lm a c e n a l a o p e r a c i ó n d e s e a d a .
Función fa c to r ia l
Descripción
L e e r el n ú m ero .
Im p rim ir el fa c to ria l.
V a ria b le s
N o m b re T ip o U so
num Entero A lm a c e n a e l c á l c u l o d e l f a c t o r i a l .
Función p o te n c ia
Descripción
S o lic ita r la b a s e y el e x p o n e n te .
L e e r b a s e y e x p o n e n te .
C a lc u la r la p o te n c ia m u ltip lic a n d o la b a se , ta n ta s v e c e s c o m o lo in d iq u e el
ex p o n e n te .
www.FreeLibros.me
8.3 Funciones con paso d e parám etros
Im p rim ir la p o te n c ia .
Vari abl es
Nombre Tipo Us o
i Entero V a r i a b l e de c o n t r o l qu e c u e n t a l a re p e tició n .
Función ta b la
Descripción
S o lic ita r el n ú m e ro d e la ta b la y el lím ite .
L ee r el n ú m e ro y el lím ite .
L ee r la o p c ió n .
Variables
n Entero T a b l a de m u l t i p l i c a r .
Codificación
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
v o i d f a c t o r i a l ()
(c o n tin ú a )
www.FreeLibros.me
222 Capítulo 8 Funciones (prog ram ación m odular)
(continuación)
in t num;
double fa ct;
c l r s e r f );
p r i n t f ( " \ n \ n \ t F a c t o r i a l \ n u) ;
p r i n t f ( u\ t I n t r o d u c e un n u m e r o : ");
fact= 1;
f o r ( ;num>0 ;num- -)
fa ct *= num;
vo id p o t e n c ia f)
{
in t b ,p ,i;
double tmp;
c lrs c rf);
p r i n t f ( u\ n \ n \ t P o t e n c i a \ n " ) ;
s c a n f ( u%du, &b);
s c a n f ( n%du, &p);
tmp=b;
f o r ( i = 1 ; i< p ; i++)
tmp*=b;
p r i n t f ( u\ n \ t L a p o t e n c i a de %c/ a la %c/ es: % .01f.\n\n", b,p, tmp);
void t a b la ( )
{
in t n,lim it,i;
c l r s c r f );
p r i n t f ( u\ n \ n \ t T a b l a de m u l t i p l i c a r \ n " );
s c a n f ( 096dB, & n ) ;
p r i n t f ( n \ t H a s t a q ue numer o m o s t r a r a : ”) ;
s c a n f f "%cT, & lim it);
f o r ( i = 1; i < = l i m i t ; i ++)
www.FreeLibros.me
8.3 Funciones con paso d e parám etros 223
i n t menu()
{
in t op=Q;
c lrs c rf);
p r i n t f f " \ n \ n \ t M e n u . \ n H) ;
p r i n t f f " \n\t1) F a c t o r i a l . \ n " );
p r i n t f f " \n\t2) P o t e n c ia . \ n " );
p r i n t f f " \n\t3) T a b l a de m u l t i p l i c a r a n " ) ;
p r i n t f f " \n\t4) S a l i r . \ n ");
w h i l e fop<1 || op >4)
{
p rin tff" \n\t > ");
scanf("%d", &op);
}
r e t u r n op;
i n t m ainf)
{
in t opc = 0;
w h i l e ( o p c l =4)
{
o p c =menu( ) ;
iffo p c == 1 )
{
fa c to ria lf);
}
else i f f o p c == 2 )
{
p o t e n c ia f );
}
else i f ( o p c == 3)
{
ta b la f);
(c o n tin ú a )
www.FreeLibros.me
224 Capítulo 8 Funciones (prog ram ación m odular)
(continuación)
}
getch();
}
p rin tf ("\n \n \n \t adiós “) ;
getch();
return 0;
}
Explicación
L a e je c u c ió n d e l p ro g ra m a s e in ic ia e n la fu n c ió n p rin c ip a l c o n la in v o c a c ió n d e la
fu n c ió n menú. E l c o n tro l v a a e s ta fu n c ió n y s e m u e s tra n c u a tr o o p c io n e s a e sc o g e r
p o r el u su a rio ; d e sp u é s d e e le g ir u n a, el v a lo r c o rre s p o n d ie n te s e d e v u e lv e al
p ro g ra m a p rin c ip a l. E n c a s o d e q u e el u s u a rio te c le e u n v a lo r q u e n o e s té e n tre 1 y
4, el m e n ú s e re p e tirá .
U n a v e z e le g id a la o p c ió n , s e in v o c a rá a la fu n c ió n c o rre s p o n d ie n te o s e te rm in a rá
la e je c u c ió n d e l p ro g ra m a si s e e lig ió 4 . E n c a s o d e lla m a rs e a u n a fu n c ió n , é s ta se
e je cu ta; al fin aliz a r, s e lle v a el c o n tro l a la fu n c ió n p rin c ip a l, s e in v o c a la fu n c ió n
menú y s e re p ite n lo s p aso s.
E n c a s o d e e le g ir el n ú m e ro 4 , s e im p rim e la p a la b ra “ a d ió s ” y te rm in a la
e je c u c ió n d e l p ro g ra m a .
Ejecución
M e n u.
F a cto ria l.
Potencia.
T a b l a de m u l t i p l i c a r
S a lir.
>1
www.FreeLibros.me
8.3 Funciones con paso d e parám etros
F a cto ria l
I n t r o d u c e un número: 4
E l r e s u l t a d o es: 24
M e n u.
F a cto ria l.
Potencia.
T a b l a de m u l t i p l i c a r
S a lir.
Adiós.
Eje r c ic io 8.2 Escribir un programa con una función que realice las siguientes
operaciones con un número: raíz cuadrada, cuadrado y cubo.
M ostrar el resultado en forma de tabla, con los núm eros del
1 al 10
Descripción
G e n e ra r lo s n ú m e ro s d e l 1 al 10.
In v o ca r la fu n c ió n c o n c a d a u n o d e lo s n ú m e ro s d e l 1 al 10.
Im p rim ir el re su lta d o .
Tabla d e p a r á m e t r o s
ra íz Peal Parámetro p o r r e f e r e n c i a p a r a c á l c u l o de p o t e n c i a \ .
(c o n tin ú a )
www.FreeLibros.me
226 Capítulo 8 Funciones (prog ram ación m odular)
(continuación)
Tabl a d e p a r á m e t r o s
Codificación
l * F u n c i o n e s co n p a r á m e t r o s p o r v a l o r * /
M o s t r a r una t a b l a c on l o s números d e l 1 al d i e z c on s u s r e s p e c t i v a s
potencias \, 2 y 3 (ra iz cuadrada, cuadrado y cubo). */
v o i d p o t e n c i a s f i n t n, f l o a t * r a i z , in t *cuad, in t *cubo)
{
*raiz= sq rt(n);
*cuad=n*n;
*c ubo=pow(n,3);
mai n( )
{
in t i, cu ad , c ub o;
float r a i z ;
c l r s c r ( );
p r i n t f ( " \ n \ t numero\t r a i z \ t c u a d r a d o c u b o \ n m) ;
for ( i = 1 ; i < = 1Q;i++)
{
p o t e n c i a s (i , & r a i z , &c u ad ,& cu b o);
p r i n t f ( * \ t%6d %6 . 2 f %6d 9e6d\ n” , i , r a i z , c ua d , c ub o) ;
}
getchf);
return 0;
}
www.FreeLibros.me
Resumen 227
Explicación
S e m u e s tra el e n c a b e z a d o d e la ta b la y, c o n el c ic lo for, s e g e n e ra n lo s n ú m e ro s
del 1 al 10 (q u e es el n ú m e ro d e o c a sio n e s a lla m a r la fu n c ió n p o t e n c i a s ). E ste
c ic lo c o n tie n e d o s in s tru c c io n e s . L a p rim e ra lla m a la fu n c ió n , c o n el s ím b o lo
& a n te p u e s to a los p a rá m e tro s d e re fe re n c ia (q u e e n e s e m o m e n to p u e d e n te n e r
c u a lq u ie r v a lo r). A l e je c u ta rs e p o te n c ia s s e re a liz a n la s o p e ra c io n e s re s p e c tiv a s y
se a lm a c e n a n e n la d ire c c ió n d e m e m o ria c o rre s p o n d ie n te a c a d a p a rá m e tro . L a
s ig u ie n te in s tru c c ió n m u e s tra el v a lo r d e la s v a ria b le s, q u e s o n la ra íz c u a d ra d a ,
el c u a d ra d o y el c u b o d e c a d a n ú m ero .
Ejecución
numero ra íz c u a d r ad o cubo
1 1.00 1 1
2 1.41 4 8
3 1.73 9 27
4 2.00 16 64
5 2.24 25 125
6 2.45 36 216
7 2.65 49 343
8 2.83 64 512
9 3.00 81 729
10 3. 16 100 1000
Resum en
E n e s te c a p ítu lo s e a n a liz ó la p ro g ra m a c ió n m o d u la r, u n a té c n ic a q u e c o n s is te e n
re s o lv e r p o r s e p a ra d o u n p ro b le m a , d a n d o o rig e n a la c re a c ió n d e m ó d u lo s
(p e q u e ñ o s p ro g ra m a s lla m a d o s fu n c io n e s).
www.FreeLibros.me
228 Capítulo 8 Funciones (prog ram ación m odular)
C a d a m ó d u lo o fu n c ió n s e d is e ñ a , s e c o d ific a y s e p ro c e s a d e m a n e ra
in d e p e n d ie n te .
E l u so d e fu n c io n e s p erm ite:
R e d u c ir la c o m p le jid a d d e l p ro g ra m a ( “ d iv id e y v e n c e rá s ” ).
E lim in a r c ó d ig o d u p lic a d o .
C o n tro la r fá c ilm e n te lo s e fe c to s d e lo s c a m b io s.
O c u lta r d e ta lle s d e im p le m e n ta c ió n .
R e u tiliz a r el c ó d ig o .
F a c ilita r la le g ib ilid a d d e l c ó d ig o .
In d e p e n d ie n te m e n te d e to d a s la s fu n c io n e s, main d e b e e x is tir s ie m p re e n u n
p ro g ra m a e n C , d a d o q u e es la fu n c ió n p rin c ip a l y s ó lo a p a rtir d e é s ta s e p o d rá
h a c e r u so d e la s d e m á s.
S in p a so d e p a rá m e tro s.
C o n p a so d e p a rá m e tro s.
Q u e re g re s e n valor.
Q u e n o re g re s e n valor.
C o m b in a n d o la s a n te rio re s.
U n a fu n c ió n p u e d e te n e r p a so d e p a rá m e tro s p o r v a lo r o p o r re fe re n c ia . L os
p a rá m e tro s p o r v a lo r s o n a q u e llo s e n lo s c u ales la fu n c ió n re c ib e s ó lo u n a
c o p ia d e l c o n te n id o d e lo s a rg u m e n to s. L o s p a rá m e tro s p o r re fe re n c ia s o n
a q u e llo s a trav é s d e lo s c u ales la fu n c ió n re c ib e la d ire c c ió n e n m e m o ria de
los a rg u m e n to s , h a c ie n d o p o s ib le la m o d ific a c ió n d e e sto s d a to s d e n tro
de la fu n c ió n y m a n te n ie n d o lo s c a m b io s al te rm in a r la e je c u c ió n d e la
ftin c ió n m e n c io n a d a .
www.FreeLibros.me
Evaluación 229
Evaluación
1. T é c n ic a q u e c o n s is te e n d iv id ir u n p ro b le m a e n p ro b le m a s m á s p e q u eñ o s
p a ra re s o lv e rlo s p o r s e p a ra d o _______________________________________.
3 . C o n ju n to d e in s tru c c io n e s q u e s e a g ru p a n b a jo u n m is m o n o m b re
4 . M e n c io n e tre s v e n ta ja s q u e el u so d e fu n c io n e s o fre c e
5 . ¿ E l u so d e la fu n c ió n main es o p c io n a l? ___________________ .
6 . F u n c io n e s q u e n o re q u ie re n in fo rm a c ió n d e s u e n to rn o y p a ra su
e je c u c ió n b a s ta c o n s u lla m a d a : ___________________ .
7 . F u n c io n e s q u e c o m o re s u lta d o d e s u e je c u c ió n g e n e ra n u n v a lo r
e n tre g á n d o lo a s u e n to rn o : ___________________ .
9 . ¿ Q u é es u n a v a ria b le g lo b a l? _______________________________________.
www.FreeLibros.me
230 Capítulo 8 Funciones (prog ram ación m odular)
Ejercicios propuestos
2 . R e a liz a r c u a tro fu n c io n e s p a ra c a lc u la r el c u a d ra d o d e u n n ú m e ro : u n a de
ellas s in p a rá m e tro s , o tra q u e d e v u e lv a el re s u lta d o a la fu n c ió n p rin c ip a l, o tra
co n p a rá m e tro s p o r v a lo r y q u e d e v u e lv a el re s u lta d o a la fu n c ió n p rin c ip a l,
y fin a lm e n te o tra c o n p a rá m e tro s: u n o d e v a lo r p a ra el n ú m e ro y o tro p o r
re fe re n c ia p a ra el re su lta d o .
3 . R e a liz a r u n a fu n c ió n q u e le a h a s ta 10 v a lo re s p a ra u n a rre g lo , e n v iá n d o lo
c o m o p a rá m e tro , y c a lc u le e n o tra fu n c ió n el p ro m e d io , el v a lo r m ay o r, el
v alo r m e n o r y lo s m u e s tre e n la fu n c ió n p rin c ip a l.
www.FreeLibros.me
Ejercicios resueltos
9.1 Secuenciación
www.FreeLibros.me
232 Capítulo 9 Ejercicios resueltos
void main()
{
textbackground(YELLOW);
textcolor(B LU E);
c lrs c rf);
f loat b , h , l , v ;
p r i n t f ( " C a l c u l a r e l volumen de l a b a l a s t r a de 240 v o l t s \ n " ) ;
printf("Dam e l a b a s e \ n " );
scanf("% f", & b);
printf("Dam e l a a lt u r a \ n " );
s c a n f f "% f", & h);
printf("Dam e l a l o n g i t u d \ n " );
s c a n f ( ' % f ■, & 1 ) ;
v=b*h*l;
p rin tf("e l volumen de l a b a l a s t r a e s %.2 f " , v ) ;
getchf);
void main()
{
textbackground(YELLOW);
textcolor(R ED );
c l r s c r f );
float p r e c i o , c ;
p r i n t f ("P recio por s a lid a e l e c t r i c a \ n " );
printf("Dam e l a c a n t i d a d de s a l i d a s tomando en c u e n t a que c a d a a p a g ad o r y
c o n t a c t o e s una s a l i d a \ n " ) ;
scanf("% f", & c);
precio= salida*c;
p r i n t f ( " e l p r e c io por l a s s a l i d a s es % f " , p recio);
g e t c h f );
www.FreeLibros.me
9.1 Secuenciación 233
{
c l r s c r ( );
float a , b , c , x , y ;
prin tf("P rogram a para c a lc u la r e l vértice de una p a r a b o l a \ n " ) ;
printf("Dam e e l coeficiente d e l termino c u a d r a t ic o ") ;
x=-b/(2*a ) ;
y=((4*a*c)-(b*b))/(4*a);
p rin tf("E l vértice e s t a en l a coordenada ( % 5 . 2 f , * 5 . 2 f ) " , x , y ) ;
getchf);
/* Á n g u l o s c o m p l e m e n t a r i o s y s u p l e m e n t a r i o s */
# i n c l u d e < s t d i o .h>
t t i n c l u d e < c o n i o .h>
v o id main()
{
clrscrf);
www.FreeLibros.me
234 Capítulo 9 Ejercicios resueltos
/* M a g n i t u d de v e c t o r e s en e l e s p a c i o */
#include<stdio.h>
tíinclude<conio.h>
# i n c lu d e< ma th . h>
v o id main()
{
c l r s c r f );
float c1 t c 2 , c 3 , m a g ;
p r i n t f ( " M a g n i t u d de v e c t o r e s en e l e s p a c i o \ n ,,) ;
p r i n t f ( " Dame l a lera, componente n) ;
s c a n f ( "% f" , & c 1 ) ;
p rin tff" Dame l a 2da. componente " ) ;
s c a n f f "% f" , & c 2 ) ;
p r i n t f ( " Dame l a 3era. componente ");
s c a n f f "% f" , & c 3 ) ;
m a g = s q r t( c1 * c1 +c 2 *c 2+ c 3* c3 );
p r i n t f f " Su m a g n i t u d e s i g u a l a 96 . 2 f " , m a g ) ;
getchf);
{
textcolor(R ED );
www.FreeLibros.me
9.1 Secuenciación 235
t e x t b a c k g r o u n d (B L A C K ) ;
c l r s c r ( );
float ppm,s o l u t o , s o l v e n t e ;
g o t o x y f1 8 , 2 );
p r in t f f" P r o g r a m a para c a l c u l a r l a s p a rte s po r m i l l ó n en una s o l u c i o n \ n " ) ;
p r i n t f ( " \ n L a masa d e l s o l u t o y d e l s o l v e n t e deben e s t a r en l a s mismas
u n id ad e s\n ");
p rin tff"\n Introduce l a masa d e l s o l u t o \ n " );
s c a n f f "%f", & s o l u t o ) ;
p r i n t f ( " \n A h o r a l a masa d e l s o l v e n t e \ n " ) ;
s c a n f f "% f", & s o l v e n t e ) ;
p p m= s o l u t o / s o l v e n t e * 1 000000 ;
p r i n t f f " \ n %f ppm",ppm);
g e t c h f );
/ * C a l c u l a r e l p o r c e n t a j e en masa*/
# i n c l u d e < s t d i o . h>
f t i n c l ude <coni o. h>
void m a in f)
{
te xtco lorfR E D );
t e x t b a c k g r o u n d (BLACK);
c l r s e r f );
f loat pm, comp, s o l u c i ó n ;
g o to x y f3 2 ,2 );
p rin tff"C a lu la e l % en m a s a \ n " ) ;
p r i n t f ( " \n I n t r o d u c e l a masa d e l componente a c a l c u l a r \ n " ) ;
s c a n f f "% f" , &comp);
p r i n t f f " \ n A h o r a l a masa t o t a l de l a solu ción -Re cuer da que l a s masas
t i e n e n qu e e s t a r en l a s mismas u n i d a d e s - \ n " ) ;
s c a n f f ”%f", & s o l u c i o n ) ;
pm=comp/ s o l u c i o n * 700;
p r i n t f ( " \n p o r c i e n t o en m a s a " , p m ) ;
getchf);
www.FreeLibros.me
236 Capítulo 9 Ejercicios resueltos
/ *Número_de_ 1 a d r i l í o s * /
# i n c l u d e < s t d i o .h>
f t i n c l u d e < c o n i o . h>
void main()
{
i n t me,ni;
c l r s c r ( );
p r i n t f ( " T e i n d i c a r e e l numero de l a d r i l l o s que n e c e s i t a s \ n d i m e
cuantos metros cuadrados c o n s t r u i r á s " );
s c a n f ( "%cT, &mc);
nl=mc*72;
p r i n t f ( " E l numero de l a d r i l l o s que n e c e s i t a s es%d", n i ) ;
getchf);
/ * E s c a l o n e s */
# i n c l u d e < s t d i o . h>
Uinclude<conio.h>
v o id main()
{
in t esc,d;
c lrs c rf);
printf("Dam e l a d i s t a n c i a h o r i z o n t a l y t e d i r e e l numero de
e s c a l o n e s \ndame l a d ista n cia en cm") ;
scanf("%d",&d);
es c =d /3 0 ;
p r i n t f ( " E l numero de e s c a l o n e s e s W " , e s c ) ;
getchf);
www.FreeLibros.me
9.1 Secuenciación 237
# i n c l u d e < c o n i o . h>
void m ain()
{
i n t num;
textbackground(54);
te x tco lo r(1 5 );
c l r s c r ( );
g o t o x y ( 1 5 , 5 ) ; p r i n t f ( " I n t r o d u c e una c a n t i d a d e n t e r a de 4 d í g i t o s
como máximo ") ;
scanf("%d",&num);
p r i n t f f " \ n \ n \ n E s t e numero t i e n e : " ) ;
p r i n t f f " \n\n%d u n i d a d e s de m i l l a r " , num/ 1 0 0 0 ) ;
num = numWQOQ;
p r i n t f f " \n%c/ c e n t e n a s " , num/ 1 0 0 ) ;
num=num96l 0 0 ;
p r i n t f f " \n%c/ d e c e n a s " , num/ 1 0 ) ;
num=num96l 0 ;
p r i n t f f " \n96d u n i d a d e s " , num/ 1 ) ;
num=nump6l;
getchf);
{
e lrse r ();
float e, f, q;
p rin tf ( " E l programa c a l c u l a e l campo e l e c t r i c o \ n " ) ;
p rin tf ("Dame l a f u e r z a \ n " );
e=flq;
p rin tf ("El campo e l é c t r i c o e s %6 . 2 f , e);
getch ();
www.FreeLibros.me
238 Capítulo 9 Ejercicios resueltos
/ * f í e s i s t e n c i a */
ttinclude <c o ni o. h >
üinclude <stdio.h >
v o i d mai n ()
{
float v, a, r;
c lrs c r ();
p rin tf ( " E l programa c a l c u l a l a r e s is t e n c ia \ n " );
p rin tf ("Dame e l v o l t a j e \ n " );
s c a n t ( " * f m, & v);
p rin tf ("Dame e l am peraje\n");
s c a n t ("%f", & a);
r=v/a;
p rin tf ("la re siste n cia e s %6 . 2 f o m h s " , r);
getch ();
/* P ro g r a m a p a r a c a l c u l a r e l c o e f i c i e n t e de v a r i a c i ó n */
#include<stdio.h>
t t i n c l u d e < c o n i o . h>
void main()
{
c l r s c r ();
float S, X, CV;
in t op;
p r i n t f ( " Programa p a r a c a l c u l a r e l c o e f i c i e n t e de v a r i a c i o n \ n " ) ;
p r i n t f f " 1 .Muestra\n 2 . P o b l a c io n \ n " );
p r i n t f ("E lig e una o p c i o n ") ;
scanf("%d",&op);
p r i n t f ( " Dame l a m edi a ") ;
www.FreeLibros.me
9.2 Selectiva sim ple 239
CV=S/X*100;
i f ( o p — 1) p r i n t f ( " E l c o e f i c i e n t e de v a r i a c i ó n m u e s t r a l es
%. 2 f % \ n " , C V ) ;
i f ( o p — 2) p r i n t f ( " E l c o e f i c i e n t e de v a r i a c i ó n p o b l a c i o n a l es
%. 2f%\/7‘ , C V ) ;
if ((op!=1) && ( o p ! = 2 ) ) p r i n t f ( "Tu o p c i o n no e s t a en e l menú");
getchf);
/* P r o d u c t o p u n t o de v e c t o r e s en R2 y R3 */
# i n c l u d e < c o n i o . h>
# i n c l u d e < s t d i o .h>
t t i n c l ude <mat h . h >
v o id main()
{
clrscr();
float a1 , a 2 , a 3 , b 1 , b 2 , b 3 , p r o d ;
in t op;
p r i n t f ( " P r o d u c t o p u n t o de v e c t o r e s en R2 y R 3 \ n " ) ;
if (op==1 )
{
prin tf("N ota: Usa un e s p a c i o e n t r e c a d a n u m e r o \ n " ) ;
p r i n t f ( “Dame e l p r i m e r v e c t o r ") ;
s c a n f ( ■%f%f“ , & a 1 , & a 2 ) ;
p r o d = s q r t ( a 1 *b 1 +a2 *b 2 ) ;
p r i n t f ( " E l p r o d u c t o p u n t o e s %. 2 f " , p r o d ) ;
www.FreeLibros.me
240 Capítulo 9 Ejercicios resueltos
}
i f (op==2)
{
p r i n t f f "N o t a : Usa un e s p a c i o e n t r e c a d a n u m e r o \ n " ) ;
p r i n t f ( " Dame e l p r i m e r vector ") ;
s c a n f ( " 96f96f96 f " , & a 1 , & a 2 , &a3) ;
p r i n t f ( " Dame e l segu ndo v e c t o r ");
s c a n f ( " 96f96f96 f " , & b 1 , & b 2 , &b3) ;
p r o d = sq rt (a 1* b1 + a2 *b 2+ a 3* b3 );
p r i n t f ( " E l p r o d u c t o p u n t o e s %. 2 f " , p r o d ) ;
}
getch();
/* P e n d i e n t e de una r e c t a dados d o s p u n t o s */
{
c l r s c r f );
float x1 , x 2 , y 1 , y 2 , m , X ;
p r i n t f ( uP e n d i e n t e de una r e c t a d ad o s d o s p u n t o s \ n u) ;
p r i n t f f "P r i m e r a c o o r d e n a d a \ n " ) ;
p r i n t f ( "Segunda c o o r d e n a d a \ n " ) ;
printf("Dam e l a X de l a 2da. coordenada ") ;
s c a n f ( " * f " , & x 2 );
printf("Dam e l a Y de l a 2da. coordenada ");
scanf("% f",&y2);
X =x1 -x2;
i f (XI =9)
www.FreeLibros.me
9.2 Selectiva sim ple 241
m=( y1-y2)/ X;
p r i n t f ( " L a p e n d i e n t e de l a r e c t a es
}
i f ((X==Q) && ( y 1 ! =y2) ) p r i n t f ( " L a r e c t a es v e r t i c a l \"pendiente
in d e fin id a \ " " ) ;
if ((X = = 0) && ( y 1 — y 2 ) ) p r i n t f ( " E s un p u n t o \"no t i e n e p e n d i e n t e \ " " ) ;
getchf);
/*F ó r m u l a "vena"*/
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
void main()
{
textco lor(R E D );
t e x t b a c k g r o u n d (BLACK);
c l r s c r ( );
f loat V, E, N , A ;
c h a r op;
gotoxy(32,2);
prin tf("U so de l a form ula VENA\n I n d i q u e que d e s e a c a l c u l a r : \ n " ) ;
p r i n t f ( "A)Volumen B )E q u iv alen tes qu im icos\n ");
p r i n t f ( "C)Norm alidad D)Gramos de s u s t a n c i a \ n " ) ;
scanf("% c",&op);
i f (op=='A ' )
{
p r i n t f ( " \n Dame l o s gramos d e l s o lu t o \ n " );
s c a n f f "% f" , & A ) ;
p r i n t f ( " \n A h o r a l o s e q u iva le n te s qu im icos\n ");
scanf(">6f",&E);
p r i n t f ( " \n P o r u l t i m o l a n o r m a l i d a d \ n " ) ;
scanf("*6f",&N);
V=A/(E*N);
p r i n t f ( " \ n * f L" ,V) ;
}
i f ( o p == ' B[)
www.FreeLibros.me
242 C apítulo 9 Ejercicios resueltos
}
i f ( op=='C' )
{
p r i n t f ( "\n Dame l o s gramos d e l s o l u t o \ n " );
scanf('% f*,&A);
p r i n t f ( "\n A h o r a l o s e q u iva le n te s quim icos\n");
scanf('% f*,&E);
p r i n t f ( " \ n Por ultim o e l volumen\n");
s c a n f f "% f" , & V ) ;
N=A/(E*V);
p r i n t f ( m\ n H f E C / L " , N ) ;
}
i f (o p==' D' )
{
p r i n t f ( " \ n Dame e l volumen\n");
s c a n f ( "% f1, & V ) ;
p r i n t f ( " \ n Ahora l o s e q u i v a l e n t e s q u i m i c o s \ n " );
scanf("*f",&E);
p r i n t f ( " \ n Por ultim o l a n o r m a li d a d \ n " );
scanff W
96 f " , &N) ;
A=V*E*N;
p r i n t f ( " \ n % f L " ,A ) ;
}
g e tc h f);
/*F ó r m u l a PV=nRT*/
# i n c l u d e < s t d i o . h>
www.FreeLibros.me
9.2 Selectiva sim ple 243
# i n c l u d e < c o n i o . h>
Udefine R 0.0821
void m ain()
{
textco lor(R E D );
textbackground(BLACK);
c lrs c rO ;
f loat P , V , n , T;
c h a r op;
g oto xy(33,2);
p r i n t f ( " E c u a c i ó n d e l gas id e a l\ n Q u e desea c a l c u l a r ? \ n " );
p rin tf("\n A )P resió n B)Volumen C)Moles D ) Tempera t u r a \ n " ) ;
scanf("% c",&op);
i f ( o p = = ' A 1)
{
p r i n t f ( " \n Dame l o s m o l e s \ n u) ;
s c a n f ( " * 6 f u, & n ) ;
p r i n t f ( " \n A h o r a l a t e m p e r a t u r a (e n K ) \ n " ) ;
scanf("*6f",&T);
p r i n t f ( " \n F i n a l m e n t e e l volumen (en L ) \ n " ) ;
s c a n f ( " * 6f t' , & V ) ;
P=n*fí*T/V;
p rin tf("\n % f atm ",P);
}
i f ( op = = 'fí' )
{
p r i n t f ( " \n Dame l o s m o l e s \ n n) ;
s c a n f ( " 96 f " , & n ) ;
p r i n t f ( " \n A h o r a l a t e m p e r a t u r a (e n K ) \ n " ) ;
s c a n f ( B96 f ” , & T ) ;
p r i n t f f " \ n Finalm ente l a p r e s ió n (en a t m ) \ n " ) ;
s c a n f f "% f" , & P ) ;
V=(n*fí*T)/P;
p r i n t f ( " \n%f L " , V ) ;
}
i f ( op==' C ' )
{
p r i n t f f " \ n Dame l a presión (en a t m ) \ n " ) ;
scanf(">6f",&P);
www.FreeLibros.me
244 Capítulo 9 Ejercicios resueltos
p r i n t f ( " \n A h o r a l a t e m p e r a t u r a (e n K ) \ n " ) ;
s c a n t ("% f",&T);
p r i n t f ( " \ n F i n a l m e n t e e l volumen (en L ) \ n " ) ;
s c a n t ( "% f" , & V ) ;
n=(P*V) / (R*T) ;
p r i n t f ( " \n96 f m o l e s " , n ) ;
}
i f ( o p == ' D ' )
{
p r i n t f ( " \ n Dame l o s m o l e s \ n " ) ;
s c a n t f"% f",& n );
p r i n t f ( " \ n Ahora l a presión (en a t m ) \ n " ) ;
s c a n t ( "% f" , & P ) ;
p r i n t f ( " \ n Finalm ente e l volumen (e n L ) \ n ") ;
s c a n t ( "% f" , & V ) ;
T=(P*V)/ ( n * R ) ;
p r i n t f ( " \n%f K " , T ) ;
}
getchf);
/*Good M a r k Company*I
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
Hdefine mon 1 20000
void main()
{
i n t m am ,m an, i ns ,dp , t o t a l ;
c l r s e r f );
p r i n t f ("C alcu la el costo in d ir e c t o t o t a l de c a d a d e p a r t a m e n t o
de l a Good M a r k Company\ n " ) ;
p r i n t f ( "Depart ament o d e l que n e c e s i t a s s a b e r e l t o t a l de su c o s t o
i n d i r e c t o \ n " );
p r i n t f ( " 1 ) d e p a r t a m e n t o de c o r t e \ n 2 ) d e p a r t a m e n t o de i m p r e s i o n \ n " ) ;
s c a n t ("%d",&dp);
www.FreeLibros.me
9.2 Selectiva sim ple 245
{
total=mam+man+ins+mon;
p r in t f ("E l costo in d ir e c t o del d e p ar t a me nt o de c o r t e e s $%c/", t o t a l ) ;
}
i f ( d p — 2)
{
total=(mam+man+ins+mon)- ( . 2 0 *(mam+man+ins+mon)) ;
p r i n t f ("E l costo in d ir e c t o del d e p ar t a me nt o de i m p r e s i ó n
es to ta l);
}
getch();
/*Cimientos*/
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
void m ain()
{
float m,c;
i n t m3;
c l r s c r f );
p r i n t f ( "Te i n d i c a r e l a c a n t i d a d de p i e d r a que n e c e s i t a s p a r a t u s
c i m i e n t o s , ya sean c o l i n d a n t e s o c e n t r a l e s \ n C u a n t o s
m e t r o s de c i m i e n t o s ? \ n " ) ;
s c a n f ( " W , &m);
p r i n t f (" E l cim iento, es c e n t r a l o colindan te?\ncolin dante= 1\
n ce n tra l= 2 \n");
s c a n f ( n96 d " , & c ) ;
www.FreeLibros.me
246 Capítulo 9 Ejercicios resueltos
if (c==1) m3=m*1.5;
i f (c==2) m3=m*2;
getch();
l * P r o gr a ma í n d i c e de masa c o r p o r a l */
# i n c l u d e < s t d i o . h>
f t i n c l u d e < c o n i o . h>
v o id main()
{
float p e s o , estatura, ín d ice ;
textbackground(5);
te x tc o lo r(2) ;
c l r s c r f );
g o t o x y ( 5 , 5);
gotoxy(1,9);
g o to xy( 1 , 11);
p r i n t f ( uI n t r o d u c e t u e s t a t u r a (e n m e t r o s ) : ") ;
s c a n f f "%f", & e s t a t u r a ) ;
www.FreeLibros.me
9.2 Selectiva sim ple 247
{
i n t h, c, h 1 , h2, h3;
c lrs c r ();
p rin tf ( " E l programa i n d i c a si el compuesto e s a l c a n o , alq ueno o a l q u i n o
según e l numero de h i d r o g e n o s \ n " ) ;
p rin tf ("Dame e l numero de c a r b o n o s \ n " ) ;
s c a n f ("%d*, & c);
p rin tf ("Dame e l numero de h i d r o g e n o s \ n " ) ;
s c a n f ("%d", & h);
h1=2*c+2;
h 2 =2 *c;
h3=2*c-2;
if (h==h1 ) p r i n t f ( " E l compuesto e s un a l c a n o " ) ;
if (h==h2 ) p r i n t f ( " E l compuesto e s un a l q u e n o " ) ;
if (h==h3) p r i n t f ( " e l compuesto e s un a l q u i n o " ) ;
if (h!=h1 && h!=h2 && h!=h3) p r i n t f ( " E l compuesto no e x i s t e " ) ;
getch ();
{
in t d;
clrs c r ();
p rin tf (" sensor o p t ic o \ n " );
p rin tf ("Dame l a d ista n cia a l a qu e t e e n c u e n t r a s , en m e t r o s \ n " ) ;
s c a n f r% c/\ & d);
i f ( d >0 && d<=1 0 ) p r i n t f ("El s e n s o r e n t r a en f u n c i o n a m i e n t o y s e a c t i v a
la lu z");
www.FreeLibros.me
248 Capítulo 9 Ejercicios resueltos
/ * T e m p o r i z a d o r */
Uinclude <stdio.h >
Uinclude <c o ni o. h >
v o i d mai n ()
{
clrs c r ();
float t , 1 ;
l *Compuesto q u í m i c o * /
Uinclude <c o ni o. h >
Uinclude <stdio.h >
v o i d mai n ()
www.FreeLibros.me
9.2 Selectiva sim ple 249
e lrse r ();
i n t H, O, c 1, c 2, C;
p rin tf ( " Compuesto q u i m i c o \ n " ) ;
p rin tf ( " E l programa i n d i c a el compuesto s i une s c a r b o n o c on o x i g e n o
e hidrogeno o s o lo carbono e h id r o g e n o \ n " );
p rin tf ("Que componente d e s e a s u n i r , 1)C 2)0, 3)H\n");
s c a n f (",96d", & c 1) ;
p rin tf ("C u a l o t r o \ n " );
s c a n f ("%d", & c2) ;
i f (c1==1 && c2==3) p r i n t f ( " E l compuesto c on comp onen te s %c/ y
%c/ e s un h i d r o c a r b u r o \ n ” , c 1 , c 2 ) ;
i f (c1==2 && c2==3) p r i n t f ( “E l compuesto c on comp onen te s %c/ y
%c/ e s a g u a \ n " , c 1 , c 2 ) ;
i f (c1==3 && c2==2) p r i n t f ( " E l compuesto c on comp onen te s %c/
y %c/ e s a g u a \ n " , c 1 , c 2 ) ;
i f ( c 1==2 && c 2 ==1) p r i n t f ( " E l compuesto c on comp onen te s %c/
y %d e s un o x i d o de c a r b o n o \ n " , c 1 , c 2 ) ;
i f ( c 1==1 && c 2 ==2) p r i n t f ( " E l compuesto c on comp onen te s %c/
y %c/ e s un o x i d o de c a r b o n o \ n " , c 1 , c 2 ) ;
i f (c1==3 && c2==1) p r i n t f ( " E l compuesto c on comp onen te s %c/
y %c/ e s un h i d r o c a r b u r o \ n " , c 1, c2) ;
getch ();
/*A p a r a t o s e l é c t r i c o s */
t t i n e l u d e < c o n i o . h>
# i n c l u d e < s t d i o . h>
#i nclude<MATH. H>
void m a in f)
{
clrs c r ();
in t op;
float i , p, r;
p rin tf ( "A p a r a t o s e l é c t r i c o s y a l g u n o s de s us c a l c u l o s \ n " ) ;
www.FreeLibros.me
250 Capítulo 9 Ejercicios resueltos
p rin tf (" S e l e c c i o n e s u o p c i o n \ n 1 ) p o t e n c i a \ n 2 ) i n t e n s i d a d \ n 3 )
r e s i s t e n d a \ n " );
scanf ("%d", &op);
i f (op== 1)
{
p r i n t f ("Potencia \ndame l a in t e n s id a d \ n " );
p= i*i*r;
p r i n t f ( " L a p o t e n c i a d e l a p a r a t o es % 7 .2 f \ n " , p ) ;
í f ( op ==2 )
{
p r i n t f ( " Intensidad\ndame l a p o te n c ia \ n " );
s c a n f ("%f",&p);
p r i n t f ("Dame l a r e s i s t e n c i a \ n " );
s c a n f ("%f", &r);
i= s q rt( p lr) ;
p r i n t f ( " L a i n t e s i d a d d e l c i r c u i t o e s % 7 .3 f \ n " , i ) ;
i f ( o p ==3)
{
p r i n t f ( "R e s i s t e n c i a \ n d a m e l a in t e n s id a d \ n " );
scanf & i);
p r i n t f ("Dame l a p o t e n c i a \ n " ) ;
scanf &p);
r= p/(i* i);
p r i n t f ("La r e s is t e n c ia es % 7 .2 f \ n " , r ) ;
getch();
www.FreeLibros.me
9.3 Selectiva d o b le
/*humedad_construccion*/
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
void m ain()
{
i n t m 3, hf p ;
c lrs c rf);
p rin tff" T e in d ica re el c o s t o de t u p e d i d o según e l c o n c r e t o que n e c e s i t a s
y l o s m3 qu e d e s e e s \ n c u a n t o s m3 de c o n c r e t o n e c e s i t a s ? \ n " ) ;
scanf("%d",&m3);
p r i n t f f "La humedad en e l l u g a r de l a c o n s t r u c c i ó n s o b r e p a s a e l 8096 ? \ n s i
e s a s i marca 1 \nde l o c o n t r a r i o marca 2 \ n " ) ;
scanf("% d",&h);
if (h==1)
{
p=m3*700;
p rin tf("S i la humedad p a s a e l 80%, n e c e s i t a s un c o n c r e t o de 2 0 0 kg/cm 2
y e l p r e c i o de t u p e d i d o e s % d ", p );
}
else
{
p=m3*500;
p rin tf("S i la humedad no p a s a e l 80%, n e c e s i t a s un c o n c r e t o de 150kg/cm2
y e l p r e c i o de t u p e d i d o es%c/",p^;
}
g e tc h f);
/*Sensor*/
Hinclude <stdio.h >
www.FreeLibros.me
252 Capítulo 9 Ejercicios resueltos
{
in t d;
c lrs c r ();
p rin tf ("S ensor o p t i c o \ n " );
p rin tf ("Dame l a d ista n cia a l a qu e t e e n c u e n t r a s , en m e t r o s \ n " ) ;
s c a n f ( m* d m, & d);
i f (d>0 && d<=10) p r i n t f ("El s e n s o r e n t r a en f u n c i o n a m i e n t o y s e a c t i v a
la lu z ");
else
p rin tf ( " L a l u z no s e e n c e n d e r á " ) ;
getch ();
/ * R e s i s t e n c i a s s e r i e o p a r a l e l o */
# i n c l u d e < c o n i o . h>
# i n c l u d e < s t d i o . h>
void main()
{
float r , rp, r 1 , r2, r3;
in t op;
p rin tf ( " E l programa p e r m i t e e l ca lcu lo de t r e s r e s i s t e n c i a s en p a r a l e l o
o en s e r i e \ n " ) ;
p rin tf ( "Seleccione e l t i p o de c i r c u i t o \ n " ) ;
p rin tf ( "1 )En s e r i e \ n 2 ) E n p a r a l e l o \ n " );
s c a n f ( " % d " , &o p) ;
i f (op==1)
{
p rin tf ("En s e r i e \ n i n g r e s e e l v a l o r de l a primera r e s i s t e n c i a \ n " );
s c a n f ( " % f " , & r 1) ;
p rin tf ("Ingrese la s egu nda r e s i s t e n c i a \ n " ) ;
s c a n f ("% f",& r2);
p rin tf ("Ingrese el v a l o r de l a te r c e r r e s is t e n c ia \ n " );
s c a n f ("% f",&r3);
r=r1+r2+r3;
www.FreeLibros.me
9.3 Selectiva d o b le 253
}
else
{
p rin tf ("En p a r a l e l o \ n " );
p rin tf ("Ingrese l a p rim e ra r e s i t e n c i a \ n " );
s c a n f ( " % f " , & r 1) ;
p rin tf ("Ingrese l a segunda r e s i t e n c i a \ n " ) ;
s c a n f ( "% f" , & r 2 ) ;
p rin tf ("Ingrese l a te rc e ra r e s i s t e n c i a \ n " );
s c a n f (" % f",& r3 );
rp= (1/r1)+ (1lr2)+ (1lr3);
r= 1 / rp;
p rin tf ("La re siste n cia del total e s 96 7 . 2 f o h m s \ n " , r ) ;
}
g e tc h f);
I*Compra*!
# i n c l u d e < s t d i o .h>
# i n c l u d e < c o n i o . h>
void m a in f)
{
i n t a;
textbackground(27);
te x tco lo r(Q );
c lrs c r();
goto xy(29,5);
p r in t f("La v ie je c ita en e l m e r c a d o " ) ;
g o to xy( 1 , 10);
p r i n t f("Una v i e j e c i t a l l e v a b a h u e vo s a l mercado c u a n d o \ n s e l e c ayo
la cesta.");
p r i n t f f " \ n \ n - C u a n t o s h u e vo s l l e v a b a s ? -Le p r e g u n t a r o n , \ n\ n- No l o se,
r e c u e r d o qu e a l c o n t a r l o s en g r u p o s \ n " ) ;
p rin tf("d e 2 , 3 , 4 y 5, sobraban 1 ,2 ,3 y 4 \ n r e s p e c t iv a m e n t e .\ n \ n
www.FreeLibros.me
254 Capítulo 9 Ejercicios resueltos
scanf("%d",&a);
if (a==2) p r i n t f f " A c e r t a s t e ! u) ;
else
p rin tff" F a l l a s t e ! ”) ;
getch();
¡ *J u e g o * I
t t i n c l u d e < c o n i o . h>
# i n c l u d e < s t d i o . h>
f t i n c l u d e < s t d l i b . h>
t í i n c l u d e <time.h>
v o id main()
{
in t a,b,c,d;
t e x t b a c k g r o u n d (0 ) ;
te x tco lo r(3 );
c l r s c r ( );
goto xy(30,5);
p r i n t f f " * * * * * A p r e n d e j u g a n d o ** ** * ";;
g o to xy( 1 , 8 );
p rin tf("H o la a m i g u i t o ( a ) ! ! \n\n . . . .VaMoS A
JuGaR! ");
g o to x y ( 1 ,14);
p r i n t f f "I n s t r u c c i o n e s : \ n\nYo t e i r é m o s t r a n d o m u l t i p l i c a c i o n e s y t u
t e n d r á s que r e s p o n d e r \ n d e manera c o r r e c t a p a r a p o d e r s e g u i r
jugando\n\n\n .... Estas l i s t o ? . . . . “) ;
g o to x y (35,45);
www.FreeLibros.me
9.3 Selectiva d o b le 255
srand(tim e(NULL));
a=rand( )%1 0 +1 ;
b=rand()% 1 0 +1 ;
c=a*b;
p r i n t f ( " \ n \ n M X %i \a,b);
scanf("M ",& d);
i f (c==d) p r i n t f f " B ien hecho");
else
p rirttf(u Es o NO e s c o r r e c t o " ) ;
a=rand( ) M 0 +1 ;
b=rand( )%1 0 +1 ;
c=a*b;
p r i n t f ( " \ n \ n M X %i \a,b);
scanf("M ",& d);
i f (c==d) p r i n t f f " B ien hecho");
else
p rin tff" Es o NO e s c o r r e c t o " ) ;
a=rand( )%1 0 +1 ;
b=rand( ) M 0 +1 ;
c=a*b;
p r i n t f f " \ n \ n M X %i \ a ,b ) ;
www.FreeLibros.me
256 Capítulo 9 Ejercicios resueltos
else
p rin tff" E s o NO e s c o r r e c t o " ) ;
a=rand()% 1 Q+1 ;
b=rand()% 1 0 +1 ;
c=a*b;
p r i n t f f " \n\n%i X %¿ = n , a , b ) ;
scanf("% i",&d);
i f (c==d) p r i n t f f " B ien hecho");
e lse
p rin tff" E so NO e s c o r r e c t o " ) ;
a=rand()% 1 Q+1 ;
b=rand()% 1 0 +1 ;
c=a*b;
p r i n t f f " \n\n%i X %¿ = n , a , b ) ;
s c a n f f , &d);
i f fc==d) p r i n t f f " B ien hecho");
e lse
p rin tff" E s o NO e s c o r r e c t o " ) ;
g e t c h f );
/* C a l c u l a e l c o e f i c i e n t e de c o r r e l a c i ó n * /
t t i n c l ude <coni o. h>
#include<stdio.h>
void m ainf)
{
c lrs c rf);
float Sxy , Sx, Sy, r ;
p r i n t f f "C alcula e l c o e f i c i e n t e de c o r r e l a c i o n \ n " ) ;
p r i n t f f "Dame l a c o v a r i a n z a de l o s datos ");
s c a n f f "%f",& S x y );
printf("Dam e l a d e s v i a c i ó n e s t á n d a r de X " ) ;
scanff ,&Sx);
printf("Dam e l a d e s v i a c i ó n e s t á n d a r de Y " ) ;
s c a n f f "%f" , & S y ) ;
if f(Sx==Q) || fSy==0)) p r i n t f ( " D a t o s i n v á l i d o s " ) ;
www.FreeLibros.me
9.3 Selectiva d o b le 257
else
{
r=Sxy/(Sx*Sy);
p r i n t f ("E l c o e f i c i e n t e de c o r r e l a c i ó n es
}
getch();
/*I n d i c a l a s o l u b i l i d a d */
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
void main()
{
textco lor(R E D );
textbackground(BLACK);
c l r s c r f );
char catión ;
g o t o x y ( 13,2);
p rin tf("In d ica s i un compuesto e s o no s o l u b l e \ n " ) ;
p r i n t f ( " \nIMPORTANTE: E s t e p r o gr am a u sa como b a s e l a s reglas
de s o l u b i l i d a d de c omp ues tos i n o r g á n i c o s en a g u a \ n " ) ;
p rin tf("\n E lij a el c a t i ó n : \ n N=Na \ t K = K\ t L = L i \ t R = R b \ t C =C s " ) ;
s c a n f ( U96C\n" , & c a t i o n ) ;
i f ( ( c a t i o n = = ' N ' ) || ( c a t i o n = = ' K ' ) || ( c a t i o n = = ' L ' ) || ( c a t i o n = = ' R ' ) ||
( c a t ió n — 'C ' )) p r i n t f ( " \n E l compuesto e s s o l u b l e " ) ;
else
p rin tf("\n El compuesto e s i n s o l u b l e ; s i n embargo, s i e l a n i ó n es
un n i t r a t o , carbonato acido, clo ra to o perclorato, e l compuesto
es s o l u b l e " );
getch();
www.FreeLibros.me
258 C apítulo 9 Ejercicios resueltos
v o i d m a i n ()
{
textco lor(R E D );
textbackground(BLACK);
c l r s c r ( );
in t v 1, v 2 ;
g o to x y (1 6, 2 );
p r i n t f ( "I d e n t i f i c a s e m i r r e a c c i o n e s r e d o x : O x i d a c i ó n o r e d u c c i o n \ n " ) ;
p r i n t f ( " \n R e c u e r d e qu e c u a l q u i e r s e m i r r e a c c i o n r e d o x , y a s e a de
o x i d a c i ó n o de r e d u c c i ó n , va acompania de s u c o n t r a r i a \ n " ) ;
p r i n t f ( " \n I n t r o d u z c a l a v a l e n c i a d e l e l e m e n t o en e l compuesto
r e a c t i v o \ n ”) ;
s c a n f ( " % i " , & v 1) ;
p r i n t f ( " \n A h o r a l a v a l e n c i a d e l mismo e l e m e n t o , p e r o a h o r a en e l
comp uest o p r o d u c t o : \ n " ) ;
s c a n f ( "%¿" , &v 2 ) ;
if (v1<v2) p r i n t f ( " \ n L a s e m i r r e a c c i o n e s de o x i d a c i ó n " ) ;
e lse
p r i n t f ( " \n L a s e m i r r e a c c i o n e s de r e d u c c i ó n " ) ;
getchf);
/ * R e n d i m i e n t o de r x n * /
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
v o id main()
{
textco lor(R E D );
textbackground(BLACK);
c l r s c r ( );
float p o r c e n t a j e , rendt, re n dp ;
g o t o x y (23, 2 ) ;
p r i n t f ( " R e n d i m i e n t o de una r e a c c i o n \ n " ) ;
p r i n t f ( " \n I n d i q u e e l rendim iento t e o r ic o (se c a lc u la
e s t e q u i o m e t r i c a m e n t e ) de l a re a c c io n \n ");
s c a n f ( "%f", & r e n d t ) ;
www.FreeLibros.me
9.4 Selectiva d o b le anidada 259
{
p o r c e n t a j e = ( r e n d t / r e n d p ) *1 0 0 ;
p r i n t f ( " \n E l r e n d i m i e n t o de l a reacción (en p o r c e n t a j e ) es:
",porcentaje);
}
else
p r i n t f ( “ \n L a r e a c c i ó n s e l l e v a a cabo a l 100%");
getchf);
/*A d i v i n a * /
t t i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
t t i n c l u d e < s t d l i b . h>
i t i n c l u d e <time.h>
void main()
{
textbackground(BLACK);
te x tco lo r(9 );
c lrs c r();
in t usuario, yo;
s ra n d (tim e (N U L L ));
y o = r a n d f ) % 1 0 +1 ;
www.FreeLibros.me
260 Capítulo 9 Ejercicios resueltos
{
if(usuario< yo) p r i n t f ("\n\nLo sien to , t u numero es MENOR que e l
m i o u) ;
if(usuario> yo) p r i n t f ( " \n\nLo s i e n t o , t u numero es MAYOR que e l
m i ó ”) ;
g o to x y (42,25);
p rin tf("... presiona enter para con tin u ar ...");
getch();
c l r s c r f );
p r i n t f ( " \n \nEsta es t u u l t i m a o p o r t u n id a d i n g r e s a o t r o
nume ro: " ) ;
s c a n f f "%c/", &u su a r i o ) ;
i f ( u s u ar i o = =y o ) p r i n t f ( " \ n \ n F e l i c i d a d e s , a d i v i n a s t e mi
numero") ;
else
{
i f (usuario<yo) p r i n t f ( v\n\nLo s i e n t o , t u numero e s MENOR que
e l m í o ”) ;
gotoxy(32,35);
p r i n t f ( " E l numero e r a : %c/",yo^;
}
}
}
g e t c h f );
www.FreeLibros.me
9.4 Selectiva d o b le anidada
www.FreeLibros.me
262 Capítulo 9 Ejercicios resueltos
else
{
if((b< a) && ( b<c) && (b<d) && ( b < e ) ) p r i n t f ( " E l numer o me no r e s :
*i\b);
else
{
i f ((c<a) && ( c<b) && ( c<d) && ( c < e ) ) p r i n t f ( " E l n u me ro me no r e s :
% i\c );
else
{
i f ( (d<a) && (d<b) && ( d<c) && ( d < e ) ) p rin tf ("El numer o
menor e s : 9i i " , d ) ;
else
p r i n t f ( " E l n u me ro me no r e s : te",e);
}
}
}
g e tc h f);
www.FreeLibros.me
9.4 Selectiva d o b le anidada 263
/* C a l c u l a e l c o e f i c i e n t e de v a r i a c i ó n */
#include<stdio.h>
U i n c l u d e < c o n i o .h>
v o id main()
{
c l r s c r ( );
f loat S , X , C V ;
in t op;
p r i n t f ("C alcu la e l c o e f i c i e n t e de v a r i a c i o n \ n " ) ;
p r i n t f f " 1 .Muestra\n 2 . P o b la c io n \ n " );
p rin tf("E lig e una o p c i o n ") ;
scanf("%d",&op);
i f ( o p ==1)
{
p r i n t f ( " Dame l a m edi a ") ;
scanf("*f",&X);
p r i n t f ( " Dame l a desviación estándar ");
s c a n f f "%f" , & S ) ;
CV=S/X*100;
p r in t f ("E l c o e f i c i e n t e de v a r i a c i ó n m u é s t r a l e s %. 2f%\/7", C V ) ;
}
else
if (op==2)
www.FreeLibros.me
264 Capítulo 9 Ejercicios resueltos
}
else
p r i n t f ( “ Tu o p c i o n no e s t a en e l menú" ) ;
getch();
/ * D e s v i a c i ó n de empresa c h o i c e * /
t t i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
ttdefine p r 5 . 2 0
Udefine p e 5 . 0 0
Udefine t r 10.20
ttdefine t e 10.00
v o id main()
{
in t op;
float c r , c e , h r , h e , c i v a , c i v , t o t a l ,dpm, dum, dtm, demo;
c l r s c r f );
p r i n t f ( " D e s v i a c i ó n de l a m anufacturera c h o i c e \ n " );
p r i n t f ( "Que d e s v i a c i ó n des ea c a l c u l a r ? \ n " ) ;
p r i n t f ( " 1 / d e s v i a c i ó n de m a t e r i a l e s \ n 2 ) d e s v i a c i ó n de mano de o b r a \ n 3 )
d e s v i a c i ó n de c o s t o s i n d i r e c t o s \ n " ) ;
scanf("%d",&op);
i f (op==1 )
{
p r i n t f ( " Dame e l v a l o r de l a c a n t i d a d r e a l \ n " );
scanf("% f",&cr);
dpm=cr* ( p r - p e ) ;
p r i n t f ( " L a d e s v i a c i ó n en p r e c i o es ^td" ,dpm);
www.FreeLibros.me
9.4 Selectiva d o b le anidada 265
p r i n t f ( " \nDame e l v a l o r de l a c a n t i d a d e s t a n d a r \ n ”) ;
scanf("%f"',&ce);
dum=(cr-ce) *pe;
p r i n t f ( " L a d e s v i a c i ó n en c a n t i d a d ( u s o ) es 2 f " , dum);
total=dpm+dum;
p r i n t f ( " \nEntonces l a d e s v i a c i ó n de m a t e r i a l e s e s $%.2 f " , t o t a l ) ;
}
e lse
i f (op==2)
{
p r i n t f ( " Dame l a c a n t i d a d de h o r a s r e a l e s \ n " ) ;
scanf("% f",&hr);
dtm =hr*(tr-te);
p r i n t f ( " L a d e s v i a c i ó n de t a s a e s $%. 2 f " , d t m ) ;
p r i n t f ( " \nDame l a c a n t i d a d de h o r a s e s t a n d a r e s \ n " ) ;
scanf("% f",&he);
d e m o =t e * (h r - h e) ;
p r i n t f ( " L a d e s v i a c i ó n de e f i c i e n c i a e s $96 . 2 f " , d e m o ) ;
total=(demo-dtm);
p r i n t f ( " \nLa d e s v i a c i ó n de mano de o b r a e s $%.2 f " , t o t a l ) ;
}
else
if ( op==3)
{
printf("Dam e e l t o t a l de c o s t o s i n d i r e c t o s v a r i a b l e s \ n " ) ;
s c a n f ( " ,96 f " , & c i v ) ;
printf("Dam e e l t o t a l de c o s t o s i n d i r e c t o s v a riab les
a p l i c a d o s \ n " );
scanf("% f”,& civa);
total= civ-civa;
p r i n t f ( " L a d e s v i a c i ó n de c o s t o s i n d i r e c t o s e s $%. 2 f " , t o t a l ) ;
}
getch();
www.FreeLibros.me
266 Capítulo 9 Ejercicios resueltos
# i n c l u d e < c o n i o . h>
Udefine R 0.0821
Udefine kb 0 . 5 8
Udefine k f 1.86
v o id main()
{
textco lor(R E D );
textbackgroundfBLACK);
c l r s c r ( );
f l o a t p i , t b , t f , d t b , d t f , m , M , T, P v a p s l n , P v a p s o l v , X s o l v ;
c h a r op;
g o t o x y ( 13,2);
p r i n t f ( * * P r o p i e d a d e s c o l i g a t i v a s \ n De s o l u c i o n e s a c u o s a s , no e l e c t o l i t o
no v o l á t i l (e n e l c a s o de l a p r e s i ó n v a p o r ) " ) ;
p r i n t f ( " \n Que p r o p i e d a d des ea c a l c u l a r ? \ n A) T e m p e ra t u r a de e b u l l i c i o n \
t B ) T e m p e r a t u r a de c o n g e l a c i o n \ n C ) P r e s i ó n o s m o t i c a \ t D ) P r e s i ó n
v a p o r \ n " );
s c a n t ( "%c", & o p ) ;
í f ( 0p = = ' A ')
{
p r i n t f ( " \n Dame l a m o la rid a d \n ");
s c a n t ( " % f " , &m);
dtb=kb*m;
tb=100-Hitb;
p r in t f ( " ^ f oC",tb);
}
e lse
{
i f ( o p == ' B ' )
{
p r i n t f ( “ \n Dame l a m olaridad \n");
s c a n f ( "%f" ,&m);
dtf=kf*m;
tf=0-dtf;
p r i n t f ( " % f 0C", t f ) ;
}
else
{
i f ( op==' C ' )
www.FreeLibros.me
9.5 Selectiva m ú ltip le 267
p r i n t f ( " \n A h o r a l a t e m p e r a t u r a , en K \ n " ) ;
s c a n f f "%f■,& T ) ;
pi=R*T*M;
p r i n t f ( B96 f atm" , p i ) ;
}
e lse
{
i f ( op==' D' )
{
p r i n t f ( " \ n Dame l a p r e s i ó n v a p o r d e l s o l v e n t e \ n u) ;
s c a n f f "%fB, & P v a p s o l v ) ;
p r i n t f ( " \n A h o r a l a f r a c c i ó n mol d e l s o l v e n t e \ n ”) ;
s c a n f f "%f" , & X s o l v ) ;
Pvapsln=Pvapsolv*Xsolv;
p r i n t f f " % f a t m u, P v a p s l n ) ;
}
else
p r i n t f ( " \ n O pc ión i n c o r r e c t a " );
}
}
}
g e t c h f );
l * C á l c u l o de l a r e s i s t e n c i a */
t t i n c l u d e < c o n i o . h>
# i n c l u d e < s t d i o . h>
üdefine AU 1 . 0 6 e - 8
Udefine CO 1. 72e -8
üdefine AL 3 . 2 1 e - 8
Udefine PL 11.05e-8
void m a in f)
www.FreeLibros.me
268 Capítulo 9 Ejercicios resueltos
{
c l r s c r f );
float 1, a, res, r;
in t op;
p rin tf ( " E l programa p e r m i t e c a l c u l a r l a re siste n cia de un c a b l e \ n " ) ;
p rin tf ( "Selecione e l m a te ria l del c a b l e \ n " );
p rin tf (" 1) p l a t a \ n 2 ) c o b r e \ n 3 ) a l u m i n i o \ n 4 ) p l a t i n o \ n ");
s c a n f ("%d", &op);
switch (op)
{
c a s e 1: res=AU;
p rin tf ( " E l m a t e r i a l es A U \ n " );
break;
c a s e 2: res=CO;
p rin tf ( " E l m a t e r i a l e s C O \ n " );
break;
c a s e 3: re s= AL ;
p rin tf ( " E l m a t e r i a l es A L \ n " );
break;
c a s e 4: res =P L;
p rin tf ( " E l m a t e r i a l es P L \ n " );
break;
d e fau lt:
p rin tf ( " E r r o r conductor desconocido\n");
}
p rin tf ("Dame l a l o n g i t u d d e l m e t a l en metr o s \ n " ) ;
scanf ("* f",& l);
p rin tf ("Dame e l area g r o s o r d e l c a b l e en m 2 . \ n " ) ;
s c a n f ( U96 f " , & a ) ;
r= res*l/a;
p rin tf (" La r e s i s t e n c i a es ohms\n", r ) ;
getchf);
www.FreeLibros.me
9.5 Selectiva m ú ltip le 269
t t i n c l u d e <math.h>
v o id main()
{
c l r s c r ( );
f loat a1 , a 2 , a 3 , a 4 , m a g ;
in t op;
p r i n t f ( " C a l c u l a m a g n i t u d de v e c t o r e s \ n " ) ;
p rin tff" 1) EN R2\n 2 )E N R3\n 3 )EN R 4 \ n " ) ;
p r i n t f ("E l i g e una o p c i o n ") ;
scanf("%d",&op);
printf("NOTA: Usa un e s p a c i o e n t r e c a d a numero d e l v e c to r\n ");
switch(op)
{
c a s e 1: p r i n t f ( " Dame e l v e c t o r en R2 ") ;
s c a n f ( " % f % f " , & a 1,& a 2 ) ;
mag=sqrt(a1*a1+a 2 *a 2 ) ;
p r i n t f ( " La magnitud d e l v e c t o r en R2 e s 96 . 2 f ” ,mag);
break;
c a s e 2: p r i n t f ( " Dame e l v e c t o r en R3 " ) ;
scanf("*6f%f%f",&a1,&a2,&a3);
mag=sqrt(al*al+a2*a2*a3*a3);
p r i n t f ("la m a g n i t u d d e l v e c t o r en R; e s %.2 f " , m a g ) ;
break;
c a s e 3: p r i n t f ("Dame e l v e c t o r en R4 ") ;
s c a n f ( " ^ f M ^ f ^ f " , &a1,&a2, &a3, &a4) ;
ma g= sq rt ( a 1 *a1+a2* a2+a3* a3+a4* a 4 ) ;
p r i n t f ( " L a m a g n i t u d d e l v e c t o r en R4 e s 2f",m ag);
break;
d e fau lt:
p r i n t f ( " O p c i o n no v a l i d a " ) ;
}
getchf);
www.FreeLibros.me
270 Capítulo 9 Ejercicios resueltos
void main()
{
c l r s c r f );
i n t n,op;
float r e s u l ;
p r i n t f ( " E l e m e n t o s de un p o l í g o n o r e g u l a r \ n " ) ;
p r i n t f f " 1 . A n g u l o c e n t r a l \ n 2 . A n g u l o i n t e r n o \ n 3 . A n g u l o e x t e r n o \ n 4.Num.
de D i a g o n a l e s en un V , r t i c e \ n 5 . Tota l de d i a g o n a l e s \ n " ) ;
p r i n t f ( " E l i g e l o qu e q u i e r e s c a l c u l a r ") ;
scanf("%d",&op);
p r i n t f ( "Dame e l numero de l a d o s d e l p o l í g o n o ");
scanf("%d",&n);
s w i t c h (o p)
{
c a s e 1: r e s u l =360/ n;
p r i n t f ( "Cada á n g u l o c e n t r a l mi de %.2 f o " , r e s u l ) ;
break;
c a s e 2: r e s u l =90*( n - 2 ) In;
p r i n t f ( “Cada á n g u l o i n t e r n o mi de %. 2 f o " , r e s u l ) ;
break;
c a s e 3: r e s u l = 3 6 0 / n ;
p r i n t f ( " C a d a á n g u l o e x t e r n o mi de %.2f e ” , r e s u l ) ;
break;
c a s e 4: r e s u l = n - 3 ;
p r i n t f ( " E l numero de d i a g o n a l e s de cada v , r t i c e es % . 0 f " , r e s u l ) ;
break;
c a s e 5: r e s u l = n * ( n - 3 ) 12;
p r i n t f ( " E l numero t o t a l de d i a g o n a l e s e s %. 0 f " , r e s u l ) ;
break;
de f a u l t :
p r i n t f ( " O p c i ó n i n v a l i d a " );
}
getchf);
/*Programa j u e g o p i e d r a , papel o t i j e r a * /
t f i n c l u d e < s t d i o . h>
www.FreeLibros.me
9.5 Selectiva m ú ltip le 271
# i n c l u d e < c o n i o . h>
f t i n c l u d e < s t d l i b . h>
U i n c l u d e <time.h>
void m ain()
{
t e x t b a c k g r o u n d (27);
te x tco lo r(3 2 );
c l r s c r f );
in t usuario, yo;
srand(tim e(NULL));
g otoxy(25,5);
p r i n t f ("* ** * J u e g o p i e d r a , papel o t i j e r a ****";,-
g oto xy( 1, 8 );
p r i n t f ( " I n t r o d u c e t u jugada: \ n \ n 1 ) P i e d r a \ n 2 ) P a p e l \ n 3 ) T i j e r a \ n \ n n) ;
s c a n f ( "%c/", &u s u a r i o ) ;
y o = ( r a n d ( ) % 3 ) +1;
/*P i e d r a */
g o to x y (25,20);
if ( u s u a r io = = 1)
{
switch(yo)
{
c a s e 1: p r i n t f ( " E M P A T A M O S : p i e d r a VS p i e d r a " ) ;
break;
c a s e 2: p r i n t f ( " P E R D I S T E : p i e d r a VS p a p e l " ) ;
break;
c a s e 3: p r i n t f ( "GANASTE: p i e d r a VS t i j e r a " ) ;
break;
}
}
/* P a p e l */
if (u suario==2 )
{
switch(yo)
{
c a s e 1: p r i n t f ( "GANASTE: p a p e l VS p i e d r a " ) ;
break;
c a s e 2: p r i n t f ( " E M P A T A M O S : p a p e l VS p a p e l " ) ;
break;
www.FreeLibros.me
272 Capítulo 9 Ejercicios resueltos
c a s e 3: p r i n t f ( ”PERDISTE: p a p e l VS t i j e r a ”) ;
break;
}
}
/* T i j e r a */
if (usuario==3)
{
switch(yo)
{
c a s e 1: p r i n t f ( " PERDISTE: tije ra VS p i e d r a ”) ;
break;
c a s e 2: p r i n t f ( “GANASTE: t i j e r a VS p a p e l ”) ;
break;
c a s e 3: p r i n t f ( “EMPATAMOS: t i j e r a VS t i j e r a ”) ;
break;
}
}
getch();
/ * P r o p i e d a d e s c o l i g a t i v a s */
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
ttdefine R 0 . 0 8 2 1
ttdefine kb 0 . 5 8
ttdefine k f 1.86
vo id m ainf)
{
textco lor(R E D );
textbackground(BLACK);
c l r s c r ( );
float p i , t b , t f , d t b , d t f ,m,M, T, P v a p s l n , P v a p s o l v , X s o l v ;
c h a r op;
g o t o x y f 13,2);
p r i n t f ( ” * P r o p i e d a d e s c o l i g a t i v a s \ n De s o l u c i o n e s a c u o s a s , no e l e c t r o l i t o
no v o l á t i l (e n e l c a s o de l a p r e s i ó n v a p o r ) ”) ;
p r i n t f ( ” \n Que p r o p i e d a d des ea c a l c u l a r ? \ n A) T e m p e ra t u r a de e b u l l i c i o n \
www.FreeLibros.me
9.5 Selectiva m ú ltip le 273
t B) Temperat ur a de c o n g e l a c i o n \ n C ) P r e s i ó n o s m o t i c a \ t D ) P r e s i o n v a p o r \ n " ) ;
s c a n f ( U96 C" , &o p );
switch(op)
{
case 'A p r i n t f f " \ n Dame l a m o la rid a d \n ");
s c a n f ( "%f" , &m);
dtb=kb*m;
tb=1Q)(d+dtb;
p r i n t f ( "%f 0 C \ t b ) ;
break;
case ' B ' : p r i n t f f " \ n Dame l a m o l a r i d a d \ n u) ;
s c a n f ( ”% f " , &m);
d tf =k f* m;
tf= 0-dtf;
p r i n t f ( "%f 0 C " , t f ) ;
break;
case ' C ' : p r i n t f ( ” \n Dame l a m o la rid a d \n ");
s c a n f ( " 96 f " , & M ) ;
}
g e t c h f );
www.FreeLibros.me
274 Capítulo 9 Ejercicios resueltos
# i n c l u d e < c o n i o . h>
v o id main()
{
textcolor(R E D );
textbackground(BLACK);
c l r s c r ( );
float S g ,k h ,P g ;
c h a r op;
g o t o x y f 13,2);
p rin tf("C a lcu lo de l a s o l u b i l i d a d y sus v a r i a b l e s \ n " );
p r i n t f ( " \n I n d i q u e que s e desea c a l c u l a r : \ n A ) S o l u b i l i d a d \ t B ) C o n s t a n t e de
Henry\tC)Presión del g a s\n ");
s c a n f ( "%c", & o p ) ;
switch(op)
{
case ' A ' : p r i n t f ( " \n Dame l a c o n s t a n t e de H enr y p a r a e l g a s \ n " ) ;
scanf("% f",&kh);
p r i n t f ( “ \n A h o r a l a p r e s ió n vapor del ga s\n ");
scanf("*6f" ,&Pg);
Sg=kh*Pg;
p rin tf("% f n/L",Sg);
break;
case ' 8 ' ; p r i n t f ( " \ n Dame l a s o lu b ilid a d del gas\n");
scanf("*6f",&Sg);
p r i n t f ( " \ n Ahora l a p r e s ió n vapor del g a s \n " );
s c a n f ( "%f" , & P g ) ;
kh=Sg/Pg;
p r i n t f ( "%f n / L atm ",kh);
break;
case ' C 1: p r i n t f ( " \ n Dame l a s o l u b i l i d a d d e l g a s \ n " );
s c a n f ( "%f" , & S g ) ;
p r i n t f ( " \ n Ahora l a c o n s t a n t e de H enr y p a r a e l g a s \ n " ) ;
scanf("% f",&kh);
Pg=Sg/kh;
p rin tfa tm " ,P g );
break;
d e fau lt:
p r i n t f ( " \n O p c i ó n i n c o r r e c t a . E j e c u t e e l programa de nuevo y e l i j a
una o p c i o n c o r r e c t a " ) ;
www.FreeLibros.me
9.5 Selectiva m ú ltip le 275
}
getch();
/*Empresa G e l s t r a p * /
# i n c l u d e < s t d i o . h>
f t i n c l u d e < c o n i o . h>
void m a in f)
{
in t op,md,mod,cin;
float t o t a l ;
c l r s c r ( );
p r i n t f ( v\ n C a l c u l e l o s costos u n ita r io s de l a empresa G e l s t r a p \ n " ) ;
p r i n t f ( "\ n Q u e c o s t o u n i t a r i o deseas c a l c u l a r \ n " );
p r i n t f ( " 1 ) M a t e r i a l e s d i r e c t o s \ n 2 ) M a n o de o b r a \ n 3 ) C o s t o s I ND IRECT OS \n”) ;
s c a n f ( U96 d " , & o p ) ;
switch(op)
{
case 1 : p r i n t f ( “Dame e l c o s t o de m a t e r i a l e s d i r e c t o s \ n " ) ;
s c a n f ( U96dH,&md);
ot a l= md 19000;
p r i n t f ("E l c o s t o u n i t a r i o de m a t e r i a l e s d i r e c t o s es
$ % . 3 f n, t o t a l ) ;
if (total<=2) p r i n t f ( " \n E x c e le n te , e l costo u n ita r io de
m a t e r i a l e s ha d i s m i n u i d o l o que p r o v o c a mas p r o d u c c i o n \ n " ) ;
e lse
p r i n t f ( " \nHay que d i s m i n u i r e l c o s t o de m a t e r i a l e s , p r o v o c a
menos p r o d u c c i o n \ n " ) ;
break;
c a s e 2 : p r i n t f ( "Dame e l c o s t o de mano de o b r a d i r e c t a \ n n) ;
s c a n f ( " 96d",&mod);
t o t a l = m o d ¡9000;
p r i n t f ("E l costo u n it a r io de mano de o b r a d i r e c t a es
3 f", to ta l) ;
i f (total<=2) p r i n t f ( " \nExcelente, el costo u n it a r io de mano
de o b r a d i r e c t a ha d i s m i n u i d o l o que p r o v o c a mas
p ro d u ccio n \n ");
www.FreeLibros.me
276 Capítulo 9 Ejercicios resueltos
else
p r i n t f ( “ \nHay que d i s m i n u i r e l c o s t o de mano de o b r a
p r o v o c a menos p r o d u c c i o n \ n ”) ;
break;
c a s e 3: p r i n t f ( " Dame e l t o t a l de c o s t o s i n d i r e c t o s \ n u) ;
scanf('% d*,& cin);
t o t a l = c i n 19000;
p r i n t f ("E l costo u n it a r io de c o s t o s i n d i r e c t o s es
$%.3 f " , t o t a l ) ;
i f (total<=2) p r i n t f ( " \ n E x c e le n t e , e l costo u n it a r io de
c o s t o s i n d i r e c t o s ha d i s m i n u i d o l o que p r o v o c a mas
p ro d u ccio n \n ");
e lse
p r i n t f ( " \nHay qu e d i s m i n u i r e l c o s t o de i n d i r e c t o ,
p r o v o c a menos p r o d u c c i o n \ n " ) ;
break;
d e fau lt:
p r in t f( " O p c ió n i n v a l i d a " );
}
getch();
>
{
c lrs c rf);
in t 1;
p rin tf ( " E l programa t e p e r m i t e s a b e r e l c o l o r qu e t i e n e una onda de
c i e r t a l o n g i t u d \ n " );
p rin tf ( "L o s promedios a l o s que s e p u ede o b s e r v a r l a l u z son:\n");
p rin tf ( " 1 )400nm\n2)45Qnm\n3)470nm\n4)500nm\n5)570nm\
n6)590nm\n7)61Qnm\n8)780nm\n") ;
p rin tf ("C u a l es e l c a s o de l a l o n g i t u d de l a onda\n");
s c a n f ("%d",&1);
sw itch (1)
www.FreeLibros.me
9.6 Estructura rep etitiva w h i l e 277
}
getchf);
{
in t t = 0 ,p= 0 ,m;
clrscr();
p r i n t f ("\n C alcu lar l a p r o d u c c i ó n de c u a l q u i e r empresa en un d í a ,
www.FreeLibros.me
278 Capítulo 9 Ejercicios resueltos
scanff"*d",&m );
w h ile (t<1440)
{
P=p+ 1 ;
t=t+m;
}
p r i n t f f " \ n L o s p r o d u c t o s e l a b o r a d o s en un d í a s on : % d \ n " , p ) ;
p r i n t f ( " \ n L o s p r o d u c t o s e l a b o r a d o s en una semana s o n ( l u n e s a domingo)
* d \ n ' , p * 7) ;
p r i n t f f " \ n L o s p r o d u c t o s e l a b o r a d o s en un mes s on fm es de 30 d i a s ) :
96 d \ n ” , p * 3 0 ) ;
g e t c h f );
/* Suma de p r o g r e s i ó n a r i t m é t i c a */
t t i n c l ude <coni o. h>
# i n c l u d e < s t d i o . h>
v o id m ainf)
{
c l r s c r f );
in t i,n ;
float sum,d, x , x 1 , r e s u l ;
printff"Sum a l o s e l e m e n t o s de una p r o g r e s i ó n a r i t m e t i c a \ n " ) ;
p r i n t f f " D a m e e l numero de t é r m i n o s de l a progresión ");
s c a n f f U96d" , &n) ;
p r i n t f f "Dame e l v a lo r d e l prim er term ino ");
s c a n f f "%f" , & x ) ;
p r i n t f f "Dame e l v a l o r de l a d ife re n cia común " ) ;
s c a n f ( " * 6f " , & d ) ;
¿=2 ;
x 1 =x;
sum=0 ;
p rin tff"* .2f + ", x) ;
while(i<=n)
{
x+=d;
p r i n t f f " * . 2f + ", x ) ;
www.FreeLibros.me
9.6 Estructura rep etitiva w h i l e 279
sum+=x;
r e su l =s um +x 1 ;
i+ +;
}
p r i n t f f " \ b \ b " );
p r i n t f f "= %. 2 f " , r e s u l ) ;
getchf);
/* Suma de p r o g r e s i ó n g e o m é t r i c a */
# i n c l u d e < c o n i o .h>
#include<stdio.h>
v o id main()
{
c lrs c rf);
in t i,n ;
float s u m , r , x , x 1 , r e s u l ;
p r i n t f f " S u m a l o s e l e m e n t o s de una p r o g r e s i ó n g e o m e t r i c a \ n " ) ;
p r i n t f f " D a m e e l numero de t é r m i n o s de l a progresión ");
s c a n f ( " 96 d " , & n ) ;
printff"D am e e l v a lo r d e l prim e r term ino “) ;
s c a n f f "%f" , & x ) ;
printff"D am e e l v a l o r de l a razón ");
s c a n f f *%f" , & r ) ;
i =2;
x 1 =x;
sum=0 ;
p rin tff"% .2f + ", x ) ;
whilefi<=n)
{
x*=r;
p r i n t f f 2f + ",x);
sum+=x;
resul =sum+x 1 ;
i++;
}
p r i n t f f " \ b \ b " );
www.FreeLibros.me
280 Capítulo 9 Ejercicios resueltos
p r i n t f ( "= %. 2 f " , r e s u l ) ;
getchf);
/*Nómina*/
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
void m ainf)
{
in t x , p h t , nht,sexo,ptt,sumasm,sumasf;
float s m , s f ;
c l r s c r f );
p r i n t f f " \ n \ t C u a n t o gana n l o s hombres y m u j e r e s en t o t a l \ n \ t y e l
p r o m e d i o de a c u e r d o a l numero de e l l o s ? \ n " ) ;
surnasm=0 ;
sumas f = 0 ;
sm=0 ;
sf=0 ;
w h ile ( (sumasm<=1 0 0 0 0 ) && ( s u m a s f <=1 0 0 0 0 ) )
{
p rin tf("e lije t u s e x o \ n 1 ) h o m br e\ n 2 ) m u j e r \ n " ) ;
scanf("% d", &sexo);
i f (sexo== 1 )
{
sm=sm+1 ;
p r i n t f ( " I n g r e s e num. de h o r a s t r a b a j a d a s \n");
s c a n f f "%c/", &nh t) ;
p r i n t f ( " I n g r e s e pago p o r h o r a t r a b a j a d a \ n " ) ;
scanf('% d',& pht);
ptt=nht*pht;
p r i n t f ( n gana %c/ p e s o s \n\n" , p t t ) ;
sumasm=sumasm+ptt;
}
else
{
sf=sf+1;
www.FreeLibros.me
9.6 Estructura rep etitiva w h i l e
p r i n t f ( " I n g r e s e num. de h o r a s t r a b a j a d a s \ n u) ;
s c a n f ( "%d",& n h t ) ;
p r i n t f ( " I n g r e s e pago p o r h o r a t r a b a j a d a \ n " ) ;
scanf("% d",&pht);
ptt=nht*pht;
p r i n t f ("GANA %c/ p e s o s \n\n" , p t t ) ;
sumasf =su masf +pt t;
}
}
p r i n t f ( " l o s hombres ganan t o t a l : %d p e s o s , p r o m e d i o : %. 2 f
\n",sumasm,sumasm/sm);
p r i n t f ( " l a s m u j e r e s ganan t o t a l : %c/ p e s o s , promedio:
%. 2 f \ n " , sumasf , s u m a s f / s f ) ;
g e t c h f );
I *Cernex*I
t t i n c l u d e < c o n i o . h>
# i n c l u d e < s t d i o . h>
void main()
{
in t x,p;
clrs c rO ;
p r i n t f ( "Te d a r é e l p r e c i o de l a s o lla s de c o n c r e t o según r e s i s t e n c i a
del c o n c r e t o \ n " );
x=50;
p=10M;
w h ile (x<=500)
{
p r i n t f ( " E l p r e c i o de l a o lla de cemex %c/ es %d p e s o s \ n " , x , p ) ;
x=x +50;
}
getch();
www.FreeLibros.me
282 Capítulo 9 Ejercicios resueltos
{
c l r s c r ( );
double cov1 , r , x, y, sx= 0 , sy=0 , sxy= 0 , s x 2 =0 , s y 2 =0 , c o v , dx, dy;
double r c o v , rdx, rd y , dx1, dy1;
in t cont= 0 ;
char op= 's';
c h a r o p 1= ' s ' ;
w h ile ( o p==' s 1 || o p == ' S')
{
p r i n t f ( " E l programa p e r m i t e c a l c u l a r e l c o e f i c i e n t e de c o o r e l a c i o n
e n t r e dos v a r i a b l e s \ n ( d o s p a r e s de n ú m e r o s ) \ n " ) ;
w h ile (op1=='s' || op1==' S ' )
{
p r i n t f ("Dame e l v a l o r de x \ n " ) ;
scanf ("U f" ,& x );
p r i n t f ("Dame e l v a l o r de y \ n " ) ;
scanf ("U f" ,& y );
cont=cont+1 ;
sx=sx+x;
sy=sy+y;
s x y =(x *y)+sxy;
s x 2 =sx2 + ( x * x ) ;
s y 2 =sy2 + ( y * y ) ;
p r i n t f ( " D e s e a i n g r e s a r o t r o c o n j u n t o de v a l o r e s ? \ n s i / n o \ n " ) ;
s c a n f ("% s",& op1) ;
}
cov=sxy-(sx*sy/cont);
c o v 1 = c o v / ( c o n t - 1) ;
dx=sx 2 - ( s x * s x / c o n t ) ;
d x 1= d x l ( c o n t - 1) ;
dy=sy 2 - ( s y * s y / c o n t ) ;
www.FreeLibros.me
9.6 Estructura rep etitiva w h i l e 283
d y 1 =dy/ ( c o n t - 1 ) ;
r dx =s qr t ( d x 1 ) ;
r dy =s qr t ( d y 1 ) ;
r=cov 1 / ( r d x * r d y ) ;
p r in t f ("El c o e f i c i e n t e de c o r r e l a c i ó n es %f\n", r);
p r i n t f ( " D e s e a c a l c u l a r o t r o c o e f i c i e n t e de c o r r e l a c i o n ? \ n s i / n o \ n " ) ;
scanf ("te",&op);
}
getch();
/*B a l a n c e de masa*/
/ * R e a c c i ó n de e l e m e n t o s * /
# i n c l u d e < s t d i o . h>
Uinclude<conio.h>
void m a in f)
{
f loat m,mf;
in t e,n=1;
textco lor(R E D );
c l r s c r f );
g o t o x y ( 2 3 }3);
p r i n t f ( " B a l a n c e de mas a\n\n C u a n t o s e l e m e n t o s r e a c c i o n a n ? ") ;
scanf("% i",&e);
mf=0;
w h ile (n<=e)
{
p r i n t f ( " \n I n t r o d u c e l a masa d e l e l e m e n t o %i : ",n);
s c a n f ( "%f" , &m);
mf=mf+m;
n=n+1 ;
}
p r i n t f (" \ n \ n L a masa t o t a l i n i c i a l e s %f. V e r i f i q u e que l a masa t o t a l
de l o s p r o d u c t o s s e a l a misma que l a de l o s re activ os",m );
getchf);
www.FreeLibros.me
284 Capítulo 9 Ejercicios resueltos
{
in t v,e;
float m,me, p o r e ;
textco lor(R E D );
c l r s c r f );
g o t o x y f 1 2 ,3);
printf("Im prim e l a f r a c c i ó n mol de l o s e l e m e n t o s de un c o m p u e s t o \ n \ n
Cuantos elementos t i e n e e l com puesto?\n");
s c a n f ( " % i u,8,e);
p rin tf("\n I n t r o d u c e l o s m ol e s d e l c o m p u e s t o \ n " ) ;
s c a n f ( "%f“ , &mc);
v= 1 ;
w h ile (v<=e)
{
c l r s c r f );
p r i n t f ( " \n Dame l o s m ol e s d e l e l e m e n t o %¿; ", v ) ;
s c a n f ( u*6fu,&m);
porc=m/mc;
p r i n t f ( " \n L a f r a c c i ó n mol d e l compuesto %¿ = ^sfmt v , p o r c ) ;
v=v+1 ;
}
getchf);
{
float P T , p p , p o r c p ;
www.FreeLibros.me
9.6 Estructura rep etitiva w h i l e 285
i n t n= 1 , n e ;
textcolor(R E D );
c lrs c rf);
goto xy(19,3);
p r in t f("C a lcu lo d e l p o r c e n t a j e en p r e s i o n \ n \ n I n t r o d u z c a l a presión
g a s e o s a : ");
s c a n t ( " M " , &ne) ;
w h ile (n<=ne)
{
p rin ttf"\n Introduce l a p re sió n p a r c ia l d e l componente 96 Í \ n " , n ) ;
s c a n f ( " % f B, & p p ) ;
po r c p = p p / P T * 1 0 0 ;
p r i n t f ( " \ n E l p o r c e n t a j e en p r e s i ó n es=%f p a r a e l compuesto
% i",p o rc p ,n ) ;
n=n+1 ;
}
g e t c h f );
{
f loat p a , g , a ;
char op= 'S';
textcolor(R E D );
w h ile ( o p = = ' S ')
{
c l r s c r f );
g o to xy( 2 6 ,3);
p r i n t f f " A t o m o s de un e l e m e n t o \ n \ n I n t r o d u c e e l p e s o a t ó m i c o d e l
e l e m e n t o \ n u) ;
s c a n t ( U96 f u,&p a) ;
www.FreeLibros.me
286 Capítulo 9 Ejercicios resueltos
}
getch();
{
c lrs c r();
in t i,n ;
float c o f , a , s u m = 0 , p;
p r i n t f ( “C a l c u l a e l d e t e r m i n a n t e dados e l cofactor y el v e c t o r \ n ”) ;
p r i n t f ( “Dame e l o r d e n de l a m a t r i z “) ;
s c a n f ( “%d“ , & n ) ;
i= 1;
do
{
p r i n t f ( “Dame e l componente %d d e l v e c t o r ",i) ;
s c a n f ( “% f “ , & a ) ;
p r i n t f ( “Dame e l v a l o r d e l c o f a c t o r ",i) ;
s c a n f ( “*6f“ , & c o f ) ;
p=a* cof ;
sum+=p;
i ++;
}
while(i<=n) ;
p r i n t f ( “E l d e t e r m i n a n t e e s *6.2f” ,sum) ;
getchf);
www.FreeLibros.me
9.7 Estructura repetitiva d o - w h ile 287
/* C a l c u l a f r e c u e n c i a r e l a t i v a de d a t o s */
# i n c l u d e < s t d i o .h>
#include<conio.h>
v o id main()
{
c l r s c r f );
i n t i = 1;
long i n t c;
f loat x , f r e c , n ;
do
{
p r i n t f ("Dame l a c a n t i d a d en l a c a t e g o r í a %c/: " , i ) ;
s c a n f ( " 96 f " , & x ) ;
frec=x/n;
p r i n t f ( " L a f r e c u e n c i a r e l a t i v a es ,frec);
i++;
}
while(i<= c) ;
getch();
/*Ahorcado*/
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
H in c lu d e< d os .h >
f t i n c l u d e < s t d l i b . h>
mai n( )
www.FreeLibros.me
288 Capítulo 9 Ejercicios resueltos
{
in t op, p, c, e;
c h a r 1;
e=0 ;
c=0 ;
elrser();
te x tco lo r(1 5 );
g o to x y ( 2 0 ,5);
c p r i n t f ( " B i e n v e n i d o a * A h o r c a d o **);
d e l a y ( 1 0 0 0 );
g o t o x y (20, 7);
c p r i n t f ( u1) J u g a r ”) ;
gotoxy(2 0 ,9);
c p r i n t f ( ”0) S a l i r ”) ;
g o t o x y ( 2 0 , 1 2 );
c p r i n t f ( ” ( ) ”) ;
g o to xy( 2 1 , 12);
d e la y ( 1000);
s c a n f(" % d ” ,&op);
switch(op)
{
c a s e 1: s r a n d ( t i m e ( N U L L ) ) ;
p=rand( )%5;
s w i t c h (p)
{
d e fau lt:
c l r s c r f );
c p r i n t f ( " A d i v i n a l a s l e t r a s ”) ;
gotoxy( 2 0 , 10);
c p r i n t f ( ”______ ”) ;
do
{
goto xy(15,5);
c p r i n t f ( • ( ) ”) ;
gotoxy( 16,5);
i f (e==5)
e x i t ( 1) ;
s c a n f ( ”%s” , & l ) ;
www.FreeLibros.me
9.7 Estructura repetitiva d o - w h ile
s w i t c h (1 )
c p r i n t f ( " L " );
g otox y( 2 0 , 11);
p r in t f( " C o r r e c t o ! ");
c = c +1 ;
break;
p r i n t f ( "I " );
g o t o x y ( 2 0 , 11);
c p r i n t f ( " C o r r e c t o ! ");
c = c +1 ;
break;
cprintf("Z ");
g o t o x y ( 2 0 , 11);
c p r in t f( " C o r r e c t o ! ");
c = c +1 ;
break;
d e fa u lt:
d e l a y (1000);
e=e+1 ;
gotoxy(15,5);
c p r i n t f ( " Numero
de e r r o r e s :
% d',e);
gotoxy(2 0 , 12);
cp rin tf("E rro r")
w h ile ( c ! =3 ) ;
}
d e l a y (1000);
break;
d e fa u lt:
e x it(1 );
}
getch();
www.FreeLibros.me
290 Capítulo 9 Ejercicios resueltos
/* A c e l e r a c i ó n f i n a l * I
ttinclude <c o ni o. h >
Hiñel u d e <stdio.h >
v o i d mai n ()
{
e lrse r ();
float v f , vo, a, t;
c h a r op; op= 's';
w h ile ( op == ' s ' )
{
p r i n t f ( " E l programa c a l c u l a l a a c e l e r a c i ó n c a d a segundo d u r a n t e l o s
oc h o p r i m e r o s s e g u n d o s \ n " ) ;
p r i n t f ("Dame l a v e l o c i d a d i n i c i a l \ n " );
s c a n f ("^f", & vo);
p r i n t f ("Dame l a a c e le r a c io n \ n " );
{
vf=vo+(a*t);
p rin tf ( " L a a c e l e r a c i ó n a l o s %fs = % f \ n " , t, vf);
}
p r i n t f ("Q u ie re s c a l c u l a r alguna o t r a v e l o c i d a d f in a l? \ n " );
s c a n f ("9ss", & op);
}
getch ();
/ * C a l i d a d de l o s p r o d u c t o s * /
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
www.FreeLibros.me
9.8 Estructura rep etitiva f o r
void m ain()
{
i n t p r o ,c o n t ,p ,d e = 0 ,per=0 ;
clrs c rf);
p r i n t f ( u\ n \ t \ t C h e c a r l a c a l i d a d de l o s p r o d u c t o s \ n " ) ;
p r i n t f ( " \ n C u a n t o s p r o d u c t o s s e e l a b o r a r o n ? \ n v) ;
s c a n f ( ”% d " , & p r o ) ;
for ( c o n t = 1 ;c ont <=pro; cont ++)
{
p r i n t f ( 1\ n E l p r o d u c t o , t i e n e a l g ú n d e f e c t o ? s i =1 no=2 \ n " ) ;
s c a n f ( U96dn, & p ) ;
if (P=1)
{
p r i n t f ( " De sec ha e l p r o d u c t o \ n u) ;
de=de+1 ;
>
else
{
p r i n t f ("E l producto esta pe rfe cto ; em pacalo\n");
per=per+1 ;
}
}
p r i n t f ( ” \nEl t o t a l de p r o d u c t o s d e f e c t u o s o s e s =9o d " , d e ) ;
p r i n t f ( ” \nEl t o t a l de p r o d u c t o s p e r f e c t o s e s =96d" , p e r ) ;
getchf);
/*Pago p o r c a d a p i e z a e l a b o r a d a */
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
void main()
{
in t p ie,tra,con t;
float sue= 0 , p a , s ;
c l r s c r f );
p r i n t f f " \ n \ t \ t S u e l d o de un t r a b a j a d o r p o r c a d a p i e z a e l a b o r a d a \ n " ) ;
www.FreeLibros.me
292 Capítulo 9 Ejercicios resueltos
{
p r i n t f ( " \nEmpleado numero 96d\n" , c o n t ) ;
p r i n t f ( " C u a n t a s p i e z a s e l a b o r a s t e ? \ n " );
s c a n f ( " 96 d " , & p i e ) ;
p r i n t f ( " C u a n t o s e t e pa g a p o r c a d a p i e z a ? \ n " ) ;
scanf("% f",&pa);
i f ( p i e <=30)
{
s =p a * p i e ;
sue=sue+s;
p rin tf("T u sa la rio es $% .2 f\n", s u e ) ;
}
else
{
s=(pa*pie)* . 2 0 ;
sue=sue+s;
p rin tf("T u sa la rio e s $%. 2 f " , s u e ) ;
}
}
getchf);
{
ftoat c 1 , c 2 , v 1 , v 2 , n c ;
in t i,n ;
textco lor(R E D );
c l r s c r f );
goto xy(27,3);
p r i n t f ( " R e a l i z a una d i l u c i ó n p o r p a s o s \ n \ n I n d i c a de c u a n t o s p a s o s d e s e a s
re a liza r la dilu ció n : ");
www.FreeLibros.me
9.8 Estructura rep etitiva f o r 293
s c a n f ( "%¿" , & n ) ;
p rin tf("\n I n t r o d u c e e l p r i m e r v ol umen: ");
s c a n f f "%f" , & v 1 ) ;
p rin tf("\n Y la concentración i n i c i a l : ");
s c a n f f " , & c 1) ;
p r i n t f ( u\n C u an t o volumen v a s a a g r e g a r ? ");
s c a n f f " % f " ,& v2 ) ;
c 2 =v1 * c 1 / ( v 2 +v1 ) ;
p r i n t f f u\n L a c o n c e n t r a c i ó n en l a primer d i l u c i ó n es: ",c2);
for ( i =1 ; i < n ; i + + )
{
c l r s c r f );
p r i n t f f " \ n Que volumen de l a s o l u c i ó n c on l a con centración a n t e r io r
q u i e r e ? \ n " );
s c a n f ( H96 f " , &v 1 ) ;
p r i n t f ( n\n Que volumen va a a g r e g a r ? \ n " ) ;
s c a n f ( " % f n, & v 2 ) ;
n c = ( v 1 *c 2 ) / ( v 2 +v1 ) ;
p r i n t f ( " \n A h o r a l a c o n c e n t r a c i ó n es
c 2 =nc;
}
g e t c h f );
{
float n , o , m c , p e , p a e t mol;
in t i;
textcolor(R E D );
c l r s c r f );
g o t o x y ( 9 , 3);
p r i n t f ( " I n d i c a l o s m o l e s de c a d a e l e m e n t o de f o r m u l a m o l e c u l a r
desconocida\n\n Dame e l num. de e l e m e n t o s que t i e n e : ");
s c a n f f " % f ", & n ) ;
p r i n t f ( u\n A h o r a l a masa d e l c o m p u e s t o : " ) ;
www.FreeLibros.me
294 Capítulo 9 Ejercicios resueltos
s c a n f f "%f" , &mc);
f o r ( i =1 ;i <=n;i ++)
{
p rin tf("\n I n t r o d u c e e l p o r c e n t a j e en p e s o d e l e l e m e n t o 96 i \ n " , i ) ;
scanff"% f",& pe);
p r i n t f ( " \ n A hora e l peso atóm ico d e l e le m e n t o \n ");
scanff"% f",&pae);
m o l = ( m c / f p e / 1 0 0 ) ) / p a e;
p r i n t f ( " \n%f m o l e s " , m o l ) ;
}
g e t c h f );
/ * D i s o l u c i o n e s */
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
void m ainf)
{
float v 1 , v 2 , v a , c 1 , c 2 ;
in t i;
textcolor(R E D );
c lrs c rf);
gotoxy(32,3);
p rin tff"D iso lu cio n e s\n \n Introduzca e l volumen a d i l u i r : ");
s c a n f f "%f" , & v 1 ) ;
p r i n t f f " \n L a c o n c e n t r a c i ó n de d i c h a s o l u c i ó n : ") ;
s c a n f f " % f ", & c 1 ) ;
p r i n t f ( " \n F i n a l m e n t e l a concentración a l a que q u i e r e l l e g a r : ");
scanff"*6f",&c2);
v 2 =v1 * c 1 I c 2 ;
va=v 2 - v 1 ;
p r i n t f ( " \n E l volumen de agua a a g r e g a r e s %f. O t r a s c o n c e n t r a c i o n e s
( s u b m ú l t i p l o s d e l volumen i n i c i a l ) ", v a ) ;
for ( i = 1 ;i<=3;i ++)
www.FreeLibros.me
9.8 Estructura rep etitiva f o r 295
{
v 1 =v1 / 1 0 ;
v 2 =v1 * c 1 / c 2 ;
va=v 2 - v 1 ;
p r i n t f f " \n P a r a %f s e n e c e s i t a n de a g u a " , v 1 , v a ) ;
}
getchf);
/*Presión p a r c ia l* /
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
void m ain()
{
float m , p , v , t , p t = Q ;
in t n ,i;
textco lor(R E D );
c l r s c r f );
g o to x y ( 2 6 ,3);
p r i n t f ("P re sio n e s p a r c ia le s \ n \ n C u a n t o s componentes t i e n e e l g a s ? \ n " ) ;
s c a n t ( "%i" , & n ) ;
for ( i =1 ;i<=n;i++)
{
c l r s c r f );
p rin tf("\n I n t r o d u c e l o s m o l e s d e l compuesto %¿; ",i);
s c a n t ( "%f" ,&m);
p r i n t f ( " \ n Ahora l a temperatura: ");
s c a n t ( "%f" , & t ) ;
p r i n t f ( " \ n Finalm ente e l vol umen: ");
s c a n f ( "%f" , & v ) ;
p=m*0 . 0 8 2 1 * t / v ;
pt =pt +p;
p r i n t f ( " \ n La p r e s ió n p a r c i a l d e l componente es:
p r i n t f ( " \ n La p re s ió n t o t a l es
getchf);
www.FreeLibros.me
296 Capítulo 9 Ejercicios resueltos
{
c l r s c r ( );
in t n ,i;
float e x , f x , x , p r o d , s u m ;
p rin tf("C a lcu la la v a r i a n z a de X \ n " ) ;
p r i n t f ( " D a m e e l numero de v a l o r e s que s e tomaron p a r a X ") ;
s c a n f ( " 96 d " , & n ) ;
sum=0 ;
p r i n t f ( "Dame e l v a l o r de l a e s p e r a n z a de X ") ;
s c a n f ( "%f" , & e x ) ;
for ( i = 1;i<=n;i++)
{
p r i n t f ("Dame e l v a l o r %c/ de X " , i ) ;
scanf("% f",&x);
p r i n t f ("Dame e l v a l o r %c/ de l a f u n c i ó n de p r o b a b i l i d a d e s ",i) ;
scanf("% f",&fx);
prod=(x-ex)*(x-ex)*fx;
sum+=prod;
}
p r i n t f ( " L a v a r i a n z a de X e s d e : %.4 f " , sum);
g e t c h f );
{
c l r s c r f );
in t x,n,i,acum ,o;
p r i n t f ( " D e r i v a d a s de X a l a n de o r d en s u p e r i o r \ n " ) ;
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 297
{
x*=n;
}
prin tf("La d e r iv a d a es %c/XA%c/\n" , x, n) ;
getchf);
{
in t e,i,a ¡2 0 ],a a ¡2 0 ],A A ;
printf("M agn itud a l c u a d r a d o de un v e c t o r " ) ;
p r i n t f ( " De c u a n t o s e l e m e n t o s e s e l vector (máximo 2 0 ) ? " ) ;
scanf("% i",&e);
for (i=0 ; i < e ; i = i + 1)
{
printf("Dam e e l valor del e l e m e n t o %¿ d e l p r i m e r v e c to r",i+ 1 );
s c a n f( " % i" , & a [ i] );
}
for (i=0 ; i < e ; i = i + 1) a a [ i ] = a [ i ] * a [ i ] ;
AA =aa[ 0 ] ;
for (i=1 ; i < e ; i = i + 1 ) AA=AA+aa[ i ] ;
p rintf("% i",A A );
g e t c h f );
www.FreeLibros.me
Capítulo 9 Ejercicios resueltos
{
p r i n t f ( " Dame e l v a l o r d e l e l e m e n t o %¿ d e l p r i m e r v e c t o r " , i + 1) ;
}
for (í=0; i< 3 ; i=i+1 )
{
p r i n t f ( " Dame e l v a l o r d e l e l e m e n t o %i d e l segu ndo v e c t o r " , i + 1 )
sca n f("M ",& b [i]);
}
ab[0]= (a[2]*b[3J)-(b[2]*a[3J);
ab[1J=(a[1]*b[3J)-(b[1J*a[3J);
ab[2J=(a[1]*b[2])-(b[1J*a[2J);
A B = a b[ 0] ;
for (i =1 ; i < 3 ; i = i + 1 ) AB=A B+ab[ i];
p r i n t f ( "%¿" , A B ) ;
getch();
{
float r e a c , p m , m o l e s [ 1 5 ] ,comp;
in t c,i,elem ento;
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 299
p r i n t f ( " R e a c t iv o l i m i t a n t e " );
prin tf("In d iq u e c u a n t o s c omp uest os t i e n e l a r e a c c i ó n (no mas de 1 5 ) " ) ;
scanf("*6i",&c);
for (i= 0 ; i < c ; i = i + 1)
{
printf("Dam e l a cantidad del r e a c t i v o %¿", i+ 1);
s c a n f ( "%f" , & r e a c ) ;
p rin tf("D a m e e l peso m o le cu la r del r e a c t i v o " );
scanf("%f",&pm);
m o l e s [ i ] =reac/pm;
}
comp=moles[(ñ] ;
for ( i =1 ; i < c ; i = i + 1 )
{
if (comp<moles[i])
{
comp=moles[iJ;
elemento=i;
}
}
p r i n t f ( "El r e a c t iv o l i m i t a n t e e s %¿", elem ento);
getchf);
{
in t n ,i;
float v 1 [ 1 0 0 ], v 2 [ 1 0 0 ] , pro, propun, mag 2 , den, e s c , com;
char op;
textco lor(B LU E );
textbackground(WHITE);
do
www.FreeLibros.me
300 Capítulo 9 Ejercicios resueltos
c l r s c r f );
p r i n t f ( "C alcula l a p r o y e c c ió n e n t r e dos v e c t o r e s \ n \ n " );
p r i n t f ( " Dame e l numero de e l e m e n t o s de l o s vectores: ");
scanf("%d",&n);
propun=(d;
den=0 ;
p rin tf("\n ");
f o r ( i = 0 ; i < n; i + + )
{
p r i n t f ( " Dame l a componente %c/ d e l vecto r sobre e l cual es l a
p r o y e c c i ó n : " , i +1);
{
p r i n t f ("Dame l a componente %c/ d e l otro vector: ",i+ 1);
s c an f("% f" ,& v2 ( i ] ) ;
}
for ( i = 0 ; i < n; i + + )
{
pro=v1 [ i j * v 2 [ i j ;
propun+=pro;
mag2 =v1 [ i ] * v 1 [ i ] ;
den+=mag2 ;
}
esc=propun/ den;
p r i n t f ( " \nLa p r o y e c c i ó n r e s u l t a n t e e s e l vector: ") ;
p r i n t f ("{ ");
for ( i = 0 ;i < n ; i ++ )
{
com=v1 [ i ] * e s c ;
p rin tf( "%. 2 f " ,com) ;
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 301
{
in t n ,i;
float v 1 [ 1 0 0 ] , v 2 [ 1 0 0 ] ,m1 ,m2,mag1, mag2 , p r o , p r o p u n , x , a n r a d , a n g r a d ;
c h a r op;
textcolor(W HITE);
textbackground(BLUE);
do
{
c l r s c r f );
p rin tf("C a lcu la el ángulo e n t r e dos v e c t o r e s \ n \ n " );
p r i n t f ( " Dame e l numero de e l e m e n t o s de l o s vectores: ") ;
s c a n f ( U96 d " , & n ) ;
mag 1 =0 ;
pr o pu n = 0 ;
mag2 =0 ;
p r i n t f ( “ \n");
for ( i = 0 ; i < n; i + + )
{
p r i n t f ( " Dame l a componente %c/ d e l p r i m e r v e c t o r : " ,i+1);
s c a n f ( " * 6f " , & v 1 [ i ] ) ;
}
p rin tf("\n ");
for ( i = 0 ; i < n; i + + )
{
p r i n t f ( " Dame l a componente %c/ d e l segundo v e c t o r : " , i + 1) ;
s c a n f ( " * 6f " , & v 2 [ i ] ) ;
}
for ( i = 0 ;i < n ; i ++ )
www.FreeLibros.me
302 Capítulo 9 Ejercicios resueltos
{
pro=v1 [ i ] * v 2 [ i j ;
propun+=pro;
m1 =v1 [ i ] * v 1 [ i ] ;
mag 1 +=m1 ;
m2=v2[i]*v2[í];
mag2 +=m2 ;
x = pr o pu n /( s q r t ( m a g 1 *mag2 ) ) ;
anrad=acos(x);
a n gr ad= 18 0* anr ad/ 3 . 1 41 59 ;
p r i n t f ( " \nEl ángulo e n tre l o s v e c t o r e s e s de 96 . 2 f o \ n u, a n g r a d ) ;
p r i n t f ( H\nDeseas h a c e r o t r o c a l c u l o ? S / N ' ) ;
scanf("*6S",&op);
}
w h il e ((op=='s')\\(op=='S-));
getchf);
{
in t i,n ;
c h a r op;
float d a t o [ 1 00 ] , sum, pro m, v a r , d e s v , s u m a t ;
textbackground(BLUE);
textcolor(W HITE);
do
{
c l r s c r f );
sum=0 ;
sumat= 0 ;
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 303
p r i n t f ( ” \n") ;
for ( i = 0 ; i < n; i + + )
{
p r i n t f ( " Dame e l v a l o r %c/ de t u m u e s t r a : " , i + 1);
s c a n f f "%f", & d a t o [ i J ) ;
s u m+ = da to [ i] ;
}
prom=sum/n;
for (i=<d;i<n;i++)
{
s u m a t + = p o w ( d a t o [ i ] - pr om, 2 ) ;
}
v a r = s u m a t/ ( n - 1) ;
desv=sqrt(var);
p r i n t f ( " \nLa d e s v i a c i ó n e s t á n d a r e s i g u a l a: 96 . 3 f \ n ” , d e s v ) ;
}
w h ile f(op=='s' )\ \(o p = 'S ' ) ) ;
g e t c h f );
/ * P r o d u c t o p u n t o e n t r e v e c t o r e s */
ttinclude < co ni o. h>
ttinclude <stdio.h >
t t i n c l ude <mat h . h >
v o i d mai n ()
{
c lrs c r ();
www.FreeLibros.me
304 Capítulo 9 Ejercicios resueltos
{
p rin tf ("Dame l a m edi da de l o s v e c t o r e s max 1 0 \ n " ) ;
scanf & n);
for ( i = 0 ; i < n ; i++)
{
p r i n t f ("Dame e l d a t o %c/ d e l p r i m e r v e c t o r \ n " , i + 1 ) ;
s c a n f ("%f", & v1 [ i ] );
p r i n t f ("Dame e l d a t o %c/ d e l segundo v e c t o r \ n " , i + 1 ) ;
s c a n f ("%f", & v2 [ i j ) ;
p r i n t f ("Dame e l d a t o %c/ d e l t e r c e r v e c t o r \ n " , i+ 1);
s c a n f ("%f", & v 3 [ij);
}
for ( i = 0 ; i < n ; i++)
p rin tf ("el componente %c/ d e l p r o d u c t o p u n t o e n t r e l o s v e c t o r e s es
% 7.2f\n", i+1, v1 [ i ] * v 2 [ i ] * v 3 [ i ] ) ;
p rin tf ("Deseas c a l c u l a r o t r o p ro d u c t o p u n t o \ n ? " );
scanf & op);
}
getch ();
{
c l r s e r f );
in t i, n , X;
float x [ 3 0 ] , y [ 3 0 ] , a=0, b=0, c=0, c o v , d=0, B0, B 1 , Y , my=0;
char op = 's';
p rin tf ( " E l programa c a l c u l a l o s e s t i m a d o r e s de l a r e c t a de
r e g r e s i o n \ n " );
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 305
{
p r i n t f ("Dame l a c a n t i d a d de d a t o s , max 3 0 \ n " ) ;
s c a n f ("%d", & n);
for ( i = 0 ; i < n ; i++)
{
p rin tf ("Dame un v a l o r d e l e j e x \ n " );
s c a n f ("%f", & x [ij);
p rin tf ("Dame un v a l o r d e l e j e y \ n " );
c=c+y[i];
d=d+pow(x[i ] , 2 ) ;
my=my+y [ i ] ;
}
Y=my/n;
p r i n t f ("Dame e l v a l o r de X \ n " ) ;
s c a n f ("%d", & X);
B 1 = ( a - ( ( b * c ) l n ) ) l ( d - ( p o w( b , 2 ) / n ) ) ;
B 0= Y- ( B 1 * X ) ;
p rin tf ("B1=*6f\n", B1);
p rin tf ("B0^6f\n", B0);
p r i n t f ( " L a r e c t a de r e g r e s i ó n e s t a dada p o r % 7 . 4 f + % 7 . 4 f \ n " , B0, B1);
p r i n t f ( " D e s e a s c a l c u l a r o t r a r e c t a de r e g r e s i ó n ? s / n \ n " ) ;
scanf & op);
}
getch ();
C o e f i c i e n t e de c o r r e l a c i ó n * /
ttinclude < co ni o. h>
ttinclude <stdio.h >
t t i n c l ude <mat h . h >
v o i d mai n ()
www.FreeLibros.me
306 Capítulo 9 Ejercicios resueltos
c l r s c r ( );
in t i, n;
float x[ 3Q] , y [30], a=0, 0=0, c=0, cov, d=0, e=0, cdc;
char op= 's';
p rin tf ( " E l programa c a l c u l a el c o e f i c i e n t e de c o r r e l a c i o n \ n " ) ;
w h ile (op=='s'\\op=='S' )
{
p r i n t f ("Dame l a c a n t i d a d de d a t o s , max. 3Q\n");
s c a n f ( a%du, & n);
{
p rin tf ("Dame un v a l o r d e l e j e x \ n " );
s c a n f ("%f", & x [ i ] );
p rin tf ("Dame un v a l o r d e l e je y \ n " );
scanf ( " * f , & y [i]);
a= a+ (x[i]*y[i]) ;
b=b+x[i] ;
c=c+y[i];
d=d+pow(x[iJ, 2 ) ;
e=e+pow(y[i], 2 ) ;
}
c o v = ( ( a - ( ( b * c ) / n ) ) I ( n - 1) ) ;
cdc=pow((a-((b*c)/n))/(d-(pow(b,2)/n)*(e-(pow (c,2) / n ) ) ) , 1 / 2 );
p r i n t f ( " L a c o v a r i a n z a es 96 7 . 4 f \ n ” , c o v ) ;
p r in t f ("El c o e f i c i e n t e de c o r r e l a c i ó n e s 96 f \ n " , cdc);
p rin tf ( " D e s e a s c a l c u l a r o t r o c o e f i c i e n t e de c o r r e l a c i ó n ? s / n \ n " ) ;
s c a n f ( m%sa , & o p ) ;
}
getch ();
www.FreeLibros.me
9.9 A rre g lo s u nidim ensionales 307
{
c l r s c r f );
in t i, n;
float x [ 3 0 J , y [ 3 0 ] , a=0, b=0, c=0, cov;
char op= 's';
p rin tf ( " E l programa c a l c u l a l a co v a ria n za \n ");
w h ile (op=='s'\\op=='S')
{
p r i n t f ("Dame l a c a n t i d a d de d a t o s , max. 3 0 \ n " );
s c a n f ("*6d", & n) ;
for ( i = 0 ; i < n ; i++)
{
p rin tf ("Dame un v a l o r d e l e je x \ n " );
s c a n f ("*6f", & x [ij);
p rin tf ("Dame un v a l o r d e l e j e y \ n " );
c ov =( ( a - ( ( b * c ) / n ) ) / ( n - 1) ) ;
p rin tf ( " L a s u m a t o r i a d e l e j e x e s % 7 . 2 f \ n ", b);
p rin tf ( " L a s u m a t o r i a d e l e j e y e s 96 7 . 2 f \ n " , c);
p rin tf ( " L a s u m a t o r i a de l a m u ltip lica ció n de l o s e j e s e s % 7 . 2 f \ n ",
a);
p rin tf ("L a c o v a r ia n z a es % 7 .4 f\n", cov);
p rin tf ("Deseas c a l c u l a r o t r a c o v a r ia n z a ? s / n \ n " ) ;
s c a n f ( a%sm, & o p ) ;
}
getch ();
/ * I n v e n t a r i o de una p a s t e l e r í a * /
t f i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
www.FreeLibros.me
308 Capítulo 9 Ejercicios resueltos
v o id main()
{
in t d , p [ 3 0 ] , g [ 3 0 ] , p a [ 30] ,ac=0,acu=0,acum=Q, x , i ;
float dp,d pa,dg;
c l r s c r f );
p r i n t f ( " \ t \ t I n v e n t a r i o de una p a s t e l e r i a \ n " ) ;
p r i n t f ( " \nCon e s t e i n v e n t a r i o t e d a r é l a s g a n a d a s y v e n t a s de l o s
d i a s qu e q u i e r a s \ n " ) ;
p r i n t f ( " \nDame e l p r e c i o de un p a s t e l \ n " ) ;
s c a n f ( " 96 f u, & d p ) ;
p r i n t f ( " Dame e l p r e c i o de una g e l a t i n a \ n " ) ;
scanf("% f",&dg);
p r i n t f ( " Dame e l p r e c i o de un p a y \ n " ) ;
s c a n f ( U96 f \ & d p a ) ;
p r i n t f ( " De c u a n t o s d i a s q u i e r e s t e n e r t u i n v e n t a r i o ( m á x i m o un mes)?
\n");
s c a n f ( " 96du, & d ) ;
for ( i = 0 ; i< d ; i + + )
{
p r i n t f ("Dame e l t o t a l de v e n t a s en e l d i a %c/\r?" , i + 1 ) ;
p r i n t f ( " C u a n t o s p a s t e l e s v e n d i s t e ? \ n " );
scanf("% d",8,p[il);
p r in tf( " C u a n ta s g e la t in a s v e n d is te ? \n ");
s c a n f ( "%c/", & g [ i ] ) ;
p r i n t f ( " C u a n t o s pays v e n d is te ? \n " );
s c a n f ("% d",&pa[i]);
ac=ac+p[i];
acu=acu+g[i],
acum=acum+pa[i];
}
p r i n t f (" \n El t o t a l de v e n t a s en d ia s fueron:\n" , d ) ;
p r i n t f ( " \n \ t \ t p a s t e l e s \ t \ t g e l a t i n a s \ t \ t p a y s \ n \ n " ) ;
p r i n t f ( " \ t \ t 96d\t \ t \ t%c/\ t \ t \ t %d ", a c , ac u , acum) ;
p r i n t f ( " \n\nDe que d i a q u i e r e s s a b e r l a s g a n a n c i a s que o b t u v i s t e ? \ n ”) ;
scanf("% d",&x);
p r i n t f ( ” \ n \ t E l d i a %c/ o b t u v i s t e l a s ig u i e n t e s ganancias y ventas\
n",x);
p r i n t f ( " \ n \ t P a s t e l e s : %c/ v e n t a s con una g a n a n c i a de 96 . 2 f \ n " , p [ x -
1], P ( x - 1 ] * d p ) ;
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 309
%. 2 f \ n " , p a [ x - 1 ] , p a [ x - 1 ] *dpa) ;
g e tc h f);
{
e lrse r ();
in t i, j, m[ 1 0 J [ 1 0 ] , n, x;
p r i n t f ( " M a t r i z t r a s p u e s t a \ n " );
p r i n t f ("Dame e l numero de f i l a s \ n " ) ;
s c a n f ("%c/", & n);
p r i n t f ("Dame e l numero de c o l u m n a s \ n " ) ;
scanf ("W ", & x);
for (i=Q; i < n ; i++)
for ( j = 0 ; j <x; j++)
{
p rin tf ("Dame e l e l e m e n t o c on c o o r d e n a d a %c/ 96 d \ n " , i + 1 , j + 1 ) ;
scanf ( ' W , & m [ i ] [ j ]);
}
for j < * ; 1++)
{
for ( i = 0 ; i < n ; i++)
{
p rin tf ('%d ", m [ i ] [ j ]);
}
p rin tf ("\n");
}
getch ();
www.FreeLibros.me
310 Capítulo 9 Ejercicios resueltos
{
in t con[99][99], c , s , x , y ;
c l r s c r ( );
p r i n t f ( "Tabulare l a re siste n cia de c o n c r e t o s segú n l a semana de p r u e b a \
nCuantos t i p o s de c o n c r e t o s t i e n e s ? \n");
scanf("%d",&c);
p r i n t f ( “C u a n t a s semanas h a r a s p r u e b a s ? \ n " ) ;
s c a n f ( " 96d“ , & s ) ;
for (x= 0 ;x<c;x++)
{
for (y=0 ;y<s;y++)
{
printf("D im e l a re siste n cia del c o n c r e t o %c/ en l a semana
\ n " , x + 1 , y +1 ) ;
scanf("% d",&con[x][y]);
}
}
for (x= 0 ;x<c ;x++)
{
p r i n t f ( " \n");
for (y=Q;y<s;y++)
{
p r i n t f ( a%d " , c o n [ x ] [ y J ) ;
}
}
getch();
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 311
# i n c l u d e < c o n i o . h>
void m ain()
{
i n t i , j , x ( 1 0 ] [ 1 0 ] , d e t = 1, t ;
c l r s c r ( );
g o t o x y f 1 6 ,3);
p r i n t f ( " D e t e r m i n a n t e de una m a t r i z t r i a n g u l a r \ n \ n Introduzca e l tamanio
de l a m atriz (m x. 10x 1 0 , s o l o m a t r i c e s c u a d r a d a s \ n u) ;
s c a n f ( "% i" , & t ) ;
for (i= 0 ; i < t ; i + + )
f o r ( j = 0 ;j<t;j++)
{
if (j==i)
{
p r i n t f ( " \n Dame e l v a l o r en l a p o s i c i ó n %¿,%¿; " , i + 1 , j +1);
s c a n f ( U96 i" , & x [ i ] [ j ] ) ;
}
}
for (i= 0 ; i < t ; i + + )
f o r ( j =0 ;j < t ; j++) i f ( j = i ) d e t = d e t * x [ i ] [ j ];
p r i n t f ( ” \n E l d e t e r m i n a n t e e s : % ¿",c/et;;
getch();
void m ain()
{
i n t j , i , x [ 2 ] [ 2 ],det;
g o to x y f2 6 ,3);
p r i n t f ( " D e t e r m i n a n t e de una m a t r i z de 2 x 2 \ n \ n " ) ;
for ( i = 0 ; i < 2 ;i++)
for ( j = 0 ; j < 2 ;j++)
www.FreeLibros.me
312 Capítulo 9 Ejercicios resueltos
}
d e t = ( x [ 0 J [ 0 ] * x [ 1 ) [ 1 J ) - ( x [ 1) [ 0 ] * x [ 0 ] [ 1 J ) ;
p rin tf("\n El d e te rm inante es % i " , d e t ) ;
getch();
{
i n t p ro [30][5],i ,j , s ,s e , to ta l;
c l r s c r f );
p r i n t f ( ”I n v e n t a r i o de p r o d u c c i ó n de una s e m a n a ( 5 d i a s ) \ n " ) ;
prin tf("D e c u a n t a s semanas q u i e r e s t u i n v e n t a r i o ? \ n " ) ;
scanf("% d",&se);
for (i= 0 ;i<se;i++)
{
total= 0 ;
p r i n t f ( " SEMANA %cT, i + 1 ) ;
for ( j =0 ;j <5 ;j ++ )
{
p r i n t f ( " \nDame l a p r o d u c c i ó n d e l d i a 96 d \ n " , j +1) ;
scanf C * d ',& p ro [ i] [ ] ] ) ;
t o t a l = t o t a l + p r o [ i ] [ j ];
}
p r o [ i ] [ j J= total;
}
p r i n t f ( "De que semana q u i e r e s s a b e r l a pro du ccio n ?\n ");
s c a n f ( " W ' ,&s) ;
p r i n t f ( " \ n \ t \ t S e m a n a %c/",s;;
for ( j =0; j <5; j ++) p r i n t f ( " \ n \ t \ t D i a %c/ = %c/ p r o d u c t o s \ n " , j +1 , p r o [ s - 1 ]
(j]);
getch();
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 313
{
in t t , e m , a c , i , j , x , m , p r , p [ 5 ] [80];
f loat s a l ;
c l r s c r f );
p r i n t f ( " \ t \ t E n que t u r n o de l a empresa r e a l i z a n mas p r o d u c c i o n \ n " ) ;
p r i n t f (" \ n Cu a nt os t u r n o s b r i n d a l a empresa p a r a l o s t r a b a j a d o r e s ? \ n " ) ;
s c a n f ( " * 6d " , & t ) ;
p r i n t f ( " C u a n t o s e mp l ea do s e l a b o r a n en c a d a t u r n o \ n ? " ) ;
s c anf (" *6d*,&em);
for (í=0 ;í< t;í+ + )
{
ac= 0 ;
p r i n t f ( " T U R N O NUMERO % d \ n " , i + 1 ) ;
for (j=Q;j<em;j++)
{
p r i n t f ( " \ n C ua n ta s p i e z a s e l a b o r a s t e , t r a b a j a d o r ? %d\n",j+1);
s c a n f ( *%da, & p [ i ] [ j ] ) ;
ac= ac+ p[ij[jj;
}
p [ i ] l em ] =ac;
}
for ( i = Q ; i < t ; i + + ) p r i n t f ( " \ n \ t T u r n o %d\t p r o d u j o . . . . %c/ p i e z a s
\n\n “ , i +1 , p [ i ] [ e m ] ) ; ;
p r i n t f ( " De que t r a b a j a d o r d e s e a s s a b e r su s a l a r i o p o r p i e z a e l a b o r a d a ?
\ n n) ;
p r i n t f ( " \ n \ t \ t P o r cada p i e z a 0. 9 p e s o s \ n " ) ;
p r i n t f ( " \nEn qu e t u r n o l a b o r a ? \ n ”) ;
scanf("% d",&x);
p r i n t f ( " Q u e numero de t r a b a j a d o r e s ? \n");
s c a n f ( U96d",&m);
p r i n t f ( "E l t r a b a j a d o r %c/ d e l t u r n o %c/ e l a b o r o %d p i e z a s \ n " , m , x , p [ x - 1 ]
[m-1]);
www.FreeLibros.me
314 Capítulo 9 Ejercicios resueltos
s a l = p [ x - 1 ] [m-1] * . 8 9 ;
p rin tf("\n \tP o r lo t a n t o o b t u v o un s a l a r i o de $% .2f",sal);
getch();
{
i n t peso[4][5], i , j , s , s e , p , to ta l;
c l r s c r ( );
p r i n t f ( " T i e m p o de e j e r c i c i o (semana de 5 d i a s ) \ n " ) ;
p r i n t f ( ”De c u a n t a s semanas q u i e r e s t u c o n t r o l de p e s o ? \ n " ) ;
s c a n f ( U96 d " , & s e ) ;
for ( i = 0 ;i<se;i+ +)
{
t o t a l =0 ;
p r i n t f ( " S e m a n a %c/", i + 1 ) ;
for ( j = 0; j <5 ;j ++ )
{
p r i n t f ( " \ n C ua n ta s h o r a s de e j e r c i c i o re a liza ste en e l dia?
% d \n " , j+ 1) ;
scanf("% d",& peso[i][j]);
t o t a l = t o t a l + p e s o [ i ] [ j ];
}
p= total;
}
p rin tf("D e que semana q u i e r e s s a b e r l a c a n t i d a d de h o r a s que
r e a l i z a s t e ? \ n " );
scanf("%d",&s);
p r i n t f ("\n\t\tSemana
for (j=0;j<5;j++)
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 315
p r i n t f ( " \ n \ t \ t D i a %d = %d h o r a s \ n " , j +1 , p e s o [ s -1 ] [ j J ) ;
}
p r i n t f ( " \ n \ t \ t 1 h r s .................. Quemas 150 K C A L " ) ;
p r i n t f ( " \n\n\tEl to ta l de h o r a s de l a semana %c/ f u e de %c/", s , p ) ;
p r i n t f ( ° \n\tPor l o tanto, qu emast e %c/ k i l o c a l o r i a s " , p * 1 5 0 ) ;
getchf);
{
f loat x [ 2 0 ] [ 2 0 ] , y [ 2 0 ] [ 2 0 J ;
in t i,j , f, c ;
te x tco lo r(3 );
textbackground(0) ;
c lrs c rO ;
g o t o x y ( 1 5 , 5 ) ; p r i n t f ( " R a i z c u a d r a d a de una m a t r i z " ) ;
p r i n t f (° \n\n\nNumero de f i l a s : ") ;
s c a n f f "%c/n, & f ) ;
p r i n t f ( " \nNumero de c o l u m n a s : ");
s c a n f ( n96d“ , & c ) ;
p r i n t f ( ” \ n \ n \ n ”) ;
for (i=0 ;i< f;i+ + )
{
for (j=0 ;j<c;j++)
{
p r i n t f ( "Dame e l e l e m e n t o 9&d, %c/: " , i + 1 , j +1 ) ;
scanf( "% f',& x [i][j]);
y [ i ] [ j ] = s q r t ( x [ ij [ j J );
}
}
p r i n t f ( " \n\nM atriz o r i g i n a l \ n " );
for (i= 0 ;i< f;i+ + )
www.FreeLibros.me
316 Capítulo 9 Ejercicios resueltos
for ( j = Q ; j < c ; j + + ) p r i n t f f ” %. t f ”, x [ i ] [ j ] ) ;
p r i n t f f ” \ n ”) ;
}
p r i n t f ( " \ n \ n R a i z c u a d r a d a de l a m atriz: \n");
for ( i = 0 ; i < f ;i++)
{
for ( j= 0 ;j<c;j++) p r i n t f f ” H . l f ” , y [ i ] [ j ]);
p r i n t f f ”\n”) ;
}
getchf);
{
textcolor(W HITE);
t e x t b a c k g r o u n d ( BLUE) ;
in t i,j,m ,n ;
c h a r op;
float m a t l [ 1 0 ] [ 1 0 ] , m a t 2 [ 1 0 ] [ 1 0 ] , e s c ;
do
{
clrscr();
p rin tff"M u ltip lica ció n de m a t r i z p o r un e s c a l a r \ n \ n " ) ;
p r i n t f ( " D a m e e l numero de f i l a s de l a m atriz: ");
s c a n f f "%c/", &m);
p r i n t f f "Dame e l numero de c ol umnas de l a m atriz: ');
s c a n f f "%c/" ,&n) ;
p r i n t f f ” \ n ");
for ( i = 0 ;i<m;i++)
for ( j = 0 ;j <n;j++)
{
printf("Dam e e l e l e m e n t o %c/ - %c/ de t u m a t r i z : ” , i + 1 , j +1 ) ;
s c a n f ( "% f" , &mat 1 [ i ] [ j ] ) ;
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 317
}
p r i n t f ( "\n");
p r i n t f ( " Dame e l e s c a l a r q u e v a a m u l t i p l i c a r t u m a t r i z : ");
s c a n f ( U96 f " , & e s c ) ;
p r i n t f ( u \ n \ n u) ;
f o r ( i =Q; i <m; i ++)
{
f o r (j = 0 ;j<n;j++)
{
m a t 2 [ i ] [ j ] =mat 1 [ i j [ j j * e s c ;
p r i n t f (• ",m a t2 [ i ] [ j ] ) ;
}
p r i n t f ( “\ n " ) ;
}
p r i n t f ( " \ n \ n D e s e a s r e p e t i r e l p r o g r a ma ? S / N " ) ;
scanf("%s",&op);
}
w h i l e ( ( op==' S ' ) \ \ ( o p = = ' S ' ) ) ;
getch();
}
www.FreeLibros.me
318 Capítulo 9 Ejercicios resueltos
{
p r i n t f ( " Dame e l v a l o r %c/-%c/: " ,1+1 , j +1) ;
s c a n f ( "%d",&mat[ i ] [ j ] ) ;
}
p r i n t f ( " \ n" );
f o r ( í = 0 ;i<n;i++)
f o r ( j =0 ;j < n ; j ++)
if ( ( ( i = = j ) & & ( m a t [ i ] [ j ] = = 1 ) ) \ \ ( ( i ! = j ) & & ( m a t [ i ] [ j ]==*))) cont++;
if(cont==n*n) p r i n t f ( " E s m a t r i z de i d e n t i d a d " );
else
p rin tf("N o es m a t r i z de i d e n t i d a d " ) ;
p r i n t f ( " \ n \ n De s ea s e v a l u a r o t r a m a t r i z ? S / N ") ;
s c a n f ( ”*6S",&op);
}
w h ile ((op= = 's' )\\(op=='S') ) ;
getch();
{
char o p = ' s ' ;
e lrse r ();
in t i, j, m1[ 1 0 ] [ 1 0 ] , m2[1 0 ] [ 1 0 ] , m3[10][10], m, n;
p rin tf ( " p r o d u c t o p u n t o de d o s m a t r i c e s \ n " ) ;
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
p r i n t f ("Dame e l t o t a l de f i l a s \ n " ) ;
scanf , & m);
p rin tf ("Dame e l t o t a l de c o l u m n a s \ n " ) ;
scanf & n);
for ( i = 0 ; i<m; i++)
for ( j = 0 ; j <n; j++)
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 319
i+ 1, 1+V;
scanf ("W ", & m1 [ i j [ j j ) ;
p rin tf ("Dame e l e l e m e n t o con c o o r d e n a d a %c/ %c/ de l a m atriz 2 \n ",
í+ i, 1+1);
s c a n f ( mW , & m2 [ i ] [ j J ) ;
}
for ( i = 0 ; i<m; i++)
{
for ( j = 0 ; j <n; j++)
{
m 3 [i][j]= m 1 [ij[j J*m 2[i][j J ;
p rin tf C W , m 3 [i][j J) ;
}
p rin tf ("\n");
}
p rin tf ("Deseas c a l c u l a r o t r a m a t r i z \ n ? " );
s c a n f ("96S", & op);
}
getch ();
l*Inversa*/
Uinclude <c o ni o. h >
üinclude <stdio.h >
v o i d mai n ()
{
in t i, j, n, m[3 ] [ 3 ] , det3;
float t [ 3 J [ 3 ] , a;
e lrse r ();
char op= 'sl ;
{
p r i n t f ("Dame l a m a t r i z 3 x 3 \ n " ) ;
www.FreeLibros.me
320 Capítulo 9 Ejercicios resueltos
f o r ( i = 0 ; i <3; i+ + )
f o r ( j = 0 ; j <3; ] + + )
{
p r i n t f ("Dame e l componente %c/ %c/ de l a m a t r i z \ n " , í+1, j + 1 );
scanf ( ' * d \ & m [i][j]);
}
det3=(m [Q][0]*m [1][1]*m [2][2])+(m [(d][1]*m [1][2]*m [2][Q])+(m [0][2]*m [1]
[Q]*m[ 2 ] [ 1 ! ) - ( m [ Q ] [ 1 J*m[ 1 ] I 0 ]*ml 2 ] t 2 ¡)-(m[(dJI 0 ]*m[ 1 ] ( 2 ]*m[ 2 J t 1 ¡ ) -
(m[ 0 ] [ 2 l*m[ 1 ] [ 1 ]*m[ 2 ] t 0 ] ) ;
a=(1ldet3);
p r i n t f ( " E l d e t e r m i n a n t e e s 9s d \ n " , d e t 3 ) ;
f o r ( i =0; i < 3 ; i + + )
{
f o r ( j =0; j < 3 ; j + + )
{
t[ij[j]= a * m [ij[jj;
p rin tf t[ij[jj);
}
p rin tf ("\n");
}
p r i n t f ("D eseas c a l c u l a r otro determ inante? s / n \ n " ) ;
sca n f ("*s", & op);
}
getch ( ) ;
}
/* In v e rsa* /
U in clu de <conio.h>
#i n c l u d e < s t d i o . h >
v o i d m a in ()
{
in t i , j , n , m[ 2 ] [ 2 ] , d e t 2 ;
float a , b, c , d, e ;
e lrse r ();
char op='s';
p r i n t f ( "_E1 p ro gra ma c a l c u l a l a i n v e r s a de una m a t r i z c u a d r a d a \ n " ) ;
w h i l e ( 0p = = ' s ' \ \ o p = = ' S ' )
www.FreeLibros.me
9.10 A rre g lo s bid im ensionales 321
{
p rin tf ("Dame l a m a triz 2x2\n");
{
p rin tf ("Dame e l c o m p o n e n t e %d %d de l a m a t r i z \ n " , i+1, j+1);
}
d e t 2 =(m[ 0 ] [ 0 ) * m [ 1 ] [ 1 ] ) - ( m [ 0 ] [ 1 ] * m [ 1 ] [ 0 ) ) ;
a=1/ d e t 2 ;
b = -a * m [1 J [ 1 ] ;
c =a * m[ 0 ] [ 1 J ;
d = a * m [1 ] [0 ] ;
e = -a * m [ 0 ] [ 0 J ;
gotoxy (4,30);
prin tf a + b + c + d + e );
>
getch ();
>
ü in clu d e <stdio.h>
H include <wath.h>
v o id main ()
{
e lrse r ();
float x [ 2 0 ] ¡ 2 0 ], y [ 2 0 ] [ 2 0 ];
in t i,j,f,c;
www.FreeLibros.me
322 Capítulo 9 Ejercicios resueltos
{
p r i n t f ( ‘' L e c t u r a de l a f i la %c/ de l a m a t r i z a : \ n u, i ) ;
for (j = 0 ; j <c; j++)
{
p rin tf ("a ( *d, %c/;=\ i , j);
scanf & x [i][j]);
}
}
p rin tf ( " M a t r i z o r i g i n a l \ n " );
for (¿= 0 ; i < f ; i++)
{
for ( j = 0 ; j < c ; j++) p r i n t f C * 5 .2 f, x [ij[jj);
p rin tf ("\n");
}
p rin tf ("M atriz r a íz c u a d r a d a \ n " );
for (i= 0; i< f; i++)
{
p r i n t f ( "%5. 2 f " , y [ i ] [ j ] ) ;
p rin tf ("\n");
}
getch ();
/*Empresa K e n n e r * !
t t i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
üdefine mod 150000
void c o s t f )
{
float md, cim, t i , t f , cam;
p r i n t f ( " Dame e l c o s t o de m a t e r i a l e s d i r e c t o s u sa d os en l a p ro d u ccio n \n ");
s c a n f ( "% f" , &md);
www.FreeLibros.me
9.11 Funciones sin paso d e parám etros 323
}
void m a in f)
{
c l r s c r f );
p r i n t f ( " c o s t o de l o s a r t í c u l o s m a n u f a c t u r a d o s de l a empresa
K e n n e r \ n ") ;
costf);
g e t c h f );
{
float md, t o t a l ;
p r i n t f ( "Dame e l c o s t o de m a t e r i a l e s d i r e c t o s f m a s de 9 0 0 0 ) \ n " ) ;
s c a n f f "% f" , &md);
t o t a l = m d 19000;
p r i n t f ( " E l c o s t o u n i t a r i o de m a t e r i a l e s d i r e c t o s e s $*t>.3f", t o t a l ) ;
}
v o i d cmdf )
{
float mod, t o t a l ;
p r i n t f ( "Dame e l c o s t o de mano de o b r a d i r e c t a f m a s de 9 0 0 0 ) \ n " ) ;
s c a n f f "% f",&mod);
total=mod/9000;
p r i n t f ( " E l c o s t o u n i t a r i o de mano de o b r a d i r e c t a e s $%.3 f " , t o t a l ) ;
www.FreeLibros.me
324 Capítulo 9 Ejercicios resueltos
}
void c i( )
{
float c i n , t o t a l ;
printf("Dam e e l total de c o s t o s i n d i r e c t o s ( m a s de 9 0 0 0 ) \ n " ) ;
s c a n t("% f",& cin );
total= cin/9000;
p r i n t f ("El costo u n ita r io de c o s t o s i n d i r e c t o s e s $%.3 f " , t o t a l ) ;
}
v o id main()
{
in t op;
c l r s c r f );
p r i n t f ( ” \nCalcule l o s costos u n ita r io s de l a empresa G e l s t r a p \ n " ) ;
p r i n t f ( ” \nQue c o s t o u n i t a r i o deseas c a l c u l a r ? \ n " );
p r i n t f ( " 1 ) M a t e r i a l e s d i r e c t o s \ n 2 ) M a n o de o b r a \ n 3 ) C o s t o s
i n d i r e c t o s \ n u) ;
s c a n f ( ”%du, & o p ) ;
switch(op)
{
c a s e 1 : md();
break;
c a s e 2 : cmd( );
break;
c a s e 3: ci();
break;
d e fau lt:
p r i n t f ( "Opción i n v a l i d a " );
}
getchf);
www.FreeLibros.me
9.11 Funciones sin paso d e parám etros 325
float M , n , L ;
p rin tf("\n \n I n t r o d u z c a l o s m o l e s : ");
scanf("% f",&n);
p r i n t f ( u\n A h o r a e l volumen en l i t r o s : ");
s c a n f f "% f" , & L ) ;
M=n/L;
p r i n t f ( " L a m o l a r i d a d e s : %f"
}
void m ain()
{
c h a r op;
do
{
g o t o x y ( 2 6 , 3);
p r i n t f ( " C a l c u l o de l a m olaridad (M) " ) ;
molaridad( ) ;
p r i n t f ( " \ n \ n Q u ie re c a l c u l a r o t r a m o la r id a d ? S/N ");
scanf("*6S",&op);
}
w h ile (op=='S');
getchf);
{
float pm,comp, s o l u c i ó n ;
p r i n t f ( " \ n \ n I n t r o d u c e l a masa d e l componente a c a l c u l a r : ") ;
s c a n f ( "%f", &comp);
p r i n t f ( ” \n R e c u e r d a qu e l a s u n i d a d e s deben s e r l a s mismas\n P o r u l t i m o ,
www.FreeLibros.me
326 Capítulo 9 Ejercicios resueltos
}
v o id main()
{
c h a r op;
c lrs c rO ;
do
{
g o to x y ( 2 6 ,3);
p rin tf("C a lcu lo d e l ^masa”) ;
masa( ) ;
p r i n t f ( " \ n \ n Q u ie r e s c a l c u l a r o t r o p o r c e n t a j e ? S/N ");
scanf("*6S”,& op );
}
w h ile (o p = = 'S ' );
getchf);
{
float n, E Q , L ;
p r i n t f f " \n\n E s n e c e s a r i o c o n o c e r e l num. de e q u i v a l e n t e s q u í m i c o s d e l
c omponente; i n t r o d ú z c a l o s : ") ;
s c a n t ( "% f" , &E Q );
p r i n t f ( " \n F i n a l m e n t e , e l volumen de l a s o l u c i ó n en l i t r o s : ");
s c a n t ( "% f" , & L ) ;
n=EQ/L;
p r i n t t f ■\n N^>tn, n ) ;
}
void main()
{
c h a r op;
c l r s e r f );
do
www.FreeLibros.me
9.11 Funciones sin paso d e parám etros 327
g o to x y ( 2 6 ,3);
p r i n t f ( " C a l c u l o de l a norm alidad");
norm alidad();
p r i n t f ( " \n\n Q uiere c a l c u l a r o t r a n o rm a lid a d ? S/N ");
s c a n f ( "%s", & o p ) ;
}
w h i l e ( o p = ' S ' );
getchf);
{
p rin tf ("Dame l a d is t a n c ia \ n " );
s c a n f ("%f", & d);
p rin tf ("Dame e l t i e m p o \ n " ) ;
s c a n f ("%f", & t);
v=d/t;
p rin tf ( " L a v e l o c i d a d e s 96 7 . 2 f m / s \ n " , v ) ;
}
void d i s t ()
{
p rin tf ("Dame l a v e lo c id a d \ n " );
s c a n f ("%f", & v);
p rin tf ("Dame e l t i e m p o \ n " ) ;
s c a n f ("%f", & t);
d=t*v;
p rin tf ("La d is t a n c ia e s %7.2 f m \ n " , d ) ;
}
v o i d t i e m p o ()
{
p rin tf ("Dame l a v e lo c id a d \ n " );
s c a n f ("%f", & v);
p rin tf ("Dame l a d i s t a n c i a \ n ”) ;
www.FreeLibros.me
328 Capítulo 9 Ejercicios resueltos
}
v o i d mai n ()
{
e lrse r ();
in t f;
c h a r o p = 's ';
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
e lrse r ();
p r i n t f ( " E l programa c a l c u l a 1 ) la v e lo c id a d 2)l a d ista n cia 3)el
tiempo\n");
p r i n t f ("Que d e s e a s c a l c u l a r ? \ n " ) ;
s c a n f C * d m, & f);
switch (f)
{
c a s e 1: p r i n t f ( "V e lo cid a d \n ");
vel ();
break;
case 2 : p r i n t f ( " D is t a n c ia \ n " );
d ist ();
break;
c a s e 3: p r i n t f ( " T i e m p o \ n " ) ;
tiempo ( ) ;
break;
de fau lt: p r i n t f ( " E r r o r de c a s o \ n ");
}
p rin tf ("Deseas r e p e t i r l a función? s/n\n");
scanf & op);
}
getch ();
www.FreeLibros.me
9.11 Funciones sin paso d e parám etros 329
float e, f, q;
v o i d c am po _e l e ()
{
p rin tf ("Dame l a f u e r z a \ n " );
e=f/q;
p rin tf ("El campo e l é c t r i c o e s 96 7 . 2 f \ n a, e);
}
void f u e r z a ()
{
p rin tf ("Dame e l campo e l e c t r i c o \ n " ) ;
f =e*q;
p rin tf ("L a f u e r z a es . 2 f ", f);
}
void carga ()
{
p rin tf ("Dame e l campo e l e c t r i c o \ n " ) ;
s c a n f ("%f", & e);
p rin tf ("Dame l a fuerza \ n ");
s c a n f ('% f", & f);
q=f/e;
}
v o i d mai n ()
{
clrs c r ();
in t f;
char op= 'sl ;
w h ile (op=='s'\\op=='S')
{
c lrs c r ();
p r i n t f ( " E l programa c a l c u l a \ n 1)Campo e l e c t r i c o \ n 2 ) F u e r z a \ n
3 ) C a r g a \ n ”) ;
p r i n t f ("Que d e s e a s c a l c u l a r ? \ n " ) ;
www.FreeLibros.me
330 Capítulo 9 Ejercicios resueltos
{
c a s e 1: p r i n t f ("Campo e l e c t r i c o \ n " ) ;
c am po _e l e ( ) ;
break;
case 2 : p r i n t f ( " F u e r z a \ n " );
fuerza ();
break;
c a s e 3: p r i n t f ("Carga\n");
carga ();
break;
d e fau lt: p r i n t f ( " E r r o r de c a s o \ n ");
}
p rin tf ("Deseas r e p e t i r l a función? s/n\n");
scanf ("%s", & op);
}
getch ();
{
float kg;
in t cc;
p r i n t f ( " D i m e e l numero de k g y t e i n d i c a r e cuantos c o s t a l e s n e c e s it a s \
ndime e l numero de k g " ) ;
s c a n f ( " % f " ,& kg);
c c=k g/50;
p r i n t f ( " E l numero de c o s t a l e s e s % d " , c c ) ;
}
void l a d r i l l o s f )
{
i n t me,ni;
www.FreeLibros.me
9.12 Fu nciones co n p ro to tip o sin paso d e parám etros
}
void m a in f)
{
in t op,res;
c l r s c r f );
p r i n t f ( " D i m e e l numero de k g de cemento y t e i n d i c a r e l o s c o s t a l e s que
n e c e s i t a s , o de m e t r o s c u a d r a d o s de p a r e d y t e i n d i c a r e e l numero
de l a d r i l l o s \ n " ) ;
p r i n t f ( "Que d e s e a s c a l c u l a r ? \ n 1 cement o\n2 l a d r i l l o s " ) ;
s c a n f f "96d", & o p ) ;
if ( 0p==1)
{
c o s t a l e s ();
}
else
{
la d rillo s f) ;
}
getchf);
/* Programa de l a d i s t a n c i a e n t r e d o s p u n t o s con f u n c i o n e s s i n p a s o de
p a r á m e t r o s */
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
t t i n c l u d e <wath.h>
v o id fun_puntos();
v o id m ainf)
www.FreeLibros.me
332 Capítulo 9 Ejercicios resueltos
c h a r op;
do
{
c l r s c r ( );
p r i n t t ( "Programa p a r a c a l c u l a r l a d ista n cia e n t r e dos p u n t o s \ n \ n " ) ;
f u n _ p u n t o s ( );
p r i n t t ( " \ n \ n \ n D e s e a s r e p e t i r e l pr o gr am a? S / N ");
scanf("%s”,&op);
}
w hile((op= = 's')\\(op= 'S '));
getchf);
}
void fun_puntos()
{
float x 1 , x 2 , y 1 , y 2 , d i s t ;
p r i n t f ( "P r i m e r p u n t o \ n \ n " ) ;
>
www.FreeLibros.me
9.12 Fu nciones co n p ro to tip o sin paso d e parám etros 333
{
textcolor(W H ITE );
textbackground(BLUE);
c h a r op;
do
{
c l r s c r ( );
p r i n t f ( "E x c e n t r i c i d a d de una e l i p s e \ n \ n " ) ;
exc_ f u n ( ) ;
p r i n t f f " \ n \ n De s ea s r e p e t i r e l pr o gr am a? S / N ");
s c a n f ( u% s " , & o p ) ;
}
w h i l e ( (op=='s ' ) \ \ ( o p = ' S ' ) ) ;
}
v o id exc_fun()
{
float a 2 , b 2 , a , b , e ;
p r i n t f ( " D a m e l a m edi da d e l e j e mayor ");
s c a n t ( U96 f " , &a 2 ) ;
p r i n t f ( " D a m e l a m edi da d e l e j e menor " ) ;
s c a n f C % f , & b 2 );
a=a2 / 2 ;
b=b2/2;
e = (s q rt ( a * a -b * b )) /a;
if((a!=0)&&(b!=Q)) p r i n t f ( u\nLa e x c e n t r i c i d a d e s de %f u . \ e ) ;
else
p r i n t f f " \ n L a s m e d i d a s no s on v a l i d a s " ) ;
getch();
v o id main()
www.FreeLibros.me
334 Capítulo 9 Ejercicios resueltos
textco lor(B LU E );
textbackground(WHITE);
c h a r op;
do
{
c lrs c rf);
p r i n t f ( " D e r i v a d a s de X a l a n de o r d en s u p e r i o r \ n ”) ;
der_fun();
p r i n t f ( K\ nDeseas r e p e t i r e l pr o gr am a? S / N " ) ;
scanf("% s",&op);
}
w hile((op= = 's')\\(op= = 'S'));
v o id der_fun()
{
in t x , n , i f acum,o;
p r i n t f ( “ \nDame l a constante ");
scanf("% d",&x);
printf("Dam e e l exponente ");
s c a n f ( " 96 d " , & n ) ;
p r i n t f ( u\nDe que o r d e n q u i e r e s c a l c u l a r l a derivada? ”) ;
scanf("% d'',&o);
for ( i =1 ;i<=o;i++)
{
x*=n;
n— ;
}
p r i n t f ( " \ n \ n L a d e r i v a d a e s %c/XA%c/\n", x, n ) ;
getch();
l*Good M a r k Company*/
# i n c l u d e < s t d i o . h>
www.FreeLibros.me
9.13 Fu nciones con paso d e parám etros 335
# i n c l u d e < c o n i o . h>
üdefine mon 1 2 0 0 0 0
float d i m p r e f i n t d p , i n t ma m, in t m a n , i n t i r i s )
{
r e t u r n ( (mam+man+ins+mon) - (. 2 0 * (mamman+ins+mon) ) ) ;
}
in t d c o r t e ( i n t d p , i n t ma m, in t m a n , i n t i n s )
{
return(mam+man+ins+mon) ;
}
void m ain()
{
i n t mam,man,i ns ,dp;
e l r s e r ();
p rin tf("C a lcu la el costo in d ir e c t o t o t a l de c a d a d e p a r t a m e n t o de l a
Good Mar k Company\n") ;
p r i n t f ( "De c u a l d e p ar t a me nt o n e c e s i t a s s a b e r e l t o t a l de s u c o s t o
i n d i r e c t o ? \ n " );
p r i n t f ( ” 1 ) d e p a r t a m e n t o de c o r t e \ n 2 ) d e p a r t a m e n t o de i m p r e s i o n \ n " ) ;
s c a n f ( U96 d " , & d p ) ;
p r i n t f ( "Cuant o f u e d e l c o s t o de manejo de m a t e r i a l e s ? \ n " ) ;
s c a n f ( "%cP, &mam);
p r i n t f ( "Cuant o s e i n v i r t i ó de m a n u f a c t u r a ? \ n " ) ;
s c a n f ( " 96d",&man);
p r i n t f ( "Cuant o f u e d e l c o s t o de i n s p e c c i o n ? \ n " ) ;
s c a n f ( U96 d " , & i n s ) ;
i f (dp==1) p r i n t f ( " E l costo in d ir e c t o del d e p ar t a me nt o de c o r t e es
5%c/", d c o r t e ( d p , mam, man, i n s ) ) ;
i f (dp==2 ) p r i n t f ( " E l costo in d ir e c t o del d e p ar t a me nt o de i m p r e s i ó n es
$%f" , dimpre(dp,mam, m a n , i n s ) ) ;
g e t c h f );
/*Empresa G e l s t r a p * /
# i n c l u d e < s t d i o . h>
# i n c l u d e < c o n i o . h>
float m d i ( f l o a t md)
www.FreeLibros.me
336 Capítulo 9 Ejercicios resueltos
{
return(m d/9000);
}
float m a o b r a f f l o a t mod)
{
r e t u r n f m o d / 9 000 );
}
float c o s i n d f f l o a t c i n )
{
re tu rn (cin /90 0 0 );
}
void main()
i
in t op;
float total,m d,m od, c i n ;
c l r s e r f );
p r i n t f ( v\ n C a l c u l e l o s costos u n ita r io s de l a empresa G e l s t r a p \ n " ) ;
p r i n t f ( "\ n Q u e c o s t o u n i t a r i o deseas c a l c u l a r ? \ n " );
p r i n t f ( " 1 ) m a t e r i a l e s d i r e c t o s \ n 2 ) m a n o de o b r a \ n 3 ) c o s t o s i n d i r e c t o s \ n " ) ;
s c a n t ( U96d" , &op) ;
sw itch(op)
{
c a s e 1 : p r i n t f ( " Dame e l c o s t o de m a t e r i a l e s d i r e c t o s ( m a s de
9000)\n");
s c a n t ( V96f" ,&md);
p r i n t f ("E l costo u n ita r io de m a t e r i a l e s d i r e c t o s es
3 f ” ,mdi(md));
break;
c a s e 2 : p r i n t f ( " Dame e l c o s t o de mano de o b r a d i r e c t a ( m a s de
9 0 0 0 ) \ n ”) ;
s c a n t ( "% f■,&mod);
p r i n t f ("E l costo u n it a r io de mano de o b r a d i r e c t a
es $%.3 f " , m a o b r a ( m o d ) ) ;
break;
c a s e 3: p r i n t f ( ”Dame e l t o t a l de c o s t o s i n d i r e c t o s (mas de
9000)\n");
s c a n t ( "%f" , & c i n ) ;
p r i n t f ("E l c o s t o u n i t a r i o de c o s t o s i n d i r e c t o s es
$%. 3 f " , c o s i n d ( c i n ) ) ;
www.FreeLibros.me
9.13 Fu nciones co n paso d e p arám etros 337
break;
d e fau lt:
p r in t f f " O p c ió n i n v a l i d a " );
}
getch();
{
textcolor(W HITE);
textbackground(BLUE);
c h a r op;
float a 2 , b 2 , r e s u l ;
do
{
c l r s e r f );
p r i n t f ( "E x c e n t r i c i d a d de una e l i p s e \ n \ n " ) ;
p r i n t f ( " D a m e l a m edi da d e l e j e mayor ");
scant("% f",&a2);
p r i n t f ( " D a m e l a m edi da d e l e j e menor ");
scanf("*6f",&b2);
r e s u l = e xc _ f u n ( a 2 , b 2 ) ;
p rin tff"\n La e x c e n t r i c i d a d e s de % . 2 f u . " , r e s u l ) ;
p r i n t f f " \ n \ n De s ea s r e p e t i r e l pr o gr am a? S / N ") ;
scant("% s",&op);
}
w h i l e ( (op==' s '; II ( o p==' s ■; ; ;
getchf);
}
float e x c _ f u n ( float x, float y)
{
float a , b , e ;
www.FreeLibros.me
338 Capítulo 9 Ejercicios resueltos
a =x/ 2 ;
b=yl2 ;
e=sqrt(a*a-b*b)¡a;
if ( ( a ! = 0 ) & & ( b ! =0 ) ) r e t u r n e;
else
p r i n t f ( " M e d i d a s no v a l i d a s \ n " ) ;
# i n c l u d e < s t d i o . h>
f t i n c l u d e < c o n i o . h>
in t d e riv_ co n s(in t x , i n t n , i n t o);
in t d e riv_exp (int x , in t n , i n t o);
void main()
{
in t x ,n ,o ,re s u l1,r e s u l2 ;
c h a r op;
do
{
c lrs c rf);
p r i n t f ( " D e r i v a d a s de X a l a n de o r d e n s u p e r i o r \ n n) ;
p r i n t f ( " \nDame l a c o n s t a n t e : ");
s c a n f ( U9f d u, &x ) ;
p r i n t f ("Dame e l e x p o n e n t e : " ) ;
scanf("%d",&n);
p r i n t f ( " \nDe que o r d e n q u i e r e s c a l c u l a r l a derivada? ") ;
scanf("*d",&o);
r e s u l 1= d e r i v _ c o n s ( x , n , o ) ;
r e s u l 2 =deriv_exp(x, n , o ) ;
p r i n t f ( " \nLa d e r i v a d a es: %c/ X*%d\n" , r e s u l 1 , r e s u l 2 ) ;
p r i n t f ( " \nDeseas r e p e t i r e l pr o gr am a? S / N ");
s c a n f ( " % s ” ,&op);
}
w hile((op= = 's')\\(op= 'S '));
g e t c h f );
www.FreeLibros.me
9.13 Fu nciones co n paso d e p arám etros 339
in t d e riv_ co n s(in t x , i n t n , i n t o)
{
in t i;
f o r ( i = 1 ;i<=o;i ++)
{
x*=n;
n—;
}
r e t u r n x;
in t d e riv_exp (int x , i n t n , i n t o)
{
in t i;
f o r ( i =1 ; i< = o; i ++)
{
x*=n;
n—;
}
r e t u r n n;
{
r e t u r n a/ b ;
}
float t i e m p o ( f l o a t a, f l o a t b)
{
r e t u r n a/ b ;
}
float d i s t ( f l o a t a, f l o a t b)
{
r e t u r n a*b;
}
v o i d mai n ()
www.FreeLibros.me
340 Capítulo 9 Ejercicios resueltos
{
e lrse r ();
f l o a t v, d, t;
in t f;
char op= 's';
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
p r i n t f ("Dame l a f u n c i ó n que d e s e a s l l e v a r a c a b o \ n 1 ) v e l o c i d a d \ n 2 )
t i e m p o \ n 3 ) d i s t a n c i a \ n " );
s c a n f ("%d", & f);
switch (f)
{
case 1 : p r i n t f ( " v e l o c i d a d \ n " );
p rin tf ("Dame l a d i s t a n c i a \ n " );
scanf C * f , & d) ;
p r i n t f ("Dame e l tiem po\n");
s c a n f ("%f", & t);
v = vel (d, t ) ;
p rin tf ( " L a v e l o c i d a d e s %7. 2 f m / s \ n " , v ) ;
break;
c ase 2 : p r i n t f ( " t i e m p o \ n " );
p rin tf ("Dame l a d i s t a n c i a \ n " );
s c a n f ("%f", & d) ;
p r i n t f ("Dame l a v e l o c i d a d \ n " );
s c a n f ("%f", & v);
t= tiempo ( d , v ) ;
p rin tf ("El tiempo es % 7 .2 fs \n " , t ) ;
break;
c a s e 3: p r i n t f ( " d is t a n c ia \ n " );
p r i n t f ("Dame l a v e l o c i d a d \ n " );
}
p r i n t f ("Deseas c a l c u l a r o t r a f u n c i o n ? \ n " );
www.FreeLibros.me
9.13 Fu nciones con paso d e parám etros
s c a n f ( a* s u, & o p ) ; }
getch ();
{
r e t u r n a*b;
}
float masa (f loat a, f l o a t b)
{
r e t u r n a/b;
}
float a c e l e r a c i ó n ( f l o a t a, float b)
{
r e t u r n a/b;
}
v o i d mai n ()
{
e lrse r ();
float F , m, a;
in t f;
c h a r o p = 's ';
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
p r i n t f ("Dame l a f u n c i ó n que d e s e a s l l e v a r a c a b o \ n 1 ) F u e r z a \ n 2 ) m a s a \ n 3 )
a c e le r a c io n \ n " );
s c a n f ("%d", & f);
switch (f)
{
case 1: p r i n t f ( " F u e rz a \n ");
p rin tf ("Dame l a masa\n") ;
scanf & m);
p rin tf ("Dame l a a c e le r a c io n \ n " );
www.FreeLibros.me
342 Capítulo 9 Ejercicios resueltos
F = fuerza (m, a) ;
p rin tf ( " L a f u e r z a es %7.2fN\n" , F ) ;
break;
case 2 : p r i n t f ("m asa\n") ;
p rin tf ("Dame l a fu e r z a \ n " );
scanf ("*f", & F);
p r i n t f ("Dame l a a c e le r a c io n \ n " );
s c a n f ( " * f m, & a ) ;
m= masa ( F , a ) ;
p r i n t f ( " L a masa e s %7. 2 f m \ n " , m);
break;
c a s e 3: p r i n t f ( "a c e l e r a c i o n \ n " ) ;
p rin tf ("Dame l a f u e r z a \ n " );
scanf ( " * f , & F);
p r i n t f ("Dame l a m a s a \ n ") ;
scanf & m);
a= aceleración ( F, m) ;
p r i n t f ( " L a a c e l e r a c i ó n e s 96 7 . 2 f m / s 2 \ n " , a ) ;
break;
de fau lt: p r i n t f ( " E r r o r de c a s o \ n " ) ;
}
p rin tf ("Deseas c a l c u l a r o t r a f u n c i o n ? \ n " );
scanf & op);
}
getch ();
{
return 2 *c+2 ;
>
float alq ueno ( f l o a t c)
www.FreeLibros.me
9.13 Fu nciones con paso d e parám etros 343
r e t u r n 2 *c;
}
float a l q u i n o ( f l o a t c)
{
retu rn 2 *c-2 ;
}
v o i d mai n ()
{
e lrse r ();
i n t h, x;
c h a r o p = 's ';
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
e lrse r ();
p rin tf ( " E l programa i n d i c a si e l compueso e s un a l c a n o , alq ueno y
a lq u in o \ n " );
p r i n t f ("Dame e l numero de c a r b o n o s \ n " ) ;
s c a n f ("%du, & x);
p r i n t f ("Dame e l numero de h i d r o g e n o s \ n " ) ;
scanf ( " W , & h);
alcano (x);
alq ueno (x);
a lq uino (x);
i f (h==alcano ( x ) ) p r i n t f ( " E s un a l c a n o \ n " ) ;
e lse
i f (h==alqueno ( x ) ) p r i n t f ( " E s un a l q u e n o \ n " ) ;
else
if ( h = a lq u in o (x)) p rin tf ( " E s un a l q u i n o \ n " ) ;
else
p rin tf ("Error, no p e r t e n e c e a n i n g ú n g r u p o \ n " ) ;
p r i n t f ("Deseas r e p e t i r l a función? s/n \n");
scanf & op);
}
getch ();
www.FreeLibros.me
344 Capítulo 9 Ejercicios resueltos
{
r e t u r n a/b;
}
float v o l t a j e ( f l o a t a, f l o a t b)
{
r e t u r n a*b;
}
float a mpe raj e ( f l o a t a, f l o a t b)
{
r e t u r n a/b;
}
v o i d mai n ()
{
e lrse r ();
float r , v, a;
in t f;
c h a r o p = 's ';
w h ile ( 0p = = ' s ' \ \ o p = = ' S ' )
{
p rin tf ("Dame l a f u n c i ó n qu e d e s e a s l l e v a r a c a b o \ n 1 ) r e s i s t e n c i a \ n 2 )
v o lt a j e \ n 3 ) a m p e r a j e \ n " );
s c a n f ('% d', & f);
sw itch (f)
{
case 1 : p r i n t f ( "r e s i s t e n c i a \ n " ) ;
p r i n t f ("Dame e l v o lt a j e \ n " );
scanf ("*f", & v);
p r i n t f ("Dame e l am p e raje\n ");
s c a n f ("%f", & a);
www.FreeLibros.me
9.13 Fu nciones co n paso d e p arám etros 345
v= v o l t a j e (r,a);
p r i n t f ( "El vo lta je e s %7.2 V o l t s \ n " , v ) ;
break;
c a s e 3: p r i n t f ( " am p e raje\n ");
p rin tf ("Dame l a r e s i s t e n c i a \ n " );
}
p rin tf ("Deseas c a l c u l a r o t r a f u n c i o n ? \ n " );
scanf & op);}
getch ();
{
r e t u r n a/b;
}
float f u e r z a (f loat a, float b)
{
r e t u r n a*b;
}
float c a r g a ( f l o a t a, f l o a t b)
{
r e t u r n a/b;
}
v o i d mai n ()
{
clrs c r ();
float e , f , q;
www.FreeLibros.me
346 Capítulo 9 Ejercicios resueltos
i n t g;
c h a r o p = 's ';
w h ile ( 0p == ' s ' \ \ o p == ' S ' )
{
p r i n t f ("Dame l a f u n c i ó n qu e d e s e a s l l e v a r a c abo \n1 )c amp o e l e c t r i c o \
n 2 ) fu e rz a \ n 3 ) c a rg a \ n ");
s c a n f ("%d", & g);
sw itch (g)
{
c a s e 1 : p r i n t f ("campo e l e c t r i c o \ n " ) ;
p rin tf ("Dame l a fu e r z a \ n " );
s c a n f ("%f", & f);
p r i n t f ("Dame l a c a r g a \ n " );
s c a n f ("*6f", & q) ;
e = ca mp o _e l e ( f , q ) ;
p r in t f ("El campo e l é c t r i c o e s 96 7 . 2 f N \ n " , e);
break;
c a s e 2 : p r i n t f ( "f u e r z a \ n " ) ;
p rin tf ("Dame e l campo e l e c t r i c o \ n " ) ;
q=carga ( e , f ) ;
p r i n t f ( " L a c a r g a e s 96 7 . 2 f m / s 2 \ n " , q ) ;
break;
de fau lt: p r i n t f ( " E r r o r de c a s o \ n " ) ;
}
p rin tf ("Deseas c a l c u l a r o t r a f u n c i o n ? \ n " );
scan f f% s", & op);}
getch ();
www.FreeLibros.me
9.14 Funciones con arreglos 347
{
in t t=0 , i ;
f o r ( i =0; i <4; i ++) t= t+ c[i];
c[ij= t;
r e tu r n (c[i]*350);
}
float s e ( i n t c [ 4 J )
{
in t t=0 , i ;
for(i=0;i< 4;i+ + ) t=t+c[i ] ;
c[i]= t;
re tu rn (c[i]*2 5 0 );
}
float t r e ( i n t c [ 4 J )
{
in t t=0 , i ;
f o r (i =0;i < 4 ; i + + ) t = t + c [ i j ;
c [i]= t;
re tu rn (c[i]*1 9 0 );
}
void m ain()
{
in t o p ,c[4 ],i;
c lrs c rO ;
p r i n t f ( u\ n \ t \ t i n v e n t a r i o de l i b r o s mas v e n d i d o s \ n " ) ;
p rin tf("\n \t\tE lija su l i b r o (Ingrese e l c o d ig o ) :\n \ n ");
p r i n t f ( u\ t \ t L i b r o \ t \ t \ t C o d i g o \ t P r e c i o \n\n");
p r i n t f ( u\ t \ t E l c o d i g o da v i n c i ................... 1 .........$ 3 5 0 \ n " ) ;
p r i n t f f u\ t \ t E l s e c r e t o ............................. 2 ........$ 2 5 0 \ n " ) ;
www.FreeLibros.me
348 Capítulo 9 Ejercicios resueltos
switch(op)
{
c a s e 1: f o r ( i = 0 ; i < 4 ; i + + )
{
printf("C uantos lib r o s s e v e n d i e r o n en l a semana?
%d\n\i+1);
}
p r i n t f ( " L a s v e n t a s d e l mes s on $ % .3 f p e s o s " , c d ( c ) ) ;
break;
c a s e 2: for(i=0;i< 4;i++ )
{
p r i n t f ( " C u an t o s l i b r o s s e v e n d i e r o n en l a semana?
%d \ n " , i + 1 ) ;
}
p r i n t f ( " L a s v e n t a s d e l mes son $%.3 f p e s o s " , s e ( c ) ) ;
break;
c a s e 3: f o r ( i = 0 ; i < 4 ; i + + )
{
p r i n t f ( " C u an t o s l i b r o s s e v e n d i e r o n en l a semana?
% d \ n " , i + 1) ;
s c a n f ( " % d ”, & c [ i ] ) ;
}
p r i n t f ( " L a s v e n t a s d e l mes s on $%.3f p e s o s " , t r e ( c ) ) ;
break;
}
getch();
{
float sue= 0 , s ;
www.FreeLibros.me
9.14 Funciones con arreglos 349
s=pa[ 1 0 0 ] * p i e [ 1 0 0 ] ;
sue=sue+s;
return(sue);
}
float m e f i n t p i e ] 1 0 0 ] , fl oat p a [ 1 0 0 J )
{
f loat sue= 0 , s ;
s = ( p a [ 1 0 0 ] * p i e [ 1 0 0 ] ) +( ( p a [ 1 0 0 ] * p i e [ 1 0 0 ] ) * . 8 0 ) ;
sue=sue+s;
return(sue);
}
void m ain()
{
i n t p ie [ 100] , t r a , i;
float p a [ 1 0 0 ] , t ;
c l r s c r f );
p r i n t f ( " \ n \ t \ t S u e l d o de un t r a b a j a d o r p o r c a d a p i e z a e l a b o r a d a \ n u) ;
p r i n t f ( u \ n Cu a nt os empl eados t r a b a j a n p o r p i e z a s e l a b o r a d a s ? \ n " ) ;
s c a n t ( u*6d" , & t r a ) ;
{
p r i n t f (" \nEmpleado numero 96d\n" , i + 1 ) ;
p r i n t f ( " C u a n t a s p i e z a s e l a b o r a s t e ( m a s de 30 %%20 a d i c i o n a l ) ? \ n " ) ;
seanf("% d",&pie[100]);
p r i n t f ( " C u a n t o s e t e pa g a p o r c a d a p i e z a ? \ n " ) ;
{
t= m a(pie,pa);
p r i n t f ("Tu s a l a r i o e s $*6.2f \n” , t ) ;
}
else
{
t=m e(pie,pa);
p rin tf("T u sa la rio es
}
}
getch();
www.FreeLibros.me
350 Capítulo 9 Ejercicios resueltos
{
in t i;
float m, t= 0 ,g= 0 , l , h ;
for ( i = 0 ; i < 1 ;i++)
{
t= t+ p[i];
g= g+c[ i };
m=t*g;
l= pi* t;
h= m- l;
}
return(h);
}
v o id main()
{
i n t p [ 30], i, d ;
f loat c [ 3 0 ] , p i ;
c l r s c r f );
p r i n t f ( u\ n \ t \ t C a l c u l a e l g a s t o o c a s i o n a d o p o r l o s d e f e c t o s en un
d i a \ n ");
p r in t f( " C u a n t o cuesta l a r e p a r a c i ó n de l a p ie z a ? \ n " );
s ca n f("% f”,& p i);
for ( i = 0 ; i <1 ;i++)
{
p r i n t f (" \ n D i a %c/ C u a n t o s p r o d u c t o s s a l i e r o n d e f e c t u o s o s ? \ n " , i+ 1 );
s c a n f ( U96d", & p [ i ] ) ;
p r i n t f ( " Dame e l c o s t o u n i t a r i o de l a p i e z a \ n " );
s c a n f ( " * 6f " , & c [ i l ) ;
p r in t f( " \n\t\tEl d i n e r o p e r d i d o p o r r e p a r a c i ó n e s %f", c o s t o ( p , c , p i ) ) ;
}
getch();
www.FreeLibros.me
9.14 Funciones con arreglos
{
in t t=0 , i ;
for ( i = 0 ; i < 4 ; i++) t= t+ c[i];
c [i]-t;
r e t u r n ( c [ i ]);
}
in t s e ( i n t c[4])
{
in t t= 0 , i ;
f o r ( i =0;i <4;i ++) t= t+ c[ij;
c[i]= t;
r e t u r n ( c [ i j );
}
void m ain()
{
in t op,c[4],i;
clrscr();
p r i n t f ( " \ n \ t \ t I n v e n t a r i o de r e f r e s c o s mas v e n d i d o s \ n " ) ;
p r i n t f ( u\ n \ t D e que r e f r e s c o q u i e r e s a b e r e l t o t a l de v e n t a s en un mes?\
n \f);
p r i n t f ( " 1 ) P E P S I \ n \ t 2 ) COCA-COLA\nu) ;
scanf("% d",&op);
switch(op)
{
c a s e 1: f o r ( i = 0 ; i < 4 ; i + + )
{
p r i n t f ( “C u a n t a s P E P S I S s e v e n d i e r o n en l a semana?
9ed \n” , i + 1) ;
scanf ,& c[ij);
}
p r i n t f ( " \ n \ t E n e l mes s e v e n d i e r o n %c/ P E P S I S u, c d ( c ) ) ;
break;
www.FreeLibros.me
352 Capítulo 9 Ejercicios resueltos
c a s e 2: for(i=0;i< 4;i++ )
{
p r i n t f f " C u a n t a s c o c a - c o l a s se v e n d i e r o n en l a semana
9td\n" , i + 1 ) ;
s c a n f f U96d", & c [ i j ) ;
}
p r i n t f f " \ n \ t E n e l mes s e v e n d i e r o n %c/ COCA-COLAS", s e ( c ) ) ;
break;
}
g e t c h f );
v o i d f o r m u l a ()
{
float p e , muestra, m oles[ 1 0 ], p o r c , comp;
in t e, i, s u b [ 1 0 J;
p r i n t f f "I n d i q u e e l num. de e l e m e n t o s d e l compuesto (máximo 1 0 ) " ) ;
scanf("% i",& e);
printf("Dam e l a masa de m u e s t r a d e l compuesto");
s c a n f f "%¿", & m u e s t r a ) ;
for ( i = 0 ; i < e ; i = i + 1)
{
p r i n t f f "Dame e l p e s o a t ó m i c o d e l e l e m e n t o %¿", i + 1 ) ;
s c a n f f "%¿" , & p e ) ;
prin tff"A h o ra la c a n t i d a d d e l compuesto (e n % m a s a ) “) ;
scanff"te",& porc);
m o l e s [ i ] = f f p o r c / 100) *muestra)/pe;
}
comp=moles[ 0 ];
for ( i =1 ; i < e ; i = i + 1 )
{
if (comp<moles[i]) comp=moles[i];
else
comp=comp;
www.FreeLibros.me
9.14 Funciones con arreglos 353
y
for ( i = 0 ; i < e ; i = i + 1) s u b [ i ] = m o l e s [ i ] / c o m p ;
p r i n t f ( " L o s s u b i n d i c e s en l a form ula d e l compuesto s o n : ”) ;
for ( i = 0 ; i < e ; i = i + 1) p r i n t f ( " E l e m e n t o %!=%!“ , i + 1, s u b [ i j ) ;
}
void m ain()
{
p r i n t f ( “O b t e n c i ó n de l a f o r m u l a m o l e c u l a r de a l g ú n c o m p u e s t o ”) ;
fo rm u la i);
g e t c h f );
{
float r e a c , p m , m o l e s [ 1 5 ] , c o m p ;
in t c , i , elemento;
p r i n t f ( ”I n d i q u e c u a n t o s c omp ues tos t i e n e l a reacción (no mas de 1 5 ) ”) ;
s c a n f f "% i■,& c ) ;
for ( i = 0 ; i < c ; i = i + 1)
{
p r i n t f ( “Dame l a c a n t i d a d d e l r e a c t i v o % i", i+1);
s c a n f ( U96 f ” , & r e a c ) ;
p r i n t f ( " D a m e e l p e s o m o l e c u l a r d e l r e a c t i v o ”) ;
s c a n f ( " % f ” ,&pm);
mol e s [ i ] = r e a c /pm;
y
comp=moles[ 0 ];
for ( i = 1 ; i < c ; i = i + 1)
{
i f ( c o m p < m o l e s [ i ])
{
c o m p = m o l e s [ i ];
elemento=i;
www.FreeLibros.me
354 C apítulo 9 Ejercicios resueltos
}
p r i n t f ("E l re a ctiv o lim ita n te e s % i", elem ento);
}
void main()
{
p r i n t f (" Reactiv o l i m i t a n t e " );
n();
getch();
/ * C á l c u l o de l a m a g n i t u d de un v e c t o r * !
# i n c l u d e < s t d i o . h>
t t i n c l u d e < c o n i o . h>
# i n c l u d e < m a t h . h>
v o i d mag()
{
in t e , i , a [ 2 0 ] , a a [ 2 0 ] ,AA;
prin tf("D e c u a n to s elementos es e l vector (máximo 2 0 ) ? " ) ;
s c a n f f "%¿" , & e ) ;
for ( i = 0 ; i < e ; i = i + 1)
{
p r i n t f ( "Dame e l v a l o r d e l e l e m e n t o %i d e l p r i m e r v e c t o r " , i+ 1);
}
for ( i = 0 ; i < e ; i = i + 1) a a [ i j = a [ i ] * a [ i j ;
AA=aa[0];
for(i= 1;i< e;i= i+ 1) AA=AA+aa[i] ;
prin tf("% i",A A );
}
void main()
{
p r i n t f ( "Magnitud a l c u a d r a d o de un v e c t o r " ) ;
mag() ;
g etchf);
www.FreeLibros.me
9.14 Funciones con arreglos 355
l*Producto cruz*I
# i n c l u d e < s t d i o . h>
f t i n c l ude <coni o. h>
v o i d p e ()
{
i n t i,a[3],b[3 ],ab[3],A B ;
p r i n t f ( " R e c u e r d a qu e so n de t r e s ele m e n to s");
for (i=0;i<3;i=i+1)
{
p r i n t f ( " Dame e l v a l o r d e l e l e m e n t o %i d e l p r i m e r v e c t o r " , i + 1) ;
}
for (i=0;i<3;i=i+1)
{
p r i n t f f "Dame e l v a l o r d e l e l e m e n t o %¿ d e l segu ndo v e c t o r " , i + 1 ) ;
scanf("M ",& b[ÍJ);
}
ab[0]=(a[2]*b[3])-(b[2]*a[3J)
ab[l]= (a[1]*b[3])-(b[1]*a[3])
ab[2]=(a[1J*b[2])-(b[1J*a[2])
AB=ab[0];
for ( i = 1 ; i < 3 ; i = i + 1 ) AB=A B+ab[ i];
p r i n t f ( " M ",AB) ;
}
v o id main()
{
p r i n t f f " P r o d u c t o c r u z de dos v e c t o r e s " ) ;
pc();
g e t c h f );
www.FreeLibros.me
www.FreeLibros.me
Ín d ic e d e e j e r c ic io s r e s u e l t o s
E je r c i c i o 3 .1 C a lc u le el p ro m e d io d e e d a d d e tres p e r s o n a s ..................................... 42
E je r c i c i o 3 .2 E n c u e n tre el á re a d e u n tra p e c io ................................................................ 44
E je r c i c i o 3 3 C a lc u le el s a la rio d e u n tra b a ja d o r c o n el to ta l
d e p e rc e p c io n e s y d e d u c c io n e s ................................................................. 45
E je r c i c i o 3 .4 E n c u e n tre el p ro m e d io d e c u a tro n ú m e r o s ............................................ 47
E je r c i c i o 3 .5 C a lc u le el m o n to d e la s v e n ta s d e l d ía d e u n a p a s te le r ía 49
E je r c i c i o 3 .6 R e a lic e la s c u a tro o p e ra c io n e s b á sic a s c o n d o s n ú m e r o s 51
E je r c i c i o 4 .1 L e e r u n n ú m e ro p o r el te c la d o y e v a lu a r si es p a r o i m p a r 62
E je r c i c i o 4 .2 In d ic a r si el a ñ o e n q u e n a c iste fu e b i s i e s t o .......................................... 66
E je r c i c i o 4 3 C o n v e rtir g ra d o s d e te m p e ra tu ra ................................................................ 67
E je r c i c i o 4 .4 I n d ic a r el tip o d e triá n g u lo i n tr o d u c id o ................................................. 72
E je r c i c i o 4 .5 E le g ir u n a fig u ra g e o m é tric a y c a lc u la r su á r e a .................................. 77
E je r c i c i o 4 .6 Im p rim ir el s a la rio re a l d e u n t r a b a j a d o r ............................................... 79
E je r c i c i o 4 .7 In d ic a r el s ig n o z o d ia c a l a p a rtir d e u n a f e c h a ..................................... 82
E je r c i c i o 5.1 E n c o n tra r c u a tro m ú ltip lo s d e u n n ú m e ro c u a l q u i e r a ...................... 100
E je r c i c i o 5 .2 A d iv in a r e n u n m á x im o d e c in c o o p o rtu n id a d e s u n e n te ro
c o m p re n d id o e n tre 1 y 100. E n c a d a c ic lo la c o m p u ta d o ra
d e b e d e c ir si el q u e s e c a p tu ra es m a y o r o m e n o r q u e e l q u e
g e n e ró a u to m á tic a m e n te .............................................................................. 105
E je r c i c i o 5 3 L e e r n ú m e ro s d e sd e e l te c la d o y su m a r
lo s p rim e ro s c in c o im p a r e s ......................................................................... 107
E je r c i c i o 5 .4 C re a r u n m a rc o e n la p a n ta lla u tiliz a n d o a ste risc o s
e n la s c o o rd e n a d a s (1,1), (1 ,8 0 ), (8 0 ,2 4 ) y ( 1 , 2 4 ) ............................ 112
E je r c i c i o 6.1 Im p rim ir el c o n te n id o d e las p o sic io n e s
0, 3 y 4 d e l a rre g lo v e c ................................................................................ 128
E je r c i c i o 6 .2 B u s c a r u n n ú m e ro e n u n a rre g lo e in d ic a r
e n q u é p o sic ió n se e n c u e n tra ...................................................................... 129
E je r c i c i o 6 3 Im p rim ir el c o n te n id o d e las p o sic io n e s p ares
d e u n a lista y su s u m a ................................................................................... 131
E je r c i c i o 6 .4 L e e r e le m e n to s, im p rim ir, s u m a r y c o n ta r lo s e le m e n to s
d e u n a p o sic ió n p ar; si el n ú m e ro c o n te n id o es im p a r
in d ic a r la p o s ic ió n .......................................................................................... 132
E je r c i c i o 6 3 R e a liz a r e n u n a rre g lo las s ig u ie n te s o p e ra c io n e s:
a g re g a r u n e le m e n to , b o rra r u n e le m e n to ,
b u s c a r u n e le m e n to d e la l is ta .................................................................... 134
E je r c i c i o 6 .6 A lm a c e n a r n ú m e ro s e n tre 1 y 2 5 , g e n e ra d o s a le a to ria m e n te ,
e n u n a ta b la d e 3 X 2 re n g lo n e s y c o lu m n a s ...................................... 143
www.FreeLibros.me
358 ín d ice d e ejercicios resueltos
www.FreeLibros.me
Ín d ic e d e e j e m p l o s
www.FreeLibros.me
360 ín d ice d e ejem plos
www.FreeLibros.me
ín d ice d e ejem plos 361
www.FreeLibros.me
Ín d ic e d e t a b l a s
www.FreeLibros.me
www.FreeLibros.me
Este libro fue creado teniendo en mente a
aquellos estudiantes que desean adentrarse
en el mundo de la programación utilizando el
lenguaje de C. El contenido está considerado
para desarrollarse en un primer curso.
Cada tema se trata con suficiente profundidad y detalle para ser entendido por un
estudiante que se inicia en esta área de la computación.
www.FreeLibros.me