B
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULT FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN ASIGNATURA DE INTRODUCCIÓN A LA PROGRAMACIÓN 1. Importancia de los lenguajes lenguajes de programación programación, de las abstracciones abstracciones y de las funciones
En este sigl XXI, l! in"#$!%i&n est! '(g!n) el *!*el *#i$#)i!l, en l! +i)! %ti)i!n!, *!#! *)e# e'e%(t!# )e "#$! $s e"i%iente ls *#g#!$!s -(e %nstit(.en ! ls siste$!s )e in"#$!%i&n, ls %(!les ! s( +e/ *e#$iten %nt!# %n in"#$!%i&n *#t(n! . ! (n %st !%%esi0le, *!#! *)e# !.()!# en l! t$! )e )e%isines )ent# )e l!s e$*#es!s1 P!#! l %(!l es ne%es!#i t#!ns"#$!# t#!ns"#$!# ! t#!+2s )e *#%ess ls )!ts 3*#+enientes 3*#+enientes )e )i+e#ss e+ents4 en in"#$!%i&n1 A )i"e#en%i! )e ls *#i$e#s siste$!s )e in"#$!%i&n )el sigl XX, ls )e !5#! estn lleg!n) ! #e!s i$*ens!0les, %$ l sn l!s tele%$(ni%!%ines, l! inteligen%i! !#ti"i%i!l, #e%n #e%n%i$ %i$ien ient t )e +/ +/,, !(t$! !(t$!ti/ ti/!%i !%i&n &n )e *#%es *#%ess s in)(st in)(st#i! #i!les les . #0&ti #0&ti%!, %!, sl sl *# $en%in!# !lg(n!s1 P!#! lg#!# -(e est!s !*li%!%ines, se lle+en ! %!0, es ne%es!#i %nt!# %n leng(!'es )e *#g#!$!%i&n, -(e e+l(%inen e+l(%inen !%#)es %n l!s l!s %#e%ientes %#e%ientes ne%esi)!)es )e este este sigl1 Ests leng(!'es )e *#g#!$!%i&n, *e#$iten e6*#es!# ls !lg#it$s en (n! nt!%i&n "#$!l, -(e se! #e%n%i)! . e'e%(t!)! *# l! %$*(t!)#!, ! est! es*e%i"i%!%i&n se le %n%e %$ *#g#!$!1 Ot# Ot# *(nt *(nt #ele #ele+! +!nt nte, e, es el *#*#-(2 (2 est( est()i )i!# !# l!s l!s %!#! %!#!%t %te# e#7s 7sti ti%! %!ss )e ls ls leng leng(! (!'e 'ess )e *#g#!$!%i&n . es *# l! g#!n #el!%i&n -(e tienen %n el )es!##ll )e siste$!s )e in"#$!%i&n, .! -(e 0(en! *!#te )el *#es(*(est tt!l )e (n *#.e%t )e s"t8!#e, se +! ! l -(e es el $!nteni$ient, %n el *!s )e ls !9s, %!)! +e/ +! !($ent!) este *#%ent!'e, *# e'e$*l en l! )2%!)! )e ls setent! el $!nteni$ient !n)!0! ent#e :;< . =><, en l! )2%!)! )e ls %5ent! !($ent! )el =>< !l ?>< . en l! )2%!)! !%t(!l, )n)e ls *#.e%ts !0!#%!n $!s %!$*s )e l!s !%ti+i)!)es 5($!n!s, este *#%ent!'e 5! !($ent!) ent#e (n @>< . (n >
L! !0st#!%%i&n es (n! *e#!%i&n intele%t(!l -(e ign#! sele%ti+!$ente *!#tes )e (n t) *!#! "!%ilit!# "!%ilit!# s( %$*#ens %$*#ensi&n1 i&n1 S( (s en l! #esl(%i&n #esl(%i&n )e *#0le$! *#0le$!s, s, ign#! ign#! )et!lles )et!lles es*e%7"i%s es*e%7"i%s 0(s%!n) gene#!li)!)es gene#!li)!)es -(e "#e/%!n (n! *e#s*e%ti+! )istint! )istint! $s "!+#!0le ! s( #esl(%i&n1 G#!%i!s ! l!s !0st#!%%ines, se *(e)e 5!%e# -(e el %&)ig "(ente )e (n *#g#!$!, se! in)e*en)iente )el e-(i* )n)e se est2 e'e%(t!n) e'e%(t!n) . )e l!s )i#e%%ines )i#e%%ines "7si%!s )e $e$#i! $e$#i! )n)e se !l$!%enen1 P# P# e'e$ e'e$*l *l si se )e%l!# )e%l!#!! en (n *#g *#g#! #!$! $! es%#it es%#it en C (n! +!#i!0le +!#i!0le ente#! ente#! %$ ! %ntin(!%i&n se $(est#! int j = 10 B
OYANES AGUILAR LUIS , Estructuras de datos en C++, 3SN )e e)i%i&n14, ESPAHA, ESPAHA, MCGRA JILL, K>>, *g1B=
~
B
~
K
A t#!+2s )e est! !0st#!%%i&n )e )!t, se estn $!ne'!n) +!#is !s*e%ts %$ sn El $!ne'!n) ! t#!+2s )e l! +!#i!0le ll!$!)! j )s l%!li)!)es %ntig(!s )e $e$#i! 3!l $ens *!#! l!s +e#sines )e #l!n) C4, -(e *(e)en est!# en %(!l-(ie# *!#te )e l! $e$#i! -(e est2 )is*ni0le, !l $$ent )e e'e%(%i&n )e )i%5 *#g#!$!1 (e )e n e6isti#, %!)! +e/ -(e se e'e%(t!# el *#g#!$!, se ten)#7! -(e $)i"i%!#, *!#! in)i%!# l!s )i#e%%ines "7si%!s )n)e est!#7!n $)i"i%!n) *!#! #e%i0i# ese +!l# )e )ie/1 Y! -(e )(#!nte l! e'e%(%i&n )el *#g#!$! se 5!%e #e"e#en%i! ! es!s )s l%!li)!)es )e $e$#i! ! t#!+2s )el n$0#e )e l! +!#i!0le j . n *# l!s )i#e%%ines "7si%!s en l!s %(!les est! !l$!%en!)! l! +!#i!0le1 Ls ti*s )e +!l#es -(e *(e)e $!ne'!#, -(e en este %!s sl sn ente#s1 El #!ng )e +!l#es -(e lleg! ! %ntene#, -(e *(e)en se# )e 3K B;B4 ! 3K B;B4, si l! +!#i!0le est(+ie#! #e*#esent!)! en %$*le$ent ! (n en $!gnit() . sign, en t!nt -(e se#7! )e 3KB;4 ! 3KB;B4, si en %$*le$ent ! )s1 Ests +!l#es se 0tienen *# l! %!nti)!) )e 0its -(e $!ne'! l! +!#i!0le, en este %!s %$ sn )s l%!li)!)es )e $e$#i!, %!)! (n! )e %5 0its, se tiene )ieseis, *e# l! $it!) sn )el l!) *siti+ . l! $it!) )el l!) neg!ti+ -(e e-(i+!le ! tene# K B; )e %!)! l!), !5#! 0ien +!#i! en %$*le$ent ! )s, *#-(e en 2l n e6iste el %e# neg!ti+1 L!s *e#!%ines -(e se *(e)en #e!li/!# s0#e est! +!#i!0le, -(e se#i!n l! s($! 34, l! #est! 34, l! )i+isi&n 34 . l! $(lti*li%!%i&n 341 •
• •
•
G#!%i!s ! l!s !0st#!%%ines, n se tienen -(e )e"ini# t)s ests )et!lles Q"ins, *!#! $!ne'!# +!#i!0les ente#!s, 0!st! %n )e%l!#!#l!s1 (e )e n e6isti# ls *#g#!$!s )e !*li%!%ines, se#7!n )e$!si!) el!0#!)s, *#-(e se ten)#7!n -(e )e"ini# )e*en)ien) el ti* )e !0st#!%%i&n, (n! g#!n %!nti)!) )e %!#!%te#7sti%!s, -(e !*!#te )e 5!%e#ls $(%5 $s g#!n)es en %&)ig, ls 5!#7! $ens legi0les 3%l!#s41 Es (n! g#!n (tili)!) *!#! el )es!##ll )e *#g#!$!s l -(e sn l!s !0st#!%%ines, *e# 5!. -(e tene# %(i)!) en ell!s, .! -(e (n! inst#(%%i&n e'e%(t!0le %$ l! -(e se $(est#! ! %ntin(!%i&n A + C P(e)e in)i%!# %n el *e#!)# + (suma, -(e A %nten)# el #es(lt!) )e s($!# el +!l# )e ! %n l -(e %ntiene l! +!#i!0le C, sie$*#e . %(!n) l!s t#es +!#i!0les se!n n($2#i%!s !l se# )e%l!#!)!s %$ *# e'e$*l I"#$%$& A, !, C' Pe# t!$0i2n *(e)e signi"i%!# -(e %n el *e#!)# + (concatenación, -(e A %nten)# el #es(lt!) )e !g#(*!# l! %!)en! )e %!#!%te#es )e l! +!#i!0le !, %n l! %!)en! )e %!#!%te#es )e C, si es -(e l!s t#es +!#i!0les se!n )e ti* st#ing 3%!)en! )e %!#!%te#es4, )e%l!#!)!s %$ *# e'e$*l ECDIC ARRAY A, !, C B:, B; unciones
L!s "(n%ines sn (n ti* )e s(0*#g#!$!s . -(e se %$*nen )e %n'(nts )e senten%i!s 3(n! $s4 -(e #e!li/!n (n! )ete#$in!)! t!#e!, *e#$itien) l! #e(tili/!%i&n )e %&)ig, !s7 %$ el )es%$*ne# (n *#0le$! en s(0*#0le$!s, -(e #esl+ien) in)e*en)iente$ente ess s(0*#0le$!s se *(e)en %$0in!# s(s sl(%ines , *!#! 0tene# l! sl(%i&n )el *#0le$! #igin!l1 E6isten "(n%ines -(e sn el!0#!)!s *# ls )ise9!)#es )e ls leng(!'es . t!$0i2n l!s -(e sn %#e!)!s *# ls )es!##ll!)#es )e ls siste$!s )e in"#$!%i&n1
~
K
~
:
De 5e%5 l!s "(n%ines sn (n ti* )e !0st#!%%ines, -(e )e0i) ! l!s %!#!%te#7sti%!s !nte#i#$ente $en%in!)!s, tiene l! "in!li)!), )e "!%ilit!# '(nt %n t#!s 5e##!$ient!s, el t#!0!' )e ls )es!##ll!)#es )e ls siste$!s )e in"#$!%i&n1 (en! *!#te )e l! i$*#t!n%i! )e l!s "(n%ines, #!)i%! en -(e ls *#g#!$!s )e ls )es!##ll!)#es, se *(e)e 5!%e# $(%5 $s %#ts en %(!nt ! %&)ig, 5!%e#ls $s e"i%ientes, en %(!nt !l $!ne' )e l! e"i%ien%i! es*!%i!l 3$!ne' )e l! $e$#i!4 . en el $!ne' )e l! #e%(#si+i)!) 3%!*!%i)!) )e -(e (n! "(n%i&n se ll!$e ! si $is$!41
)enguajes de programación
L! )e"ini%i&n )e ls leng(!'es )e *#g#!$!%i&n, #es(lt! $(. +!#i!)!, *e# (n! )e l!s $s sen%ill! . *#e%is! es Un leng(!'e )e *#g#!$!%i&n, es (n leng(!'e !#ti"i%i!l, el %(!l est %nstit(i) *# (n %n'(nt )e #egl!s sint%ti%!s . se$nti%!s -(e )e"inen s( est#(%t(#! . el signi"i%!) )e s(s ele$ents, #es*e%ti+!$ente1 P(e)e se# (tili/!) *!#! %nt#l!# el %$*#t!$ient )e (n! %$*(t!)#!1 El leng(!'e )e *#g#!$!%i&n es (n siste$! *!#! )es%#i0i# %$*(t!%ines en (n! "#$! legi0le t!nt *!#! l! $-(in! %$ *!#! el se# 5($!n1 Sien) (n! %$*(t!%i&n %(!l-(ie# *#%es, -(e se! #e!li/!) *# (n! %$*(t!)#!, t!les %$ %l%(ls $!te$ti%s, $!ni*(l!%i&n )e )!ts, !l$!%en!$ient . #e%(*e#!%i&n )e l! in"#$!%i&n, *#%es!$ients )e te6t, *#in%i*!l$ente1 Ls leng(!'es )e *#g#!$!%i&n tienen ten)en%i! ! *!#e%e#se ! ls leng(!'es n!t(#!les, *# l $ens en s(s lti$!s gene#!%ines1 Se *(e)e #e!li/!# (n! %l!si"i%!%i&n )e ls leng(!'es )e *#g#!$!%i&n, segn s( ni+el )e !0st#!%%i&n, %$ se $(est#! ! %ntin(!%i&n Leng(!'es )e !' ni+el • • •
Sn %e#%!ns ! l! $-(in!1 Tienen (n 0!' ni+el )e !0st#!%%i&n E$*le!n Leng(!'e $-(in! >Ws . BWs
Leng(!'es )e $e)i ni+el •
•
Utili/! $ne$&ni%s 3*!l!0#!s -(e s(stit(.en ! (n %&)ig )e *e#!%i&n, es )e%i#, (n leng(!'e )e $-(in!4 *!#! *#g#!$!#1 Leng(!'e Ens!$0l!)#1
Leng(!'es )e !lt ni+el • •
Sn %e#%!ns !l *#0le$! Tienen (n !lt ni+el )e !0st#!%%i&n
~
:
~
=
•
E$*le!n *!l!0#!s -(e se (s!n en el leng(!'e n!t(#!l, %!)! +e/ se !%e#%!n $s !l leng(!'e n!t(#!l1
Abstracciones
L! !0st#!%%i&n es (n! *e#!%i&n -(e ign#! l!s *!#tes )e (n t) 3)et!lles es*e%7"i%s4 0(s%!n) gene#!li)!)es *!#! "!%ilit!# s( %$*#ensi&n, est es %nsiste en !sil!# (n ele$ent )el #est )e ls t#s ele$ents1 En t#!s *!l!0#!s, se *(e)e )e%i# -(e l! !0st#!%%i&n es l! %!*!%i)!) )e e6!$in!# !lg, sin %(*!#se )e )e ls )et!lles "ins, ls inte#ns1 G#!%i!s ! s( (s l! sl(%i&n )e *#0le$!s se si$*li"i%! %nsi)e#!0le$ente1 L i$*#t!nte es -(e ls )et!lles )e l! i$*le$ent!%i&n )e0en *ste#g!#se, en es*e%i!l ls )et!lles )e l!s est#(%t(#!s )e )!ts -(e se +!.!n ! (tili/!#1 Des)e el ini%i, se )e0e %(*!# $s *# l -(e el *#g#!$! )e0e 5!%e# . n *# %&$ *(e)e 5!%e#l1 El %$*#t!$ient )el *#g#!$! se !nte*ne !l eng#!n!'e )el $e%!nis$ *!#! lg#!#l L!s *#i$e#!s !0st#!%%ines )e )!ts se tienen en ls leng(!'es ens!$0l!)#es, %n el (s )e ls $ne$t2%ni%s, -(e !(n-(e sig(e #es(lt!n) )i"7%iles )e %$*#en)e#, .! #es(lt!0! $s %&$) *!#! el *#g#!$!)#, -(e el *#g#!$!# en %e#s . (ns, -(e es el leng(!'e )e l! %$*(t!)#!, $s !)el!nte %n l! !*!#i%i&n leng(!'es %$ FORTRAN, COOL . ALGOL ;@ . ?>, se int#)('e#n ti*s )e +!#i!0les )i"e#entes, -(e $!ni*(l!0!n ente#s, n$e#s #e!les, %!#!%te#es, +!l#es l&gi%s, et%1 A *es!# )e l! %#e!%i&n )e $s ti*s )e !0st#!%%ines, se seg(7! tenien) !lg(n!s li$it!ntes, en %(!nt ! l!s ne%esi)!)es )e ls )es!##ll!)#es1 P# e'e$*l, el t#!t!$ient )e %!)en!s es (n! )e"i%ien%i! en FORTRAN, en t!nt -(e l! *#e%isi&n . "i!0ili)!) *!#! %l%(ls $!te$ti%s . $!ne' )e ti*s )e )!ts n($2#i%s es $(. !lt!, in%l(si+e $!ne'! en "#$! )i#e%t! l!s *e#!%ines 0si%!s )e n$e#s %$*le's, en s( "#$!t 0in$i!l1 En %!$0i el $!ne' )e %!)en!s 3stings4, es (n! )e l!s "#t!le/!s )e ALGOL, ! t#!+2s )e s(s !*(nt!)#es1 En l! )2%!)! )e ls sesent!s )el sigl *!s!), "(e %(!n) se %#e!#n l! $!.# %!nti)!) )e leng(!'es )e *#g#!$!%i&n, in%l(.en) SIMULA? . ALGOL ?@ . en ls setent!s !*!#e%i& PASCAL, ls %(!les "#e%ie#n (n! g#!n g!$! )e ti*s )e )!ts, -(e *e#$iti& ! ls )es!##ll!)#es $)i"i%!# . !$*li!# ls ti*s )e )!ts e6istentes $e)i!nte %nst#(%%ines es*e%7"i%!s *# e'e$*l, !##egls 3!##!.s4 . #egist#s1 Abstracciones en la programación
E6isten )s ti*s )e !0st#!%%ines -(e se i$*le$ent!n en ls leng(!'es )e *#g#!$!%i&n . sn • •
*e datos. *e control.
Ls )s ti*s )e !0st#!%%ines, ! s( +e/ %(ent!n %n t#es ni+eles, -(e $i)en l! %!nti)!) )e in"#$!%i&n %nteni)! en l! !0st#!%%i&n •
!sicas.
~
=
~
;
•
$structuradas1
•
nitarias1
A %ntin(!%i&n se )es%#i0en 0#e+e$ente est!s !0st#!%%ines Abstracciones de datos
En este ti* )e !0st#!%%ines se )e"inen el %n'(nt )e )!ts . el %n'(nt )e *e#!%ines -(e %!#!%te#i/!n el %$*#t!$ient )el %n'(nt %$*let, est es l!s *e#!%ines -(e l!s +!n ! !"e%t!#1 Est!s !0st#!%%ines se )i+i)en en !sicas- Res($e l! #e*#esent!%i&n inte#n! )e +!l#es )e )!ts %$(nes en (n! %$*(t!)#!1 C$ sn ls ti*s )e )!ts ele$ent!les, %$ sn ls ti*s naturales 3ente#s sin sign4, enteros,
ls reales 3"l!t en el %!s )el leng(!'e )e *#g#!$!%i&n C4 . )e ti* carcter
3%5!#41 P# e'e$*l ls ti*s )e )!ts •
•
Naturales, se *(e)en #e*#esent!# inte#n!$ente sl %n (n %!$0i )e 0!se )e )ie/ ! )s, -(e es el siste$! n($2#i% -(e #e%n%e l! %$*(t!)#!1 $nteros, este ti* )e )!ts
#e-(ie#en $!ne'!# +!l#es *siti+s . neg!ti+s, *# l -(e se 5!%e ne%es!#i l! #e*#esent!%i&n )el 3$!s4 . )el 3$ens4, )e0i) ! -(e l! %$*(t!)#! $!ne'! 0its 3sl %e#s . (ns4, se *t *# (tili/!# el 0it $s signi"i%!ti+, *!#! este sign, t$!n) t#es #e*#esent!%ines %$*le$ent ! (n, %$*le$ent ! )s . $!gnit() . sign, en %(!l-(ie#! )e ell!s, %(!n) el 0it )e sign es %e#, el n$e# es *siti+ . %(!n) es (n, es neg!ti+1 En el %!s )e M!gnit() . sign, el 0it )e sign, n "#$! *!#te )el n$e#, sl in)i%! el sign . el #est )e ls 0its #e*#esent!n l! $!gnit()1 En el %!s )e ls %$*le$ents %(!n) el 0it )e sign es (n, signi"i%! -(e el n$e# es neg!ti+ . est #e*#esent!) en %$*le$ent . !)e$s ese 0it )e sign SI "#$! *!#te )el n($e#, *e# en %$*le$ent, *!#! 0tene# s( $!gnit(), es ne%es!#i %!l%(l!# el %$*le$ent . se s!0e -(e es neg!ti+ *# el 0it )e sign 3.! -(e el %$*le$ent )el %$*le$ent )e (n n$e# es el n$e# #igin!l41
•
&eales, se #e*#esent!n en nt!%i&n )e
*(nt "lt!nte, t!$0i2n %n%i)! %$ nt!%i&n %ient7"i%!1 Dn)e l! #e*#esent!%i&n $s %$n es M!ntis! B> e6*nente, )n)e, t!nt l! $!ntis! %$ el e6*nente sn ente#s1
~
;
~
?
•
Caracter (c/ar,
se #e*#esent! ! t#!+2s )el (s )e %&)igs, .! se! %#e!)s *# ls )es!##ll!)#es *# ls estn)!#es, %$ el ASCII el ECDIC1 L!s )i#e%%ines en l! $e$#i! -(e %ntienen +!l#es )e )!ts se !0st#!en )n)les (n n$0#e se %n%en %$ i)enti"i%!)#es +!#i!0les %nst!ntes1 El ti* )e +!l# )e )!ts t!$0i2n #e%i0e (n n$0#e . se %n%e %$ ti*1 L!s +!#i!0les t$!n s(s n$0#es . ti*s )e )!ts ! t#!+2s )e l!s )e%l!#!%ines %$ l! -(e ! %ntin(!%i&n se $(est#! en C1 (nsigne) int ! *!#! l!s +!#i!0les ente#! sin sign 3N!t(#!les in%l(.en) el %e#4 int 0 P!#! +!#i!0les ente#!s "l!t % *!#! +!#i!0les #e!les1 %5!# ) *!#! +!#i!0les )e ti* %!#%te# 3%&)ig ASCII4
$structuradas Se (tili/! *!#!
l! !0st#!%%i&n )e %le%%ines )e +!l#es )e )!ts #el!%in!)s ent#e s7, %$ l sn ls !##egls )e ls ti*s )e )!ts ele$ent!les $en%in!)s en el *##!" !nte#i#1 nitarias
Se #e"ie#e ! l! #e(ni&n )e %&)igs -(e tienen (n! #el!%i&n ent#e s7, )ent# )e (n *#g#!$!, %$ !#%5i+s *# se*!#!), *# e'e$*ls se tienen ls $&)(ls, ls *!-(etes, l!s %l!ses 3*(e)e est!# ent#e el ni+el est#(%t(#!) . (nit!#i4, %$*nentes, li0#e#7!s 30i0lite%!s4, et%1 Abstracciones de control
Es l! $)i"i%!%i&n )e l! t#!.e%t#i! )e e'e%(%i&n )e (n *#g#!$! )e0i) ! l!s sit(!%ines *#e)ete#$in!)!s -(e se *#esenten, -(e ! s( +e/ se )i+i)en en l!s sig(ientes t#es1 !sicas- Sn l!s senten%i!s -(e %$0in!n !lg(n!s inst#(%%ines )e $-(in! en
(n! senten%i! !0st#!%t! $s %$*#ensi0le, *# e'e$*l (n en(n%i!) )e !sign!%i&n 3e6*#esi&n4, -(e !l$!%en! )e (n +!l#, %$ #es(lt!) )e (n! e6*#esi&n !#it$2ti%!, %$ l! -(e se $(est#!1 ! 0 % en(n%i!) )e !sign!%i&n $structuradas Est!s !0st#!%%ines )i+i)en !l *#g#!$! en g#(*s )e inst#(%%ines -(e estn
!ni)!)!s )ent# )e *#(e0!s -(e g0ie#n!n s( e'e%(%i&n, *# e'e$*l ls en(n%i!)s )e sele%%i&n i" t5en, i" t5en else . s8it%5 3%!se en leng(!'es %$ ALGOL4, !s7 %$ ls 0(%les "#Ws, ) 85ile . 85ile1 E6iste (n $e%!nis$ !)i%in!l *!#! $!ni*(l!# el %nt#l, )e l! e'e%(%i&n )e (n *#g#!$!, -(e es el procedimiento (subprograma o subrutina o función, ue es justo el punto central de este trabajo.
~
?
~
nitarias
In%l(.en (n %n'(nt )e *#%e)i$ients -(e s($inist#!n se#+i%is #el!%in!)s l&gi%!$ente %n t#!s *!#tes )el *#g#!$!, %n"#$!n) (n! *!#te (nit!#i! in)e*en)iente1 En l!s !0st#!%%ines )e %nt#l (nit!#i!s el en"-(e est en l!s *e#!%ines . en ls se#+i%is -(e *#*#%in!, $s -(e en ls )!ts 3%$ l!s (nit!#i!s )e )!ts41 unciones
Un s(0*#g#!$! 3*#%e)i$ients "(n%ines4, es (n! se%%i&n )e %&)ig in)e*en)iente -(e #e!li/! (n! t!#e! es*e%7"i%! )ent# )el *#g#!$! . es (n )e ls %$*nentes *#in%i*!les )e (n *#g#!$!1 L!s "(n%ines sn ti*s )e !0st#!%%ines -(e %!en t!nt en ls ti*s )! D!ts Unit!#i!s, %$ en l! )e Cnt#l Unit!#i!s . *!#te )e l!s )e Cnt#l Est#(%t(#!)!s, l!s -(e "(e#n %$ent!)!s, en *##!"s !nte#i#es1 A)e$s %nst!n )e (n g#(* )e senten%i!s 3(n! $s4 -(e #e!li/!n (n! )ete#$in!)! t!#e!1 El %n%e*t )e s(0*#g#!$! es (n! e+l(%i&n )el !ntig( %n%e*t )e s(0#(tin!, *#esente en leng(!'es %$ ens!$0l!)#, !si% *#i$e#!s +e#sines )e F#t#!n1 L! (tili/!%i&n )e "(n%ines )ent# )e (n *#g#!$! *e#$ite *#in%i*!l$ente Di+i)i# . est#(%t(#!# el *#g#!$! %$ si "(e#!n $&)(ls, %n l -(e se "!%ilit! s( #e+isi&n, !$*li!%i&n . $!nteni$ient en gene#!l1 A5## . #e(tili/!%i&n )e %&)ig .! -(e (n! $is$! "(n%i&n *(e)e se# ll!$!)! )es)e )istint!s *!#tes )el *#g#!$!, l -(e *e#$ite n tene# -(e #e*eti# ese %&)ig +!#i!s +e%es1 En +e#)!) sn *e-(e9!s *!#tes )el *#g#!$! s(0*#g#!$!s -(e *(e)en %ntene# t!nt )!ts %$ )e"ini%ines )e +!#i!0les *#*i!s, ll!$!# ! t#!s "(n%ines e in%l(s ! s7 $is$!s 3#e%(#si+i)!)41 •
•
•
L!s "(n%ines tienen )s *!#tes, -(e sn L! )e%l!#!%i&n1 l! -(e in)i%! %$ se# l! "(n%i&n, !57 se in)i%! el ti*, el n$0#e, ls *!#$et#s 3si es -(e ls (tili/!4 . el ti* )e *!#$et#s1 L! )e"ini%i&n1 -(e es l -(e %nstit(.e l -(e es en si l! "(n%i&n, t!$0i2n se %n%e %$ el %(e#* )e l! "(n%i&n, .! -(e es )n)e #e!l$ente +iene el !lg#it$ -(e +! ! e'e%(t!#1 •
•
P# e'e$*l en el %!s )e leng(!'es %$ C se#7! TIPO nombre_función (parámetros)
S( )e%l!#!%i&n es ig(!l -(e l! )e (n! +!#i!0le . t)! "(n%i&n )e0e )e tene# (n ti*, -(e in)i%!#! el ti* )e +!l# -(e l! "(n%i&n )e+l+e# !l te#$in!# )e e'e%(t!#se 3!(n-(e *(e)en e6isti# "(n%ines -(e n #et#nen ningn +!l#, -(e en t!l %!s se#i!n )e ti* void 41 A l!s "(n%ines se les *(e)en en+i!# *%in!l$ente )!ts ! t#!+2s )e ls *!#$et#s )e l! "(n%i&n, ls %(!les sn +!#i!0les ! ls -(e se les !sign! (n +!l# en %!)! ll!$!)! ! l! "(n%i&n . %$ +!#i!0les -(e sn, t!$0i2n %(ent!n %n (n ti* )e )!ts1 J!. )s "#$!s )e *!s!# +!l#es )e ls *!#$et#s ! (n! "(n%i&n . sn or 2alor. %$ s( n$0#e l in)i%!, el +!l# -(e se *!s! es (n! %*i! )el +!l# )e l! +!#i!0le 3t#!s l%!li)!)es )e $e$#i! -(e %ntienen l! %*i! )el +!l# #igin!l4, (n! +e/ -(e se te#$in! )e e'e%(t!# l! "(n%i&n, l! %*i! se )est#(.e . se sig(e %nse#+!n) el +!l# #igin!l1 En %!s )e l! #e%(#si+i)!), %!)!, +e/ -(e se ll!$e ! s7 $is$! l! •
~
~
@
•
"(n%i&n, se estn gene#!n), %*i!s )e ls *!#$et#s, %n s(s #es*e%ti+s +!l#es 3-(e *#0!0le$ente se est2n $)i"i%!n) en %!)! ll!$!)!41 or referencia1 n se *!s! el %nteni) )e (n! +!#i!0le, si n s( *si%i&n )e !l$!%en!$ient en l! $e$#i!, *# t!nt s( %nteni) *(e)e se# +!#i!) )ent# )e l! "(n%i&n, .! -(e se est $!ne'!n) l! $is$! +!#i!0le, n se %#e! %*i! !lg(n!1
>B
I%&A 3.1
P!s )el +!l# )e ls *!#$et#s, *# +!l# . *# #e"e#en%i!1
$4isten los siguientes tipos de funciones•
•
L!s *#i$e#!s sn )e ti* %$*(t!%in!l -(e sn )ise9!)!s *!#! #e!li/!# *e#!%ines %n ls !#g($ents . #eg#es!n (n +!l# 0!s!) en el #es(lt!) )e es! *e#!%i&n1 L!s seg(n)!s sn !-(ell!s -(e n #eg#es!n ningn +!l#, es )e%i# sn est#i%t!$ente *#%e)(#!les 3ti* +i), en el %!s )e C41
Un! "(n%i&n es (n! se%%i&n )e %&)ig se*!#!)! )el *#g#!$! *#in%i*!l -(e *(e)e se# ll!$!)! en (n $$ent )!) 3ll!$!)! ! l! "(n%i&n4 . -(e (n! +e/ !%!0!)! s( e'e%(%i&n +(el+e ! l! inst#(%%i&n sig(iente )n)e se #e!li/& s( ll!$!)!1 Un! "(n%i&n 5!%e el *!*el )e (n *#g#!$!, .! -(e %(ent! %n (n! se%%i&n )e )e%l!#!%ines 3+!#i!0les, %nst!ntes, et%14 . *(e)e %nt!# %n )!ts )e ent#!)! . )e s!li)!, *e#$itien) -(e (n! "(n%i&n se! in)e*en)iente )el *#g#!$! *#in%i*!l, s!l+ *# el tene# -(e se# in+%!)!1 Ls *#%e)i$ients . "(n%ines sn s(0*#g#!$!s, $(. *!#e%i)s, -(e "(n%inen )e l! sig(iente $!ne#! el *#g#!$! *#in%i*!l, ls in+%! *# s( n$0#e . en+7! el +!l# )e s(s *!#$et#s, si es -(e ls #e-(ie#e, l! e'e%(%i&n )el *#g#!$! *#in%i*!l )etiene $$entne!$ente . el %nt#l *!s! !l *#%e)i$ient "(n%i&n -(e "(e ll!$!)1 Este se e'e%(t! . !l te#$in!#, #eg#es! el %nt#l ! l! inst#(%%i&n sig(iente ! )n)e "(e ll!$!) *# el
~
@
~
*#g#!$! *#in%i*!l -(i/s *# t#! "(n%i&n *#%e)i$ient, .! -(e (n s(0*#g#!$!, *(e)e ll!$!# ! t# . ese t# ! s( +e/ ll!$!# ! t# )i"e#ente ! s7 $is$1 Es )e 5!%e# nt!# -(e ls s(0*#g#!$!s, *(e)en $!ne'!# s(s *#*i!s +!#i!0les, -(e se %n%en %$ +!#i!0les l%!les, l!s %(!les se )e%l!#!n )ent# )el %(e#* )el s(0*#g#!$! . -(e sn (tili/!)!s, *!#! #e!li/!# s( t#!0!', *e# (n! +e/ %n%l(i), est!s +!#i!0les l%!les se )est#(.en, s!l+ %$ en leng(!'es %$ C, -(e se *(e)en %nse#+!#, !l $$ent )e se# )e%l!#!)!s, !nte*ni2n)les l! *!l!0#! #ese#+!)! static, *# e'e$*l, se tiene l! sig(iente )e"ini%i&n )e (n! "(n%i&n int s($!t#i! 3+i)4 st!ti% int !%($ se )e%l!#! %$ st!ti% l! +!#i!0le !%($, *!#! n se# )est#(i)! !l te#$in!# l! e'e%(%i&n )e l! "(n%i&n !%($ *#int"3Zn st!ti% !%($ <), !%($4 #et(#n 3!%($4 [ Sin e$0!#g e6isten l!s sig(ientes )i"e#en%i!s Mient#!s -(e l!s "(n%ines )e+(el+en (n +!l#, ls *#%e)i$ients *(e)en )e+l+e# %e#, (n $s +!l#es, en "#$! )e list! )e *!#$et#s 3!(n-(e !lg(ns )ise9!)#es )e leng(!'es, )is%#e*!n in)i%!n) -(e ls *#%e)i$ients n #eg#es!n ningn +!l#41 Ls *#%e)i$ients se )e%l!#!n ig(!l -(e l!s "(n%ines, !(n-(e s( n$0#e n se lig! ! ning(n )e ls #es(lt!)s -(e 0tiene1 •
•
4. BIBLIOGRAFÍA Y MASOGRAFÍA AHO ALFRED V., HOPCROFT JOHN E. Y ULLMAN JEFFREY D. ULLMAN , Estructuras de Datos y Algoritmos, USA, ADDISON-WESLEY IBEROAMERICANA, 1988, 438 pp. 2. BOWMAN CHARLES F., Algoritmos y Estructuras de Datos Aproximación en C .(s/imprsi!".#, M$%ICO, O%&ORD UNI'ERSIY )RESS, 1999, 333 p p. 3. CENTRO DE SERVICIOS DE CÓMPUTO , B6700 ALGOL UE!" GU#DE , (S/N#, USA, CSC UNAM, 19*+, 1+ pp. 4. DEITEL H.M. Y DEITEL P.J., Como programar en C$C%%, (+ ii!".#, M$%ICO, )EARSON EDUCACI0N )RENICEALL,1992, 9+* pp. . EU!N AVILA JORGE IVAN Y CORDERO BORBOA LUIS G ON"AGA., Estructuras de datos, (1 rimprsi!".#, M$%ICO, LIMUSA, m55 65 primr5 ii!" 65 UNAM (&ACULAD DE IN7ENIERA#, 1989, +19 pp. #. GALVE JAVIER $ GON"!LE" JUAN, AL7ORIMICA is : 5";6isis 56<rims &="i"56s Impr5i>s (S/N ii!".#, U.S.A. Ais"-Ws6: I?r5mri5"5,1993, 2+ pp. %. GOODRICH MICHAEL T. Y TAMASSIA ROBERTO, Estructuras de Datos en &a'a, (+. Eii!"#, M$%ICO, OM)SON, +4, @33 pp. &. LOUDEN 'ENNETH C., Lengua(es de )rogramación principios y pr*ctica+ (+5 ii!".#, ES)AA, MC7RAW-ILL, +*, @33 pp. (. GOODRICH MICHAEL T. Y TAMASSIA ROBERTO, Estructuras de Datos en &a'a, (+. Eii!" " i"<6s : 1 " sp56.#, M$%ICO, COM)AA EDIORIAL CONINENAL 7RU)O )ARIA CULURAL, ++, @41 pp. 1). 'NUTH, DONALD E., El arte de programar ordenadores+ ,olumen # Algoritmos -undamentales, (r imprsi!".#, ES)AA, RE'ER$,++, @*+ pp. 11. 'RUSE ROBERT L. , Estructuras de Datos y Dise.o de )rogramas, (1. Eii!" " i"<6s : 1 " sp56.#, M$%ICO, )RENICE-ALL IS)ANOAMERICANA, 1988, 488 pp. 12. LANGSAM YEDIDYAH, AUGENSTEIN MOSHE J. Y TENENBAUM AARÓN M. , Estructuras de Datos con C y C++, (+. ii!".#, M$%ICO, )RENICE-ALL IS)ANOAMERICANA, 199*, @*+ pp. 13. RAMÍRE" FELIPE, #ntroducción a la programación+ Algoritmos y su implementación en ,B/E1+ C2+ &a'a y C%% (+ ii!".#, M$%ICO, A65m<5,+*, 2+ pp.
1.
~
~
B>
14. S*+*- C*/0* J- $ V567-5 G*89-:, Dise.o de 3icroprocesadores+ (S/N ii!".#, M$%ICO, UNAM, &5=65 I"<"ir5, +4. 348 pp.
1. TUC'ER ALLEN Y NOONAN ROBERT,
Lengua(es de )rogramación principios y )aradigmas , Si" "m. ii!". M
7r5F i66, MGi, +3.
1#. SCHILDT HERBERT, 3anual de re4erencia C+ (4 ii!".#, ES)AA, M7RAW-ILL, +, *9 pp. 1%. WIRTH, NI'LAUS, Algorit5ms % Data tructures )rograms+ (1. imprsi!".#, USA, )RENICE-ALL, INC,19*@, 3@@ pp. 1&. WIRTH,
NI'LAUS, Algoritmos y IS)ANOAMERICANA, 198*, 32 pp.
Estructuras
de
Datos+
(1. imprsi!".#, M$%ICO, )RENICE- ALL
1(. Astracción
de datos y astracción de control/ E'olución seg8n los paradigmas/ (31 H=6i +11#. E6r"i Rr" " 6"5J. R=pr5 6 5 9 m5rK +1+ p//Fii.<si"r"5.m/i"G.pp i6PA?sr5i"QQ5sQ:Q5?sr5i"QQ"r6.QE>6=i"Qs<="Q6sQp5r5i
24. Lengua(es de programación/ )rincipios y pr*ctica. (+4#. E6r"i Rr" " 6"5J. R=pr5 6 9
M5rK +1+ p//?s.<<6.m.mG/?s iPM"r'Q7'T?MCpri"sPr">r6Pss=rPP"p5<P56s 2. 1ipo de dato astracto/ (1 spim?r +11#. E6r"i Rr" " 6"5J. R=pr5 6 8 m5rK +1+ p//s.Fiipi5.r
~
B>
~