Documentos de Académico
Documentos de Profesional
Documentos de Cultura
me
www.FreeLibros.me
Introduccin a la programacin
estructurada en C
Primera edicin
Prentice Hall
M xico A rgentina B rasil C olom bia C osta R ica C hile E cuador
E spaa G uatem ala Panam Per P u erto R ico U ruguay V enezuela
www.FreeLibros.me
Pginas: 376
Edicin en espaol
Editor:
Prentice Hall
es una marca de
PEARSON
www.pearsoneducacion.net
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
C a p tu lo 1
x iii
In tro d u c c i n a l le n g u a je C
1.1
1.2
1.3
1.4
1.5
Conceptos .....................................................................................................
Lenguajes utilizados en una com putadora ..........................................
Etapas de desarrollo del softw are ..........................................................
El lenguaje C ..............................................................................................
Elem entos de un program a en C (conceptos bsicos) ......................
1.5.1 Identificadores ..................................................................................
1.5.2 T ipos de datos ..................................................................................
1.5.3 Variables .............................................................................................
1.5.4 C onstantes .........................................................................................
1.5.5 Palabras reservadas .........................................................................
1.5.6 C om entarios .......................................................................................
1.6 Entrada y salida de datos ..........................................................................
1.6.1 Salida de datos ..................................................................................
1.6.2 Entrada de datos ................................................................................
Resum en .........................................................................................................
E valuacin ....................................................................................................
Ejercicios propuestos ..................................................................................
www.FreeLibros.me
1
1
2
3
4
4
5
6
6
9
11
11
11
12
15
16
16
17
vi
C o n te n id o
C a p tu lo 2
A rit m tic a d e C
2.1
2.2
2.3
2.4
2.5
2.6
C a p tu lo 3
C a p tu lo 4
21
23
24
26
26
27
28
29
30
31
32
33
P ro g ra m a c i n e s t r u c tu r a d a
37
3.1
3.2
3.3
37
40
41
42
52
53
55
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
4.1
4.2
4.3
4.4
C a p tu lo 5
21
59
60
63
69
73
84
85
86
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
94
102
109
114
115
115
www.FreeLibros.me
C o n te n id o
C a p tu lo 6 D a to s d e t ip o e s tru c tu ra d o . A r r e g lo s
6.1
6.2
6.3
6.4
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
7.1
E structura .....................................................................................................
E structuras anidadas ....................................................................................
Uso de t y p e d e f (definir el nom bre de un tipo de dato) .....................
7.2 A puntadores .................................................................................................
Resum en .........................................................................................................
Evaluacin ....................................................................................................
Ejercicios propuestos ..................................................................................
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)
8.1 Funciones .....................................................................................................
8.2 Funciones que devuelven valores ..........................................................
8.3 Funciones con paso de parm etros ........................................................
8.3.1 Funciones con parm etros por valor ............................................
8.3.2 Parm etros por valor y por referencia .........................................
Resum en .........................................................................................................
Evaluacin ....................................................................................................
Ejercicios propuestos ..................................................................................
C a p tu lo 9 E je rc ic io s re s u e lt o s
9.1
Secuenciacin ...............................................................................................
9.1.1 Calcular el rea de una balastra .....................................................
9.1.2 C alcular el pago a realizar por nm ero
de apagadores y contactos ..............................................................
9.1.3 Calcular las coordenadas del vrtice
de una parbola ................................................................................
9.1.4 C alcular la m edida de los ngulos com plem entario
y suplem entario, dado el valor de un ngulo ............................
www.FreeLibros.me
125
125
126
141
151
153
154
162
162
163
167
167
173
176
185
191
191
192
197
199
205
210
211
215
227
229
230
231
231
231
232
233
233
C o n te n id o
www.FreeLibros.me
234
234
235
236
236
236
237
238
238
238
239
240
241
242
244
245
246
247
247
248
248
249
251
251
251
252
253
254
256
257
257
258
259
259
261
C o n te n id o
9.5
9.6
9.7
9.8
www.FreeLibros.me
ix
261
262
263
264
265
267
267
268
269
270
272
273
275
276
277
277
278
279
280
281
282
283
284
284
285
286
286
287
287
290
290
290
C o n te n id o
291
292
293
294
296
297
297
298
298
299
301
302
303
304
305
9.9.10
Calcular la c o v a ria n z a ................................................................
9.9.11
Calcular ganancias y ventas de una p a s te le r a .....................
9.10 A rreglos bidim ensionales .......................................................................
9.10.1 Calcular la m atriz traspuesta .....................................................
9.10.2 C rear una tabla con los tipos de concreto disponibles,
ju n to con sus resistencias ...........................................................
9.10.3
C alcular la determ inante de un m atriz triangular ..............
9.10.4
C alcular la determ inante de una m atriz de 2 X2 ................
306
307
309
309
312
9.10.10
9.10.11
9.10.12
310
310
311
313
314
315
316
www.FreeLibros.me
C o n te n id o
9.10.13
9.10.14
xi
C alcular la
norm alidad de una norm alidad .................
C alcular la
velocidad .......................................................
C alcular el
cam po elctrico ............................................
C alcular e l
nm ero de ladrillos y la cantidad
de cem ento necesarios para construir una pared ...................
9.12 Funciones con prototipo sin paso de parm etros ..............................
9.12.1 Calcular la
distancia entre dos puntos ..........................
9.12.2 Calcular la
excentricidad de una elipse
sin paso de parm etros ................................................................
9.12.3 Calcular la
derivada de X a la n .....................................
9.13 Funciones con paso de parm etros .......................................................
9.13.1 Calcular costos en la em presa G ood M ark C o m p a n y
9.13.2
9.13.3
9.13.4
9.13.5
9.13.6
Calcular
Calcular
Calcular
Calcular
Calcular
326
327
328
330
331
331
332
333
334
334
335
337
338
339
341
9.13.7
www.FreeLibros.me
342
343
345
347
347
348
350
351
352
353
C o n te n id o
9.14.7
9.14.8
Calcular la
Calcular el
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
www.FreeLibros.me
x iv
Presentacin
www.FreeLibros.me
Introduccin
al lenguaje C
1.1 Conceptos
U n a com putadora es u n d isp o sitiv o e le c tr n ic o q u e p ro c e s a d ato s
(u n p ro g ra m a re p re s e n ta d o e n c d ig o d e m q u in a ). L a c o m p u ta d o ra
est fo rm a d a p o r a lg n tip o d e d is p o s itiv o d e e n tra d a (c o m n m e n te
www.FreeLibros.me
Captulo 1
In troduccin al le n g u a je C
www.FreeLibros.me
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.
S e d e n o m in a softw are a lo s p ro g ra m a s u tiliz a d o s e n u n a c o m p u ta d o ra .
www.FreeLibros.me
Captulo 1
In troduccin 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].
C es u n le n g u a je d e a lto n iv el, a u n q u e ta m b i n s e u tiliz a p a ra la p ro g ra m a c i n
de s is te m a s , y a q u e c o n tie n e in s tru c c io n e s p a ra el c o n tro l a b a jo n iv el. E s u n a
e v o lu c i n d e lo s le n g u a je s B y B C P L , lo s c u a le s c a re c a n d e la c a p a c id a d p a ra
m a n e ja r tip o s d e d a to s, u n a d e sv e n ta ja p a ra el p ro g ra m a d o r. E sto s tre s le n g u a je s
fu e ro n u tiliz a d o s e n lo s la b o ra to rio s B e ll p a ra c re a r e l s is te m a o p e ra tiv o U N IX .
E n 1978, c o n la p u b lic a c i n d e l lib ro T h e C P ro g ra m m in g L a n g u a g e , e s c rito
p o r B ria n K e rn ig h a n y D e n n is R itc h ie , s e in ic i fo rm a lm e n te el u so d e l le n g u a je
C. A n te el a u g e d e e s te n u e v o le n g u a je , fu e n e c e sa rio e s c rib ir u n e s t n d a r q u e
c u b rie ra la s n e c e sid a d e s d e c o m p a tib ilid a d y p o rta b ilid a d . E l e s t n d a r fu e
a p ro b a d o e n 1 9 8 9 p o r el c o m it t c n ic o X 3 J 11, d e l A m e ric a n N a tio n a l S ta n d a rd s
C o m m itte o n C o m p u te rs a n d In fo rm a tio n P ro c e ssin g .
El le n g u a je C h a e v o lu c io n a d o a C + + (c re a d o p o r B ja rn e S tro u s tru p e n 1986) y a
o tro s le n g u a je s q u e c o n se rv a n c a ra c te rs tic a s d e C , c o m o Ja v a .
www.FreeLibros.me
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 ra 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.
E n C s e s ig u e n c ie rta s reg la s p a ra fo rm a r los id e n tific a d o re s:
U n id e n tific a d o r s e fo rm a a p a rtir d e d g ito s, le tra s y el c a r c te r d e su b ra y a d o
(g u i n b a jo ); n o s e p u e d e u tiliz a r n in g n o tro c arc ter.
E l p rim e r c a r c te r d e u n id e n tific a d o r s ie m p re d e b e s e r u n a le tra . A u n q u e
ta m b i n e s t p e rm itid o u tiliz a r el g u i n b a jo c o m o p rim e r c a r c te r, n o es m u y
co m n ; m s bien s e e m p le a p a ra fo rm a r id en tificad o res c o n m s d e u n a p a la b ra .
N o s e p u e d e u tiliz a r u n d g ito c o m o p rim e r c a r c te r e n u n id en tific ad o r.
E l n m e ro d e c a ra c te re s p u e d e s e r ilim ita d o ; es d e cir, d e sd e u n o h a s ta los
q u e el u s u a rio q u ie ra ; s in e m b a rg o a lg u n o s c o m p ila d o re s d e C re c o n o c e n
n ic a m e n te lo s p rim e ro s 8 c a ra c te re s y e n o tro s c a so s p u e d e re c o n o c e r h a sta
3 1. U n c o n s e jo es q u e los id e n tific a d o re s s e a n lo m s c o m p a c to s p e ro ta m b i n
se a n c la ra m e n te d e sc rip tiv o s.
E s p o s ib le u tiliz a r le tra s m a y s c u la s y m in s c u la s , p e ro s e re c o m ie n d a
un e m p le o c o n s is te n te , y a q u e el le n g u a je C es s e n s ib le a m a y s c u la s y
m in s c u la s , es d e cir, u n a a es d ife re n te d e u n a A.
N o s e p u e d e n u tiliz a r p a la b ra s re se rv a d a s d e C c o m o id e n tific a d o re s; ta m p o c o
sm b o lo s o e sp a c io s e n b la n c o .
A c o n tin u a c i n s e m u e s tra n e je m p lo s d e id e n tific a d o re s v lid o s:
A
Nombre
Nombre_alumno
X1
_codigo
CODIGO
resultado_3
Explicacin
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
carcter
- no e s p e r m i t i d o
"a l u m n o "
El
carcter
" no e s p e r m i t i d o
www.FreeLibros.me
Captulo 1
In troduccin al le n g u a je C
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
Descripcin
void
Define v a c o o v a l o r NULL.
Al macena un c a r c t e r .
char
requerid a
Rango
1 byte
-128 a 127
1 byte
0 a 255
2 bytes
-32767 a 32768
2 bytes
0 a 65, 53 5
2 bytes
-32767 a 32768
Puede
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
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
(sin fr a c c i n ) .
unsigned i n t
V alor entero s i n
signo.
Entero co rto ,
puede s e r i g u a l
al i n t o a l a
mitad.
short i n t
En p u n t o f l o t a n t e ( p uede s e r
float
una f r a c c i n
4 bytes
o un e n t e r o con
3.4x10+38
exponente).
En p u n t o f l o t a n t e d e l
tamao d e l
double
3.4x10-38 a
d o b l e de
float (ms c i f r a s
s ig n i f i c a t iv a s para l a
1. 7x10-308 a
fra cci n
8 bytes
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 ,
long
u s u a l me nt e d e l
-2,147,483,648 a
d o b l e de tamao
4 bytes
2, 147, 4 8 3 , 64 7
al in t.
Entero s in
unsigned
signo.
4 bytes
0 a 4,294,967,295
long
lo n g double
Incrementa e l
tamao d e l
10 b y t e s
doubl.
3.4x10-4932 a
1.1x10+4932
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:
in t
a;
www.FreeLibros.me
Captulo 1
float b , c , d ;
In troduccin a l le n g u a je C
Se r e s e r v a n 3 e s p a c i o s
en l a
memoria p a r a g u a r d a r 3 nmeros
Se
reserva
un
espacio
en
la
memoria
para
poder
alm acenar
c u a l q u i e r c a r c t e r y s e puede h a c e r r e f e r e n c i a a e s t e e s p a c i o
mediante e l i d e n t i f i c a d o r
"j".
C m o reservar m em oria
R e c u e rd e q u e la m e m o ria es u n c o n ju n to d e c eld as d ire c c io n a b le s; e s decir, se p u e d e
te n e r a c c e so a c a d a u n a m e d ia n te s u d irec ci n y e n ellas p u e d e a lm a c e n a r datos.
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 ra 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
a
14
10
11
12
13
20
21
22
23
9
j
15
16
17
18
24
25
26
27
28
19
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.
www.FreeLibros.me
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
L as c o n sta n te s s o n e le m e n to s fre c u e n te m e n te u tiliz a d o s e n lo s p ro g ra m a s ; si ya
q u e d c la ro el c o n c e p to d e v a ria b le , s e r m s se n c illo e x p lic a r el d e c o n sta n te .
U n a c o n s ta n te es u n e s p a c io e n m e m o ria q u e re c ib e u n v a lo r p o r p rim e ra v e z y
g e n e ra lm e n te n o s e m o d ific a d u ra n te la e je c u c i n d e u n p ro g ra m a .
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 ra 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 ra 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 .
E n C , la s c o n sta n te s s e c re a n u tiliz a n d o la d ire c tiv a d e l p re p ro c e s a d o r
ttdefine
ttdefine
www.FreeLibros.me
Captulo 1
In troduccin a l le n g u a je C
O b s e rv e q u e a las c o n sta n te s c re a d a s c o n
define ,
NP
constante entera,
PI
constante r e a l ,
CAR
c o n s t a n t e de c a r c t e r ,
SALUDO
constante
de
ya qu e r e p r e s e n t a l a
representa l a
c a d e na
de
c a n t i d a d de 1506.
c a n t i d a d de 3 .1 41 6.
y a que r e p r e s e n t a a l a
caracteres,
le tra
representa
la
'a'.
secuencia
"H o l a a t o d o s " .
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 .
L a sin ta x is p a ra d e c la ra r u n a c o n s ta n te
const
es:
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';
c o n s t c h a r SALUDO[ ]= " H o l a a t o d o s " ;
const
www.FreeLibros.me
double
in t
struct
break
else
long
switch
case
enum
re g iste r
typedef
char
extern
return
unin
const
float
short
unsigned
continue
for
signed
void
de fau lt
goto
size o f
v o la tile
do
if
sta tic
w hile
www.FreeLibros.me
Captulo 1
In troduccin al le n g u a je C
p rin tf(
cadena de c o n t r o l
de t i p o ",
argumentos);
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.
p r i n t f ( "%c/",
a+b);
Se v i s u a l i z a un 15, y a qu e e s
la
suma de a
+b
m o s t r a d a como v a l o r e n t e r o ,
p r i n t f ( "% f",
a+b);
Se v i s u a l i z a un 15.2,
y a que e s l a
suma de
a +
b m o s t r a d a como v a l o r r e a l ,
p r i n t f ( "% c",
c);
Se v i s u a l i z a l a l e t r a
de l a
p r i n t f C % c %c/ % f",
c,
a,b);
printf("H O LA");
v a r i a b l e c.
Se v i s u a l i z a
la s
s 7 8 . 2 que son l o s
v a r i a b l e s c,
a y b respectivam ente.
Se v i s u a l i z a l a p a l a b r a HOLA.
www.FreeLibros.me
v a l o r e s de
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
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
%c
El
d a t o es un c a r c t e r
%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 ) .
%f
El
d a t o es un r e a l e s c r i t o
El
d a t o es un r e a l
%2
%s
(in t).
s i g n o en d e c i m a l
(unsigned i n t ) .
(char).
con p u n t o d e c i m a l con s i g n o
(float).
(float).
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
carcter nulo
%lf
El
\0 .
d a t o es r e a l
de t i p o l o n g d o u b l e .
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
, a, b, c ) ;
www.FreeLibros.me
Captulo 1
In troduccin a l le n g u a je C
8.2
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 .
A n a lic e m o s el sig u ie n te e je m p lo y s u salid a.
p r i n t f ( ' ,96d \n \ t
\n \ t \ t %c",
a,b,c);
7
8.2
Descripcin
\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
Tabulacin
\v
Tabulacin 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
C o m illa s dobles
\ 000
Octal
\ xhh
Hexadecimal
\0
Carcter nulo
www.FreeLibros.me
v a l o r de l a
v a r i a b l e a e s %c/", a ) ;
y e n p a n ta lla s e v e ra d e l s ig u ie n te m odo:
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:
p rin tf("% d Es e l
v a l o r de l a
v a r i a b l e a ",
a);
v a l o r de l a
v ariab le a
es la sig u ie n te :
s c a n f ( " c a d e n a de c o n t r o l de t i p o " ,
& va ria b le );
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 .
Ej e m p l o 1.1 Programa que lee dos datos y los muestra
in t
edad;
f loat e s t ;
p rin tf("T e cle a
tu edad");
scanf("%d",&edad);
(contina)
www.FreeLibros.me
Captulo 1
In troduccin al le n g u a je C
(continuacin)
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/ aos y m ide s %f m t s ." , e d a d , e s t ) ;
E n e s te e je m p lo s e d e c la ra n la s v a ria b le s
p rin tf
edad
y e s t ; p rim e ro s e u tiliz la fu n c i n
s c a n f ( );
e s t ; fin a lm e n te
a p a re c e el m e n saje:
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
L a c o m p u ta d o ra es u n d isp o sitiv o e le c tr n ic o q u e p ro c e s a in s tru c c io n e s y d ato s.
E n e lla s e p u e d e n u tiliz a r v a rio s tip o s d e le n g u a je s c o m o lo s d e a lto n iv el, q u e
so n lo s c o m p ila d o re s; el le n g u a je e n sa m b la d o r, q u e es d e b a jo n iv el, y el le n g u a je
m q u in a , e n c e ro s y u n o s, q u e es el n ic o q u e la c o m p u ta d o ra e n tie n d e .
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.
L a in s tru c c i n u sa d a c o m n m e n te p a ra le e r d a to s p o r la e n tra d a e s t n d a r (te c la d o )
es s c a n f ; p a ra m o s tra r e n la s a lid a e s t n d a r (m o n ito r) s e u tiliz a la in s tru c c i n
p rin tf.
Evaluacin
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
17
Ejercicios p ro p u e s to s
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 ?
char,
o tra tip o
in t,
o tra tip o
fioat
y o tra tip o
A s g n e le u n v a lo r 4 a c a d a u n a d e la s v a ria b le s c o n la in s tru c c i n
m u e s tre el c o n te n id o d e c a d a v a ria b le u sa n d o la in s tru c c i n
4. T re s c o n sta n te s u sa n d o c o n s t : c h a r , i n t y fioat.
5 . T re s c o n sta n te s u sa n d o
d o ub ie .
scanf
p rin tf.
ttdefme.
6 . C in c o p a la b ra s re se rv a d a s.
7 . U n c o m e n ta rio q u e c o n te n g a el n o m b re c o m p le to d e u s te d y la fe c h a d e hoy.
Ejercicios propuestos
I. D escriba qu im prim en los siguientes fragm entos de cdigo.
1.
char A;
p r i n t f ( u %c \ A ) ; __________________
p rin tfr
" , A ) ; ___________________
__________________
www.FreeLibros.me
Captulo 1
In troduccin a l le n g u a je C
2 . i n t B;
B=5;
" , B ) ; __________________
p rin tff"
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
p("
pC
l a r g o % lf \ n " , z ) ; ___________________
\ n " , a + b ) ; ___________________
___________________
in t
a;
C le e r
a=3 */
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 "% f" , &w);
s c a n f f "%c",&w );
www.FreeLibros.me
www.FreeLibros.me
Aritmtica 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 ra 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
Captulo 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 ).
El le n g u a je C p e rm ite in ic ia liz a r el v a lo r d e la v a ria b le , y a s e a e n el m o m e n to de
la d e c la ra c i n o p o ste rio rm e n te ; el fo rm a to es el sig u ie n te :
< t i p o d a t o > < i d e n t i f i c a d o r > = <valor>;
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 .
E n e s te e je m p lo s e d e c la ra n
j,
p rim e ra s s e le s a s ig n a 4 .5 6 y 7 .2 re s p e c tiv a m e n te ;
n o s e in ic ia liz a , y a q u e se
le a s ig n a el re s u lta d o d e la e x p re s i n
a + b,
e je m p lo m s: s e d e c la ra la v a ria b le
c u y o v a lo r in ic ia l es la le tr a r.
char t
= 1 r
d a n d o c o m o re s u lta d o 1 1 .7 6 . U n
';
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
23
n-m ;
z=m+5;
w = s q r t(9 );
E n el p rim e r e je m p lo a m s e le a s ig n a 5; e n la se g u n d a in s tru c c i n a la v a ria b le m
se le a s ig n a lo q u e tie n e m m s 3 (q u e d a n d o c o n 8 ); e n el te rc e r e je m p lo a n s e le
a sig n a el v a lo r d e m, es d e c ir 8; e n el s ig u ie n te e je m p lo a la v a ria b le z s e le a s ig n a
el re s u lta d o d e la s u m a d e m+s (1 3 ); y p o r ltim o , a la v a ria b le w s e le a s ig n a la
ra z c u a d ra d a d e 9, la c u a l s e c a lc u la u tiliz a n d o la fu n c i n s q r t ( ) d e la b ib lio te c a
mat h. h .
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 ;
U tiliz a d a d e e s ta fo rm a es lla m a d a a s ig n a c i n m ltip le , y s ig n ific a q u e s e les
a sig n a el m is m o v a lo r (c e ro ) a to d a s la s v a ria b le s; la a s ig n a c i n s ie m p re es de
d e re c h a a iz q u ie rd a .
Operacin
de los operandos
Ejemplo
Resultado
Suma
Enteros y re a le s
3 + 2
(pueden s e r
3.3 + 5
8.3
d iferen tes).
8 . 2 + 7.1
15.3
Enteros y re a le s
3 - 2
(pueden s e r
3 . 3 - 5
-1.7
d iferen tes).
8.2
1.1
Enteros y re a le s
3 * 2
(pueden s e r
3.3 * 5
16.5
d iferen tes).
8 . 2 * 7.1
5 8 .22
Resta
M u ltip lica ci n
- 7.1
(contina )
www.FreeLibros.me
Captulo 2
A ritm tica d e C
(continuacin)
/
D iv isi n
Enteros y re a le s
3 / 2
(pueden s e r
3 . 3 / 5
0.66
d iferen tes).
8. 2 / 7. 1
1. 1549296
Residuo o
S lo acepta operandos
3 % 2
mdulo
enteros.
3 .3 % 5
in v lid o
8 . 2 % 7.1
in v lid o
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.
El tip o d e d a to d e l re s u lta d o d e la o p e ra c i n d e p e n d e d e lo s tip o s d e d a to s d e los
o p e ra n d o s q u e s e u tilic e n ; es d e cir, si s e u sa n s lo e n te ro s , el re s u lta d o s e r un
e n te ro , p e ro si s e c o m b in a n e n te ro s y re a le s , el re s u lta d o s e r u n v a lo r real.
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 )
23~
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
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.
Ej e m p l o 2.1 Expresiones vlidas y com entario a la solucin
E x p re s i n
Regl as
a)
3 + 4 - 5
7 - 5
l a misma p r i o r i d a d ,
resta,
la s
como en e s t e c a s o l a
o p e r a c i o n e s se r e a l i z a n
suma y l a
de i z q u i e r d a
derecha.
b)
8+5*9-6
Aunque l a
suma e s t p r i m e r o ,
8 + 4 5 - 6
j e r a r q u a e s l a m u l t i p l i c a c i n ; p o s t e r i o r m e n t e se
5 3 - 6
l l e v a a cabo l a
47
de i z q u i e r d a a d e r e c h a .
suma,
el
es d e c i r ,
o p e r a d o r de mayor
nuevamente s e e v a l a n
6/2+4*(5-2)
En e s t e e j e m p l o s e e f e c t a p r i m e r o l a
6/2+4*(3)
para e fe c t u a r l a
6/2+12
la
3+12
m u l t i p l i c a c i n . Con e s o s r e s u l t a d o s e s p o s i b l e
15
efectuar l a
d)
suma,
d iv isi n ;
es n e c e s a r i o l l e v a r
operacin entre p a r n te s is
(resta)
a cabo
y luego l a
suma.
6 +7 *( (3 -1 )%2)
Cuando en una e x p r e s i n e x i s t a n p a r n t e s i s a n i d a d o s ,
6+7*(2%2)
se e v a l u a r n de a d e n t r o h a c i a a f u e r a ,
6 + 7 * 0
evalan l o s
6 + 0
precedencia.
l u e g o se
dems o p e r a d o r e s de a c u e r d o a su
6
Nota: Para definir prioridad de operadores, C utiliza nicamente los smbolos ( ). Las { }
(llaves) y los [ ] (corchetes) en el lenguaje C no se utilizan para asociar. Su significado se
explicar ms adelante.
www.FreeLibros.me
Captulo 2
A ritm tica d e C
/=
%=
Los c u a le s ta m b i n sirv e n p a ra su m a r, restar, m u ltip lic a r y d iv id ir,
re sp e c tiv a m e n te , re d u c ie n d o la s in stru c c io n e s, c o m o s e m u e s tra la ta b la 2.3.
S u p o n ie n d o q u e d e c la ra m o s
in t
a= 1 0 ;
Equivale a
Resultado
a+=2 ;
a=a+2 ;
12
a-= 2 ;
a=a- 2 ;
A* =2;
a=a* 2 ;
20
a l =2 ;
a=a! 2 ;
A%=2;
a=a%2 ;
www.FreeLibros.me
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.
E ste o p e ra d o r red u ce el c d ig o , y a q u e la ex p re si n a+ + eq u iv ale a la ex p re si n
que d ich o e n p a la b ras sig n ifica a
la v ariab le
a=a+i,
a se le a sig n a lo q u e ten g a m s 1.
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
a =W;
2)
X=++a;
a =10
x=a++;
www.FreeLibros.me
Captulo 2
A ritm tica d e C
D e s cr ip ci n
<
menor que
<=
menor o i g u a l que
>
mayor que
>=
mayor o i g u a l que
==
i g u a l que
!=
no i g u a l
que ( d i f e r e n t e
de)
a.=10) y b=5
Operacin
Descripcin
Resultado
a <b
a menor qu e b
Falso
(0)
a <= b
a menor o i g u a l qu e b
Falso
(0)
a > b
a mayor que b
V e r d a d e r o (1)
a >= b
a mayor o i g u a l qu e b
V e r d a d e r o (1)
a == b
a i g u a l qu e b
Falso
a != b
a diferen te
V e r d a d e r o (1)
de b
(0)
www.FreeLibros.me
2.6 O p e ra d o r co n d icio n a l
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,
0 (or) E l
II
ser fa lsa .
r e s u l t a d o de una o p e r a c i n o l g i c a
v e r d a d e r o s i a l g u n o de l o s
son v e r d a d e r o s ; s i
No ( n o t ) E l
t o d o s so n f a l s o s ,
dos
ser fa ls a .
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
ser verdadero s i
con tra rio,
operandos o l o s
ser
ser
el
o p e ra nd o es f a l s o ,
slo
de l o
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.
si
a=1@, b=5,
c=10 y d=3
Operacin
D e s cr ip ci n
Resultado
(a<b)&&(a==c)
a no es menor qu e b
Falso
(a>b)&&(a>=d)
(a==c) || ( c 1 = d)
(d>c) || (b>a)
(c>=d) || (c>a)
(Q>)
a si
es i g u a l
a si
es mayor qu e b
V e r d a d e r o (1)
a si
es mayor o i g u a l qu e d
la s
a si
es i g u a l
V e r d a d e r o (1)
c si
es d i f e r e n t e de d
que c
que c
l a p r i m e r a no s e cumpl e
la s
d o s s e cumplen
d o s s e cumplen
d no es mayor c
Falso
b no es mayor qu e a
n i n g u n a s e cumple
c si
Verdadero ( 1 )
es mayor o i g u a l qu e d
c no es mayor qu e a
((d)
l a primera s
s e cumple
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 :
< e x p r e s i n 1> ? < e x p r e s i n 2> : < e x p r e s i n 3>
www.FreeLibros.me
30
Captulo 2
A ritm tica d e C
donde
< expresin
1 > es
la c o n d ic i n q u e s e e v a l a (d e b e s e r u n a e x p re s i n b o o le a n a ), si
es v e rd a d e ra , s e e je c u ta r lo in d ic a d o e n < expresin
2 >;
p e ro si < expresin
1 > es
: 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;
A q u el re s u lta d o d e la e x p re s i n c o n d ic io n a l s e a s ig n a a la v a ria b le c. P rim e ro se
ev al a si a es m a y o r q u e b; c o m o e n e s te c a s o el re s u lta d o es fa ls o , s e e je c u ta la
e x p re si n q u e e s t d e sp u s d e : (d o s p u n to s ), es d e cir, la m u ltip lic a c i n d e a p o r b ,
c u y o re s u lta d o es 12, el c u a l es a lm a c e n a d o e n la v a ria b le c.
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 ra 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.
l
++,
--
*, / , %
?:
<# <=,
+=,
*=, /=, =
>=
www.FreeLibros.me
Resumen
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.
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.
E x is te n d o s tip o s d e e x p re sio n e s: a ritm tic a s y l g ic a s . U n a e x p re s i n a ritm tic a
es a q u e lla c u y o re s u lta d o es u n v a lo r n u m ric o . U n a e x p re s i n l g ic a p o d r te n e r
c o m o re s u lta d o s lo c ie rto o falso .
Al u tiliz a r lo s o p e ra d o re s es n e c e sa rio to m a r e n c u e n ta la s p rio rid a d e s q u e
m a te m tic a m e n te tie n e n sto 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 lc 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
31
32
Captulo 2
A ritm tica d e C
Evaluacin
I. C onteste las siguientes preguntas.
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 ?
a) 5=x
b) X --5
c) x+=5
d ) x-5
b) { }
c) i j
d ) &&
<stdio.h >
H i n d de < s t d l i b . h >
mai n( )
{
i n t j =4, k = 3 , i = 2 ;
www.FreeLibros.me
33
Ejercicios p ro p u e s to s
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
I. Q u resultado se im prim e en los siguientes program as?
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
Captulo 2
p rin tf("
A ritm tica d e C
v a l o r de c 96 d \ t v a l o r de d 9&d\n" , c , d ) ;
____________
s y s t e m ( " p a u s e ") ;
3.
include
<stdio.h >
mai n( )
{
i n t c= 3,l;
c = (c
* 2 - (1 = 4,
- 1));
p rin tf("
g e t c h f );
return
0;
4.
ttinclude
<stdio.h >
include
<c o ni o. h >
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
getch();
return
0;
www.FreeLibros.me
Ejercicios p ro p u e s to s
d =
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.
8.
a % d %
9.
3+5*d % 10
10.
a/b %
11.
-a*7
12.
13.
( (a>b)
14.
|| (a>=b))
15.
( (a>=b) || (a<d))
16.
17.
I (a<=c)
|| (d>5)
|| ( a<c ))
&& ( (a=c)
&& 16.
|| (c>d)
www.FreeLibros.me
www.FreeLibros.me
Programacin
estructurada
www.FreeLibros.me
Captulo 3
(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
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
Descripcin
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
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
de d a t o s .
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 matemticas y t r i g o n o m t r i c a s .
strin g .h
C o n t i e n e f u n c i o n e s p a r a e l manejo de c adenas de t e x t o .
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 .
L as b ib lio te c a s d e l e s t n d a r son:
l c a l e . h , m ath.h, s e t jm p .h ,
s t d l i b . h , s t r i n g . h , tim e.h.
assert.h,
sig n a l.h ,
ctype.h,
stdarg.h,
e r r n o . h , float.h, l i m i t s . h ,
stddef.h,
std io .h ,
E n la d ire c c i n e le c tr n ic a , w w w .a c m .u iu c .e d u , es
www.FreeLibros.me
E n el c a s o d e C s e u tiliz a u n a fu n c i n lla m a d a
main( ) .
s ta c o n s titu y e el
p ro g ra m a p rin c ip a l y d e sd e a h s e p u e d e h a c e r u so ta n to d e la s fu n c io n e s in te rn a s
c o m o d e la s e x te rn a s.
L a e s tru c tu ra o s in ta x is d e u n p ro g ra m a c re a d o e n C s e m u e s tra a c o n tin u a c i n en
un p rim e r p ro g ra m a e le m e n ta l.
E je m p lo 3.1 Estructura mnima de un programa en lenguaje C, versin 1
/ * 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
Captulo 3
se e n c u e n tra la in s tru c c i n
p rin tf(
),
d a n d o s a lid a a la c a d e n a
{
p r i n t f ( " M i p r i m e r program a");
return 0 ;
vo id ,
return
E s ta in s tru c c i n in d ic a q u e te rm in a la e je c u c i n d e l p ro g ra m a y d e v u e lv e el
return 0.
www.FreeLibros.me
www.FreeLibros.me
Captulo 3
3.3.1 Secuenciacin
Es u n a e s tru c tu ra d e c o n tro l e n la q u e las in s tru c c io n e s s e e je c u ta n u n a d e sp u s
de o tra e n el o rd e n e n el q u e s e e n c u e n tra n e s c rita s e n u n p ro g ra m a . E l fo rm a to d e
u n a s e c u e n c ia c i n es:
in stru cci n
1;
in stru cci n
2;
i n s t r u c c i n n;
Descripcin
S o lic ita r la s tre s e d ad e s.
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
Nombre
Tipo
Uso
E1
Entero
P r i m e r a edad.
E2
Entero
Segunda edad.
E3
Entero
T e r c e r a edad.
Prom
Entero
Resultado.
www.FreeLibros.me
Codificacin
/ *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>
tinclude< conio.h>
mai n( )
{
in t
e1,e2,e3;
float prom;
p rin tf("T e cle a la
e d ad de l a p r i m e r a p e r s o n a
");
e d ad de l a
");
s egu nda p e r s o n a
scanf("% d",&e2 );
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);
Explicacin
L a p rim e ra ln e a , e n c e rra d a e n tre /* y * /, es u n c o m e n ta rio , n o es u n a
in stru c c i n . L a p rim e ra p a rte d e e ste p ro g ra m a es la in c lu s i n d e l a rc h iv o de
c a b e c e ra s t d i o . h p a ra p o d e r u s a r la s fu n c io n e s p r i n t f y s c a n f ; ta m b i n se
in clu y e la b ib lio te c a
conio.h
y a u n q u e e n e s te e je m p lo n o s e u tiliz a n in g u n a
fu n c i n d e s ta n o a fe c ta s u e je c u c i n .
Es m u y fc il id e n tific a r c u l s e r el o rd e n e n q u e s e e je c u ta r n e sta s in stru c c io n e s:
se p id e la p rim e ra e d ad , s e a lm a c e n a e n e ; s e s o lic ita la se g u n d a e d a d y s e g u a rd a
en
e2\
p o ste rio rm e n te s e p id e la te r c e r a e d a d y s e a lm a c e n a e n
el c lc u lo y s e a s ig n a a
prom
e3;
d e s p u s s e h a ce
(e n e s ta m is m a ln e a h a y u n c o m e n ta rio , re c u e rd e q u e
www.FreeLibros.me
Captulo 3
(continuacin )
Ejecucin
Teclea l a
edad de
l a prim erapersona
Teclea l a
edad de
l a s egu nda p e r s o n a 15
Teclea l a
edad de
l a t e r c e r a p e r s o n a 10
E l p r o m e d i o de
e d ad de l a s
3p e r s o n a s e s 10.00
Descripcin
S o lic ita r b a s e m en o r, b a s e m a y o r y a ltu ra d e l tra p e c io .
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
Nombre
Tipo
Uso
Real
Base menor.
Real
Base mayor.
Real
A ltura.
Real
R esu ltado.
Codificacin
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
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 ;
Explicacin
A q u , a d e m s d e
std io .h
s e ra o b lig a to rio in c lu ir el a rc h iv o d e c a b e c e ra
y a q u e e n l 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
c irscrf)
con io.h,
getchf).
Ejecucin
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
El re a d e l tra p e c io es 28.7.
Descripcin
S o lic ita r c a n tid a d d e h o ra s tra b a ja d a s.
S o lic ita r el s u e ld o q u e s e p a g a p o r c a d a h o ra tra b a ja d a .
www.FreeLibros.me
(c o n tin a )
Captulo 3
(continuacin)
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
Nombre
Tipo
Uso
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 .
Real
T o t a l de d e d u c c i o n e s .
Real
T o t a l de p e r c e p c i o n e s .
Sn
Real
Sueld o neto.
Codificacin
/*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 " ) ;
www.FreeLibros.me
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
getch();
return 0 ;
Explicacin
Se s o lic ita la c a n tid a d d e h o ra s tra b a ja d a s a d e m s d e lo q u e s e p a g a p o r c ad a
h ora, y s e a lm a c e n a n e n /? y s /? re s p e c tiv a m e n te . S e c a lc u la el s u e ld o b ru to y se
a sig n a a s b ; p o ste rio rm e n te s e a s ig n a n a la v a ria b le d la s d e d u c c io n e s, la s c u ales
so n el 12% d e l s u e ld o b ru to ; d e ig u a l fo rm a e n p s e g u a rd a n la s p e rc e p c io n e s q u e
co rre sp o n d e n al 15% d e l m ism o sa la rio b ru to . S e c a lc u la el su e ld o n e to q u e c o n siste
en el s u e ld o b ru to m e n o s la s d e d u c c io n e s m s las p e rc e p c io n e s y fin a lm e n te se
m u e stra n la s v a ria b le s c o n lo s re s u lta d o s d e l s u e ld o n e to d e sg lo s a n d o lo s d e m s
c o n c e p to s.
Ejecucin
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
Descripcin
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 .
(contina)
www.FreeLibros.me
Captulo 3
(continuacin)
Variabl es
Nombre
Tipo
Uso
Entero o re a l
Primero a p ro m e d ia r.
Entero o re a l
Segundo a p r o m e d i a r .
Entero o re a l
Tercero a p ro m e d ia r.
Entero o re a l
Cuarto a p r o m e d ia r .
tot
Real
R esu ltado.
Codificacin
l * P r o gr a ma p a r a p r o m e d i a r 4 nmeros*/
#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
el
2 do numero
a promediar
\n\n\a")
el
3 e r numero a p r o m e d i a r
\n\n\a")
el
4tO numero a p r o m e d i a r
\n\n\a")
\n\n\a")
s c a n f ( U96 f u, & a ) ;
p r i n t f f Inserte
s c a n f ( H96 f " , & b ) ;
prin tf("
Inserte
s c a n f ( u% f " , & c ) ;
p r i n t f f " Inserte
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;
Explicacin
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
b, c
se m u e s tra la v a ria b le t o t c o n d o s d e c im a le s .
L a d ife re n c ia s e v e ra 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 ra d o s sa lto s d e ln e a y a d e m s se
e sc u c h a ra u n bp .
Ejecucin
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
Descripcin
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.
S o lic ita r la c a n tid a d d e p a s te le s g ra n d e s, m e d ia n o s y c h ic o s q u e s e v e n d ie ro n .
S o lic ita r ta m b i n la c a n tid a d d e p a n e s v e n d id o s.
C a lc u la r la v e n ta d e l d a m u ltip lic a n d o la c a n tid a d d e c a d a p ro d u c to p o r s u p rec io .
M o stra r el re su lta d o .
Vari abl es
Nombre
Tipo
Uso
Constante r e a l
P r e c i o p o r p a s t e l grande.
Constante r e a l
P r e c i o p o r p a s t e l medi ano.
CH
Constante r e a l
Constante r e a l
P r e c i o p o r p i e z a de pan.
Entero
Nmero de p a s t e l e s g r a n d e s v e n d i d o s .
chico.
(c o n tin a )
www.FreeLibros.me
50
Captulo 3
(continuacin)
Vari abl es
Nombre
Tipo
Uso
Entero
Ch
Entero
Nmero de p a s t e l e s c h i c o s v e n d i d o s .
Entero
Nmero de p i e z a s de pan v e n d i d o s .
Tot
Real
T o t a l de v e n t a .
Codificacin
/*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
Explicacin
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,
co n
m, c h , p
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
Ejecucin
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 bsicas con dos nm eros
Descripcin
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.
S u m a rlo s, re s ta rlo s, m u ltip lic a rlo s y d iv id irlo s, m o s tra n d o c a d a re su lta d o .
Vari abl es
Nombre
Tipo
Uso
Entero o re a l
P r i m e r o p e r an d o.
Entero o re a l
Segundo o p e r an d o.
Codificacin
/ *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
Captulo 3
(continuacin)
main ()
{
float
a,b;
c lrs c rO ;
");
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 ;
Explicacin
E ste e je m p lo in ic ia s o lic ita n d o d o s v a lo re s q u e s o n g u a rd a d o s e n a y ,
p o ste rio rm e n te m u e s tra lo s re s u lta d o s, p e ro e n e s ta o c a s i n n o s e u tiliz a
un a v a ria b le c o n el fin d e a lm a c e n a r e s o s re s u lta d o s , s in o q u e s e im p rim e n
d ire c ta m e n te (c o n d o s d e c im a le s ), u sa n d o e n la fu n c i n
p rin tf
la s e x p re sio n e s
Ejecucin
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
Evaluacin
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 rs 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.
L a s e c u e n c ia c i n es la e s tru c tu ra d e c o n tro l q u e s e e x p lic a e n e s te c a p tu lo y es
a q u e lla e n la q u e las in s tru c c io n e s s e e je c u ta n u n a d e sp u s d e o tra e n el o rd e n en
q u e e s t n e sc rita s .
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.
P a ra u tiliz a r la s fu n c io n e s q u e o fre c e el le n g u a je es n e c e sa rio in c lu ir el a rc h iv o
d e c a b e c e ra o b ib lio te c a (lib re ra ) c o rre s p o n d ie n te c o n la d ire c tiv a ttinciude. U n a
b ib lio te c a es u n a rc h iv o q u e c o n tie n e a e so s su b p ro g ra m a s lla m a d o s fu n c io n e s.
C a d a b ib lio te c a es u n a c o le c c i n d e fu n c io n e s; u n a d e la s m s u tiliz a d a s es
std io.h,
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.
Evaluacin
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 .
3 . Q u tip o d e fu n c io n e s s e p u e d e n e n c o n tra r e n el le n g u a je C ? E x p liq u e la
d ife re n c ia e n tre a m b a s.
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
53
Captulo 3
7 . L a b ib lio te c a q u e s e re q u ie re p a ra u tiliz a r la fu n c i n
prin t f
es
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 ____________________________________________________________
10. P a ra q u s irv e la in s tru c c i n
return 0?
<stdio.h >
# in clu d e
<c o ni o. h >
m a i n ()
g o t o x y f19,5); p r i n t f ( "
\n");
g o t o x y f19,6); p r i n t f f ' ^
g o t o x y f 19, 7) ; p r i n t f f ^
CAPTURA DE DATOS
3");
g o t o x y ( 19,8); p r i n t f f " *
g o t o x y ( 1 9 , 9 ) ; p r i n t f ( " .....................
g o t o x y f 1 9 , 1 0 ) ; p r i n t f f "*
g o t o x y f 1 9 , 1 1 ) ; p r i n t f f "* NOMBRE:
www.FreeLibros.me
\ n u) ;
Ejercicios propuestos
g o t o x y f 19,12);
p rin tff"^
55
a ) ;
g o t o x y f 1 9 , 1 3 ) ; p r i n t f f 3 HORAS TRABAJADAS:
g o t o x y f19,14);
p r i n t f f a
g o t o x y f 19,15) ;
g o t o x y f 19,16);
p r i n t f f "3
3-;;
3 ) ;
3"; ;
3 ) ;
s c a n f f "%c/", & H o r a s T r a b ) ;
g o t o x y f 37,15);
s c a n f f % f , & C u o t a H o r a ) ;
Sueldo
= C uo ta H or a* H o r a s T r a b ;
p r i n t f f ............................................................................................ \ n " ) ;
p r i n t f f "3
BANCOMER S . A .
p r i n t f f 3
DE C . V .
3 \n ") ;
3\n");
p r i n t f f "3 GUADALAJARA, J A L , A
p r i n t f f 3
14 DE FEBRERO DE 2008.
3\n");
3 \ n ) ;
3 \ n ) ;
CANTIDAD DE: $ % - 1 5 . 2 f
p r i n t f f 3
3\n";;
FIfWA:
3\r?" ; ;
p r i n t f f .............................................................................................\ n " ; ;
p r i n t f ( " P R E S I O N E <CUALQUIER TECLA> PARA C O N T I N U A R . . . ) ;
getchf);
return 0 ;
Ejercicios propuestos
I. Codifique p ro g ram as que hagan lo siguiente.
1. C a lc u la r el re a y el v o lu m e n d e u n c ilin d ro .
2 . R e c ib ir u n a c a n tid a d d e se g u n d o s y m o s tra r s u e q u iv a le n te e n el fo rm a to hrs.:
m in: seg.
3 . C a lcu lar el n m e ro co n 10 o p e ra cio n e s d e e sta s e rie 4 / 1 - 4 / 3 + 4 / 5 - 4 / 7 + 4 / 9 ...
www.FreeLibros.me
56
Captulo 3
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.
6 . L e e r u n n o m b re d e l te c la d o y e s c rib irlo e n A S C II.
tin clu d e
<conio.h>
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;
p rin tf
getch();
return
0;
}
a ________________________
b
________________________
c ________________________
d ________________________
.
ttin clu d e
ftin clu d e
<conio.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
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.
Hiel 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
57
58
Captulo 3
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;
p r in tf
getch();
retu rn
0;
a
b
c
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 .
L as e s tru c tu ra s d e c o n tro l se le c tiv a s s o n a q u e lla s q u e e v a l a n u n a
e x p re si n , u s u a lm e n te u n a c o n d ic i n b o o le a n a , y a p a rtir del
re su lta d o p e rm ite n to m a r d e c isio n e s e n tre u n a , d o s o m s o p c io n e s;
a e s to s e le c o n o c e c o m o s e le c c i n c o n d ic io n a l. E x is te n tre s tip o s d e
e stru c tu ra s se lec tiv a s: seleccin simple, seleccin doble y seleccin
m ltiple.
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
Captulo 4
(condicin
in stru cci n
1 )
1;
2.
if
(condicin
1 )
{
in stru cci n
1;
in stru cci n
2;
in stru cci n
3;
}
El a lc a n c e s in t c tic o p re d e te rm in a d o p a ra u n a e s tru c tu ra d e c o n tro l es d e u n a
in stru c c i n , c o m o s e a p re c ia e n la p rim e ra fo rm a ; c u a n d o s e re q u ie re q u e se
e je c u te m s d e u n a , las in s tru c c io n e s d e b e r n a g ru p a rs e m e d ia n te lla v e s , ta l c o m o
s e p u e d e v e r e n la se g u n d a fo rm a .
<stdio.h >
ttinclude
<c o ni o. h >
mainf)
{
float c a l i ,
cal2,
p r i n t f (" Dame l a
cal3,
prom;
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);
p r i n t f ( " Dame l a
calificacin del
calificacin del
t e r c e r examen p a r c i a l " ) ;
s c a n f f "%f" , & c a l 3 ) ;
www.FreeLibros.me
prom = ( c a l l
i f
+ cal2
+ cal3)
/ 3;
(prom >= 6 0 )
p rin tf
("Aprobo");
g e t c h f );
return 0 ;
}
S e p u e d e o b s e rv a r q u e la c o n d ic i n s e e s ta b le c e u tiliz a n d o la v a ria b le
prom
que
a lm a c e n a el p ro m e d io d e l a lu m n o , d e ta l m o d o q u e si el p ro m e d io c a lc u la d o es
m a y o r o ig u a l q u e 6 0 la c o n d ic i n es v e rd a d e ra y s lo e n to n c e s s e re a liz a r la
in stru c c i n a s ig n a d a q u e es im p rim ir q u e el a lu m n o a p ro b ; d e lo c o n tra rio , el
p ro g ra m a n o re a liz a r n a d a y sim p le m e n te te rm in a r .
negativo o cero*!
# 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 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
Captulo 4
Descripcin
In tro d u c ir u n n m ero .
E v a lu a r si el n m e ro d iv id id o e n tre d o s tie n e d e re s id u o c e ro o uno.
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
Entero
V a lo r a r e v i s a r
Codificacin
/* 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;
Explicacin
Se in tro d u c e u n n m e ro e n te ro . S i al d iv id irs e e n tre d o s s u re s id u o es
cero , s e c u m p le la p rim e ra c o n d ic i n , s e im p rim e q u e el n m e ro es p a r y p a sa
a la s ig u ie n te c o n d ic i n . S i el n m e ro le d o s e d iv id e e n tre d o s y s u r e s id u o es
d ife re n te d e c e ro , la c o n d ic i n n o s e c u m p le , p o r lo q u e n o s e e je c u ta la sig u ie n te
in stru c c i n y te rm in a el p ro g ra m a .
Si in tro d u c im o s u n n m e ro im p a r, y al d iv id irs e e n tre d o s su re s id u o n o es cero ,
la p rim e ra c o n d ic i n n o s e c u m p le y n o su c e d e n a d a ; e n s e g u id a s e e v a l a la
sig u ie n te c o n d ic i n ; si al d iv id irse e n tre d o s, s u re s id u o es d ife re n te d e c e ro , se
im p rim e q u e es im p a r y te rm in a el p ro g ra m a .
Ejecucin
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
E l numero
15
15 e s p a r
www.FreeLibros.me
Captulo 4
1.
if
(condicin )
in stru cci n ;
else
in stru cci n ;
2.
if
(condicin )
{
in stru cci n
1;
in stru cci n
2;
}
else
{
in stru cci n
3;
in stru cci n
4;
}
R e c u e rd e q u e p a ra c a d a e stru c tu ra , si e x is te m s de una instruccin, sta s se
d e b e r n a g ru p a r c o n las lla v e s . E n la fo rm a (2 ) a n te rio r s e a g ru p a n ta n to p a ra el i f
c o m o p a ra el e ls e .
<stdio.h >
Hiel 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,
p r i n t f ( " Dame l a
prom;
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 " ) ;
calificacin del
calificacin del
t e r c e r examen p a r c i a l " );
+ cal2
+ cal3)
/ 3;
(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 .
{
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 " ) ;
{
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 ;
(contina )
www.FreeLibros.me
Captulo 4
(c o n tin u a c i n )
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 ) ;
}
getch();
return 0 ;
E je rc ic io s re s u e lt o s
Ej e r c i c i o 4 .2 Indicar si el ao en que naciste fue bisiesto
Descripcin
In tro d u c ir el a o e n q u e n a c iste .
Si el a o in tro d u c id o d iv id id o e n tre c u a tro d a u n re s id u o d e c e ro , el a o en
qu e n a c is te fu e b isie s to ; d e lo c o n tra rio , el a o e n q u e n a c is te n o lo fue.
V a ria b le s
N om bre
T ip o
U so
an i o
Entero
Ao de n a c i m ie n t o
Codificacin
/* AO 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
if(
);
" );
& an io ) ;
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 ;
Explicacin
Se in g re s a el a o e n q u e n a c iste , si al d iv id irse e n tre c u a tro s u re s id u o es c e ro , la
c o n d ic i n s e c u m p le y s e im p rim e El a n i o e n q u e n a c i s t e e s b i s i e s t o .
Si el a o in tro d u c id o al d iv id irse e n tre c u a tro p ro d u c e u n re s id u o d is tin to d e cero ,
la c o n d ic i n n o s e c u m p le y s e im p rim e E l a n i o e n q u e n a c i s t e NO e s b i s i e s t o .
Ejecucin
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 .
Descripcin
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
Captulo 4
(continuacin )
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 .
Real
Grados.
con
Real
C onversin.
Codificacin
/ * 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
p rin tf(
"S e l e c c i o n a una o p c i o n ) ;
scanf(
if(
"%c/", &opc ) ;
o p c == 1 )
{
p rin tff
" I n t r o d u c e l o s oF = " ) ;
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
);
}
g etch();
return 0 ;
Explicacin
Se p id e s e le c c io n a r u n tip o d e c o n v e rsi n ; u n a v e z e le g id a , s e s o lic ita la
te m p e ra tu ra p a ra re a liz a r la o p e ra c i n d e c o n v e rsi n , y fin a lm e n te s e m u e s tra
el re s u lta d o .
Ejecucin
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
Captulo 4
1;
else
if
(condicin 2)
in stru cci n 2 ;
else
i n s t r u c c i n 3;
tinclude< 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
{
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 ) ;
(num i num2 )
if
{
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 nm eros e s * d " , r e s u l ) ;
}
e ls e
if
{
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 ;
p r i n t f ( " L a suma de l o s nm ero s e s % d " , r e s u l ) ;
}
g etch f);
return 0 ;
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
Captulo 4
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
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 .
Codificacin
/ * 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
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
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 " ) ;
p rin tff
"El t r i a n g u l o e s E s c a l e n o " ) ;
else
getch();
return 0 ;
Explicacin
Se in tro d u c e n lo s v a lo re s d e lo s tres la d o s d e l tri n g u lo . S e c o m p a ra si s o n ig u a le s
e n c u y o c a s o s e c u m p le la p rim e ra c o n d ic i n y s e im p rim e El t r i a n g u l o e s
E q u i l t e r o . E n c a s o c o n tra rio , s e c o m p a ra si d o s la d o s s o n ig u a le s; si lo son,
es v e rd a d e ra la c o n d ic i n y s e im p rim e E l t r i a n g u l o e s i s s c e l e s . S i la
se g u n d a c o n d ic i n n o s e c u m p le , s e im p r im ir El t r i a n g u l o e s E s c a l e n o .
Ejecucin
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
Captulo 4
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
{
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 ;
{
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
= S \ n Domingo = D") ;
s c a n f ( U96C" , & d i a ) ;
sw itch(dia)
{
case
case
p r i n t f (" it 2 " ) ;
break;
case
'I': p rin tf
(" it 3 " ) ;
break;
case
case
'V : p rin tf
r#
5");
break;
case
S ' : p r i n t f
("it 6 " ) ;
break;
case
}
g etch();
return 0 ;
{
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 operacin a r e a l i z a r \ n " );
(c o n tin a )
www.FreeLibros.me
Captulo 4
{
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;
case 2 : p r i n t f ( " f e s t 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 ( " l a r e s t a e s% 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;
case 4 : p r i n t f ( " D i v i s 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 ( " L a d i v i s i n e s % f" ,z ;;
break;
www.FreeLibros.me
(continuacin)
}
getch();
return 0 ;
E je rc ic io s re s u e lto s
Descripcin
E le g ir u n a fig u ra g e o m tric a a p a rtir d e l m en .
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.
Real
R esultado.
op
Carcter
Cpcin o p e r a c i n .
Codificacin
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
Captulo 4
(continuacin)
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 ) :
scanff
\n \n " );
swi t c h ( op )
{
case
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
O p c i n i n c o r r e c t a " ) ;
}
g etch f);
return 0 ;
Explicacin
El d a to im p o rta n te a c o n o c e r es el d e la fig u ra g e o m tric a . E l o p e ra d o r q u e
se in tro d u c e e n el e je m p lo es 1, q u e c o rre s p o n d e al re a d e l tri n g u lo ; a
c o n tin u a c i n , la v a ria b le s e le c to ra s e c o m p a ra c o n la o p c i n 1, al s e r ig u a le s , se
so lic ita el v a lo r d e la b a s e y la a ltu ra , d e sp u s s e m u e s tra el re s u lta d o .
www.FreeLibros.me
Ejecucin
Figuras g eom tricas
E l i j a s u figura ( 1. t r i a n g u l o
2 . rectngulo
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
Descripcin
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 arcter
Puesto.
sal
Real
Salario t o ta l.
sdes
Real
Salario descu en to .
Entero
Nmero d e h o r a s .
Constantes
Nombre
Tipo
Uso
Entero
P recio hora d i r e c t o r .
Entero
P recio hora g e r e n te .
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
Captulo 4
(continuacin)
Codificacin
# i n c l u d e < s t d i o . h>
tinclude<conio.h>
tdefine D 600
tdefine 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();
p rin tf(
"NOMINA\n\nu ) ;
p rin tff
"H or as t r a b a j a d a s e n l a s em a na :
scanf(
" );
&h ) ;
p rin tff
"I n d i c a e l p u e s t o q u e d e s e m p e a s : " ) ;
p r i n t f ( "D = D i r e c t o r \ n G = G e r e n t e \ n S = S u p e r v i s o r \ n E
E j e c u t i v o de v e n t a s \ n T = S e c r e t a r i a
\n");
s c a n f f "%c , &op ) ;
sw itch(op)
{
case
' D ' : s a l = D * h,
break;
case
' G ': s a l = G * h
break;
case
'S ': s a l
=S *
break;
case
: sal
= EV * h;
break;
case
17 ' ; s a l
= SEC * h;
break;
}
if
{
sd es = s a l * .8;
www.FreeLibros.me
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 ;
Explicacin
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 .
Ejecucin
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
Captulo 4
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 .
Codificacin
/*ANIO BI SIESTO Y SIGNO ZODIACAL*/
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>
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)
"%c//%cT, & d i a ,
scanf(
p rin tf(
);
" );
&mes ) ;
"\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 (
e ls e p r in t f f
"C a p r i c o r n i o " ) ;
"A c u a r i o " ) ;
b reak;
case 2 : i f (
d a <= 2 0 ) p r i n t f f
else p r in tf(
"A c u a r i o " ) ;
"P i s c i s " ) ;
break;
c a s e 3: i f (
d a <=20 ) p r i n t f f
else p r in tff
" P is c is "
);
"Aries" );
break;
c a s e 4: i f f
d a <= 20 ) p r i n t f f
"Aries" ) ;
www.FreeLibros.me
d i a <= 20 ) p r i n t f (
"T auro" ) ;
e l s e p r i n t f ( "Geminis" ) ;
break;
c a s e 6: i f (
d i a <= 20 ) p r i n t f (
"Geminis" ) ;
e l s e p r i n t f ( "C an c er " ) ;
break;
c a s e 7: i f (
d i a <= 20 ) p r i n t f f
else p r in tf(
"C a n c e r " ) ;
"Leo" ) ;
break;
c a s e 8: i f (
d i a <= 2 0 ) p r i n t f (
"Leo" ) ;
e ls e p r i n t f ( "V irgo );
break;
case 9: i f (
d i a <=20 ) p r i n t f f
"Virgo" ) ;
e l s e p r i n t f ( "Libra" ) ;
break;
c a s e 10: i f (
d i a <= 20 ) p r i n t f f
"Libra" ) ;
e l s e p r i n t f f "Escorpin" ) ;
break;
case 1 1 : i f (
d i a <= 2 0 ) p r i n t f (
else p r in tf(
"E s c o r p i n " ) ;
"S a g i t a r i o " ) ;
break;
case 1 2 : i f (
d i a <= 2 0 ) p r i n t f (
"S a g i t a r i o " ) ;
e l s e p r i n t f ( C a p r i c o r n i o " ) ;
break;
}
getch();
return 0 ;
Explicacin
Se s o lic ita d a y mes d e n a c im ie n to . E n la v a ria b le m e s , s e a lm a c e n a el n m e ro de
m es y a c o n tin u a c i n s e b u s c a r la ig u a ld a d e n a lg n c a s e , e n c a s o d e e n c o n tra rla
se e v a l a el d a , y d e p e n d ie n d o d e l re s u lta d o s e m u e s tra el sig n o .
(contina)
www.FreeLibros.me
Captulo 4
(continuacin)
Ejecucin
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
L as e s tru c tu ra s d e c o n tro l se le c tiv a s s o n a q u e lla s q u e e v a l a n u n a c o n d ic i n
b o o le a n a y a p a rtir d e l re s u lta d o p e rm ite n to m a r d e c isio n e s e n tre u n a, d o s
o m s o p c io n e s; a e s to s e le c o n o c e c o m o s e le c c i n c o n d ic io n a l. E x is te n tres
tip o s d e e stru c tu ra s selectiv as: s e le c c i n sim p le , s e le c c i n d o b le y s e le c c i n
m ltip le .
L a e s tru c tu ra d e c o n tro l se le c tiv a s im p le es 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 su 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
de 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 i f .
L a e s tru c tu ra se le c tiv a d o b le es a q u e lla q u e p e rm ite e v a lu a r u n a c o n d ic i n
b o o le a n a y e le g ir e n tre d o s o p c io n e s. S i la c o n d ic i n es v e rd a d e ra e je c u ta r las
in stru c c io n e s a c o n tin u a c i n d e l f , p e ro si es fa ls a s e e je c u ta r la in s tru c c i n
q u e s e e n c u e n tra a c o n tin u a c i n d e l e i s e .
L a e s tru c tu ra d e c o n tro l se le c tiv a d o b le a n id a d a es a q u e lla e s tru c tu ra q u e
d e n tro d e l a lc a n c e d e u n a c o n d ic i n tie n e o tra c o n d ic i n ; e n o tra s p a la b ra s en
u n i f - e l s e s e e n c u e n tra o tro i f - e l se. E s ta e s tru c tu ra es til c u a n d o se
tie n e n tre s o m s o p c io n e s. E s p o sib le u tiliz a r ta n to s a n id a m ie n to s c o m o
se re q u ie ra .
L a e s tru c tu ra d e c o n tro l se le c tiv a m ltip le es a q u e lla q u e p e rm ite e le g ir e n tre
d o s o m s o p c io n e s, s w i t c h e v a l a la e x p re s i n q u e s e e n c u e n tra d e n tro d e los
p a r n te sis y e l re s u lta d o d e s ta s e c o m p a ra c o n v a lo re s a lte rn a tiv o s. E l tip o de
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 , la s 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 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 t 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 e im p e d ir
qu e la s sig u ie n te s o p c io n e s e in s tru c c io n e s s ig a n e je c u t n d o se .
www.FreeLibros.me
Evaluacin
85
Evaluacin
I. C onteste las siguientes preguntas.
1. C m o s e d e fin e la e s tru c tu ra d e c o n tro l se le c c i 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 ?
3 . E s p o s ib le e s c rib ir u n a s e le c c i n d e n tro d e o tra ?
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 ?
5 . E n el s w i t c h , e s v lid o e s c rib ir v a ria s o p c io n e s c a s e y al fin al d e e s e c o n ju n to
e s c rib ir b re a k ;?
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
7 . Es la e s tru c tu ra se le c tiv a q u e s e u tiliz a p a ra e je c u ta r u n a a c c i n c u a n d o la
c o n d ic i n es v e rd a d e ra y o tra a c c i n c u a n d o la c o n d ic i n es falsa:
a) S e le c tiv a s im p le
b) S e le c tiv a d o b le a n id a d a
c ) S e le c tiv a d o b le
d) S e le c tiv a m ltip 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
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
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
Captulo 4
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:
T ije ra c o rta p ap el
gana
P a p e l e n v u e lv e a p ie d ra
gana
P ie d ra ro m p e tije ra
C o n c u a lq u ie r o p c i n d ife re n te
gana
p ie rd e
Ejercicios propuestos
I. Codifique el siguiente program a.
1. M o stra r lo s sig n o s z o d ia c a le s, v a lid a n d o q u e el m e s in tro d u c id o e s t e n tre
1 y 12, y lo s d a s e n tre 1 y 3 1 , se g n el m es.
{
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 ;
{
flo at co mpra, d e s c , t o t _ p a g ;
p rin tf
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
");
Captulo 4
");
(tot_i> 7000)
{
p r i n t f ( " D e s e a s r e i n v e r t i r t u cap i t a l ? \ n S = S i \ n N = N o " ) ;
s c a n f ("% s",& op);
s w i t c h (op)
{
case
}
}
e l s e p r i n t f ("TU CAPITAL ESTA SEGURO\nGRACIAS POR TU PREFERENCIA")
g etch();
return 0 ;
{
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
");
)
case 1 :co sto t= d ia s* e1;
break;
c a s e 2 : c o s t o t = d i a s * ___
break;
case 3:costot= dias*e3;
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
);
(n_ll<5)
www.FreeLibros.me
90
Captulo 4
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
{
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
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 $ 9f" , t p ) ;
getchf);
return 0 ;
www.FreeLibros.me
91
www.FreeLibros.me
Estructuras
de control repetitivas
for.
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
Captulo 5
do-w hiie
for
c a si e n fo rm a
in d ife re n te .
1;
w h ile (expresin 2 )
{
in stru cci n
1;
e x p r e s i n 3;
}
donde:
expresin
expresin 2
es la c o n d ic i n b o o le a n a .
expresin 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 s tru c c io n e s a e je c u ta r
in stru cci 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
}
getchf);
return 0 ;
}
L a v a ria b le d e c o n tro l es c, q u e ta m b i n s e rv ir p a ra g e n e ra r lo s n m e ro s . S e
in ic ia liz a e n 1, y a q u e es e l p rim e r v a lo r a im p rim ir. D e n tro d e l c ic lo s e im p rim e c
y s e in c re m e n ta d e u n o e n u n o .
El c ic lo re p e titiv o e s t c o n tro la d o p o r c; la re p e tic i n s e e fe c tu a r m ie n tra s el
v a lo r d e l c o n ta d o r s e a m e n o r o ig u a l q u e 10. P o r e llo es u n a re p e tic i n
defin id a.
E n e s te e je rc ic io , la v a ria b le d e c o n tro l es u n contador, y s e le lla m a a s a la
v a ria b le q u e sirv e p a ra in c re m e n ta r d e u n o e n u n o . E l c o n ta d o r d e b e te n e r las
sig u ie n te s c a ra c te rstic a s: s u v a lo r d e in ic io es 1, y s e in c re m e n ta o d is m in u y e de
u n o e n u n o , a u n q u e e n o c a sio n e s s e u tiliz a o tra p ro p o rc i n fija (d e c in c o e n cin co ,
d e tres e n tre s , e tc .). E n la c o n d ic i n s e d e b e e v a lu a r el v a lo r d e l c o n ta d o r, p a ra
d e te rm in a r c u n d o d e b e fin a liz a r el c ic lo .
T am b in es n e c e sa rio a g ru p a r c o n llaves las in stru c c io n e s p r i n t f ( " %c/ u, c ) ; y e =
c+1 ; y a q u e d e c u m p lirs e la c o n d ic i n es n e c e s a rio e fe c tu a r la s d o s in stru c c io n e s.
Al ig u a l q u e e n o tra s e stru c tu ra s d e c o n tro l, el a lc a n c e d e u n a c o n d ic i n
p re d e te rm in a d a es u n a in s tru c c i n ; p o r ta l ra z n si e x is te m s d e u n a al re p e tirs e
stas d e b e n a g ru p a rs e c o n lla v e s.
www.FreeLibros.me
Captulo 5
(c o n tin u a c i n )
p r i n t f ( " L a suma d e l o s n m e r o s d e l
1 a l 5 e s %d " , S ) ;
getch f);
return 0 ;
{
i n t p,num;
char re sp = 's';
c l r s c r f );
p
=i ;
{
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
}
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;
resp
s e a d ifere n te
{
in t i,n ;
c lrs c rf);
{
p r i n t f ( " \ n %c/*%c/=%c/ " , n , i , n * i ) ;
i ++;
}
getch();
return
0;
www.FreeLibros.me
Captulo 5
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
el n m e ro y el re s u lta d o d e m u ltip lic a r
n,
n*i.
{
in t i,n ;
c lrs c rf);
");
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
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)
78
Ej e m p l o 5.6 Sumar los nmeros pares y multiplicar los nmeros 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
Captulo 5
[continuacin)
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
y que
prod
sum
se a m e n o r o ig u a l q u e 50
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.
U na vez cap tu rad o un n m ero en la variable num, se pregunta si al realizarse la d iv isi n
de num entre d o s el residuo e s igual q u e cero; si la cond ici n es verdadera se su m a
num a
sum sea
m en o r o igual q u e
50 o p r o d
se a m en o r o igual q u e
150.
acumulador
es u n a v a ria b le q u e s e in c re m e n ta o d is m in u y e e n c a n tid a d e s
d ife re n te s e n c a d a ite ra c i n . L a
bandera
s irv e p a ra in d ic a r e sta d o s d e v e rd a d e ro o
fa ls o d e la c o n d ic i n .
E je rc ic io s re s u e lt o s
Eje r c ic io 5.1 Encontrar cuatro m ltiplos de un nm ero cualquiera
Descripcin
L e e r u n n m ero .
www.FreeLibros.me
L ee r n m e ro s a rb itra rio s.
V erificar q u e el n m e ro s e a m ltip lo d e l p rim e ro .
Si es m ltip lo im p rim irlo .
Variables
Nombre
Tipo
Uso
num
Entero
Nmero 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
Nmero a e v a l u a r .
cont
Entero
Cu en ta l o s m l t i p l o s .
Codificacin
# 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;
Explicacin
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.
(contina)
www.FreeLibros.me
102
Captulo 5
[continuacin)
S e g u a rd a u n n m e ro e n
numc ,
lu e g o s e e v a l a si el re s id u o d e
numc
d iv id id o e n tre
num
cont.
Ejecucin
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
do-w hile,
la c o n d ic i n d e c o n tin u a c i n d e l c ic lo s e p ru e b a al
w h ile ;
la d ife re n c ia
do-w hile
c o m a. L a re p re s e n ta c i n d e la e s tru c tu ra es la sig u ie n te :
expresin
1;
do
{
in stru cci n
1;
e x p r e s i n 3;
} w h ile(e xpresin 2);
donde:
expresin
expresin 3
es la a s ig n a c i n d e in ic io .
es la a s ig n a c i n d e v a ria c i n .
www.FreeLibros.me
s e e s c r ib e p u n to y
instruccin
expresin
d e b e s e r u n a e x p re s i n b o o lea n a.
s o n la s in s tru c c io n e s a e je cu tar.
( c u e n t a - 1) ) ;
getch();
return 0 ;
}
www.FreeLibros.me
103
104
Captulo 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/n
" fl* p re c io );
");
scanf('% c",&R);
}while(R==,s ' ) ;
g e t c h f );
return
0;
R.
p r e c io
n m e ro d e l i t r o s y s e re a liz a el c lc u lo d e l p a g o . D e sp u s d e la o p e ra c i n se
p re g u n ta si s e d e s e a re a liz a r o tro c lc u lo , a lm a c e n a n d o la re s p u e s ta e n la v a ria b le
r.
C o m o s e a p re c ia , n o s e c o n o c e d e a n te m a n o c u n tas v e c e s s e re p e tir el
p ro g ra m a , p e ro s e g a ra n tiz a q u e al m e n o s u n a v e z s e e je c u ta r el c u e rp o d e l c ic lo .
www.FreeLibros.me
in t i,n ;
105
c lrs c rf);
");
s c a n f("% d ",& n );
1 =1 ;
do {
p r i n t f ( " \ n %c/*%c/=%d *, n , i , n * i ) ;
i ++;
} w h ile (i< = 10) ;
getchf);
return 0 ;
A q u s e m u e s tra
lame e l
numero d e
1 al 10. S e d e c la ra n d o s v a ria b le s: la
la
tabla
de m u l t ip l ic a r
y g e n e ra u n a del
p a ra in d ic a r el n m e ro d e la ta b la q u e se
va 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. C o n fo rm e a v a n z a el c ic lo
se im p rim e el re s u lta d o d e m u ltip lic a r
la e s tru c tu ra
w h ile
do-whiie
n*i.
O b s e rv e la s d ife re n c ia s e n el u so d e
p a ra e s te e je m p lo .
E je rc ic io s re s u e lto s
Ej e r c i c i o 5 .2 Adivinar en un mximo de cinco oportunidades un entero
com prendido entre 1 y 100. En cada ciclo la com putadora
debe decir si el que se captura es mayor o m en or que el que
gener autom ticam ente
Descripcin
G e n e ra r u n n m e ro a le a to rio .
S o lic ita r u n n m e ro al u su a rio .
C o m p a ra rlo s.
M o stra r e l re su lta d o .
Variables
Nombre
Tipo
Uso
Entero
C o n t a d o r de i t e r a c i o n e s .
nusuario
Entero
Nmero g e n e r a d o p o r e l
numcom
Entero
Guarda e l nmero g e n e r a d o .
usuario.
(c o n tin a )
www.FreeLibros.me
106
Captulo 5
(continuacin)
Codificacin
t t i n c l u d e < s t d i o . h>
tinclude< 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 ;
Explicacin
A q u s e u tiliz a la b ib lio te c a s t d l i b . h , q u e p e rm ite el u so d e la s fu n c io n e s
ra ndomize( ) y random(); la p rim e ra in ic ia liz a r el g e n e ra d o r d e n m e ro s
p se u d o a le a to rio s , c o n u n a s e m illa q u e v a e n fu n c i n d e la h o ra a c tu a l, lo
qu e p e rm ite q u e n o s e re p ita n la s m is m a s se c u e n c ia s d e n m e ro s a le a to rio s .
L a se g u n d a fu n c i n p ro d u c e u n p s e u d o a le a to rio e n el ra n g o d e 0 a x-1.
P o r ta l ra z n s e e sc rib e p rim e ro la g e n e ra c i n d e u n n m e ro p se u d o a le a to rio
y e n s e g u id a c o n random(i 0 0 ) s e g e n e ra el n m e ro e n tre 0 y 99 , p o r lo q u e
a g re g a m o s 1 p a ra q u e q u e d e el v a lo r d e numcom e n tre 1 y 100. U n o d e los
o p e ra d o re s q u e s e u tiliz a es / = q u e sig n ific a d ife re n te y s e lee: si n u s u a r io es
www.FreeLibros.me
d ife re n te d e
numcom.
O b s e rv e m o s q u e la c o n d ic i n e s t c o m p u e s ta p o r dos
e n u n c ia d o s , u n id o s p o r el o p e ra d o r
&& ( a n d ) ,
q u e d e b e n s e r v e rd a d e ro s p a ra q u e
se re p ita el c ic lo .
Al m o m e n to d e s e r ig u a le s
n u s u a r i o y numcom s e
im p rim e la p a la b ra
fe licid a d e s
-M e j o r s u e r t e p a r a
l a prxim a".
Ejecucin
(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 :
t u numero e s menor a l mo
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 mo
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 nmeros desde el teclado y sumar los primeros cinco impares
Descripcin
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
Nombre
Tipo
Uso
suma
Entero o r e a l
Guarda l a
num
Entero
Es e l nmero l e d o
cont
Entero
Cuenta l a
suma de l o s nmeros i m p a r e s .
del
teclado.
c a n t i d a d de nmeros i m p a r e s .
(c o n tin a )
www.FreeLibros.me
108
Captulo 5
[continuacin)
Codificacin
/* Sumar c i n c o nmeros 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>
tinclude< 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 nmeros i m p a r e s e s %c/ " ,s u m a ) ;
getch();
return
0;
Explicacin
S e in ic ia liz a n las v a ria b le s suma y c o n t e n 0. L a e s tru c tu ra re p e titiv a
p e rm itir re p e tir la e je c u c i n m ie n tra s c o n t s e a m e n o r q u e 5.
L a re p e tic i n c o n s is te e n p e d ir u n n m e ro y a lm a c e n a rlo e n
num,
do-while
s e e v a l a si el
cont
es m e n o r q u e 5. S e re p e tir n la s in s tru c c io n e s h a s ta q u e
Ejecucin
Dame un numero 2
Dame un numero 5
Dame un numero 3
Dame un numero 1
www.FreeLibros.me
cont
lle g u e a 5.
109
Dame un numero 6
Dame un numero 9
un numero 4
Dame un numero
L a suma de 5 nmeros i m p a r e s e s 29
for
s e u tiliz a g e n e ra lm e n te c u a n d o la re p e tic i n e st
( expresin
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
donde:
expresin
es el n o m b re d e la v a ria b le d e c o n tro l y s u v a lo r d e in ic io .
es la q u e e v a l a la c o n d ic i n d e c o n tro l.
expresin 2
in stru cci n
expresin 3
La
2
expresin
expresin 3
expresin
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
for
so n sim ila re s.
for
es in d e fin id a ,
w hile
{
in t i;
c l r s c r ( );
(contina)
www.FreeLibros.me
110
Captulo 5
(continuacin)
f o r ( i =1 5 ; i > 0 ; i - - )
p r in tf ( "W \ i ) ;
g etch f);
return
0;
{
char l e t r a ;
clrscr();
so n l a s l e t r a s d e l
alfabeto:
");
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;
www.FreeLibros.me
{
in t i,n ;
c lrs c rf);
");
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;
www.FreeLibros.me
112
Captulo 5
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 ;
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
Ej e r c i c i o 5 .4 Crear un marco en la pantalla utilizando asteriscos
en las coordenadas (1,1), (1,80), (80,24) y (1,24)
Descripcin
D ib u ja r u n a ln e a h o riz o n ta l e n la p a rte su p e rio r d e la p a n ta lla .
D ib u ja r u n a ln e a v e rtic a l e n el la d o d e re c h o d e la p a n ta lla .
D ib u ja r u n a ln e a h o riz o n ta l e n la p a rte in fe rio r d e la p a n ta lla .
D ib u ja r u n a ln e a v e rtic a l e n el la d o iz q u ie rd o d e la p a n ta lla .
V a ria b le s
N o m b re
T ip o
Uso
E n tero
G u ard a e l c o n t a d o r .
www.FreeLibros.me
113
Codificacin
U m a r e o de l a
p a n ta lla
#i n e l u d e
<stdio.h >
itinel u d e
<c o ni o. h >
ttinclude
<dos.h>
c on a s t e r i s c o s
mai n( )
{
in t i;
clrscrO ;
for
( i = 1 ; i <=8 0 ; i++)
{
g o t o x y ( i , 1) ;
p r i n t f ( u* u) ;
del ay( 10);
}
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 (***);
del ay( 10);
}
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
Captulo 5
(continuacin)
Explicacin
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.
Ejecucin
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * *
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 .
E n le n g u a je C h a y tre s fo rm a s d e re a liz a r la s re p e tic io n e s y sta s tie n e n tres
partes: 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, la q u e in d ic a c m o va
c a m b ia n d o el v a lo r y la c o n s titu id a p o r la c o n d ic i n o v a lo r d e v e rd a d . S e g n
la e s tru c tu ra q u e s e u tiliz a es el o rd e n e n q u e a p a re c e n , e n a lg u n o s c a so s s e p u e d e
o m itir u n a, d o s o in c lu s o la s tre s p a rte s , d e p e n d ie n d o d e lo q u e s e d e s e a rea liz a r.
A la v a ria b le d e c o n tro l s e le lla m a ta m b i n c o n ta d o r c u a n d o c u e n ta el n m e ro
de ite ra c io n e s y s e in c re m e n ta d e u n o e n u n o ; y acumulador c u a n d o p e rm ite su m a r
u n a c a n tid a d c o n s ta n te e n c a d a ite ra c i n . C u a n d o la v a ria b le a lm a c e n a u n v a lo r
b o o le a n o (fa ls o o v e rd a d e ro ) s e le lla m a bandera.
www.FreeLibros.me
Ejercicios propuestos
115
Evaluacin
I. D escriba los siguientes conceptos.
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 ?
4. Q u e s tru c tu ra s d e c o n tro l h a y p a ra la re p e tic i n e n la p ro g ra m a c i n
e s tru c tu ra d a ?
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 )?
10. Q u sucede si al finalizar el en cab ezad o d e l v t n i e se c o lo c a ; (pu n to y c o m a )?
11. A l fin a liz a r e l e n c a b e z a d o d e d o - w h ie s e d e b e e s c rib ir ; (p u n to y c o m a )?
Ejercicios propuestos
I. Codifique los siguientes program as.
1. Im p rim ir lo s n m e ro s d e l 1 al 100.
www.FreeLibros.me
116
Captulo 5
re b o ta n d o p o r la p a n ta lla h a s ta p re s io n a r u n a tec la .
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 :
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 " ,
);
",x);
; 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
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
e s : % d " ,______
118
Captulo 5
lo n g
c l r s e r f );
p r in t f f " fa c to ria l
d e l n um ero..?
");
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 ;
p r i n t f ( u \n
fa cto ria l
d e %c/ = %c/",
x,fa ct);
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;
{
in t
c,sum a;
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
getch();
return
0;
{
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 ("
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
Captulo 5
{
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 nmeros
e s %c/ ", s u m a p a r ) ;
e s %c/ ", s um a i mp a r ) ;
getchf);
return 0 ;
{
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
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
");
de una c i f r a " ) ;
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;
{
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 ("
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;
{
i n t h,m ,s;
clrscrf) ;
p r i n t f (" s i m u l a r un r e l o j d i g i t a l \ n \ n " ) ;
f o r (h = 0 ;h < 2 4 ;h++)
www.FreeLibros.me
122
Captulo 5
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.
Hiel u d e
<stdio.h >
Uinclude
<c o ni o. 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
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
10
a base
2 \ n \ n " );
Ejercicios propuestos
5.
ttinclude
<stdio.h >
ttinclude
<c o ni o. h >
m a i n ()
{
char y = 'b ',x ;
w h ile
(y<='j ' )
{
x=y+3;
p rin tf
C * c \ n m, x ) ;
y=y+l;
}
getch();
0;
return
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.
ttinclude
<stdio.h >
ttinclude
<c o ni o. h >
www.FreeLibros.me
123
124
Captulo 5
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
}
getch();
return
0;
www.FreeLibros.me
O .P T t J f .G
Datos de tipo
estructurado.
Arreglos
www.FreeLibros.me
( ?
126
Captulo 6
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 ra lla m a rs e
L is C a lif
(q u e es u n
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 ra v e r as:
L is C a lif
L i s C a l i f [ 1 ]=5,
. L i s C a l i f [4]=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 :
L i s C a l i f [i+ 2J;
L i s C a l i f [i*10].
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
'a '
c '
le tra s
peso
Si s e va a a s ig n a r u n v a lo r d e sd e el te c la d o , s e u tiliz a la in s tru c c i n
fo rm a s im ila r a c u a lq u ie r v a ria b le .
scanf
de
s c a n f ("*60" , & L i s C a l i f [ Q ] ) ;
%d
" ,L i s C a l i f [0]);
( i = 0 ; i<=4 ;i++)
L is C a lif[ij= 0 ;
5,
8,
5, 8,
9 , 4};
9,
4};
www.FreeLibros.me
128
Captulo 6
for
( i =0;i<=4;i++)
p r i n t f f " %c/\
L is C a liffi]);
E n c a s o d e q u e el n d ic e e st fu e ra d e l lm ite , el c o m p ila d o r d e C n o m a rc a r
error, p e ro p u e d e c a u s a r u n f a llo e n el p ro g ra m a .
Ej e m p l o 6.1 Leer y alm acenar siete estaturas y mostrarlas en form a tabular
# 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) ;
%c/
%f \ n " , i +1 , e s t a t u r a [ i ] ) ;
tamanio
d e v a lo r 7 ; e n la fu n c i n
mai n
s e d e fin e u n a rre g lo de
sie te e le m e n to s d e n m e ro s re a le s y el n d ic e de tip o e n te ro . M e d ia n te el c ic lo
fo r
la estatura
1 ",
y s e a lm a c e n a e n la p o s ic i n
estatura[oj.
T o d o e s to s e re p ite
fo r,
e n fo rm a d e lista .
E je rc ic io s re s u e lt o s
Eje r c ic io 6.1 Imprimir el contenido de las posiciones 0, 3 y 4 del arreglo v e c
Descripcin
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
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.
Codificacin
# 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 ;
Ejecucin
p o s ic i n 0 3
p o s ic i n 3 9
p o s ic i n 4 2
Explicacin
E ste e je m p lo tie n e los e le m e n to s a sig n a d o s al in ic io , a s q u e s lo h a y q u e m o s tra r
el c o n te n id o d e c a d a u n a d e la s p o sic io n e s in d ic a d a s.
Descripcin
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 .
Im p rim ir si el n m e ro s e e n c o n tr y la p o sic i n .
(contina)
www.FreeLibros.me
130
Captulo 6
(continuacin)
Vari abl es
Nombre
Tipo
Us o
vec
Vector r e a l
Al macena nmeros p a r a b u s c a r e n t r e
e llo s.
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
Entero
Entero
Nmero a b u s c a r .
(booleano)
A l m a ce na e l
Indica l a
(si
v a l o r de l a
bandera.
p o s i c i n en que s e e n c o n t r
es que s e e n c u e n t r a ) .
Codificacin
# 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;
Ejecucin
Teclea e l
valor a buscar
E l numero 9 s i
s e e n c u e n t r a en l a
po sici n
www.FreeLibros.me
Explicacin
S o lic ita el n m e ro a b u sc ar, q u e s e a m a c e n a e n la v a ria b le n. S e c o m p a ra si el
p rim e r e le m e n to d e l v e c to r es n ; si n o e s a s, s e re v is a n lo s s ig u ie n te s e le m e n to s.
C u a n d o la c o n d ic i n es v e rd a d e ra ,
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
se e n c o n tr y e n q u p o sic i n .
Descripcin
D efin ir la lista .
V erificar la p o sic i n .
Si es par, im p rim ir y su m ar.
M o s tra r la su m a.
Vari abl es
Nombre
Tipo
Us o
lis ta
Entero
Al macena l o s
suma
Entero
Al macena l a
c o n t e n i d o s en l a s p o s i c i o n e s p a r e s .
Entero
Para r e c o r r e r e l
arreg lo.
Codificacin
# 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{
(contina)
www.FreeLibros.me
132
Captulo 6
(continuacin)
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 nmeros e s
getch();
return
*d ", s u m a ) ;
0;
Explicacin
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.
Ejecucin
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 nmeros e s
18
Eje r c ic io 6.4 Leer elem entos, imprimir, sum ar y contar los elem entos de una
posicin par; si el nmero contenido es impar indicar la posicin
Descripcin
P b d ir la c a n tid a d d e n m e ro s a a lm a c e n a r la p rim e ra o c asi 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.
Si s e c u m p le lo a n te rio r, im p rim ir el n m e ro y la p o sic i n .
www.FreeLibros.me
Variables
Nombre
Tipo
Us o
lis ta C
Entero
suma
Entero
Suma l o s
Entero
Cuenta l o s nmeros i m p a r e s .
Entero
Recorre e l
Entero
Al mac ena l a
elementos im pares.
arreg lo.
c a n t i d a d de nmeros a l e e r .
Codificacin
/*Leer ele m e ntos, i m p r i m i r ,
la p o s ic i n par,
sumar y c o n t a r l o s e l e m e n t o s de
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
Captulo 6
(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 nmeros e s
%d " , c , s u m a ) ;
getch();
return 0 ;
Explicacin
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.
Ejecucin
Cuant os e l e m e n t o s s e l e e r n
2
2
3
5
Posicin
numero
son 2 y l a
suma de e s o s nmeros e s
Descripcin
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
Variabl es
Nombre
Tipo
Us o
l i s t a i MAX]
Entero
A l m a ce na l a l i s t a
Entero
A l m ac en a l a
c a n t i d a d de e l e m e n t o s a l m a c e n a d o s .
buscar
Entero
A l m ac en a e l
elemento a b u s c a r.
borrar
Entero
A l m ac en a e l
elemento a b o r r a r .
Entero
Recorre e l
Entero
Bandera para l a
de nmeros.
arreg lo.
b squed a d e l
elemento.
Codificacin
/* 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>
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
Captulo 6
(continuacin)
{
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,
lugar,
se busca e l elemento y se e s c r i b e e l
dism inuir n
/* b s q ue d a d e l nmero 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
l t i m o e l e m e n t o en su
}
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 * ) ;
fo r(i= 0 ;i< n ;i+ + )
P C
*d \ l i s t a [ i ] ) ;
0;
Explicacin
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
se p re g u n ta si la b a n d e ra
a 1, y s e s a le d e l c ic lo ; al s a lir d e l c ic lo
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 .
P ra b o rra r s e p re g u n ta el n m e ro y s e b u s c a ; si s e e n c u e n tra , s e m u e v e n los
e le m e n to s, in ic ia n d o d e l ltim o d e la lis ta y h a s ta la p o s ic i n i i s t a [ i j . L a
c a n tid a d d e e le m e n to s
se a g re g a y s e a lm a c e n a e n
buscar.
S e in c re m e n ta el n m e ro d e e le m e n to s
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.
Ejecucin
Numero de e l e m e n t o s a a l m a c e n a r
elemento 3
elemento
[continua)
www.FreeLibros.me
138
Captulo 6
(continuacin)
elemento 6
elemento 7
elemento 4
elemento 2
3 1 6 7 4 2
numero a b u s c a r
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
31
58
7 4 2 58
b o r r a r elemento,
f u n c i o n e s y una v a r i a b l e g l o b a l .
*/
ttinclude
<stdio.h >
ttinclude
< stdlib.h>
ttinclude
< c o n i o 2 .h>
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
agregar,
usando
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;
fo r
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;
0)
{
if(b = l[ij)
bandera=1;
else
i++;
}
if(bandera= = 1)
p("elem ento
e n c o n t r a d o en
%c/
\n",i);
else
p ( "elem ento no e n c o n t r a d o \ n " );
}
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
139
140
Captulo 6
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
elim ina
\n 6.
s a lir\n \t
2. m u e s t r a \ n 3.
b u s c a \ n 4.
");
}
i n t m a in ( in t argc,
char *argv[])
{
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
s("*6d",&num);
a g r e g a r (n u m , l i s t a ) ;
www.FreeLibros.me
lis ta
");
a g r e g a r \ n 5.
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 ( "
adis
") ;
break;
}
getch();
} w h i l e ( o p c ! =6);
}
E n e ste e je m p lo , e n la fu n c i n p rin cip al s e e n c u e n tra el m e n d e las o p eracio n es
y d e a h s e invoca c a d a u n a d e ellas; e sto s e re p ite m ie n tra s n o s e e sc o ja la o p ci n
n m ero 6.
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
Captulo 6
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 } ;
i n t m atriz[3][2]= {
{1, 2 }
{3,4}
{5,6}
};
E se g u n d o c a s o m u e s tra q u e e n re a lid a d u n a rre g lo b id im e n s io n a l es u n a rre g lo
de v e c to re s. P a ra a lm a c e n a r u n v a lo r d e sd e el tec la d o :
scanf("
%d", & m a t r i z [ 0 ] [ 0 ] ) ;
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
(q u e s o n la s c o lu m n a s ), y a q u e c a d a re n g l n tie n e d o s c o lu m n a s en
la m a triz d e e je m p lo .
H e le m e n to p rim o rd ia l d e u n a m a triz e s t c o n s titu id o p o r su s n d ic e s , p o rq u e
sto s d e te rm in a n el o rd e n e n el q u e s e d e b e e je c u ta r el c ic lo f o r . P a ra im p rim ir un
valor:
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
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 ) ;
A h o ra, re c o rre r p o r c o lu m n a , p o d ra s e r as:
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 ] ) ;
O
p r in tff % d \f,m a triz[i][j]);
P ara im p rim ir to d o s lo s v a lo re s fila p o r fila:
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
E je r c ic io 6 .6 A lm a c e n a r n m eros en tre 1 y
25,
Descripcin
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
Captulo 6
(continuacin)
Variabl es
Nombre
Tipo
Us o
tabla
Entero,
Entero
Recorre filas.
Entero
R e c o r r e c ol um nas .
real
Al macena l o s nmeros.
Codificacin
/* T a b l a con nmeros a l e a t o r i o s
entre
1 y 25 */
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 ;
}
Explicacin
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
145
Ejecucin
13
4
13
24
Descripcin
D efin ir el ta m a o d e la p rim e ra m a triz .
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
posX,
Entero
Posicin
band_ 1
Entero
Bandera.
m1, m2, m3
Entero
M a t r i c e s a sumar y a a l m a c e n a r .
I,
Entero
n d i c e s p a r a r e n g l n y columna.
Entero
D i m e n s i n de l a s m a t r i c e s .
p o s Y,
del
PX_ 1, PX_2
c o l _ 1 , r en _ 1 , c o l _ 2 , ren _ 2
C on s t a n t e s
Nombre
Uso
Columna
Nmero de c ol um nas .
Rengln
Nmero de r e n g l o n e s .
Codificacin
/* 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
Captulo 6
(continuacin)
# 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
dame e l numero de r e n g l o n e s y c o l u m n a s
{
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
");
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
");
}
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
Captulo 6
(continuacin)
p o s Y +=3;
}
getch();
return
0;
Explicacin
S e s o lic ita el n m e ro d e re n g lo n e s y c o lu m n a s d e la p rim e ra m a triz ; a
c o n tin u a c i n s e s o lic ita p a ra la se g u n d a , s e v e rific a q u e la d im e n s i n s e a ig u al
y e n c a s o c o n tra rio p re g u n ta d e n u e v o las d im e n sio n e s . Y a q u e es v lid a la
d im e n si n s e s o lic ita n lo s d a to s ; p a ra c a d a u n a d e las m a tric e s, el c u rs o r s e c o lo c a
en la p o s ic i n q u e m u e s tra la d im e n s i n d e la m a triz .
A c o n tin u a c i n re a liz a la s u m a y m u e s tra la m a triz re s u lta n te c o n se rv a n d o la
d im e n si n .
Ejecucin
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
m atriz
Resultado
2
funciones
*/
#include<stdio.h>
U i n c l u d e < c o n i o .h>
Udefine col umna 4
Udefine r e n g l n 4
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
{
in t i,j,p o sX ,p o sY ;
posX=3Q; po sY =3 0;
www.FreeLibros.me
c o l _ 1)
R e su lta d o ");
f o r ( i =0 ; i <ren_ 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 \ 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[rengln] [colum na], i n t
{
in t i, j ;
f o r ( i =0 ; i <ren_ 1 ;i++)
www.FreeLibros.me
149
Captulo 6
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
")
2,
{
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
'0 '
'L'
'A '
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:
s c a n f ( " 96 c " , & s a l u d o [ 0 ] ) ;
p rin tf;
lo q u e m u e s tra
en p a n ta lla el c a r c te r c o n te n id o e n la c e ld a c o n p o s ic i n 0.
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.
e s c r ib e e n la
www.FreeLibros.me
152
Captulo 6
m in ( )
(continuacin)
{
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 ;
Con
getchar
s e le e n lo s c a ra c te re s; p a ra s a lir d e la le c tu ra d e c a ra c te re s se
Ej e
m p l o
6 .3
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
w h ile
E s c r i b a s u nombre:
');
(Cadena!=EOF)
Cadena=getchar( ) ;
p u t c h a r ( t o u p p e r ( Cadena));
getchf);
return 0 ;
}
www.FreeLibros.me
Se d e c la ra u n a b ib lio te c a n u e v a d e n o m in a d a
ctype
153
q u e p e rm ite a n a liz a r
toupper,
que
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 ra d e lo s c o m p ila d o re s.
L as d o s fu n c io n e s p e rm ite n le e r u n c a r c te r d e l te c la d o :
getchf)
n o lo v is u a liz a en
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,
p rin tf.
char A [ 5 ] ;
s c a n f ( U96SU, & A ) ;
'\0 '
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 ,
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 ( ) .
scanf
L a funcin 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 ln e a (e n te r). L a funcin 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 ln 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
Captulo 6
{
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
puts
Hola,
mi nombre e s " ) ;
( MiNombre) ;
g e t c h f );
return
0;
strin g .h ,
q u e p e rm ite u tiliz a r la s fu n c io n e s
de m a n ip u lac i n d e c ad e n as d e c a ra c te re s m s u su a le s, c o m o c a lc u la r la lo n g itu d de
u n a c a d e n a , c o m p a ra r a lfa b tic a m e n te d o s c a d e n a s, c o n c a te n a r c a d e n a s, e tc te ra .
Funcin
s trc p y
C o p ia la c a d e n a a p u n ta d a p o r
c a d e na 2
cadenai,
in c lu y e n d o el
c a r c te r n u lo . S u sin ta x is es:
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 .
Funcin
C o p ia u n a c a n tid a d d e te rm in a d a d e c a ra c te re s d e u n a c a d e n a y
los a lm a c e n a e n u n a rre g lo . S u s in ta x is es:
strn cp y
c h a r c a d e na 2 , i n t n ) ;
T o m a n c a ra c te re s e s c rito s e n c a d e na 2 y lo s a lm a c e n a e n
no s e c o p ia el c a r c te r d e te rm in a c i n d e la c a d e n a 2 .
Funcin
strc a t
cadenal.
T o m a u n a c a d e n a y la a lm a c e n a e n u n a rre g lo , al final d e lo
www.FreeLibros.me
c h a r cadena2 )
T o m a el c o n te n id o d e
de fin d e la
cadaal,
c a de n a 2
y lo d e p o s ita e n
cadaal,
155
a p a rtir d e l c a r c te r
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
cadaal,
d e fin d e
a p a rtir d e l c a r c te r d e fin d e
n,
de
cadaal,
c a d e na 2
y lo d e p o s ita e n la
so b re sc rib ie n d o el c a r c te r
cadaal.
T o m a el c o n te n id o d e
cadaal
y lo c o m p a ra c o n el c o n te n id o d e
cadena2 .
Funcin 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
Ej e r c i c i o 6 .8 Leer un arreglo de caracteres con la instruccin s c a n f
y m ostrar lo capturado
Descripcin
L e e r c a d a u n o d e lo s c a ra c te re s.
V erificar si s e le e u n fin d e c a d e n a d e c arc ter.
M o stra r la c a d e n a d e c a ra c te re s led a.
Vari abl es
Nombre
Tipo
Uso
cad
Carcter
Al mac ena l a
car
Carcter
Al macena un c a r c t e r .
Entero
Recorre e l
cadena l e d a .
arreg lo.
(c o n tin a )
www.FreeLibros.me
156
Captulo 6
(c o n tin u a c i n )
Codificacin
/ * 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 ()
{
char
in t
cad[20] ,car;
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;
++;
}
}w h ile(ca r!= '\n ');
c a d [ i ] =' \ 0 ' ;
/* Se
p r i n t f ( u \n L a
aade
cadena
el
fin d e
capturada
es:
cadena
*/
%s",
cad);
getchf);
Explicacin
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 ln 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 led a.
Ejecucin
Introduzca
una
cadena
de
caracteres
( n o mas d e
Ga b y
La cadena
capturada
e s Gaby
www.FreeLibros.me
18)
157
Variables
Nombre
Tipo
Uso
cad
Carcter
Al mac ena l a
car
Carcter
Al macena un c a r c t e r .
Entero
Al mac ena l a
Entero
Recorre e l
cadena l e d a .
lo n g it u d del a rre g lo .
arreg lo.
Codificacin
#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>
tdefine 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
(contina)
www.FreeLibros.me
158
Captulo 6
(continuacin)
c l r s c r f );
/* i m p r i m i r A S C I I
*/
cad);
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
p r i n t f ( \n L a d i r e c c i n
a r r e g l o c a d e s : %c/",
donde s e e n c u e n t r a l a
s iz e o f (cad)) ;
c a d e na c a p t u r a d a e s :
%d",&cad);
getch();
Explicacin
S e le e la c a d e n a 1 c a r c te r a c arc ter, s e a g re g a el c a r c te r n u lo y s e m u e s tra la
c a d e n a d e c a ra c te re s se g n el n m e ro A S C II q u e le c o rre s p o n d a a c a d a le tra .
A c o n tin u a c i n s e m u e s tra la lo n g itu d se g n el c o n ta d o r (q u e in c lu y e el e sp a c io
en b la n c o ), la lo n g itu d m e d id a c o n la in s tru c c i n
s trle n
la c a d e n a ) y el ta m a o d e l a rre g lo c o n la in s tru c c i n
(n m e ro d e c a ra c te re s de
size o f
(n m e ro d e b y tes
Ejecucin
I n t r o d u z c a una cadena de c a r a c t e r e s
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
122
L a l o n g i t u d de l a
c adena,
n L a l o n g i t u d de l a
La l o n g i t u d d e l
La d i r e c c i n
c o n t a d a c on i
es:
c a d e na medi da c on s t r l e n
12
es:
a r r e g l o c a d e s 20
de l a
cadena c a p t u r a d a e s :
2293584
www.FreeLibros.me
12
117
101
159
Variabl es
Nombre
Tipo
Uso
total
Entero
C uent a e l nmero de i n c i d e n c i a s .
Entero
Recorre e l
nombre
A rreglo caracteres
A l m a c e n a e l nombre.
a r r e g l o de c a r a c t e r e s .
Codificacin
/* 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
H include
<stdio.h >
ttinclude
< stdlib.h>
ttinclude
< s t r i n g . h>
*/
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
Captulo 6
[continuacin)
}
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();
0;
return
Explicacin
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
v aria b le
total
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
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
Ejecucin
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
Descripcin
L ee r el c arc 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
car
Carcter
Al mac ena e l
www.FreeLibros.me
c a r c te r a evaluar.
6.4
A r r e g l o d e c aractere s y c a d e n a d e caracteres
Codificacin
/*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
Uinclude
<stdio.h >
H include
<ct ype.h>
H include
<c o ni o. h >
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
else
{
i f
i f
e lse
p r i n t f (" y es m i n u s c u l a \ n " );
}
getchf);
return
0;
Explicacin
S e c a p tu ra el c a r c te r y s e c o m p a ra c o n la in s tru c c i n
e n tre c e ro y n u e v e s e m u e s tra el te x to
is d ig it.
S i es u n d g ito
"El c a r c t e r c a p t u r a d o e s un d g i t o
Ejecucin
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 mayscula
www.FreeLibros.me
162
Captulo 6
Resum en
S e lla m a a rre g lo al c o n ju n to d e e le m e n to s o v a ria b le s d e l m is m o tip o d e d ato .
L os a rre g lo s p u e d e n s e r d e u n a o d e v a ria s d im e n sio n e s .
El a rre g lo u n id im e n s io n a l s e c o n o c e ta m b i n c o m o v e c to r o lis ta , y s e d e fin e
m e d ia n te u n tip o d e d a to , u n id e n tific a d o r y la c a n tid a d d e e le m e n to s e n tre
c o rc h ete s.
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.
El a rre g lo b id im e n s io n a l es lla m a d o m a triz o ta b la ; e n c a d a p o s ic i n tie n e dos
n d ic es: u n o p a ra in d ic a r la fila y o tro p a ra la c o lu m n a .
Es im p o rta n te e s c rib ir sie m p re el n d ic e a c o n tin u a c i n d e l id e n tific a d o r p a ra te n e r
a c c e s o a u n a p o sic i n d e l a rre g lo , y a s e a p a ra le e r u n v a lo r o p a ra a sig n a rlo .
El a rre g lo p u e d e a lm a c e n a r c a ra c te re s . L a d ife re n c ia e n tre fo rm a r u n a rre g lo de
c a ra c te re s y fo rm a r u n a c a d e n a d e c a ra c te re s, c o n s is te e n q u e e n el se g u n d o c a so
se a g re g a el c a r c te r n u lo \ 0 al final.
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.
Evaluacin
I. Conteste las siguientes preguntas.
1. Q u es u n a rre g lo ?
2 . E l n d ic e s e u tiliz a p a ra in d ic a r la ___________________ e n 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 ?
4 . P u e d e u n a rre g lo a lm a c e n a r d a to s d e tip o b sic o ?
5 . P u e d e u n a rre g lo a lm a c e n a r d a to s d e tip o e s tru c tu ra d o ?
6 . E s p o sib le in ic ia liz a r el a rre g lo c u a n d o s e d e c la ra ?
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
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 ?
9. C u l es la d ife re n c ia e n tre a rre g lo d e c a ra c te re s y c a d e n a d e c a ra c te re 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 ?
Ejercicios propuestos
I. Codifique los siguientes program as.
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 .
2. H a c e r u n p ro g ra m a q u e p e rm ita le e r c ie rta c a n tid a d d e n o m b re s de
a sig n a tu ra s q u e d e b e lle v a r u n a lu m n o .
3 . D e fin ir u n p ro g ra m a q u e p e rm ita le e r u n te x to d e 2 0 ln e a s.
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.
5. E sc rib ir u n p ro g ra m a q u e p e rm ita le e r la lo n g itu d d e u n a c a d e n a de
c a ra c te re s.
6 . E lim in a r lo s d u p lic a d o s e n u n a rre g lo o rd e n a d o (p o r e je m p lo , 1 2 2 3 4 5
5 5 6 7 8 9 9 10 11).
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 rtc 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 rtc 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
163
164
Captulo 6
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.
10. L e e r u n a fra s e y e s c rib ir c a d a p a la b ra e n u n ren g l n .
11. O rd e n a r c in c o c a d e n a s d e tex to .
char
*argv[J)
{
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
165
Ejercicios p ro p u e s to s
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
*/
0;
.
H i n d de < stdio.h>
H include
< stdlib.h>
H include
< string.h>
vo id im p rim e N c a ra c te re s fin t
cant,char
titu lo [J)
{
in t
i;
p r i n t f ( \ n " );
www.FreeLibros.me
166
Captulo 6
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
E n e s te c a p tu lo s e h a b la r d e l tip o d e d a to s e s tru c tu ra d o y d e la
d e fin ic i n y m a n e jo d e a p u n ta d o re s.
7.1 Estructura
L a e s tru c tu ra o re g is tro es u n tip o d e d ato s e s tru c tu ra d o q u e a g ru p a u n a
o m s v a ria b le s, y a s e a d e u n s o lo tip o o d e d ife re n te s tip o s d e d a to s, y
a d em s sto s p u e d e n s e r a s u v e z d a to s sim p le s o d a to s e s tru c tu ra d o s .
U na e s tru c tu ra s e d e c la ra d e la s ig u ie n te m an e ra:
stru c t id entificador_estructura
{
Tipo_dato identificador_cam po1;
Tipo_ dato id entificador_cam po2;
www.FreeLibros.me
168
Captulo 7
D atos d e t ip o estructurado
};
D onde
identifcador_ 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;
};
P a ra d e c la ra r v a ria b le s d e tip o a g e n d a sera:
s t r u c t agenda alumno, p r o f e s o r ;
i n t a;
char b , c ;
S e d e c la ra ro n d o s v a ria b le s , alumno y p r o f e s o r , s ig u ie n d o la s m ism a s reg la s
q u e s e h a n e m p le a d o p a ra d e c la ra r u n a v a ria b le s im p le . T a m b i n s e p u e d e n
d e c la ra r a c o n tin u a c i n d e la d e fin ici n :
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 e s te e je m p lo , la e s tru c tu ra a g e n d a tie n e d o s c a m p o s lla m a d o s ta m b i n
m ie m b ro s: nombre es u n a c a d e n a d e c a ra c te re s y edad, u n e n te ro .
P a ra a sig n a r v a lo re s e n la e s tru c tu ra s e p u e d e p ro c e d e r d e la s ig u ie n te m an e ra:
alumno. nombre= "Juan P e r e z " ;
alumno.edad= 1 5;
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 led 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 ) ;
<stdio.h >
ttinclude
<c o ni o. h >
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
*/
/*asignacin
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
") ;
e d ad " ) ;
(contina)
www.FreeLibros.me
170
Captulo 7
D atos d e t ip o estructurado
(continuacin)
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 ;
{
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
*/
www.FreeLibros.me
7.1 Estructura
p rin tf("
dime l a
estatura
");
s c a n f ( "%f", & a l u m n o . e s t a t u r a ) ;
/* 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 ;
nombre>
es u n a c a d e n a d e c a ra c te re s y e s t a t u r a es u n v a lo r d e tip o re a l. S e in ic ia liz a , se
a sig n a n v a lo re s y s e m u e s tra n .
Ej e m p l o 7.3 Solicitar y m ostrar el nom bre y tres calificaciones para
cada alumno; pueden incluirse hasta 10 alum nos
(arreglo de estructuras)
tiinclude
<stdio.h >
Uinclude
<c o ni o. h >
define MAX 10
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
Captulo 7
D atos d e t ip o estructurado
[continuacin)
f o r ( i =0; i <MAX; i ++)
{ a lu m n o [ i] .n o m b r e [0 ] =' \0 ' ;
for
(j=0;j<3;j++)
alumno [ i ] . c a l i f i c a c i n [ j ]=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 ( 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"
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 ) ;
{
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
Estructuras anidadas
E l c a m p o d e u n a e s tru c tu ra p u e d e , a su v e z , se r o tra e s tr u c tu ra q u e y a h a y a sid o
d efin id a.
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] ;
L a p rim e ra e s tru c tu ra nombre_com c o n s ta d e tres e le m e n to s tip o c a d e n a
d e c a ra c te re s y e s t c o n te n id a e n la e s tru c tu ra agenda, q u e a d e m s de
nombre_com, tie n e lo s c a m p o s c a l i f i c a c i o n e s , q u e es u n a rre g lo d e e n te ro s y
e s t a t u r a , d e tip o real.
P ara a s ig n a r v a lo re s e n la e s tru c tu ra a n id a d a s e p ro c e d e d e la s ig u ie n te m an e ra:
alumno[ 0 ] .nombrec.nombre = "Juan";
alumno[ 0 ] . n o m b r e c . a p e l l i d o p a t = " P e r e z ;
www.FreeLibros.me
173
174
Captulo 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 led 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 ) ;
<stdio.h >
tinclude
<c o ni o. h >
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
*/
(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
");
(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
*/
1 \t ca lificacin
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 ) ;
f o r f j =0;j <3;j ++)
{
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
Captulo 7
D atos d e t ip o estructurado
(continuacin)
p r i n t f ( " \ 2f " , alum no.estatura);
getch();
return
0;
E n el e je m p lo s e m a n e ja u n a e s tru c tu ra
nombre_com
co n tre s c a m p o s d e c a d e n a de
typedef
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;
d e c la ra r u n a v a ria b le d e tip o
in t
a h o ra s e lla m a ta m b i n
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
Entero:
7.1 Estructura
177
E n t e r o n;
}Tipo;
Tipo
nmeros;
<stdio.h >
ttinclude
<c o ni o. h >
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"
a,b.n,b.num Real);
g e t c h f );
return 0 ;
C o m o s e p u e d e ver, s e d e c la ra u n n u e v o tip o
un n u e v o tip o lla m a d o
tip o E n t e r o .
Tipo
in t
lla m a d o
Entero,
q u e c o n tie n e u n n m e ro d e tip o
www.FreeLibros.me
float
y a c o n tin u a c i n
y u n n m e ro de
178
Captulo 7
D atos d e t ip o estructurado
E n el p ro g ra m a p rin c ip a l s e d e c la ra la v a ria b le
S e le a s ig n a v a lo r y s e m u e stra n .
d e tip o
Entero
y la d e tip o
Ejercicios resueltos
E je r c ic io 7.1 (Versin 1) Alm acenar en una estructura el nombre
y los apellidos de una persona, y crear otra estructura
que contenga el nom bre, adems de tres calificaciones;
alm acenar esto en un arreglo, inicializarlo, agregar datos
y mostrarlos, usando un tip o de dato definido p o r el usuario
Descripcin
D efin ir lo s n u e v o s tip o s d e d a to s y las e stru c tu ra s .
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
Nombre
Tipo
Uso
i,,n
Entero
n d ic e s para re c o rre r e l
l A lu mn o [MA X]
Estructura
A r r e g l o de d a t o s t i p o
Nombre_com
Estructura
E s t r u c t u r a p a r a e l nombre c o m p l e t o .
Alumno
Estructura
E s t r u c t u r a co n t o d o s l o s
Codificacin
/* 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 )
H include
<stdio.h >
tinclude
<c o ni o. h >
Udefine MAX 10
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
*/
arreg lo.
estructura.
datos.
Tipo.
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) ;
{
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
Captulo 7
D atos d e t ip o estructurado
(continuacin)
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 ;
Explicacin
S e d e fin e el Struct Nombre_com , q u e c o n tie n e lo s c a m p o s: nombre , a p e l l i d o p a t ,
a p e l l i d o m a t d e tip o c a r c te r. A c o n tin u a c i n s e d e fin e el s t r u c t Alum no q u e
c o n tie n e e n u n c a m p o el s t r u c nombre_com (y a d e fin id o ) a d e m s d e lo s c am p o s
c a l i f i c a c i n , q u e es u n a rre g lo d e tre s e le m e n to s, y e s t a t u r a , q u e es d e tip o real.
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 .
Ejecucin
Cuant os e l e m e n t o s se i n s e r t a r a n
dame e l nombre 1
Juan
a p e llid o paterno
a p e l l i d o mat er no
1 Lpez
Perez
dame
l a calificacin
1 99
dame
l a calificacin
2 78
dame l a
dame l a
calificacin 3
estatura
dame e l nombre 2
86
1.79
Lu is
a p e llid o paterno 2
Ibarra
a p e l l i d o mat er no 2 Gmez
dame
l a calificacin
1 85
dame
l a calificacin
2 97
dame l a
dame l a
calificacin 3
estatura
2 1.59
nombre
ca lificacin
calificacin
Juan p e r e z
68
calificacin
estatura
lop ez
86
99
78
1.79
Luis Ibarra
Gmez
68
85
97
1.59
<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
Captulo 7
D atos d e t ip o estructurado
[continuacin)
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;
};
void leerN om bre(struct t_datos
*nn);
*nn);
mai n( )
{
s t r u c t t_datos n[3];
c lrs c r();
leerNombre(&n[0J);
imprimirNombref&n[ 0 ] ) ;
getchf);
}
void leerN om bre(struct t_datos
*nn)
{
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
*nn)
{
p rin tff"
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("
*/
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
Captulo 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) ;
p rin tf("\n
dame e l
a p e llid o paterno
");
dame e l
a p e l l i d o materno
");
g e t s ( d a t o s [ i ]. p e r s . n o m . a p e l l m ) ;
p r i n t f ( " \n dame l a
d ireccin
");
dame e l
telfon o
*);
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
for
\ 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
U n a p u n ta d o r es u n a v a ria b le q u e c o n tie n e u n a d ire c c i n d e m e m o ria c o m o v a lo r
a lm a c e n a d o . E s d e cir, el a p u n ta d o r a lm a c e n a la d ire c c i n d e u n a v a ria b le , y esa
v a ria b le c o n tie n e u n valor.
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 .
L o s o p e ra d o re s d e u n a p u n ta d o r s o n & y \ E l s m b o lo & es u n o p e ra d o r u n a rio
y re g re sa la d ire c c i n d e la v a ria b le a p u n ta d a ; el o p e ra d o r * d e in d ire c c i n
o d e re fe re n c ia d e v u e lv e el v a lo r c o n te n id o e n la v a ria b le a p u n ta d a.
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
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;
A h o ra s e d e c la ra u n a v a ria b le d e tip o
in t
fioat
y o tra tip o
in t:
d a to l;
f loat d a t o 2 ;
www.FreeLibros.me
186
Captulo 7
D atos d e t ip o estructurado
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;
p r i n t f ( " \ n Manejo de ap u ntadores
1 \n");
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
p r i n t f ( \rt d a t o l %c/
d i r e c c i n d a to
, d a t o l , & d a t o 1 , a p i n t ) ;
p r i n t f ( " \ n d a t o 2 %. 2 f
d i r e c c i n dato
d i r e c c i n d a to
", d a t o l , & d a t o 1 , a p i n t ) ;
p r i n t f ( " \ n d a t o 2 %.2 f d i r e c c i n dato
%c/ ", d a to 2 ,&dato 2 , apfloat);
%c/ c o n t e n i d o apuntador
getch();
return 0 ;
>
www.FreeLibros.me
188
Captulo 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.
Ej e m p l o 7.7 Realizar operaciones aritm ticas con apuntadores y mostrar
el resultado. La primera variable inicializa con el valor de 3,
luego se obtiene el residuo de dividir entre 2 y finalm ente se
incrementa en 1. La segunda variable, de tipo f l o a t , inicia con el
valor 3 .2 , despus se le suma 10 y finalm ente se reduce en uno
/*
. a r i t m t i c a de a pu ntadores
*/
Itin e l u d e <stdio.h>
Hielude <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;
p r i n t f ( " \ n A r i t m t i c a de a p untadores 2 \ n " ) ;
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 ;
/* Asignado v a l o r e s a l a s v a r i a b l e s y a p lic a n d o r e s i d u o y suma*/
* a p i n t = 3;
*apfloat = 3 . 2 ;
p r i n t f ( " \n \n d atol valor i n i c i a l
%c/
www.FreeLibros.me
", * a p i n t ) ;
* apfloat);
7.2 Apuntadores
189
p rin tf
("\n\n datol
residuo 2
p rin tf
( * \ n d a t o 2 sumado 1 0
%c/
%. 2 f
",
",
*apint) ;
* a pf l oa t );
/* 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 ) ;
p rin tf
("\n \n d a to l incrementado
p rin tf
( " \ n d a t o 2 de cr em en ta do
%c/
%. 2 f
",
*apint);
",
*apfoat) ;
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
dat o2
valor i n i c i a l
3.2
datol
residuo 2
dat o2
sumando 10
datol
incrementado
dato2
de cr em en ta do
13.20
2
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
tiinclude
<stdio.h >
Uinclude
<c o ni o. h >
*/
(c o n tin a )
www.FreeLibros.me
190
Captulo 7
D atos d e t ip o estructurado
(icontinuacin)
tinclude
< 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;
p r i n t f ( " \n\n L e e r d a t o s
p rin ttf"
\n");
\n nombre " ) ;
s c a n f ( n %s", n n -> n om br ec . no m) ;
p r i n t f ( n \n a p e l l mat ' ) ;
s c a n t ( " %s", nn- >nombrec. apem);
p rin tff"
\n ape p a t
");
\n");
p r i n t t ( u ap p a t e r n o : %s", n n - > n o m b r e c . a p e p ) ;
p rin ttf"
0;
www.FreeLibros.me
Evaluacin
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 .
P a ra d e fin ir u n a e s tru c tu ra s e in d ic a la p a la b ra re s e rv a d a s t r u c t y, e n tre lla v e s, los
c am p o s c o n tip o d e d a to e id e n tific a d o r.
Para te n e r a c c e s o a la e s tru c tu ra s e e s c rib e e l n o m b re d e la v a ria b le y e l o p e ra d o r
p u n to (.) se g u id o d e l id e n tific a d o r d e l c a m p o a a c c e d e r p a ra la le c tu ra o e sc ritu ra .
P a ra d e fin ir u n n u e v o tip o d e d a to s e p u e d e u tiliz a r t y p e d e f ; c o n e s to s e a s ig n a un
n o m b re d ife re n te a u n tip o d e d a to . E s ta p r c tic a es c o m n e n la s e stru c tu ra s .
Es p o s ib le d e fin ir u n a e s tru c tu ra q u e c o n te n g a o tra s e stru c tu ra s ; a e s to s e le
lla m a a n id a m ie n to d e e s tru c tu ra s . O tra a p lic a c i n es la d e fin ic i n d e u n a rre g lo
q u e c o n te n g a e n c a d a p o s ic i n u n a e stru c tu ra ; e s to s e c o n o c e c o m o a rre g lo de
e stru c tu ra s.
U n a p u n ta d o r es u n a v a ria b le d e tip o b s ic o q u e a lm a c e n a la d ire c c i n d e
m e m o ria d e u n a v a ria b le ; s e u s a p a ra te n e r a c c e s o a v a ria b le s p o r s u d ire c c i n , y
se a p lic a e n la m a n ip u la c i n d e d a to s sim p le s, a rre g lo s, e s tru c tu ra s y fu n c io n e s.
T ie n e d o s o p e ra d o re s: el & (am persand) y el * (asterisc o ); el p rim e ro d e v u e lv e
la d ire c c i n d e m e m o ria d e u n a v a ria b le y el se g u n d o d e v u e lv e el c o n te n id o
de la v a ria b le a p u n ta d a p o r el a p u n ta d o r.
Evaluacin
I. C onteste las siguientes preguntas.
1. U n a e s tru c tu ra es u n tip o d e d a t o ____________________
2 . U na e stru c tu ra c o n siste e n u n c o n ju n to d e v ariab les c o n el m is m o tip o
de datos.
S (
No (
www.FreeLibros.me
191
192
Captulo 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 (
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 .
10. C u a n d o el o p e ra d o r * a n te c e d e u n a v a ria b le , e n to n c e s s e tie n e a c c e so
al c o n te n id o d e ____________________ a p u n ta d a.
Ejercicios propuestos
I. Realice un p ro g ram a que efecte lo siguiente.
1. D e fin a el m u n d o c o n c in c o c o n tin e n te s > c o m p u e sto s p o r p a s e s q u e,
a su v e z, c o n tie n e n c iu d a d e s; la s c iu d a d e s , fin a lm e n te , a lb e rg a n
p u e b lo s.
www.FreeLibros.me
Ejercicios p ro p u e s to s
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 .
< stdlib.h>
H include
<c o ni o. h >
H include
< s t r i n g . h>
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
p r i n t f ("1.
hacer?:
*************\n \ n \ n \ n " ) ;
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
");
scanf("%d",&opc);
} w h i l e ( o p c ! =1 && o p c ! =2&&opc!=3);
//************
escoger
TAMAO
i f ( o p c = = 1)
www.FreeLibros.me
194
Captulo 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 ?
p r i n t f ("1.
Jamon\n2.
Tocino\n3.
(mximo 3 ) \ t " ) ;
Elote\n4.
Jalapenio\n5.
Salchich a
\n6.
E x t r a q u e s o\ n 7 .
ingredien te:
Listo\n\n\nAgregar
");
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 amn") ;
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 " );
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
p rin tf("
%c/
p re cio
%. 2 f ? n , p e d i d o s [ i ] . t a m , p e d i d o s [ i ] . p r e c i o ) ;
getch();
}
y
} w h i l e ( o p c ! =3);
www.FreeLibros.me
195
www.FreeLibros.me
Funciones
(programacin 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 ra 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
Captulo 8
Funcin 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 ln 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
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
199
200
Captulo 8
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:
*Tipo_dato
id entificado r
(*l i s t a
de p a r m e t r o s )
{
* v ariab les lo c a le s ;
c u e r p o de l a
funcin;
* 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 .
E n la ta b la 8.1 s e d e s c rib e n lo s a sp e c to s m s so b re sa lie n te s e n el d is e o d e u n a
ftin c i n , se g n la d e fin ic i n d e sc rita .
Ta b l a 8.1 Descripcin de la definicin de funcin
Concepto
Explicacin
Tipo dato
Es e l
si
tip o
de d a t o d e l
e s que l a
v a l o r qu e d e v u e l v e l a
funcin l o
debe i n i c i a r
co n l a
omite e l t i p o
hace.
funcin,
S i no d e v u e l v e v a l o r ,
p a la b r a rese rv a d a v o id . S i
de d a t o ,
se
de manera p r e d e t e r m i n a d a
d e v u e l v e un e n t e r o .
L ista
de
parmetros
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
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
Cuando e x i s t e n ,
d a t o s qu e debe r e c i b i r l a
funcin
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
funcin
la
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 c a d a vez qu e sea i n v o c a d 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
devolver e l
r e s u l t a d o de l a
funcin
funcin,
funcin re q u ie re re g re sa rlo .
Identificador
E s e l nombre a s i g n a d o a l a
www.FreeLibros.me
funcin.
si
e s qu e l a
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
funcin;
}
d onde:
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
vo id
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 .
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
id entificado r
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 co 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.
O b s e rv e q u e a q u s e o m ite la in s tru c c i n
c o n la p a la b ra
retum
, p u e s to q u e s e in ic ia la fu n c i n
void.
{
float a , b , c ;
p rin tf("te cle a
e l primer
");
scanf("% f",&a);
p rin tf("te cle a
el
s egu ndo
") ;
scanf("*f",&b);
c=a+b;
p r i n t f ( " E l r e s u l t a d o e s % f",
c);
}
v o id main( )
{
suma 1 ( ) ;
www.FreeLibros.me
202
Captulo 8
E n e s te e je m p lo s e p ro g ra m la fu n c i n
tres v a ria b le s lo c a le s: a ,
b y c.
y d e n tro d e la m is m a s e d e c la ra n
sumai
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
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.
sumai
h a ce u so d e las funciones
p rin tf
scanf,
que
tam bin so n funciones, a u n q u e stas estn predefinidas e n e l leng u aje C . E sto nos
indica q u e n o s lo
main
p r i n t f o scanf
se p u e d e n em p lea r
mai n ,
la c u a l c o n tro la la a p a ric i n de
mai n,
v o i d mai n ( )
{
in stru cci n
1;
in stru cci n
1;
in stru cci n
2;
in stru cci n
2;
f u n c i o n X ( );
in stru cci n
www.FreeLibros.me
4;
8.1 Funciones
E n e s te e je m p lo s e d is e a la
funcionx
con
in s tru c io n e s y la fu n c i n
main
co n c u a tro in stru c c io n e s d e la s q u e la te rc e ra es p re c is a m e n te la in v o c a c i n a
f u n c i o n x . L a e je c u c i n s e in ic ia e n mai n , p o r lo q u e s e e je c u ta n la s in stru c c io n e s
1 y 2, p e ro e n c u a n to a p a re c e la lla m a d a a
funcionx
s e in ic ia la e je c u c i n d e sus
e je c u c i n d e la in s tru c c i n 4 y te rm in a r el p ro g ra m a .
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 ();
}
E n e s te e je m p lo s e d is e a ro n
funcionx, fu n cio n Y
main.
C o m o y a s e e x p lic ,
la e je c u c i n in ic ia e n mai n , p o r lo q u e s e e je c u ta n la s in s tru c c io n e s 1 y 2,
c u a n d o v ie n e la in s tru c c i n 3 q u e es la in v o c a c i n a f u n c i o n Y s e e je c u ta n sus
in stru c c io n e s 1 y 2 y lu e g o s e e n c u e n tra c o n la lla m a d a a
funcionx
p o r lo q u e
q u e fu e la q u e la lla m ; a h o ra s e e je c u ta n la s in s tru c c io n e s 4 y 5 d e
funcionY
mai n
www.FreeLibros.me
h a s ta q u e fin aliza.
204
Captulo 8
{
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 ) ;
}
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( ) ;
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 ) ;
}
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 .
L a e je c u c i n u n a v e z m s in ic ia e n
y lu e g o s e in v o c a a
prom ;
mai n ,
d o n d e s e d e c la r la v a ria b le lo c a l
resp,
fu n ci n . D e sp u s s e p re g u n ta si s e d e s e a c a lc u la r o tro p ro m e d io y, d e p e n d ie n d o
de la re s p u e s ta , s e re p ite o n o el c o n te n id o d e d o - w h i l e .
www.FreeLibros.me
V ariables locales
www.FreeLibros.me
205
206
Captulo 8
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
return
funcin;
(v alor);
}
E ste tip o d e fu n c io n e s in ic ia c o n
tipo_dato
y s e a g re g a la p a la b ra re s e rv a d a
return:
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
Tipo_dato
retum
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 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
"):
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
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 ( ) ) ;
}
E n la fu n c i n suma i s e p re s c in d i d e la v a ria b le c, y a q u e s e re g re sa d ire c ta m e n te
el v a lo r d e la e x p re si n a ritm tic a a+b. E n el c a s o d e m a i n ta m b i n s e o m iti la
v a ria b le r e s , p u e s to q u e e n e s te e je m p lo la fu n c i n m a i n re c ib e el v a lo r q u e le
re g re sa s u m a l , u tiliz n d o la c o m o a rg u m e n to d e p r i n t f y es el v a lo r d e a+b lo q u e
a p a re c e r e n la p a n ta lla .
www.FreeLibros.me
207
208
Captulo 8
{
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 " ,
}
E n e s te e je m p lo , la fu n c i n sumai es in v o c a d a d o s v e c e s. P rim e ro s e lla m a c o m o
a rg u m e n to d e la n ic a in s tru c c i n d e main, q u e es p r i n t f ; la p rim e ra lla m a d a a
sumai p id e d o s v a lo re s al u su a rio , h a c e la s u m a y la re g re s a a d o n d e fu e in v o ca d a.
D e sp u s h a y u n a se g u n d a lla m a d a e n la q u e s e p id e n los o tro s d o s v a lo re s y se
d e v u elv e ta m b i n el re s u lta d o a d o n d e s e in v o c . F in a lm e n te , main h a c e la su m a
de lo s d o s v a lo re s y lo s im p rim e .
E je m p lo 8.4 Disear, re to m a n d o el e jem p lo d e la fu n ci n qu e calcula
el prom edio, un program a d o n d e la fu n c i n devuelva un valor
q u e se acu m u le en una variable en m a in para luego o b te n e r
el p ro m e d io grupal d e
alum nos
float prom( )
{
i n t n, i ;
float c, p= 0 ;
www.FreeLibros.me
p r i n t f ( " C ua n t a s m a t e r i a s s e l e
van a p r o m e d i a r a l
209
alumno?") ;
scanf("% i",&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 " );
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
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 bm,BM;
p r i n t f ( " Dame l a
b a s e menor
");
base mayor");
(c o n tin a )
www.FreeLibros.me
210
Captulo 8
(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 .
www.FreeLibros.me
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 arc ter.
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
Captulo 8
(continuacin)
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
213
E je m p lo 8.7 Crear la funcin para sum ar dos nmeros, pero con ligeros
cam bios a m ain para que el programa calcule la suma de cuatro s
float suma3(f l o a t a,
fl oat b)
{
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
Captulo 8
(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);
main
h a ce u n a lla m a d a a su m a 3 , p e ro e n e s ta o c a s i n lo s a rg u m e n to s d e la p rim e ra
in v o c a c i n a suma3 so n lla m a d a s la m is m a fu n c i n : e n u n a in s tru c c i n s e in v o ca
en tre s o c a sio n e s a
suma3.
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
im p rim irse . E s im p o rta n te m e n c io n a r q u e las lla m a d a s a la s fu n c io n e s s e v an
e je c u ta n d o d e a d e n tro h a c ia a fu e ra.
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;
una
o p cio n
1)
CUADRADO \n 2 )
www.FreeLibros.me
CUBO\n");
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:
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 ,
Ej e m p l o 8.9 Realizar una funcin 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
Captulo 8
(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 ) ;
}
10
www.FreeLibros.me
217
}
void main()
{
in t n 1,n 2 ;
(c o n tin a )
www.FreeLibros.me
218
Captulo 8
(continuacin)
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
O b s e rv e q u e los v a lo re s s e in v irtie ro n : a h o ra m a p a re c e c o n 8 y n 2 c o n 5. O tra
c o n sid e ra c i n q u e s e d e b e h a c e r es q u e u n a fu n c i n p u e d e re c ib ir a m b o s tip o s
de p a r m e tro s . E n se g u id a s e p re s e n ta u n e je m p lo d e fu n c i n q u e u tiliz a el p rim e r
p a r m e tro p o r v a lo r y el se g u n d o p o r re fe re n c ia , lo q u e im p lic a q u e c u a lq u ie r
v a lo r q u e p a s e a la fu n c i n a trav s d e a n o p o d r s e r m o d ific a d o , m ie n tra s q u e lo
q u e su c e d a c o n b 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 al a rg u m e n to q u e se
c o lo q u e e n s u lugar.
Ej e m p l o 8.11 Realizar una funcin que intercambie dos valores entre nmeros,
utilizando un parmetro 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
L a fu n c i n
mai n
re sp e c tiv a m e n te . S u p o n g a q u e lo s v a lo re s s o n 3 y 7;
a rg u m e n to s a la fu n c i n
func,
func
al
mai n
main
lo s p a s a c o m o
q u e lo s re c ib e a trav s d e su s p a r m e tro s
tal m o d o q u e a re c ib e s lo el v a lo r d e 3, p e ro
y
219
le s u m a 5 a a y ta m b i n s u m a 2 a
b.
a y b,
de
re c ib e la d ire c c i n d e l a rg u m e n to
S e te rm in a la fu n c i n y s e re g re sa
q u e d a ra d e la s ig u ie n te m an e ra:
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
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
Funcin m
a in
Descripcin
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 .
C o n tin u a r m ie n tra s el u s u a rio a s lo d e cid a.
Variabl es
Nombre
Tipo
Uso
opc
Entero
P a r a a l m a c e n a r e l v a l o r de l a
f u n c i n d es eada.
men
re c ib e el n m e ro d e la fu n c i n q u e s e d e s e a c alcu lar.
(contina)
www.FreeLibros.me
220
Captulo 8
[continuacin)
Funcin m e n
Descripcin
P re se n ta r la s c u a tro o p c io n e s q u e el u s u a rio p u e d e elegir.
L ee r el v a lo r d e la o p c i n .
R e p e tir la s d o s a c c io n e s a n te rio re s m ie n tra s n o s e e lija u n v a lo r e n tre 1 y 4 ,
in clu siv e.
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 .
Funcin
fa c to r ia l
Descripcin
S o lic ita r u n n m ero .
L e e r el n m ero .
C a lc u la r e l fa c to ria l m u ltip lic a n d o e l n m e ro p o r to d o s su s a n te c e so re s h a s ta 1.
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 .
Funcin p
o te n c ia
Descripcin
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
Im p rim ir la p o te n c ia .
Vari abl es
Nombre
Tipo
Us o
Entero
Al macena e l
Entero
Al macena l a b a s e de l a
tmp
Entero la rg o
A c u m u l a d o r de m u l t i p l i c a c i o n e s de l a
fa c to ria l.
potencia.
base por
s misma.
Entero
Funcin
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 .
ta b la
Descripcin
S o lic ita r el n m e ro d e la ta b la y el lm ite .
L ee r el n m e ro y el lm ite .
Im p rim ir la ta b la d e sd e 1 h a s ta el lm ite .
P re g u n ta r si c a lc u la o tra ta b la d e m u ltip lic a r o re g re s a al m e n p rin c ip a l.
L ee r la o p c i n .
R e p e tir la ta b la d e m u ltip lic a r m ie n tra s el u s u a rio a s lo d e te rm in e .
Variables
Nombre
Tipo
Uso
Entero
T a b l a de m u l t i p l i c a r .
lim it
Entero
I n d i c a h a s t a qu nmero s e m o s t r a r l a
tabla
de m u l t i p l i c a r .
Entero
V a r i a b l e de c o n t r o l que toma l o s
1 hasta
v a l o r e s desde
lim it.
Codificacin
# 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
Captulo 8
(continuacin)
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 :
");
*=
num;
p r i n t f ( n\ n \ t e l
%. 0 1 f \ n \ n " , f a c t ) ;
}
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 " ) ;
p r i n t f ( \tIntroduce l a
s c a n f ( u%du,
base:
&b);
p r i n t f ( " \n\tIntroduce l a
s c a n f ( n%du,
");
potencia:
");
&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:
}
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
p rin tf("\tD e
de m u l t i p l i c a r \ n " );
q u e n u me ro e s l a
tab la:
");
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 ( 096dB, & n ) ;
s c a n f f "%cT,
f o r ( i = 1; i < = l i m i t ;
i ++)
www.FreeLibros.me
% .01f.\n\n",
b,p,
tmp);
n,
223
i* n );
}
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
Captulo 8
(continuacin)
}
getch();
}
p rin tf
("\n \n \n \t adis
) ;
getch();
return
0;
Explicacin
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 .
Ejecucin
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
F a cto ria l
I n t r o d u c e un nmero:
E l r e s u l t a d o es:
24
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.
Adis.
Eje r c ic io 8.2 Escribir un programa con una funcin que realice las siguientes
operaciones con un nmero: raz cuadrada, cuadrado y cubo.
M ostrar el resultado en forma de tabla, con los nm eros del
1 al 10
Descripcin
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
Nombre
Tipo
Uso
Entero
Parmetro p o r v a l o r p a r a l o s
ra z
Peal
Parmetro p o r r e f e r e n c i a p a r a c l c u l o
valores del
uno a l
diez.
de p o t e n c i a \ .
(c o n tin a )
www.FreeLibros.me
226
Captulo 8
(continuacin)
Tabl a d e p a r m e t r o s
Nombre
Tipo
Uso
c uad
Entero
Parmetro 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 2.
cubo
Entero
Parmetro 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 3.
Codificacin
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
potencias \,
H include
<stdio.h >
Uinclude
<c o ni o. h >
ftinclude
<math.h>
c on l o s nmeros d e l
3
(ra iz
cuadrada,
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
1 al
d i e z c on s u s r e s p e c t i v a s
cuadrado y cubo).
*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
for
c u b o \ n m) ;
( 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
Explicacin
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
p o t e n c i a s ).
E ste
r a z , cuad
c ub o
q u e s o n p a r m e tro s p o r re fe re n c ia . A l s e r in v o c a d a la
potencias,
lle v a el v a lo r d e 1 y
Ejecucin
numero
ra z
c u a d r ad o
cubo
1.00
1.41
1.73
27
2.00
16
64
2.24
25
125
2.45
36
216
2.65
49
343
2.83
64
512
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
Captulo 8
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 .
H a y fu n c io n e s d e d o s tip o s: la s in te rn a s o p re d e fin id a s, y la s e x te rn a s o d ise a d a s
p o r el p ro g ra m a d o r.
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.
L as fu n c io n e s p u e d e n s e r d ise a d a s d e d ife re n te s m a n e ras:
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 p ro g ra m a p u e d e te n e r v a ria b le s lo c a le s o g lo b a le s . V a ria b le lo c a l es a q u e lla
q u e s e d e c la ra d e n tro d e c u a lq u ie r fu n c i n y p u e d e s e r u tiliz a d a s lo p o r d ic h a
fu n ci n . L as v a ria b le s g lo b a le s s e d e c la ra n fu e ra d e c u a lq u ie r fu n c i n y, se g n
d o n d e s e d e c la re n , v a ria s fu n c io n e s p u e d e n te n e r a c c e s o a e llas.
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
Evaluacin
229
Evaluacin
I. C onteste las siguientes preguntas:
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 _______________________________________.
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
-----------------------------, -----------------------------y --------------------------------.
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 : ___________________ .
8 . A las v a ria b le s q u e s e d e c la ra n d e n tro d e u n a fu n c i n (y q u e p o r
ta n to p u e d e n s e r u tiliz a d a s s lo p o r e s a fu n c i n ) s e le s c o n o c e c o m o
9 . Q u es u n a v a ria b le g lo b a l? _______________________________________.
c) void f
(int x );
( );
c) void f 1 ( i n t x ) ;
www.FreeLibros.me
c) void f
(int x );
230
Captulo 8
No (
Ejercicios propuestos
1. R e a liz a r u n a fu n c i n q u e m u e s tre lo s d a to s d e l u su a rio : n o m b re , d ire c c i n ,
e d a d , n m e ro d e h e rm a n o s, a fic io n e s.
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.
4 . R e a liz a r u n a fu n c i n q u e d ib u je e n la p a n ta lla u n m a rc o c o n a ste risc o s.
www.FreeLibros.me
Ejercicios resueltos
9.1 Secuenciacin
E je rc ic io s q u e m u e s tra n el u so d e la e s tru c tu ra d e c o n tro l s e c u e n c ia c i n .
volumen de una b a l a s t 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
232
Captulo 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
printf("Dam e l a
scanf("% f",
b a l a s t r a de 240 v o l t s \ n " ) ;
b a s e \ n " );
& b);
printf("Dam e l a
s c a n f f "% f",
a lt u r a \ n " );
& 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);
100
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
printf("Dam e l a
e l e c t r i c a \ n " );
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 " ,
g e t c h f );
}
www.FreeLibros.me
p recio);
9.1 Secuenciacin
233
vrtice
de una p a r b o l a */
# 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>
v o id main()
{
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
printf("Dam e e l
vrtice
de una p a r a b o l a \ n " ) ;
coeficiente d e l
termino c u a d r a t ic o
coeficiente d e l
termino l i n e a l
") ;
") ;
scanf("*6f",&b);
p r i n t f ( "Dame e l
termino in d e p e n d ie n te
") ;
scanf("%f",&c);
x=-b/(2*a ) ;
y=((4*a*c)-(b*b))/(4*a);
p rin tf("E l
vrtice
e s t a en l a
coordenada ( % 5 . 2 f , * 5 . 2 f ) " , x , y ) ;
getchf);
*/
# 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);
medi da de l o s
n g u l o s en g r a d o s d e c i m a l e s
scanf("% f",&ang);
ang_com=90-ang;
ang_sup= 1 8 0 - a n g ;
p r i n t f ( "Su n g u l o c o m p l e m e n t a r i o e s % . 2 f \ n " , a n g _ c o m ) ;
www.FreeLibros.me
") ;
234
Captulo 9
printf("S u
Ejercicios resueltos
n g u l o s u p l e m e n t a r i o e s 96. 2 f \ n " , a n g _ s u p ) ;
getchf);
*/
#include<stdio.h>
tinclude<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) ;
2da.
componente " ) ;
3era.
componente
Dame l a
");
a 96 . 2 f " , m a g ) ;
getchf);
{
textcolor(R ED );
www.FreeLibros.me
9.1 Secuenciacin
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
p r i n t f ( " \ n L a masa d e l
en una s o l u c i o n \ n " ) ;
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 );
{
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 " ) ;
de l a
solu cin
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
Captulo 9
Ejercicios resueltos
{
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
que n e c e s i t a s es%d", n i ) ;
getchf);
{
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 Secuenciacin
# 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 mximo ") ;
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);
<c o ni o. h >
#i n c l u d e
<stdio.h >
v o i d mai n ()
{
e lrse r
();
float e,
f,
q;
p rin tf
( " E l programa c a l c u l a e l
p rin tf
("Dame l a
scanf r % f" ,
p rin tf
f u e r z a \ n " );
& f);
("Dame l a
scanf
campo e l e c t r i c o \ n " ) ;
carga");
& q);
e=flq;
p rin tf
getch
("El
campo e l c t r i c o e s %6 . 2 f ,
e);
();
www.FreeLibros.me
237
238
Captulo 9
Ejercicios resueltos
<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
p rin tf
("Dame e l
s c a n t ( " * f m,
p rin tf
r e s is t e n c ia \ n " );
v o l t a j e \ n " );
& v);
("Dame e l
s c a n t ("%f",
am peraje\n");
& a);
r=v/a;
p rin tf
getch
("la
re siste n cia
e s %6 . 2 f o m h s " ,
r);
();
/* 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 " ) ;
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
239
desviacin estndar
");
( 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)
getchf);
# 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 " ) ;
p r i n t f ("
1. E n R2\n 2 . En R 3 \ n " ) ;
p r i n t f ( " E l i g e una o p c i o n
") ;
scanf("*6d",&op);
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
") ;
");
www.FreeLibros.me
240
Captulo 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
") ;
");
}
getch();
*/
{
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 ( " Dame l a
X de l a
lera,
coordenada
");
Y de l a
lera,
coordenada
) ;
X de l a
2da.
coordenada
") ;
Y de l a
2da.
coordenada
");
(XI =9)
www.FreeLibros.me
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
p r i n t f ( " L a r e c t a es v e r t i c a l
\"pendiente
&& ( y 1 y 2 ) ) p r i n t f ( " E s un p u n t o
getchf);
"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
p r i n t f ( "A)Volumen
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 " );
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
C aptulo 9
242
Ejercicios resueltos
s o lu t o \ n " );
scanf("% f",&A);
p r i n t f ( " \ n Ahora e l
v o l u m e n \ n u) ;
scanf("*6f",&V);
p r i n t f ( " \ n Por ultim o l a
n o r m a li d a d \ n " );
}
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
scanf('% f*,&E);
p r i n t f ( " \ n Por ultim o e l
volumen\n");
}
i f
(o p==' D' )
{
p r i n t f ( " \ n Dame e l
volumen\n");
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);
www.FreeLibros.me
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 " ) ;
}
i f
( op==' C ' )
{
p r i n t f f " \ n Dame l a
presin
(en a t m ) \ n " ) ;
scanf(">6f",&P);
www.FreeLibros.me
244
Captulo 9
p r i n t f ( " \n A h o r a l a
Ejercicios resueltos
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
presin
(en a t m ) \ n " ) ;
volumen (e n L ) \ n ") ;
}
getchf);
{
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
de l a
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
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
p r i n t f ( " C u a n t o fue 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 ( U96d",&mam);
p r i n t f ( " C u a n t o se i n v i r t i
de m a n u f a c t u r a \ n " ) ;
scanf("%d",&man);
p r i n t f ( " C u a n t o fue 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 ( tt96d"t & i n s ) ;
i f
( d p 1)
{
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
es
del
d e p ar t a me nt o de i m p r e s i n
to ta l);
}
getch();
{
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
n ce n tra l= 2 \n");
s c a n f ( n96 d " , & c ) ;
www.FreeLibros.me
245
246
Captulo 9
if
(c==1)
m3=m*1.5;
i f
(c==2)
m3=m*2;
Ejercicios resueltos
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);
p r i n t f ( " * - * Programa p a r a c a l u l a r e l n d i c e
de masa m u s c u l a r * - * " ) ;
gotoxy(1,9);
p r i n t f ( " I n t r o d u c e t u p e s o (en k g ) :
") ;
(e n m e t r o s ) :
") ;
s c a n f f "%f", & e s t a t u r a ) ;
ind ice= peso/ ( e s t a t u r a * e s t a t u r a ) ;
goto xy(5,15);
p r i n t f ( "Tu n d i c e de masa c o r p o r a l
i f
(indice>=30)
ELEVADO,
i f
p r i n t f ( \n \n \n \n \n Cuidado!
\n
n d ice );
t u n d i c e de masa c o r p o r a l
( i n d i c e < = 1 8 . 5) p r i n t f ( " \ n \ n \ n \ n \ n C u i d a d o ! !
\n
tu n d ic e
de masa c o r p o r a l
n e c e s i t a s a l i m e n t a r t e mas) ;
es
es:
e s NORMAL");
g e t c h f );
}
www.FreeLibros.me
tu n d ic e
de masa
247
alq ueno o a l q u in o * /
Uinclude
<stdio.h >
Uinclude
< co ni o. h>
v o i d mai n ()
{
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
s c a n f ("%d*,
p rin tf
& c);
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
getch
compuesto no e x i s t e " ) ;
();
<stdio.h >
Uinclude
< co ni o. h>
v o i d mai n ()
{
in t
d;
clrs c r
();
p rin tf
p rin tf
("Dame l a
s c a n f r% c/\
i f
d ista n cia a l a
& d);
qu e t e e n c u e n t r a s , en m e t r o s \ n " ) ;
("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
lu z");
www.FreeLibros.me
248
Captulo 9
if
(d>10) p r i n t f
getch
Ejercicios resueltos
( " L a l u z no s e e n c e n d e r " ) ;
();
<stdio.h >
Uinclude
<c o ni o. h >
v o i d mai n ()
{
clrs c r
();
float t ,
1 ;
p rin tf
( " E l programa a n a l i z a e l
p rin tf
("El
t e m p o r i z a d o r de una r e p r e s a de a g u a \ n " ) ;
t e m p o r i z a d o r marca e l
t i e m p o qu e l a
c omp uer t a p e r m a ne c e r
a b ie r t a \ n " );
p rin tf
p rin tf
( L a r e p r e s a t i e n e c a p a c i d a d de s o l o 500,000 l . \ n ") ;
p rin tf
("Dame e l
s c a n f ( n%f ",
t e m p o r iz a d o r \ n " );
& t);
l=t*60*50Q;
p rin tf
if
if
( " L a r e p r e s a f u n c i o n a p e r o no a l
100 p o r
c ie n t o \ n " );
i f
(1>500000) p r i n t f
la s
getch
( " E m e r g e n c i a s o b r e c a r g a ! Debe c e r r a r i n m e d i a t a m e n t e
c om p uertas");
();
<c o ni o. h >
Uinclude
<stdio.h >
v o i d mai n ()
www.FreeLibros.me
e lrse r
249
();
i n t H, O,
c 1,
c 2,
C;
p rin tf
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
("Que componente d e s e a s u n i r ,
s c a n f (",96d",
p rin tf
3)H\n");
& c 1) ;
("C u a l o t r o \ n " );
s c a n f ("%d",
i f
1)C 2)0,
& c2) ;
%c/ e s un h i d r o c a r b u r o \ n , c 1 , c 2 ) ;
i f
%c/ e s a g u a \ n " , c 1 , c 2 ) ;
i f
y %c/ e s a g u a \ n " , c 1 , c 2 ) ;
i f
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
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
getch
();
{
clrs c r
in t
();
op;
float i ,
p rin tf
p,
r;
( "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
Captulo 9
p rin tf
el
p rin tf
( " S e u sa l a
Ejercicios resueltos
corrien te , la
potencia y l a
v a lo r a c a l c u l a r \ n " );
(" 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
i f
("%d",
&op);
(op== 1)
{
p r i n t f ("Potencia
\ndame l a
in t e n s id a d \ n " );
re siste n cia
del
c i r c u i t o \ n " );
s c a n f ( m* 6f*,&r) ;
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
s c a n f ("%f",
r e s i s t e n c i a \ n " );
&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
scanf
in t e n s id a d \ n " );
& 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 ) ;
}
if
( o p ! =1&&op!=2&&op!=3) p r i n t f
(" E r r o r o p c io n i n v a l i d a \ n " );
getch();
www.FreeLibros.me
9.3 Selectiva d o b le
{
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 segn 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
e s a s i marca 1 \nde l o
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
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);
<stdio.h >
www.FreeLibros.me
252
Captulo 9
Hinclude
Ejercicios resueltos
<c o ni o. h >
v o i d mai n ()
{
in t
d;
c lrs c r
();
p rin tf
p rin tf
("Dame l a
s c a n f ( m* d m,
i f
d ista n cia a l a
& d);
qu e t e e n c u e n t r a s , en m e t r o s \ n " ) ;
("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
lu z ");
else
p rin tf
getch
( " L a l u z no s e e n c e n d e r " ) ;
();
{
float r ,
in t
rp,
r 1 , r2,
r3;
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
(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 " );
("Ingrese la
("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
p rin t f
("La
re siste n cia
total
253
e s 96 7 . 2 f o h m s \ n " , r ) ;
}
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 " );
("Ingrese l a
segunda r e s i t e n c i a \ n " ) ;
("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 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
la
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
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 ?
r e c u e r d o qu e a l
p rin tf("d e
-Le p r e g u n t a r o n , \ n\ n- No l o
c o n t a r l o s en g r u p o s \ n " ) ;
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
se,
254
Captulo 9
Cuantos huevos t e n i a l a
Ejercicios resueltos
v i e j e c i t a ? " );
p r i n t f ( " \ n \ n1 ) 20 h u e v o s \ n \ n 2 ) 59 h u e v o s \ n \ n 3 ) 1 0 0 0 h u e v o s \ n \ n ( S e l e c c i o n e
la
opcion c o rre c ta )
") ;
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();
{
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
JuGaR!
. . . .VaMoS A
");
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);
p r i n t f f " . . .p re s io n a E n te r para c o n t i n u a r . . . " ) ;
g e t c h f );
c l r s c r f );
goto xy(30,5);
p r i n t f f " . . .Cuanto e s ? . . . " ) ;
www.FreeLibros.me
9.3 Selectiva d o b le
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);
(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);
(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 ) ;
(c==d)
p rin tff"
Bien hecho");
else
p rin tff"
Es o NO e s c o r r e c t o " ) ;
a= ra ndf )%1 0 +1 ;
b=rand( ) M 0 +1 ;
c=a*b;
p r i n t f f " \n\n%i X
",a ,b );
s c a n f f "%i" , &d);
i f
fc==d) p r i n t f f "
B ie n hecho");
else
p rin tff"
Es o NO e s c o r r e c t o " ) ;
a=rand( )%1 0 +1 ;
b =r and f) % 1 0 +1 ;
c=a*b;
p r i n t f f " \n\n%i X
",a ,b );
scanf("% i",&d);
i f
fc==d) p r i n t f f "
B ie n hecho");
www.FreeLibros.me
255
256
Captulo 9
Ejercicios resueltos
else
E s o NO e s c o r r e c t o " ) ;
p rin tff"
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
B ien hecho");
(c==d) p r i n t f f "
e lse
E so NO e s c o r r e c t o " ) ;
p rin tff"
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 o e f i c i e n t e de c o r r e l a c i n * /
{
c lrs c rf);
float Sxy , Sx, Sy, r ;
p r i n t f f "C alcula e l
p r i n t f f "Dame l a
c o e f i c i e n t e de c o r r e l a c i o n \ n " ) ;
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
scanff
d e s v i a c i n e s t n d a r de X " ) ;
,&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)
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();
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 catin ;
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 " ) ;
reglas
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
p r i n t f ( " \n E l
|| ( c a t i o n = = ' R ' ) ||
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
un n i t r a t o ,
carbonato acido,
clo ra to
embargo, s i e l
o perclorato,
a n i n es
e l compuesto
es s o l u b l e " );
getch();
redox*/
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>
www.FreeLibros.me
C aptulo 9
258
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
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);
{
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
e s t e q u i o m e t r i c a m e n t e ) de l a
(se c a lc u la
re a c c io n \n ");
s c a n f ( "%f", & r e n d t ) ;
www.FreeLibros.me
p r i n t f ( " \ n Ahora e l
de l a
rendim iento p r a c t i c o
259
r e a c c i o n \ n " );
s c a n f f "%f", & r e n d p ) ;
i f
(rendtl=rendp)
{
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
reaccin
(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);
{
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 ;
gotoxy(25,5)p r in tf( " A d iv in a
a d i v i n a d o r " );
g o t o x y ( 1 , 1 2 ) p r i n t f ( " Q u e numero e n t e r o e n t r e
pensando?
1 y 10 c r e e s qu e e s t o y
");
s c a n f f "%c/", & u s u a r i o ) ;
g o t o x y f 1 ,15);
i f
( u s u a r i o = = y o ) p r i n t f ( " F e l i c i d a d e s , a d i v i n a s t e mi n um e r o " );
else
www.FreeLibros.me
260
Captulo 9
if
Ejercicios resueltos
m o ) ;
if
(usuario>yo) p r i n t f ( " \ n \ n L o s i e n t o ,
t u numero e s MAYOR qu e e l
m i');
gotoxy(42,25);
p rin tf("...
. . . ") ;
getch();
c l r s c r f );
p r i n t f ( " \ f \ n \ n E s t a e s t u s egu nda o p o r t u n i d a d i n g r e s a o t r o
numero:
") ;
s c a n f ( n96d", & u s u a r i o ) ;
i f ( u s u a r i o = = y o ) p r i n t f ( u\ n \ n F e l i c i d a d e s , a d i v i n a s t e mi n um e r o " ) ;
e lse
{
if(usuario< yo)
p r i n t f ("\n\nLo sien to ,
p r i n t f ( " \n\nLo s i e n t o ,
m i o u) ;
if(usuario> yo)
m i ) ;
g o to x y (42,25);
p rin tf("...
...");
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 ,
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
{
char usuario;
te x tc o lo r (0) ;
textbackground(98);
clrscrf);
g o t o x y (15, 5);
p r i n t f ( "Programa q u e i n d i c a e l t i p o d e d a t o i n t r o d u c i d o " ) ;
p r i n t f f " \ n \ n \ n I n t r o d u c e t u dato (un d g i t o )
) ;
s c a n f f "% s\ & u s u a r i o ) ;
if
else
if
p r i n t f ( \ n \ n E s t a e s una l e t r a " ) ;
else
p r i n t f ( " \ n \ n E s t e e s un c a r c t e r e s p e c i a l " ) ;
g etch f);
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 m a in f)
{
in t a,b,c,d,e;
textcolor(25) ;
textbackground(0) ;
clrscrf);
p r i n t f ( " I n t r o d u c e c i n c o n m e r o s ( p r e s i o n a e n t e r d e s p u s d e c ada
numero): \n*);
s
www.FreeLibros.me
262
Captulo 9
i f
((a<b)
&& ( a<c )
&& (a<d)
Ejercicios resueltos
n u me ro m e no r e s :
M '^ a );
else
{
if((b< a)
&& ( b<c)
&& (b<d)
numer o me no r e s :
*i\b);
else
{
i f
((c<a)
&& ( c<b)
&& ( c<d)
% i\c );
else
{
i f
( (d<a)
&& (d<b)
menor e s :
&& ( d<c)
&& ( d < e ) )
p rin tf ("El
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);
Uinclude<conio.h>
#include<stdio.h>
void main()
{
c l r s c r f );
f l o a t med;
p r i n t f ( "T ipos de a n g u l o s \ n " ) ;
p r i n t f ( " Dame l a m e d i d a d e l n g u l o " ) ;
scanf("%f",&med);
if
else
if
else
www.FreeLibros.me
numer o
i f
e lse
i f
else
i f
e lse
i f
else
p r i n t f ( "No t i e n e n i n g n nombre e s p e c i f i c o " ) ;
g e t c h f );
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 " ) ;
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
desviacin estndar
");
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
263
264
Captulo 9
printf("Dam e l a
m edi a
Ejercicios resueltos
") ;
d e sv ia ci n estndar
");
scanf("*6f",&S);
CV=S/X*100;
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 %. 2 f%\r?", C V; ;
}
else
p r i n t f ( Tu o p c i o n no e s t a en e l men" ) ;
getch();
10.20
ttdefine t e
10.00
v o id main()
{
in t
op;
m anufacturera c h o i c e \ n " );
(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
p r i n t f ( " \nDame e l
v a l o r de l a
265
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 " ) ;
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
Captulo 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 v o l t i l
no e l e c t o l i t o
(e n e l c a s o de l a p r e s i n v a p o 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 ");
}
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
p r i n t f ( " \ n Dame l a
267
m olaridad \n");
s c a n f f "%f" , &M);
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 in i n c o r r e c t a " );
}
}
}
g e t c h f );
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
Captulo 9
Ejercicios resueltos
{
c l r s c r f );
float 1,
in t
a,
res,
r;
op;
p rin tf
( " E l programa p e r m i t e c a l c u l a r l a
p rin tf
( "Selecione e l m a te ria l
p rin tf
("
de un c a b l e \ n " ) ;
c a b l e \ n " );
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
s c a n f ("%d",
switch
del
re siste n cia
\ n ");
&op);
(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
}
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 " ) ;
("Dame e l
area g r o s o r d e l
c a b l e en m 2 . \ n " ) ;
(" La r e s i s t e n c i a
es
ohms\n", r ) ;
getchf);
www.FreeLibros.me
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"
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 ") ;
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 ") ;
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
Captulo 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
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
de d i a g o n a l e s \ n " ) ;
") ;
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);
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
# 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
271
272
Captulo 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();
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 v o l t i l
no e l e c t r o l i t o
(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 ?
www.FreeLibros.me
\ n A) T e m p e ra t u r a de e b u l l i c i o n \
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
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
m o la rid a d \n ");
temperatura,
en K \ n " ) ;
s c a n f f "%f" , & T ) ;
pi=R*T*M;
p rin tf(W
96 f a t m " , p i ) ;
break;
case
p r e s i n vapor d e l
s o l v e n t e \ n ) ;
s c a n f ( n^ f u, & P v a p s o l v ) ;
p r i n t f f u\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 n) ;
scanf("*6f",&Xsolv);
Pvapsln=Pvapsolv*Xsolv;
p r i n t f ( u%f atm" , P v a p s l n ) ;
break;
de fau lt:
p r i n t f f \n O p c i n i n c o r r e c t a " ) ;
}
g e t c h f );
www.FreeLibros.me
274
Captulo 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 " );
{
case
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
scanf("*6f" ,&Pg);
Sg=kh*Pg;
p rin tf("% f n/L",Sg);
break;
case
scanf("*6f",&Sg);
p r i n t f ( " \ n Ahora l a
s c a n f ( "%f" , & P g ) ;
kh=Sg/Pg;
p r i n t f ( "%f n / L
atm ",kh);
break;
case
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
275
}
getch();
{
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
p r i n t f ( "\ n Q u e c o s t o u n i t a r i o
de l a
empresa G e l s t r a p \ n " ) ;
deseas c a l c u l a r \ n " );
{
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
m a t e r i a l e s ha d i s m i n u i d o l o
costo u n ita r io
de
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
www.FreeLibros.me
el
costo u n it a r io
que p r o v o c a mas
de mano
276
Captulo 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) ;
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
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
p rin tf
que s e p u ede o b s e r v a r l a l u z
( " 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
s c a n f ("%d",&1);
sw itch
son:\n");
(1)
www.FreeLibros.me
onda\n");
de
case
1: p r i n t f ( " o n d a s f u e r a d e l r a n g o de l a
277
lu z
v i s i b l e \ n " );
break;
c a s e 2: p r i n t f ( " e l
c o l o r es v i o l e t a \ n " );
break;
c a s e 3: p r i n t f ( e l
c o l o r es i n d i g o \ n " );
break;
c a s e 4: p r i n t f ( " e l
c o l o r es a z u l \ n " );
break;
c a s e 5: p r i n t f ( " e l
c o l o r es v e r d e \ n " );
break;
c a s e 6: p r i n t f ( " e l
c o l o r es a m a r i l l o " );
break;
case
7: p r i n t f ( e l
c o l o r es n a r a n j a \ n " );
break;
c a s e 8: p r i n t f ( " e l
c o l o r es r o j o \ n " ) ;
de fau lt:
p r i n t f ( " L a onda e s c a p a a l a
l o n g i t u d de onda de l a
lu z
v i s i b l e \ n " );
}
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
Captulo 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 );
{
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
progresin
s c a n f f U96d" , &n) ;
p r i n t f f "Dame e l
");
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
comn " ) ;
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
");
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);
*/
# 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
progresin
) ;
s c a n f f "%f" , & x ) ;
printff"D am e e l
v a l o r de l a
razn
");
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
Captulo 9
Ejercicios resueltos
p r i n t f ( "= %. 2 f " , r e s u l ) ;
getchf);
{
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
{
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 " ) ;
(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
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 ) ;
}
}
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
%c/ p e s o s ,
promedio:
\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 :
%. 2 f \ n " , sumasf , s u m a s f / s f ) ;
g e t c h f );
{
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
del
o lla s
de c o n c r e t o segn r e s i s t e n c i a
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
x=x +50;
}
getch();
}
www.FreeLibros.me
282
Captulo 9
Ejercicios resueltos
{
c l r s c r ( );
double cov1 , r ,
x,
double r c o v , rdx,
in t
y,
dx,
dy;
rd y , dx1, dy1;
cont= 0 ;
{
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 " ) ;
v a l o r de y \ n " ) ;
}
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
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();
{
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
de l o s p r o d u c t o s s e a l a misma que l a
getchf);
}
www.FreeLibros.me
de l o s
masa t o t a l
re activ os",m );
284
Captulo 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
Cuantos elementos t i e n e e l
e l e m e n t o s de un c o m p u e s t o \ n \ n
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
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
total
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
del sistem a:
presin
") ;
s c a n f ( "%f" , & P T ) ;
p r i n t f ( " \ n Ahora l a
c a n t i d a d de e l e m e n t o s / c omp uest os t i e n e l a
mezcla
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
Captulo 9
Ejercicios resueltos
p r i n t f ( " \n A h o r a l o s gramos d e l
elemento\n");
scanf("% f",&g);
a=(g*6.023e23)/pa;
p r i n t f ( \n%f
t o m o s \ n \ n Desea c a l c u l a r l o
de n u e v o ? S/N:
,a);
scanf("% s",&op);
}
getch();
d e t e r m i n a n t e dados e l
vector y el
cofactor
*/
#include<stdio.h>
Hinclude<conio.h>
v o id main()
{
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
p r i n t f ( Dame e l
d e t e r m i n a n t e dados e l
o r d e n de l a m a t r i z
cofactor y el
) ;
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
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
",i) ;
v e c t o r \ n ) ;
287
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 ;
p r i n t f ("C alcu la l a
printf("Dam e l a
frecuen cia r e la t iv a
cantid ad t o t a l
de n d a t o s \ n " ) ;
de o b s e r v a c i o n e s a e v a l u a r
scanf("% f",&n);
p r i n t f ( " D a m e e l numero de c a t e g o r a s
") ;
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 ) ;
}
while(i<= c) ;
getch();
www.FreeLibros.me
,frec);
) ;
288
Captulo 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
s w i t c h (1 )
case
case
'I':
g o t o x y ( 2 2 , 10);
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;
case
'Z' : g o to x y (24,10);
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
Captulo 9
Ejercicios resueltos
<c o ni o. h >
Hiel u d e
<stdio.h >
v o i d mai n ()
{
e lrse r
();
float v f ,
vo,
c h a r op;
op= 's';
w h ile
a,
t;
( 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
s c a n f ("^f",
& vo);
p r i n t f ("Dame l a
s c a n f ( n96 f " ,
for
v e l o c i d a d i n i c i a l \ n " );
a c e le r a c io n \ n " );
& a);
( t = 1 ; t<=8; t++)
{
vf=vo+(a*t);
p rin tf
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
s c a n f ("9ss",
v e l o c i d a d f in a l? \ n " );
& op);
}
getch
();
www.FreeLibros.me
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
{
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);
{
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
Captulo 9
Ejercicios resueltos
( c o n t = 1 ;c o nt < = t r a ; c o n t + + )
{
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
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
concentracin 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 ?
");
primer d i l u c i n
es:
",c2);
( 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 centracin 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 :
masa d e l c o m p u e s t o : " ) ;
www.FreeLibros.me
");
294
Captulo 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 ) ;
}
g e t c h f );
{
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 :
") ;
concentracin 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
( 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
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);
{
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 %;
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
p r i n t f ( " \ n La p re s i n t o t a l
d e l componente es:
es
getchf);
www.FreeLibros.me
",i);
296
Captulo 9
Ejercicios resueltos
v a r i a n z a de X */
#include<stdio.h>
Hinclude<conio.h>
void main()
{
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 " ) ;
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
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 );
n */
# i n c l u d e < s t d i o . h>
f f i n c l u d e < c o n i o . h>
v o id main()
{
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
",i) ;
p r i n t f ("Dame l a
constante
");
p r i n t f ("Dame e l e x p o n e n t e
");
297
scanf("% d",&x);
que o r d en q u i e r e s c a l c u l a r l a
derivada?
");
scanf("%d",&o);
f o r ( i =1 ;i<=o;i ++)
{
x*=n;
}
prin tf("La
d e r iv a d a es
%c/XA%c/\n" , x, n)
getchf);
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>
t t i n c l ude <mat h . h >
void m ain()
{
in t
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
(mximo 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
}
for
(i=0 ; i < e ; i = i + 1) a a [ i ] = a [ i ] * a [ i ] ;
AA =aa[ 0 ] ;
for
p rintf("% i",A A );
g e t c h f );
}
www.FreeLibros.me
v e c to r",i+ 1 );
Captulo 9
Ejercicios resueltos
{
i n t i,a[3],b[3 ],ab[3 ],A B ;
p r i n t f ( " P r o d u c t o c r u z de dos v e c t o r e s " ) ;
p r i n t f ( " Re c u e r d a que so n de 3 e l e m e n t o 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 % d e l p r i m e r v e c t o r " , i + 1) ;
sca n f("% i",& a [i]);
}
for
{
p r i n t f ( " Dame e l
}
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
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
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
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);
p r o y e c c i n e n t r e d o s v e c t o r e s de n e l e m e n t o s */
#include<stdio.h>
t t i n c l u d e < c o n i o .h>
v o id main()
{
in t n ,i;
www.FreeLibros.me
299
300
Captulo 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 " );
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
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);
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:
") ;
}
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 ("{
for
");
( i = 0 ;i < n ; i ++ )
{
com=v1 [ i ] * e s c ;
p rin tf(
"%. 2 f
" ,com) ;
}
p rin tf("} \n ");
p r i n t f ( " \nDesea c a l c u l a r o t r a p r o y e c c i n ? S / N " ) ;
s c a n f ( "%s", & o p ) ;
}
www.FreeLibros.me
es l a
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
vectores:
") ;
( 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);
}
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 :
}
for
( i = 0 ;i < n ; i ++ )
www.FreeLibros.me
" , i + 1) ;
302
Captulo 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);
d e s v i a c i n e s t n d a r y v a r i a n z a m u e s t r a l de n d a t o s
#include<stdio.h>
i t i n e l ude <coni o. h>
# i n c lu d e< ma th . h>
v o id main()
{
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
*/
d e sv ia ci n estndar y l a
303
v a r i a n z a de n d a t o s \
n\n");
p r i n t f ( " Dame e l numero de d a t o s de t u m u e s t r a :
");
( 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);
prin tf("\n La
v a r i a n z a es i g u a l
a 96 . 3 f \ n " , v a r ) ;
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
g e t c h f );
< co ni o. h>
ttinclude
<stdio.h >
{
c lrs c r
();
www.FreeLibros.me
304
Captulo 9
float v 1 [ 1 0 ] ,
in t i,
v 2 [ 10],
Ejercicios resueltos
v3[ 1 0 ] ;
n;
( " p r o d u c t o p u n t o e n t r e 3 v e c t o r e s \ n u) ;
w h ile
{
p rin tf
("Dame l a m edi da de l o s
scanf
for
v e c t o r e s max 1 0 \ n " ) ;
& n);
( i = 0 ; i < n ; i++)
{
p r i n t f ("Dame e l
s c a n f ("%f",
d a t o %c/ d e l p r i m e r v e c t o r \ n " , i + 1 ) ;
& v1 [ i ] );
p r i n t f ("Dame e l d a t o %c/ d e l
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
s c a n f ("%f",
segundo v e c t o r \ n " , i + 1 ) ;
t e r c e r v e c t o r \ n " , i+ 1);
& 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,
p rin tf
v1 [ i ] * v 2 [ i ] * v 3 [ i ] ) ;
("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 o ni o. h >
include
<stdio.h >
H i n d u de <math.h>
v o i d mai n ()
{
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 g r e s i o n \ n " );
www.FreeLibros.me
r e c t a de
w h ile
305
( 0p = =' S '\\op=='S')
{
p r i n t f ("Dame l a
s c a n f ("%d",
for
c a n t i d a d de d a t o s ,
max 3 0 \ n " ) ;
& n);
( i = 0 ; i < n ; i++)
{
p rin tf
("Dame un v a l o r d e l
s c a n f ("%f",
p rin tf
& x [ij);
("Dame un v a l o r d e l
e j e x \ n " );
e j e y \ n " );
& y [i]);
a= a+ (x [i]*y [i]);
b=b+x[i];
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
s c a n f ("%d",
v a l o r de X \ n " ) ;
& 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);
& op);
}
getch
();
< co ni o. h>
ttinclude
<stdio.h >
www.FreeLibros.me
B1);
306
Captulo 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;
( " 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 " ) ;
(op=='s'\\op=='S' )
{
p r i n t f ("Dame l a
s c a n f ( a%du,
for
c a n t i d a d de d a t o s ,
max.
3Q\n");
& n);
( i = 0 ; i < n ; i++)
{
p rin tf
("Dame un v a l o r d e l
s c a n f ("%f",
p rin tf
& x [ i ] );
("Dame un v a l o r d e l
scanf ( " * f ,
e j e x \ n " );
e je y \ n " );
& 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
p rin tf
c o e f i c i e n t e de c o r r e l a c i n
cdc);
( " 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
e s 96 f \ n " ,
();
<c o ni o. h >
itinelude
<stdio.h >
itinelude
<math.h>
v o i d mai n ()
www.FreeLibros.me
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;
( " E l programa c a l c u l a l a
co v a ria n za \n ");
(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
s c a n f ("*6f",
p rin tf
& x [ij);
("Dame un v a l o r d e l
scanf ( " * f ,
e je x \ n " );
e j e y \ n " );
& y [i]);
a= a+ (x[i]*y[i]);
b=b+x[i];
c=c+y[i];
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
();
www.FreeLibros.me
308
Captulo 9
Ejercicios resueltos
v o id main()
{
in t
float
d , p [ 3 0 ] , g [ 3 0 ] , p a [ 30] ,ac=0,acu=0,acum=Q, x , i ;
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
< co ni o. h>
include
<stdio.h >
v o i d mai n ()
{
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);
& x);
for
( j = 0 ; j <x; j++)
{
p rin tf
("Dame e l
scanf ( ' W ,
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 ) ;
& 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
309
310
Captulo 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
nCuantos t i p o s
re siste n cia
de c o n c r e t o s seg n l a
de c o n c r e t o s t i e n e s ?
semana de p r u e b a \
\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
{
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();
y
9.10.3 Calcular la determ inante de un matriz triangular
/ * 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 */
# i n c l u d e < s t d i o . h>
www.FreeLibros.me
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
de l a
m atriz
(m x.
10x 1 0 ,
Introduzca e l
tamanio
s o l o m a t r i c e s c u a d r a d a s \ n u) ;
(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);
}
}
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
Captulo 9
p r i n t f ( " \n Dame e l
Ejercicios resueltos
v a l o r en l a p o s i c i n W , M " , i + 1 , j +1);
}
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
(j]);
getch();
www.FreeLibros.me
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
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 " ) ;
{
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
%c/ p i e z a s
, 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
Captulo 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
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
p r i n t f ( \n\tPor l o
de h o r a s de l a
tanto,
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
{
for
(j=0 ;j<c;j++)
{
p r i n t f ( "Dame e l
}
}
p r i n t f ( " \n\nM atriz o r i g i n a l \ n " );
for
www.FreeLibros.me
315
316
Captulo 9
for
Ejercicios resueltos
( 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
for
m atriz:
\n");
( 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);
de m a t r i z p o r un e s c a l a r
*/
#include<stdio.h>
Hinclude<conio.h>
v o id main()
{
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 :
www.FreeLibros.me
, i + 1 , j +1 ) ;
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 :
");
{
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();
# 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 main()
{
textcolor(BLACK);
textbackground(WHITE);
i n t i , j , m a t [ 10] [ 10],n,cont= Q;
c h a r op;
do
{
c lrs c rf);
www.FreeLibros.me
318
Captulo 9
for
Ejercicios resueltos
( j = 0 ; j<n; j ++)
{
p r i n t f ( " Dame e l
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
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
getch();
<c o ni o. h >
H include
<stdio.h >
v o i d mai n ()
{
char o p = ' s ' ;
e lrse r
();
in t i,
j,
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
m1[ 1 0 ] [ 1 0 ] ,
m2[1 0 ] [ 1 0 ] ,
m3[10][10],
{
p r i n t f ("Dame e l t o t a l
scanf
p rin tf
, & m);
("Dame e l t o t a l
scanf
for
de f i l a s \ n " ) ;
de c o l u m n a s \ n " ) ;
& n);
( i = 0 ; i<m; i++)
for
( j = 0 ; j <n; j++)
www.FreeLibros.me
m, n;
cont++;
p rin tf
("Dame e l
i+ 1,
1\n",
& m1 [ i j [ j j ) ;
("Dame e l
+ i,
m atriz
1+V;
319
m atriz 2 \n ",
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
();
<c o ni o. h >
include
<stdio.h >
v o i d mai n ()
{
in t i,
j,
n,
float t [ 3 J [ 3 ] ,
e lrse r
m[3 ] [ 3 ] ,
det3;
a;
();
( " E l programa 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 de
3x3\n");
w h ile
p r i n t f ("Dame l a m a t r i z 3 x 3 \ n " ) ;
www.FreeLibros.me
320
Captulo 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 " ,
scanf ( ' * d \
+1,
j + 1 );
& 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]
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 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
321
{
p rin tf
fo r
("Dame l a
(i= 0;
i<n;
2x2\n");
i ++)
(j= 0 ; j<n;
fo r
m a triz
j++)
{
p rin tf
scanf
("Dame e l
("%d",
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);
& m[i][j]);
}
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
p rin tf
a + b + c + d + e );
("Deseas c a l c u l a r
s c a n f ( " %s " ,
otro
determ inante?
s/n\n");
& op);
>
getch
();
>
< c o n i o . h>
in clu d e
<stdio.h>
H include
<wath.h>
v o id main
()
{
e lrse r
();
float x [ 2 0 ] 2 0 ],
in t
y [ 2 0 ] [ 2 0 ];
i,j,f,c;
p rin tf
("El
p rin tf
("Dame e l n u me ro de f i l a s \ n " ) ;
scanf
p rin tf
scanf
fo r
("%d",
programa t e
da u na m a t r i z y l a
ra z
& f);
("Dame e l n u me ro de c o l u m n a s \ n " ) ;
("*d",
(i=0;
& c);
i< f;
i++)
www.FreeLibros.me
de l a
m ism a\n");
322
Captulo 9
Ejercicios resueltos
{
p r i n t f ( ' L e c t u r a de l a
for
f i la %c/ de l a m a t r i z a :
\ n u, i ) ;
(j = 0 ; j <c; j++)
{
p rin tf
("a
( *d,
scanf
%c/;=\ i ,
j);
& x [i][j]);
y [i1 lll=
sqrt ( x [ i] [ jj) ;
}
}
p rin tf
for
( " M a t r i z o r i g i n a l \ n " );
(= 0 ; i < f ; i++)
{
for
( j = 0 ; j < c ; j++) p r i n t f
p rin tf
C * 5 .2 f,
x [ij[jj);
("\n");
}
p rin tf
for
("M atriz r a z
(i= 0; i< f;
c u a d r a d a \ n " );
i++)
{
p r i n t f ( "%5. 2 f " , y [ i ] [ j ] ) ;
p rin tf
("\n");
}
getch
();
{
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
www.FreeLibros.me
p ro d u ccio n \n ");
p r i n t f ( "Dame e l
costo in d ir e c t o
323
de m a n u f a c t u r a \ n " ) ;
c o s t o de t r a b a j o i n i c i a l
en p r o c e s o \ n " ) ;
s c a n f f "%f" , & t i ) ;
printf("Dam e e l
costo del
t r a b a j o final en p r o c e s o \ n " ) ;
c o s t o de a r t c u l o s m a n u f a c t u r a d o s es=$*6fn,c am );
}
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 " ) ;
}
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
www.FreeLibros.me
e s $%.3 f " , t o t a l ) ;
324
Captulo 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 " ) ;
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
p r i n t f ( \nQue c o s t o u n i t a r i o
de l a
empresa G e l s t r a p \ n " ) ;
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 ( "Opcin i n v a l i d a " );
}
getchf);
m olaridad*/
# i n c l u d e < s t d i o .h>
Uinclude<conio.h>
v o i d m o l a r i d a d ()
{
www.FreeLibros.me
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 :
");
}
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
la
masa de l a
solu cin :
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 ,
") ;
s c a n f f "%f , & s o l u c i o n ) ;
p m = ( c o m p / s o l u c i n ) *1 0 0 ;
p r i n t f ( " \ n E l p o r c e n t a j e es:
www.FreeLibros.me
326
Captulo 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);
norm alidad*/
# 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 n o r m a l i d a d ()
{
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.
c omponente; i n t r o d z c a l o s :
de e q u i v a l e n t e s q u m i c o s d e l
") ;
volumen de l a
s o l u c i n en l i t r o s :
}
void main()
{
c h a r op;
c l r s e r f );
do
www.FreeLibros.me
");
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);
< co ni o. h>
#i n c l u d e
<stdio.h >
float v , d,
void v e l
t;
()
{
p rin tf
("Dame l a
s c a n f ("%f",
p rin tf
d is t a n c ia \ n " );
& d);
("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
s c a n f ("%f",
p rin tf
v e lo c id a d \ n " );
& v);
("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
s c a n f ("%f",
p rin tf
v e lo c id a d \ n " );
& v);
("Dame l a
d i s t a n c i a \ n ) ;
www.FreeLibros.me
");
328
Captulo 9
scanf
Ejercicios resueltos
& d);
t=d/v;
p rin tf
("El
t i e m p o e s %7. 2 f s \ n , t ) ;
}
v o i d mai n ()
{
e lrse r
in t
();
f;
c h a r o p = 's ';
w h ile
{
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
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,
switch
& f);
(f)
{
c a s e 1: p r i n t f
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
scanf
("Deseas r e p e t i r l a
funcin? s/n\n");
& op);
}
getch
();
<c o ni o. h >
H include
<stdio.h >
www.FreeLibros.me
d ista n cia
3)el
float e,
f,
q;
v o i d c am po _e l e ()
{
p rin tf
("Dame l a
s c a n f ( " % f a,
p rin tf
& f);
("Dame l a
scanf
f u e r z a \ n " );
ca rg a \n ");
& q);
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
scanf ("*f",
p rin tf
& e);
("Dame l a
scanf
ca rg a \n ");
& q);
f =e*q;
p rin tf
("L a f u e r z a es
. 2 f ",
f);
}
void carga
()
{
p rin tf
s c a n f ("%f",
p rin tf
& e);
("Dame l a
s c a n f ('% f",
fuerza
\ n ");
& f);
q=f/e;
p rin tf
( " L a c a r g a e s % 7 .2 f " ,
q);
}
v o i d mai n ()
{
clrs c r
in t
();
f;
(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
329
330
Captulo 9
scanf ( V ,
switch
Ejercicios resueltos
& f);
(f)
{
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
("Carga\n");
();
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
scanf
("Deseas r e p e t i r l a
("%s",
funcin? s/n\n");
& 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
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
cuantos c o s t a l e s n e c e s it a s \
p r i n t f ( "Te 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 c u a n t o s
que n e c e s i t a s e s % d " , n l ) ;
}
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
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);
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
Captulo 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 " ) ;
printf("Dam e l a
x de l a
p rim e ra coordenada
");
p r i n t f ( " D a m e l a y de l a
p rim e ra coordenada
");
s c a n t ( U96f" , & y 1 ) ;
p r i n t f ( " \nSegundo p u n t o \ n \ n " ) ;
p r i n t f ( uDame l a
x de l a
segunda c o o r d e n a d a
") ;
segunda c o o r d e n a d a " ) ;
scant('%t',&y2);
d i s t = s q r t ( ( x 2 - x 1) * ( x 2 - x 1)+(y2 -y1) * ( y 2 - y 1) ) ;
p r i n t t ( " \ n \ n L a d i s t a n c i a e s de %. 2t u n i d a d e s " , d i s t ) ;
>
e x c e n t r i c i d a d de una e l i p s e
Hinclude<conio.h>
#include<stdio.h>
t t i ncl ud e< ma th .h>
v o id e x c _ t u n ( );
void main()
www.FreeLibros.me
s i n p a s o de p a r m e t r o s
*/
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
");
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();
n 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>
v o i d d e r _ f u n ( );
v o id main()
www.FreeLibros.me
*/
334
Captulo 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
");
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();
www.FreeLibros.me
# 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
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 " ) ;
(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
del
d e p ar t a me nt o de i m p r e s i n es
(dp==2 ) p r i n t f ( " E l
costo in d ir e c t o
$%f" , dimpre(dp,mam, m a n , i n s ) ) ;
g e t c h f );
www.FreeLibros.me
335
336
Captulo 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;
costos u n ita r io s
p r i n t f ( "\ n Q u e c o s t o u n i t a r i o
de l a
empresa G e l s t r a p \ n " ) ;
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
$%. 3 f " , c o s i n d ( c i n ) ) ;
www.FreeLibros.me
es
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();
e x c e n t r i c i d a d de una e l i p s e c on p a s o de p a r m e t r o s */
U 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 >
float e x c _ f un ( f l o a t x, fio a t y ) ;
v o id main()
{
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
") ;
337
338
Captulo 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 " ) ;
n con 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>
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
in t
d e riv_exp (int x , in t n , i n t
o);
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
p r i n t f ( " \nDame l a
n de o r d e n s u p e r i o r \ n n) ;
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
");
") ;
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;
< co ni o. h>
ttinclude
<stdio.h >
float v e l
( f l o a t a,
fl oat b)
{
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
339
340
Captulo 9
Ejercicios resueltos
{
e lrse r
();
f l o a t v,
in t
d,
t;
f;
{
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",
switch
& f);
(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
scanf C * f ,
& d) ;
p r i n t f ("Dame e l
s c a n f ("%f",
v = vel
p rin tf
d i s t a n c i a \ n " );
tiem po\n");
& t);
(d, t ) ;
( " 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
s c a n f ("%f",
d i s t a n c i a \ n " );
& d) ;
p r i n t f ("Dame l a
s c a n f ("%f",
v e l o c i d a d \ n " );
& 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
s c a n f ("%f",
& v);
p r i n t f ("Dame e l
s c a n f ("%f",
d=dist
v e l o c i d a d \ n " );
tiem po\n");
& t);
( v , t );
p r i n t f ("La d is ta n c ia
e s 96 7 . 2 f m \ n " ,
break;
d e fau lt: p r i n t f
( " E r r o r de c a s o \ 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
d);
s c a n f ( a* s u, & o p ) ; }
getch
();
< co ni o. h>
ttinclude
<stdio.h >
float f u e r z a
( f l o a t a,
f l o a t b)
{
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 ,
in t
m,
a;
f;
c h a r o p = 's ';
w h ile
{
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",
switch
& f);
(f)
{
case 1: p r i n t f ( " F u e rz a \n ");
p rin tf
scanf
p rin tf
("Dame l a
masa\n") ;
& m);
("Dame l a
s c a n f ("*6f",
a c e le r a c io n \ n " );
& a);
www.FreeLibros.me
342
Captulo 9
F = fuerza
p rin tf
Ejercicios resueltos
(m, a) ;
( " 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
scanf ("*f",
fu e r z a \ n " );
& 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
scanf ( " * f ,
f u e r z a \ n " );
& F);
p r i n t f ("Dame l a m a s a \ n ") ;
scanf
& m);
a= aceleracin
( 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
scanf
f u n c i o n ? \ n " );
& op);
}
getch
();
<c o ni o. h >
itinclude
<stdio.h >
in t
c,
h , a1, a2,
float a l c a n o
a3;
( f l o a t c)
{
return
2 *c+2 ;
>
float
alq ueno
( f l o a t c)
www.FreeLibros.me
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
{
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);
(x);
alq ueno
(x);
a lq uino
(x);
i f
& h);
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,
p r i n t f ("Deseas r e p e t i r l a
scanf
no p e r t e n e c e a n i n g n g r u p o \ n " ) ;
& op);
}
getch
();
www.FreeLibros.me
344
Captulo 9
Hinclude
Ejercicios resueltos
<stdio.h >
float r e s i s t e n c i a
( f l o a t a,
f l o a t b)
{
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)
f l o a t b)
{
r e t u r n a*b;
}
{
r e t u r n a/b;
}
v o i d mai n ()
{
e lrse r
();
float r ,
in t
v,
a;
f;
c h a r o p = 's ';
w h ile
{
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',
sw itch
& f);
(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
scanf ("*f",
& v);
p r i n t f ("Dame e l
s c a n f ("%f",
r
v o lt a j e \ n " );
am p e raje\n ");
& a);
= re siste n cia
p rin tf
(r,a);
("La r e s i s t e n c i a
e s % 7 .2 f Ohms\n" , r ) ;
break;
case 2 : p r i n t f ( " v o l t a j e \ n " );
p rin tf
scanf ("W ",
( Dame l a
& r);
p r i n t f ("Dame e l
s c a n f ("%f",
r e s i s t e n c i a \ n " );
am p e raje\n ");
& a);
www.FreeLibros.me
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
p rin tf
s c a n f ( U96f*,
p rin tf
("Dame l a
r e s i s t e n c i a \ n " );
& r);
("Dame e l
v o lt a j e \ n " );
("El
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 c a l c u l a r o t r a f u n c i o n ? \ n " );
scanf
getch
& op);}
();
<stdio.h >
float ca mp o _e l e ( f l o a t a,
float b)
{
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
345
346
Captulo 9
Ejercicios resueltos
i n t g;
c h a r o p = 's ';
w h ile
{
p r i n t f ("Dame l a
n 2 ) fu e rz a \ n 3 ) c a rg a \ n ");
s c a n f ("%d",
sw itch
& g);
(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
s c a n f ("%f",
("Dame l a
fu e r z a \ n " );
& f);
p r i n t f ("Dame l a
s c a n f ("*6f",
c a r g a \ n " );
& 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
s c a n f ("%f",
("Dame e l
& e);
p r i n t f ("Dame l a
s c a n f ("%f",
f= f u e r z a
campo e l e c t r i c o \ n " ) ;
c a r g a \ n " );
& q);
(e,q);
p r i n t f ( " L a f u e r z a e s 96 7. 2f m\ n" ,
f);
break;
c a s e 3: p r i n t f ( " c a r g a \ n " ) ;
p rin tf
s c a n f ("*f",
("Dame e l
campo e l e c t r i c o \ n " ) ;
& e);
p r i n t f ("Dame l a
s c a n f ("%f",
f u e r z a \ n " );
& f);
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",
getch
& op);}
();
www.FreeLibros.me
{
in t
t=0 , 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
p rin tf("\n \t\tE lija
de l i b r o s mas v e n d i d o s \ n " ) ;
su l i b r o
(Ingrese e l
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
c o d ig o ) :\n \ n ");
\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 " ) ;
p r i n t f ( n\ t \ t L a
t r e g u a ...............................
3 ......... $ 1 9 0 \ n " ) ;
scanf("%d",&op);
www.FreeLibros.me
347
348
Captulo 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
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 ) ;
for
(i=0 ;i<tra;i++)
{
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 " ) ;
sca n f ("tif",&pa[ 1 00 ]);
if
( p i e [ 10 0 ] <= 3 0)
{
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
349
350
Captulo 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 " );
( 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 " );
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
c d ( in t c[4])
{
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 ;
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
Captulo 9
c a s e 2:
Ejercicios resueltos
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 );
{
float p e ,
in t
e,
i,
muestra,
m oles[ 1 0 ], p o r c ,
comp;
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
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
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
for
form ula d e l
compuesto s o n : ) ;
}
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 );
y
9.14.6 Calcular el reactivo lim itante de un elem ento
/*Reactivo l i m i t a n t e * /
# i n c l u d e < s t d i o . h>
ttin clu de< conio . h >
void r l ( )
{
float r e a c , p m , m o l e s [ 1 5 ] , c o m p ;
in t
c , i , elemento;
reaccin
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
(no mas de 1 5 ) ) ;
C aptulo 9
354
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();
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
(mximo 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
}
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] ;
}
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
v e c t o r " , i+ 1);
{
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
for
ele m e n to s");
(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) ;
s c a n f( " M ",& a [i]) ;
}
for
(i=0;i<3;i=i+1)
{
p r i n t f f "Dame e l
}
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
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
355
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
E je r c i c i o 3 .2
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 .....................................
E n c u e n tre el re a d e u n tra p e c io ................................................................
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
42
44
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
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
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
72
E je r c i c i o 4 .5
77
E je r c i c i o 4 .6
79
E je r c i c i o 4 .7
E je r c i c i o 5.1
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 .....................................
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 ......................
82
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 ..............................................................................
E je r c i c i o 5 3
E je r c i c i o 5 .4
E je r c i c i o 6.1
E je r c i c i o 6 .2
E je r c i c i o 6 3
E je r c i c i o 6 .4
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
112
128
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
131
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 ..........................................................................................
E je r c i c i o 6 3
132
E je r c i c i o 6 .6
105
134
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 ......................................
www.FreeLibros.me
143
358
Ejercicio 6.7
Ejercicio 6.8
R e a liz a r la su m a d e d o s m a tric e s, c o n u n a d im e n si n
d e h a s t a 4 X 4 ..................................................................................................
L e e r u n a rre g lo d e c a ra c te re s c o n la in s tru c c i n s c a n f
y m o s tra r lo c a p tu ra d o ...................................................................................
Ejercicio 6.9
145
155
157
159
Ejercicio 7.1
(versin 1)
160
A lm a c e n a r e n u n a e s tru c tu ra el n o m b re y lo s a p ellid o s
d e u n a p e rso n a , y c re a r o tra e s tru c tu ra q u e c o n te n g a
el n o m b re , a d e m s d e tre s c a lific a c io n e s; a lm a c e n a r e sto
e n u n a rre g lo , in ic ia liz a rlo , a g re g a r d a to s y m o s tr a r lo s .................
Ejercicio 7.2
(versin 2)
178
A lm a c e n a r e n u n a e s tru c tu ra el n o m b re y lo s a p ellid o s
d e u n a p e rso n a , y c re a r o tra e s tru c tu ra q u e c o n te n g a
el n o m b re , a d e m s d e tre s c a lific a c io n e s; a lm a c e n a r e s to en
u n a rre g lo . In ic ia liz a r el a rre g lo , a g re g a r d a to s y m o stra rlo s.
Ejercicio 7 3
(versin 3)
(S o lu c i n u s a n d o fu n c io n e s y a p u n ta d o re s ) ........................................
A lm a c e n a r e n u n a e s tru c tu ra el n o m b re y lo s a p ellid o s
181
Ejercicio 8.1
183
Ejercicio 8.2
219
www.FreeLibros.me
225
n d ic e d e e j e m p l o s
E je m p lo 1.1
E je m p lo 2 .1
P ro g ra m a q u e le e d o s d a to s y los m u e s t r a ............................................
E x p re sio n e s v lid a s y c o m e n ta rio a la s o lu c i n ..................................
15
25
E je m p lo 2 .2
C a lc u le el re s u lta d o d e la s ig u ie n te e x p r e s i n ....................................
31
E je m p lo 3 .1
E s tru c tu ra m n im a d e u n p ro g ra m a e n le n g u a je C ,
v e rs i n 1 ............................................................................................................
39
E s tru c tu ra m n im a d e u n p ro g ra m a e n le n g u a je C ,
v e rs i n 2 ............................................................................................................
40
E je m p lo 3 .2
E je m p lo 4 .1
D e te rm in a r si u n a lu m n o a p ro b u n c u rs o a p a rtir
d e l p ro m e d io q u e o b tu v o d e su s tres c a lific a c io n e s
d e lo s p a rc ia le s q u e s e h ic ie ro n d u ra n te el s e m e s t r e .......................
60
E je m p lo 4 .2
61
E je m p lo 4 3
D e te rm in a r si u n a lu m n o a p ro b o re p ro b u n c u rs o a p a rtir del
p ro m e d io q u e o b tu v o e n su s tres c a lific a c io n e s p a rc ia le s
E je m p lo 4 .4
64
65
E je m p lo 4 3
70
E je m p lo 4 .6
E je m p lo 4 .7
71
I n d ic a r u n d a d e la se m a n a y q u e el p ro g ra m a e sc rib a
el n m e ro d e d a q u e le c o r r e s p o n d e .....................................................
74
E je m p lo 4 .8
E je m p lo 5.1
R e a liz a r la o p e ra c i n q u e s e e lig e d e l m e n v i s u a l i z a d o
Im p rim ir lo s n m e ro s e n te ro s d e l 1 al 1 0 ............................................
75
94
E je m p lo 5 .2
S u m a r lo s n m e ro s e n te ro s d e l 1 al 5 e im p rim ir el r e s u l t a d o . . .
95
E je m p lo 5 3
96
97
E je m p lo 5 3
98
E je m p lo 5 .6
E je m p lo 5 .4
h a s ta q u e la s u m a s e a m a y o r q u e 5 0 y el p ro d u c to se a
m a y o r q u e 1 5 0 ..................................................................................................
E je m p lo 5 .7
E je m p lo 5 .8
99
O b te n e r el p ro m e d io d e u n a d e te rm in a d a c a n tid a d
d e n m e ro s le d o s d e sd e el t e c l a d o .......................................................
103
104
www.FreeLibros.me
360
E je m p l o 5 .9
E je m p l o 5 .1 0
E je m p l o 5 .1 1
E je m p l o 5 .1 2
109
110
111
128
C o n ta r el n m e ro d e o c a sio n e s q u e a p a re c e la letra
a e n u n a l n e a ...............................................................................................
E je m p l o 6 3
104
151
Im p rim ir e n p a n ta lla , e n m a y s c u la s , u n n o m b re
q u e fu e le d o e n m i n s c u l a s ......................................................................
E je m p l o 6 .4
A lm a c e n a r u n n o m b re e n el a rre g lo d e n o m in a d o
E je m p l o 7 .1
N o mb r e
152
154
M o s tra r e l n o m b re y la e s ta tu ra d e u n a lu m n o
(m a n e jo d e u n a e s tru c tu ra c o m o v a ria b le g l o b a l ) ............................
E je m p l o 1 3
170
E je m p l o 7 .4
169
171
E je m p l o 1 3
U s a r u n n u e v o tip o d e d a to , a lm a c e n a r e n u n a e stru c tu ra
u n d a to d e tip o
E je m p l o 7 .6
n t
y o tro d e tip o
fioat;
m o s tra r e n p a n t a l l a
177
E je m p l o 7 .7
174
186
E je m p l o 7 .8
188
L e e r e n u n a e s tru c tu ra a n id a d a lo s d a to s d e l n o m b re c o m p le to
y la e d ad , a c c e d ie n d o m e d ia n te u n a p u n ta d o r a e s t r u c t u r a
www.FreeLibros.me
189
361
R e s o lv e r el sim p le p ro b le m a d e la s u m a d e d o s s , m e d ia n te
u n a fu n c i n sin p a so d e p a r m e tro s ni d e v o lu c i n d e v a l o r
201
C a lc u la 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
204
D is e a r la s o lu c i n p a ra el c a s o d e la s u m a d e d o s s
m e d ia n te u n a fu n c i n q u e re g re s a u n valo r: el re su lta d o
d e l c lc u lo d e la s u m a ...................................................................................
206
D ise a r, re to m a n d o el e je m p lo d e la fu n c i n q u e c a lc u la
el p ro m e d io , u n p ro g ra m a d o n d e la fu n c i n d e v u e lv a u n v a lo r
q u e s e a c u m u le e n u n a v a ria b le e n main p a ra lu e g o o b te n e r
el p ro m e d io g ru p a l d e n a lu m n o s ............................................................
208
C a lc u la r el re a d e u n t r a p e c i o ..................................................................
209
R e s o lv e r n u e v a m e n te el p ro b le m a d e la su m a d e d o s n m e ro s ,
p e ro u s a n d o u n a fu n c i n c o n p a so d e p a r m e tro s p o r v a l o r
211
C re a r la fu n c i n p a ra s u m a r d o s n m e ro s , p e ro c o n lig ero s
c a m b io s a main p a ra q u e el p ro g ra m a c a lc u le
la s u m a d e c u a tro s ........................................................................................
213
C r e a r u n p ro g ra m a c o n d o s fu n c io n e s: u n a q u e c a lc u le
el c u a d ra d o d e u n n m e ro y o tra q u e c a lc u le el cubo.
A m b a s d e b e n d e v o lv e r el r e s u l t a d o .......................................................
214
215
217
www.FreeLibros.me
218
n d ic e d e t a b l a s
Tabla 1.1
Tabla 1 .2
Tabla 1 3
Tabla 2.1
Tabla 2.2
Tabla 2 3
Tabla 2.4
Tabla 2 3
Tabla 2 .6
T ip o s d e d a to s y m o d ific a d o re s..................................................................
C a d e n a s d e c o n tro l d e tip o p a ra s a l id a ...................................................
7
13
S e c u e n c ia s d e e s c a p e ......................................................................................
14
23
25
O p e ra d o re s d e a s ig n a c i n ............................................................................
26
O p e ra d o re s r e l a c i n a l e s ..............................................................................
28
O p e ra d o re s l g i c o s ........................................................................................
29
O p e ra d o re s y su p rio r id a d ............................................................................
30
Tabla 3.1
B ib lio te c a s d e C .............................................................................................
38
Tabla 8.1
D e s c rip c i n d e la d e fin ic i n d e fu n c i n
www.FreeLibros.me
200
www.FreeLibros.me
www.FreeLibros.me