CARRERA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
MATERIA
PROGRAMACIÓN LÓGICA FUNCIONAL
TEMA
CONCEPTOS FUNDAMENTALES
PROFESOR
ING. FLAVIO AQUILES RUIZ CELAYA
ALUMNO
BONIFACIO MARCIAL EZEQUIEL
GRUPO
7 “X” He!"#$ C"%&$& &e '%#(")*+ &e Z$$,!-$ O$/. $ M$)e0 17 &e M$-! &e2 3147.
UNIDAD I 1.1.
CONCEPTOS FUNDAMENTALES
DIFERENTES ESTILOS DE PROGRAMACIÓN
Un paradigma de programacin !e"#i$o" de programacin% repre"en#a &n en'o(&e par#ic&$ar o 'i$o"o')a para di"e*ar "o$&cione". La '&ncin primordia$ de $o" paradigma" de programacin e" re"o$+er &no o +ario" pro,$ema" c$aramen#e de$imi#ado"- $o c&a$ de,e "&poner con"ec&en#emen#e &n a+ance "igni'ica#i+o en $a re"o$&cin de e"#o" pro,$ema" en a$ meno" &n parme#ro (&e a'ec#e $a ingenier)a de "o'#/are. Lo" paradigma" di'ieren &no" de o#ro"- en $o" concep#o" 0 $a 'orma de a,"#raer $o" e$emen#o" in+o$&crado" en &n pro,$ema- a") como en $o" pa"o" (&e in#egran "& "o$&cin de$ pro,$ema.
Paradigmas de programación
Programación Imperativa
Programación Declarativa
. . . .
. . Fig&ra 1. Principa$e" paradigma" de programacin.
Lo" paradigma" de programacin de#erminan $o" m#odo" 0 $a" 2erramien#a" (&e e$ programador &"ar en e$ de"arro$$o de &n "o'#/are. Ma0ormen#e $o" $eng&a3e" de programacin e"#n ,a"ado" en &no o m" paradigma"- 2a e"#o" "e $e" p&ede $$amar m&$#iparadigma". Tipo" m" com&ne" de paradigma" de programacin4 5 Programación imperativa: De"cri,e $a programacin como &na "ec&encia in"#r&ccione" o comando" (&e cam,ian e$ e"#ado de &n programa. E$ cdigo m(&ina en genera$ e"# ,a"ado en e$ paradigma impera#i+o. S& con#rario e" e$ paradigma dec$ara#i+o. En e"#e paradigma "e inc$&0e e$ paradigma procedimen#a$ !proced&ra$% en#re o#ro". E3emp$o" de $eng&a3e" p&ro" de e"#e paradigma "er)an e$ C- 6ASIC o Pa"ca$.
5 Programación orientada a objetos: E"# ,a"ado en $a idea de encap"&$ar e"#ado 0 operacione" en o,3e#o". En genera$- $a programacin "e re"&e$+e com&nicando dic2o" o,3e#o" a #ra+" de men"a3e" !programacin orien#ada a men"a3e"%. Se p&ede inc$&ir 5a&n(&e no 'orma$men#e5 den#ro de e"#e paradigma- e$ paradigma ,a"ado en o,3e#o"- (&e adem" po"ee 2erencia 0 "&,#ipo" en#re o,3e#o". E3.4 Sim&$a- Sma$$#a$7- C88- 9a+a- :i"&a$ 6a"ic .NETe#c. S& principa$ +en#a3a e" $a rei$i;acin de cdigo" 0 "& 'aci$idad para pen"ar "o$&cione" a de#erminado" pro,$ema". 5 Programación dinámica: E"# de'inida como e$ proce"o de romper pro,$ema" en par#e" pe(&e*a" para ana$i;ar$o" 0 re"o$+er$o" de 'orma $o m" cercana a$ p#imo- ,&"ca re"o$+er pro,$ema" en &n gr&po or#ogona$ O!n% "in &"ar por #an#o m#odo" rec&r"i+o". E"#e paradigma e"# m" ,a"ado en e$ modo de rea$i;ar $o" a$gori#mo"- por $o (&e "e p&ede &"ar con c&a$(&ier $eng&a3e impera#i+o. 5 Programación dirigida por eventos: E" &n paradigma de programacin en e$ (&e #an#o $a e"#r&c#&ra como $a e3ec&cin de $o" programa" +an de#erminado" por $o" "&ce"o" (&e oc&rran en e$ "i"#ema- de'inido" por e$ &"&ario o (&e e$$o" mi"mo" pro+o(&en. Un e3emp$o c$aro $o #enemo" en $o" "i"#ema" de programacin Le
"#e paradigma conci,e a $a compacin como $a e+a$&acin de '&ncione" ma#em#ica" 0 e+i#a dec$arar 0 cam,iar da#o". En o#ra" pa$a,ra"- 2ace 2incapi en $a ap$icacin de $a" '&ncione" 0 compo"icin en#re e$$a"- m" (&e en $o" cam,io" de e"#ado" 0 $a e3ec&cin "ec&encia$ de comando" !como $o 2ace e$ paradigma procedimen#a$%. Permi#e re"o$+er cier#o" pro,$ema" de 'orma e$egan#e 0 $o" $eng&a3e" p&ramen#e '&nciona$e" e+i#an $o" e'ec#o" "ec&ndario" com&ne" en o#ro #ipo de programacione".
5 Programación lógica: Se ,a"a en $a de'inicin de reg$a" $gica" para $&egoa #ra+" de &n mo#or de in'erencia" $gica"- re"ponder preg&n#a" p$an#eada" a$ "i"#ema 0 a") re"o$+er $o" pro,$ema". E3.4 pro$og. 5 Programación restricciones: La programacin con re"#riccione" "e de'ine como e$ e"#&dio de "i"#ema" compaciona$e" ,a"ado" en re"#riccione". La idea de $a programacin con re"#riccione" e" re"o$+er pro,$ema" median#e $a dec$aracin con re"#riccione" "o,re e$ rea de$ pro,$ema 0 con"ec&en#emen#e encon#rar "o$&cione" (&e "a#i"'agan #oda" $a" re"#riccione"- 0 en "& ca"o op#imicen &no" cri#erio" de#erminado". 5 Programación multiparadigma: E" e$ &"o de do" o m" paradigma" den#ro de &n programa. E$ $eng&a3e Li"p "e con"idera m&$#iparadigma. A$ ig&a$ (&e P0#2on- (&e e" orien#ado a o,3e#o"- re'$e
ANALI@ANDO DIFERENTES ESTILOS DE PROGRAMACIÓN
1.?.1. E:ALUACIÓN DE EPRESIONES
La e
2
+
( b−3 )∗cos ( a )
C&ando "e e3eca &na "en#encia de cdigo (&e con#iene &na e
1.?.?. TIPOS DE DATOS Lo" #ipo" de da#o" "on $a e"peci'icacin de &n dominio !rango de +a$ore"% 0 de &n con3&n#o +$ido de operacione" a $o" (&e norma$men#e $o" #rad&c#ore" a"ocian &n e"(&ema de repre"en#acin in#erna propia. Lo" #ipo" de da#o" "e c$a"i'ican de $a "ig&ien#e manera4 E$ #ipo de da#o carc#er e" &n d)gi#o indi+id&a$ e$ c&a$ "e p&ede repre"en#ar como n&mrico" ! a$ %- $e#ra" !a5;% 0 ")m,o$o" !HJK%. - Caracteres:
Tipo de da#o c2ar
Rango a ?
Tama*o en memoria ,i#" por carc#er
E$ #ipo de da#o carc#er &nicode e" &na e<#en"in de$ #ipo de da#o cadena- permi#e amp$iar $o" ")m,o$o" de e"cri#&ra- pro+ee e
No#a4 En e$ $eng&a3e 3a+a $a codi'icacin Unicode permi#e #ra,a3ar con #odo" $o" carac#ere" de di"#in#o" idioma".
Tipo de da#o "2or#
Rango a
Tama*o en memoria 1 ,i#" por carc#er
E"#e #ipo de da#o p&ede "er rea$ o en#ero- dependiendo de$ #ipo de da#o (&e "e +a0a a i$i;ar. En#ero"4 "on $o" +a$ore" (&e no #ienen p&n#o decima$- p&eden "er po"i#i+o" o nega#i+o" 0 e$ cero. Tipo de da#o Tama*o en memoria ,0#e ,i#" "2or# 1 ,i#" in# ? ,i#" $ong ,i#" - Numéricos:
Rea$e"4 e"#o" carac#ere" a$macenan nBmero" m&0 grande" (&e po"een par#e en#era 0 par#e decima$. Tipo de da#o '$oa# do&,$e
Tama*o en memoria ? ,i#" ,i#"
- Booleanos: E"#e #ipo de da#o "e emp$ea para +a$ore" $gico"- $o" podemo" de'inir
como da#o" compara#i+o" dic2a comparacin de+&e$+e re"&$#ado" $gico" !:erdadero o Fa$"o%. Tipo de da#o ,oo$ean
Tama*o en memoria ,i#"
1.?.. DISCIPLINA DE TIPOS En $o" $eng&a3e" de programacin con di"cip$ina de #ipo" cada #ipo repre"en#a &na co$eccin de +a$ore" !da#o"% "imi$are". E$ conocer $o" #ipo" de $a" '&ncione" a y&da a doc&men#ar $o" programa" e+i#ar errore" en #iempo de e3ec&cin. Un $eng&a3e #iene di"cip$ina de #ipo" "i $o" errore" de #ipo" "e de#ec#an "iempre c&andoe" nece"ario de#erminar $o" #ipo" de #odo" $o" operando"- ya "ea en #iempo de compi$acin o de e3ec&cin. Lo" #ipo" "e in'ieren- e" decir "e compr&e,an- de 'orma e"##ica- en #iempo decompi$acin. 1.?.. FUNCIONES Una '&ncin e" &n con3&n#o de $)nea" de cdigo (&e rea$i;an &na #area e"pec)'ica 0 p&ede re#ornar &n +a$or. La" '&ncione" p&eden #omar parme#ro" (&e modi'i(&en "& '&ncionamien#o. La" '&ncione" "on i$i;ada" para de"componer grande" pro,$ema" en #area" "imp$e" 0 para imp$emen#ar operacione" (&e "on comBnmen#e i$i;ada" d&ran#e &n programa 0 de e"#a manera red&cir $a can#idad de cdigo. C&ando &na '&ncin e" in+ocada "e $e pa"a e$ con#ro$ a $a mi"ma- &na +e; (&e e"#a 'ina$i; con "& #area e$ con#ro$ e" de+&e$#o a$ p&n#o de"de e$ c&a$ $a '&ncin '&e $$amada. [clase::] ( [Par ámetros] ). { cuerpo; }
F&ncion 1. E"#r&c#&ra de &na '&ncin.
Referencias A$+are;- A. !?1Q%. 1. Estilos de programación. Academia.edu. Rec&perado Q Mar;o ?1Q- de 2##p"4JJ///.academia.ed&J?1QJ1.E"#i$o"deprogramaci C6n 6er;a$- F. !?1Q%. Introducción a la Programación !1"# ed.%. Rec&perado de 2##p4JJe$+e<.&gr.e"Jdec"aiJ3a+aJpd'J?C5Da#o".pd' Introducción a la Programación de Restricciones . !??% !1"# ed.- pp. 1-?%.
Uni+er"idad Po$i#cnica de :a$encia- E"pa*a. Rec&perado de 2##p4JJ&"er".d"ic.&p+.e"Jm"a$idoJpaper"Jaepia5in#rod&ccion.pd' Paradigma de programación. !?1Q%. Es.wikipedia.org . Rec&perado Mar;o ?1Q- de
2##p"4JJe"./i7ipedia.orgJ/i7iJParadigmadeprogramaciC6n Paradigmas de la Programación: JavaScript y Pyton ! anacareaga . !?1Q%. "omunidad.ingenet.com.m#. Rec&perado Q Mar;o ?1Q- de
2##p4JJcom&nidad.ingene#.com.m
2##p"4JJe"./i7ipedia.orgJ/i7iJProgramaciC6ndec$ara#i+a Programación dirigida por eventos . !?1Q%. Es.wikipedia.org . Rec&perado Q Mar;o
?1Q- de 2##p"4JJe"./i7ipedia.orgJ/i7iJProgramaci C6ndirigidapore+en#o" Programación en "$$%&unciones ' (ikili)ros. !?1Q%. Es.wiki)ooks.org . Rec&perado
Q Mar;o ?1Q- de 2##p"4JJe"./i7i,oo7".orgJ/i7iJProgramaciC6nenC?6 ?6JF&ncione"