poo - apruébala ya - c# - 7

Upload: fausto-jose-iocchi

Post on 05-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 POO - Apruébala YA - C# - 7

    1/79

    Programación Orientada a Objetos en C#… Apruébala YA!!!

    Programación Orientada a Objetos en C#:

     Apruébala YA!!!

    Be free… I'm free, I use Linux… Close your Windows, open your mind!!!

    Editorial Mi-K-sita

    7ª Edición (en español)

    Ejemplares impresos: 1

    Derechos reservados

    Qeda totalmente apro!ada cal"ier copia parcial o completa de la

    presente #$a% a&n sin el consentimiento de s ator'

    op*le+t ,. !* /asto 0occhi

    Programación Orientada a Objetos en:

    Apruébala YA!!!

    Edición ,.

  • 8/16/2019 POO - Apruébala YA - C# - 7

    2/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! Introduin

    Introducción

    2a presente #$a no es m3s "e eso: una guía para el se#imiento de lamateria Programación Orientada a Objetos% en donde se pretende llevarlode la mano por n recorrido !3sico de la materia (recerde adem3s de "e

    el pro+esor es n  facilitador % mostr3ndole el camino "e sted% como participante% de!e se#ir4 lo dem3s lo de!e hacer sted mismo)% nocoartando con esto "e sted lea otros te5tos acerca del mismo4 es m3s%se le invita a "e lo ha#a'

    6e so!reentender3 ac3 "e *a sted centa con los conocimientos teóricosde la materia: conceptos tan !3sicos como el icio% el 8ensamiento% el8ensar% 6ilo#ismos% etc'% conceptos estos "e si !ien se los sa!e al caletrevendr$a !ien si intentase% en s tiempo li!re% tratar de entenderlos *cavilar al respecto' Qi93 piense "e para esta materia no es indispensa!le

    estos conocimientos% pero4 "i;n sa!e<

    En los dos primeros cap$tlos de esta #$a estaremos repasando losconceptos !3sicos de la 2ó#ica /ormal% como por ejemplo las operacionesde las "e dispone la ló#ica proposicional * las ta!las de verdad' Esto sehace *a "e la ló#ica proposicional es la m3s anti#a * simple de las+ormas de ló#ica' =tili9ando na representación primitiva del len#aje%permite representar * maniplar aserciones so!re el mndo "e nos rodea'2a ló#ica proposicional permite el razonamiento% a trav;s de nmecanismo "e primero eval&a sentencias simples * le#o sentenciascomplejas% +ormadas mediante el so de conectivos proposicionales% como

    por ejemplo >?> * >@>' Este mecanismo determina la veracidad de nasentencia compleja% anali9ando los valores de veracidad asi#nados a lassentencias simples "e la con+orman'

    El tema de los al#oritmos (crcial para esta materia)% an"e no se tocar3en esta #$a% es importante "e se domine% *a "e esta es na de las !ases+ndamentales para la ela!oración de pro#ramas de comptadoras4 seso!reentender3 "e *a sted posee cierto nivel de pericia en canto a estetema% por lo "e el pro+esor podr3% en al#&n momento% eval3rselo'

    2os si#ientes cap$tlos contienen in+ormación primero% teórica% tocandotoda la parte de la historia de la comptación% conceptos !3sicos de lossistemas operativos% etc' 8osteriormente% se ir3 introdciendo al mndo dela pro#ramación orientada a o!jetos (8@@)'

    En la presente #$a se tomar3 el len#aje A para ejempli+icar * e5plicarlos conceptos de la 8@@% sin decir esto "e dichos conceptos no pedanser aplicados en otros len#ajes "e cmplan con los re"erimientos de la8@@4 recerde "e este es na asi#natra en la cal sted aprender3 losconceptos de la 8@@ * s aplicación% m3s no es n crso de pro#ramación'

    El &ltimo cap$tlo tiene na serie de ejercicios propestos' 6i steddispone del tiempo necesario% re&nase en #rpo% a ser posi!le (o inclso enla soledad de s ha!itación) * res;lvalos% para "e de esta manera iro!teniendo la pericia necesaria para poder apro!ar esta materia'

    Bc3 se so!reentender3 "e *a sted centa con n len#aje depro#ramación denominado icrosot "isual tudio $%&' ())*  (comom$nimo)% instalado en el comptador en el cal reali9ar3 los ejemplos *pr3cticas recomendadas en esta #$a' En caso de no contar con esto% se lerecomienda s ad"isición e instalación a la !revedad posi!le% *a "e sin;l no podr3 hacerle se#imiento a los diversos ejercicios ac3 e5plicados'

    Espero "e la presente le sirva de a*da4 C5itos'

    Edición ,. (

  • 8/16/2019 POO - Apruébala YA - C# - 7

    3/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I: L"ia #roposiional

    +nidad I

    Objeti,o:

    8revio repaso * lectra acerca de la 2ó#ica 8roposicional% el participantecon+ormar3 na estrctra teórica * pr3ctica "e le permita lacomprensión de esta misma% as$ como del ra9onamiento ló#ico'

    Contenido:

    1' 2ó#ica 8roposicional1'1' 6im!oli9ación de proposiciones1',' El 3lclo 8roposicional como n 6istema B5iom3tico

    1','1' 6i#nos primitivos1',',' e#las /ormativas1','' 6i#nos De+inidos

    1','' a9onamiento 2ó#ico

    Acti,idades del participante:

    • eali9ar lectra previa so!re el tema% tili9ando la presente #$a *otros medios !i!lio#r3+icos'

    • 0nteractar en clase'

    • Disctir en #rpo'

    • eali9ar las actividades propestas en clase'

    &,aluación multidireccional:

    • Evalación +ormativa: a trav;s de las discsiones de los conocimientose intervenciones en clase'

    • Evalación smativa: a trav;s de n e5amen pr3ctico *Fo parcial'

    -ógica Proposicional

    .$ -ógica Proposicional

    omo *a se de!e sa!er% la Lógica Proposicional es la m3s anti#a * simple

    de las +ormas de ló#ica' =tili9ando na representación primitiva dellen#aje% permite representar * maniplar aserciones so!re el mndo "enos rodea' 2a ló#ica proposicional permite el ra9onamiento% a trav;s de nmecanismo "e primero eval&a sentencias simples * le#o sentenciascomplejas% +ormadas mediante el so de conectivos proposicionales% porejemplo >?> * >@>' Este mecanismo determina la veracidad de nasentencia compleja% anali9ando los valores de veracidad asi#nados a lassentencias simples "e la con+orman'

    2a ló#ica proposicional pretende estdiar las +rases declarativas simples

    (ennciados o proposiciones) "e son los elementos !3sicos de transmisiónde conocimiento hmano'

    $%$% imboli/ación de proposiciones

    ada proposición tiene na +orma ló#ica a la cal se le da n nom!re' 6edistin#en dos tipos de proposiciones: simples * compestas' =naproposición se denomina simple cando en ella no interviene nin#naconectiva ló#ica o t;rmino de enlace (*% o% no% si'''entonces'''% si * sólosi)' 6i se jntan na o varias proposiciones simples con n t;rmino deenlace% se +orma na proposición compesta'

    2os t;rminos de enlace% >*>% >o>% >si''' entonces'''>% >si * sólo si> se sanpara nir dos proposiciones' En cam!io el t;rmino de enlace >no> se a#re#aa na sola proposición' 8or ejemplo:

    Go* es jevesGa* clases de matem3ticas

    Bm!as proposiciones son simples' on estas proposiciones se pedenconstrir proposiciones compestas tales como:

    Edición ,. *

  • 8/16/2019 POO - Apruébala YA - C# - 7

    4/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I: L"ia #roposiional

    Go* es jeves * ha* clases de matem3ticasGo* es jeves o ha* clases de matem3ticas6i ho* es jeves entonces ha* clases de matem3ticasGo* no es jeves

    8ara representar las proposiciones se tili9an letra latinas ma*&sclas talescomo 8% Q% % etc' 8or ejemplo% sea:

    8: Go* es jevesQ: Ga* clase de matem3ticas

    2e#o la proposición:

    Go* es jeves * ha* clase de matem3ticas

    se podr$a sim!oli9ar as$:

    8 * Q 

    En el len#aje corriente se tili9a tam!i;n la pala!ra >pero> o na >%> enve9 del t;rmino de enlace >*>' Ejemplo:

    /i a la +eria% pero no hice compra al#na0n;s est3 en+erma% el martes ir; a visitarla

    En el si#iente ejemplo se sa el t;rmino de enlace >o>:

    Es tarde o est3 m* oscro

    @tro #iro de >o> es:

    @ es tarde o est3 m* oscro

    En este &ltimo caso las dos >o> son parte del mismo t;rmino de enlace'

    ando se sa el t;rmino de enlace: si%'''entonces'''' se o!tiene la

    si#iente +orma:

    6i entonces 6

    Ejemplo:

    6i madr#o entonces lle#o temprano

    En este ejemplo pede sprimirse la pala!ra >entonces> * reempla9arse porna >%> as$:

    6i madr#o% lle#o temprano

    ando la pala!ra >no> se encentra en el interior de na proposiciónsimple% pede pasar inadvertida% pero se trata de na proposición

    compesta' Ejemplo:

    El d$a no est3 calroso

    8ede presentarse como:

    Ho ocrre "e el d$a est; calroso

    Iam!i;n se san s$m!olos para representar los t;rminos de enlace% as$:

    8ara la >*> se tili9a el s$m!olo (J)'8ara la >o> se tili9a el s$m!olo (v)'8ara el >no> se tili9a el s$m!olo ()'8ara el >si%4entonces4> se tili9a el s$m!olo ()'8ara el >si * sólo si> se tili9a el s$m!olo ()'

    ando na proposición compesta tili9a el t;rmino de enlace >*> es naconjnción' 6i el enlace se hace mediante la conectiva >o> es nadis*nción' 6i se sa el t;rmino >no> es na ne#ación' ando la conectivaes >si'''entonces'''> es na proposición condicional% * si tili9a >si * sólo si>se tiene n !icondicional'

    Edición ,. 0

  • 8/16/2019 POO - Apruébala YA - C# - 7

    5/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I: L"ia #roposiional

    En proposiciones "e tienen m3s de n t;rmino de enlace es precisoindicar la manera de a#rparse% pes distintas a#rpaciones peden tenerdistintos si#ni+icados' En el len#aje corriente% las a#rpaciones sepresentan de acerdo a la colocación de ciertas pala!ras o mediante lapntación' En ló#ica% la a#rpación se indica por medio de par;ntesis'Ejemplo de esto es: @ los soldados encontraron cerrado el paso% o si temieron n ata"eenemi#o% se re+#iaron en las montañas' Este te5to se sim!oli9a de lasi#iente +orma:

    8: 2os soldados encontraron cerrado el pasoQ: 2os soldados temieron n ata"e enemi#o: 2os soldados se re+#iaron en las montañas

    2a proposición compesta es:

    8 v (Q  )

    2a cal tiene n sentido distinto de la proposición:

    (8 v Q) 

    ando no ha* l#ar a am!i#Ledades% peden omitirse los par;ntesis * seadopta na convención con respecto a la dominancia relativa de losdiversos conectivos' 2a convención es:

    >> * >> dominan a >J> * >v>

    as$:

    6 8 v si#ni+ica 6  (8 v ) 8 Q J si#ni+ica 8  (Q J )

     on esta convención% no est3 claro lo "e si#ni+ica% por ejemplo:

    8 J Q v ó 8  Q 

    B"$% es necesario sar par;ntesis para aclarar% en el primer caso% si setrata de:

    (8 J Q) v ó 8 J (Q v )

    * en el se#ndo caso% di+erenciar entre:

    (8 Q)  * 8  (Q )

    $%&%  &l C1lculo Proposicional como un istema A2iom1tico

    1','1' ignos primiti,os

    6on si#nos primitivos a"ellos "e tili9amos para con+ormar naproposición' 8or ejemplo:

    •Letras latinas, tanto en minúsculas como mayúsculas'

    •Signos lógicos: >>% >v>% >J>'

    •Signos de puntuación: >(> * >)>'

    De las scesiones de si#nos "e es posi!le constrir% ha* espec$+icamentenas "e tienen sentido dentro de la teor$a' Iales scesiones sedenominan% t;rminos * +órmlas' 2os t;rminos se identi+ican con los

    o!jetos de la teor$a * las +órmlas e5presan relaciones entre los o!jetos'2a especi+icación de los t;rminos * las +órmlas% se hace a trav;s de lassi#ientes re#las:

    1',',' 3eglas 4ormati,as

    34.: al"ier letra es n t;rmino'34(: 6i es na +órmla% entonces es na +órmla% la cal se

    denomina ne#ación de '34*: 6i 8 * Q son +órmlas% entonces 8 v Q es na +órmla la cal se

    denomina dis*nción ló#ica de 8 * Q'

    Edición ,. 5

  • 8/16/2019 POO - Apruébala YA - C# - 7

    6/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I: L"ia #roposiional

    %ota: En las /, * /% las letras ma*&sclas se san para desi#nar+órmlas% no corresponden a si#nos del len#aje'

    1','' ignos 6einidos

    =na ve9 esta!lecidas las re#las de +ormación de +órmlas se peden

    introdcir a!reviaciones con el +in de simpli+icar la escritra' Estasa!reviaciones son el o!jeto de las de+iniciones matem3ticas'

    6einición: 6ean * 6 +órmlas% entonces:

    •2a +órmla ( v 6) se denota a!reviadamente como J 6 * se llamaconjunción lógica de * 6% la cal se lee > * 6'

    •2a +órmla v 6 se denota como  6 * se llama condicional de * 6'2a +i#ra ló#ica del condicional% responde a conectar dosproposiciones mediante el es"ema >si'''% entonces'''>' 8ara leer na

    proposición de la +orma  6% se pede sar al#nas de las si#ientese5presiones:

    6i entonces 6 es s+iciente para 66 es necesario para 6 siempre "e sólo si 6

    B la +órmla se le llama antecedente% * a la +órmla 6 consecuente'

    ando el condicional es verdadero se dice "e e5iste implicación *en este caso se lee la e5presión como:

    implica 6

    la cal se denota:

     6

    •2a +órmla (   6) J (6   ) se denota por   6 * se llama

    !icondicional de * 6' Esta e5presión se pede leer (o entender) devarias maneras% entre ellas:

    si * sólo s$ 6 es s+iciente * necesario para 6

    ando el !icondicional es verdadero% se dice "e ha* equivalencia.En este caso se lee:

    e"ivale a 6

    * se denota:

     6

    %ota: 2os criterios para decidir so!re la verdad del condicional * el!icondicional se ver3n m3s adelante'

    1','' 3a/onamiento -ógico

    Dedcción' 2a dedcción ló#ico matem3tica consiste en lo si#iente: Bpartir de na serie de +órmlas admitidas como ciertas% * denominadasaiomas, !ipótesis o premisas% se o!tiene otra +órmla llamada conclusióno tesis% mediante la aplicación de re#las ló#icas precisas' El procesomediante el cal se pasa de las hipótesis (premisas) a la tesis% reci!e elnom!re de demostración'

    =n teorema es na +órmla "e +i#ra dentro de na demostración' Esdecir% n teorema es na +órmla "e es o !ien n a5ioma% o !ien% naconsecencia de ;ste'

    =na +órmla se dice "e es  falsa  si s ne#ación es n teorema'=na teor$a es contradictoria  cando se tiene na +órmla "e esverdadera * +alsa a la ve9' Esto es: * son teoremas de la teor$a'

    8ara demostrar "e na +órmla es n teorema se desarrolla el si#iente

    Edición ,. 7

  • 8/16/2019 POO - Apruébala YA - C# - 7

    7/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I: L"ia #roposiional

    proceso:

    • 6e enncian los a5iomas de la teor$a' 8ara la ló#ica proposicional seesta!lecen catro a5iomas% "e son:

    A.$  Axioma de idempotenia$  6ea 8 na +órmla% entonces% la+órmla:

    8 v 8 8 es n a5ioma

    A($ Axioma de adunin$ 6ean 8 ? Q +órmlas% entonces% la +órmla:

    8 8 v Q es n a5ioma

    A*$ Axioma de onmutati(idad $ 6ean 8% Q * +órmlas% entonces% la

    +órmla:

    8 v Q Q v 8 es n a5ioma

    A0% Axioma de adiin$ 6ean 8% Q * +órmlas% entonces% la +órmla:

    (8 Q) ( v 8  v Q) es n a5ioma

    • 6e +ijan las >re#las ló#icas> "e permiten dedcir dicha +órmla a partirde los a5iomas' Estas re#las son llamadas re#las de valide9 () * son

    las si#ientes:

    3".: Dadas las +órmlas * 6N si  6 * son verdaderas% entonces 6es verdadera'

    3"(: 6i * 6 son +órmlas e"ivalentes% se pede sstitirla na por laotra en cal"ier parte del proceso demostrativo'

    • 6e hace na demostración de la +órmla % "e consiste en o!tener a como &ltima +órmla de la lista% por aplicación reiterada de 1 * ,'

    Edición ,. 8

  • 8/16/2019 POO - Apruébala YA - C# - 7

    8/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    +nidad II

    Objeti,o:

    8revio repaso * lectra acerca de la Ia!la de erdad * la nidad anterior%el participante +ormali9ar3 e5presiones * ra9onamientos ló#icos% los

    evalar3 por completo e in+erir3 so!re ss resltados'

    Contenido:

    ,' Ia!las de erdad','1' @peradores 2ó#icos'

    ,'1'1' He#ación','1',' Dis*nción','1'' onjnción','1'' ondicional'

    ,'1'O' Picondicional',',' 8ropiedades * 8ostlados',','1' onmtativa',',',' Distri!tiva',','' Elemento Hetro',','' Elemento 0nverso'

    ,'' 8ro!lemas reseltos'

    Acti,idades del participante:

    • eali9ar lectra previa so!re el tema% tili9ando la presente #$a *otros medios !i!lio#r3+icos'

    • 0nteractar en clase'• Disctir en #rpo'• eali9ar las actividades propestas en clase * en esta nidad'

    &,aluación multidireccional:

    • Evalación +ormativa: a trav;s de las discsiones de los conocimientose intervenciones en clase'

    • Evalación smativa: a trav;s de n e5amen pr3ctico *Fo parcial'

    Edición ,. 9

  • 8/16/2019 POO - Apruébala YA - C# - 7

    9/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    'ablas de "erdad

    ($ 'ablas de "erdad

    Estas ta!las peden constrirse haciendo na interpretación de los si#nos

    ló#icos % J% v% % % as$ como: no% *% o% si4entonces% s$ * sólo si%respectivamente' 2a interpretación corresponde al sentido "e estasoperaciones tienen dentro del ra9onamiento'

    8ede esta!lecerse na correspondencia entre los resltados de estasta!las * la dedcción ló#ico matem3tica' En consecencia% las ta!las deverdad constit*en n m;todo de decisión para che"ear si naproposición es o no n teorema'

    8ara la constrcción de la ta!la se asi#nar3 el valor 1 (no) a na

    proposición cierta * (cero) a na proposición +alsa' Esta ha sido lamanera niversal en "e se ha e5presado% * todo esto #racias a eor#ePoole (1.1O-1.R)% "i;n +e la persona "e ideó el 3l#e!ra "e lleva snom!re' El presentó el primer tratamiento sistem3tico de la ló#ica% * paraello desarrolló n sistema al#e!raico% conocido ahora como Sl#e!ra dePoole' Bdem3s de ss aplicaciones al campo de la ló#ica% el 3l#e!ra dePoole ha tenido dos aplicaciones importantes: el tratamiento de conjntosmediante las operaciones de nión e intersección "e ha servido de !ase ala teor$a de la pro!a!ilidad * el diseño de circitos di#italescom!inacionales'

    Bn"e en el 3l#e!ra de Poole en realidad se tili9an otros s$m!olos paralos operadores% vamos a mantener ac3 los s$m!olos de las proposicionesló#icas' 2o "e s$ se tomó ac3 de dicha 3l#e!ra son los valores * 1 parala notación de al#o /also o ierto% respectivamente' Esto se hace paraevitar con+siones m3s adelante'

    &%$% Operadores -ógicos

    E5isten nas cinco operaciones !3sicas "e operan so!re las proposicionesló#icas% como *a lo hemos visto anteriormente' Estdiemos ahora la Ia!lade erdad para cada no de ellos'

    ,'1'1' %egación: El valor de verdad de la ne#ación es el contrario de la

    proposición ne#ada'

    8 8

    1

    1

    ,'1',' 6isunción: 2a dis*nción solamente es +alsa si lo son ss doscomponentes' Esta operación es ampliamente conocida con el

    nom!re del operador >@>'

    8 Q 8 v Q  

    1 1 1

    1 1

    1 1

    ,'1'' Conjunción: 6olamente si las componentes de la conjnción sonciertas% la conjnción es cierta' Esta operación es conocidatam!i;n !ajo el nom!re de >?>'

     J

    Edición ,. ;

  • 8/16/2019 POO - Apruébala YA - C# - 7

    10/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    ,'1'' Condicional: El condicional solamente es +also cando elantecedente es verdadero * el consecente es +also' De la verdadno se pede se#ir la +alsedad'

    8 Q 8 Q 

    1 1 1

    1

    1 1

    1

    ,'1'O'

  • 8/16/2019 POO - Apruébala YA - C# - 7

    11/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    i) p sólo si "j) p sin em!ar#o "U) p s+iciente para "l) p siempre "e "m) a veces p% siempre "n) p a no ser "e "

    6olción:

    a)  p→ q

     b)  p ∧ q

    c)  p

    d)  p ∧ q

    e)  p→ q

    f) q → p

    g)  p ∧ q

    h)  p→ q

    i)  p→ q

     j)  p ∧ q

    k)  p→ q

    l) q → p

    m) ( p ∨ ¬ p) ∧ q ≡ q

    n) ¬ q → p

    ,'',' /ormali9ar los si#ientes ra9onamientos:

    >6i el resltado o!tenido es sperior al previsto en O nidades%ser3 de!ido a no ha!er reali9ado el proceso a la temperatraadecada o a la e5istencia de errores en los c3lclos +inales'>

    >El an3lisis reali9ado% innecesario si nos dejamos llevar por laprecipitación% se torna necesario si nos paramos a re+le5ionarso!re el mensaje "e se pretende transmitir'>

    >El c3ncer no lo#rar3 crarse a no ser "e se lo#re determinar scasa * se consi#a encontrar +3rmacos adecados o !ien para

    prevenirlo o para crarlo'>

    6olción:

    p T esltado o!tenido menor al previsto en O nidades'" T Ga!er reali9ado el proceso a la temperatra adecada'r T E5istencia de errores en los c3lclos +inales'

    (¬q ∨ r ) → p

    p T Bn3lisis reali9ado es necesario'" T Hos dejamos llevar por la precipitación'r T Hos paramos a re+le5ionar so!re el mensaje "e se pretendetransmitir'

    (q → ¬ p) ∧ (r → p)

    p T El c3ncer lo#rar3 crarse'" T 6e lo#ra determinar s casa'r T 6e consi#e encontrar +3rmacos adecados para prevenirlo's T 6e consi#e encontrar +3rmacos adecados para crarlo'

    ¬ (q ∧ (r ∨ s))→ ¬ p ≡ p → (q ∧ (r ∨ s))

    ,''' /ormali9ar tili9ando las conectivas V¬, ∨, ∧W el si#ienteennciado: >6i p entonces " *% en caso contrario% si p1 entonces "1*% en caso contrario r1'>

    6olción:

    ( p → q) ∧ (¬ p→ (( p1→ q1) ∧ (¬ p1→ r 1)))

    ,''' /ormali9ar el si#iente ennciado donde hemos notado >si pentonces " * en caso contrario r> de la si#iente +orma:

     p→ q;r 

    Edición ,. ..

  • 8/16/2019 POO - Apruébala YA - C# - 7

    12/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    Hormali9ar dicho ennciado'

    6olción:

    ( p → q) ∧ (¬ p → r )

    /orma normal conjntiva: (¬ p ∨ q) ∧ ( p ∨ r )

    ,''O' ompr;!ese si los si#ientes ra9onamientos son correctos o no:

    a' >6i Bntonio #anó la carrera% entonces Paltasar o arlos +eronlos se#ndos' 6i Paltasar +e se#ndo% entonces no #anóBntonio' 6i Demetrio +e se#ndo% no lo +e arlos' Bntonio#anó la carrera' 8or tanto% Demetrio no +e se#ndo>'

    !' >Ho llora% r$e' 6i no llora% r$e sólo si tiene n j#ete' Hnca

    tiene n j#ete cando se est3 riendo si no come ncaramelo' 2e#o come n caramelo'>c' >an "iere a Mar$a si * sólo si Mar$a "iere a an * promete

    casarse con ;l' Mar$a no "iere a an si an no "iere aMar$a' Mar$a promete casarse con an si * sólo si anpromete casarse con Mar$a' 8or tanto% an "iere a Mar$a *Mar$a no "iere a an>'

    d' >6i ha nevado ser3 di+$cil condcir' 6i no es +3cil condcirlle#ar; tarde si no sal#o temprano' Ga nevado' 2e#o saldr;temprano'>

    e' >6i no lleve sal#o al campo' 6i sal#o al campo respiro' 8or

    tanto% respiro si * sólo si no lleve'>+' >6i n monte se "ema al#o t*o se "ema' Bl#o t*o se "ema

    si * sólo si eres descidado' 6i eres descidado no mereces "ete +eliciten' 8or tanto si no mereces "e te +eliciten entonceses "e n monte se "ema'>

    #' >El Ministro 8oplar de Econom$a * Gacienda ha hecho lassi#ientes declaraciones:B la prensa: >6i los impestos s!en% la in+lación !ajar3 si * sólosi no se deval&a el Pol$var'>B la radio: >6i la in+lación !aja o si el Pol$var no se deval&a% los

    impestos no s!ir3n'>B la tele: >@ !ien !aja la in+lación * se deval&a el Pol$var% o!ien los impestos de!en s!ir'>omo consecencia% p!lica n in+orme en el "e ase#ra: >2osimpestos de!en s!ir% pero la in+lación !ajar3 * el Pol$var nose devalar3'>

    /e consecente con ss declaraciones a los medios decomnicación'

    h' >Es s+iciente XhisU* para "e chocolate' hocolate si * solo sijamón' Ho #ine!ra a menos "e chocolate' YhisU*' Es posi!lea+irmar: (1) "e !e!ió #ine!ra< (,) "e no tomó chocolate

    i' >6i no especi+ico las condiciones iniciales mi pro#rama nocomen9ar3' Ga!r; pro#ramado n ciclo in+inito solo si mipro#rama no termina' Pasta "e el pro#rama no comience o no+inalice para "e +alle' De ah$ "e sea necesario no solamenteespeci+icar las condiciones iniciales sino tam!i;n no pro#ramar

    n ciclo in+inito para "e el pro#rama no +alle'>j' >6i ,O divisiones son s+icientes% el #eneral #anar3 la !atallaNpor otra parte% o se sministran alas de apo*o a;reo t3ctico%o el #eneral no #anar3 la !atalla' Bdem3s% no es cierto "esean s+icientes ,O divisiones * "e se va*an a sministrar alas de apo*o a;reo t3ctico' onclsión: no son s+icientes ,Odivisiones'>

    6olción:

    a' 60 es v3lido% Bntonio #anó la carrera'!' E6 v3lido% come n caramelo'c' El ra9onamiento H@ es v3lido% *a "e pede darse el caso de

    "e nin#no de los dos "iera al otro% * las premisas ser$anciertas% pero la conclsión /alsa'

    d' El ra9onamiento H@ es v3lido por"e pede darse el caso deH@ salir temprano * lle#ar tarde ha!iendo nevado * siendodi+$cil condcir' mpli;ndose todas las premisas'

    e' H@ es v3lido% pedo salir al campo% lloviendo * respirar' 2e#ono se dedce "e respire si * sólo si no lleve'

    +' H@ es v3lido'

    Edición ,. .(

  • 8/16/2019 POO - Apruébala YA - C# - 7

    13/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    #' H@ es correcto'h' H@ se pede dedcir nin#no de los dos% ni "e !e!iese

    ine!ra ni "e no tomase chocolate'i' El ra9onamiento E6 correcto'j' El ra9onamiento E6 correcto'

    ,''R' 2e di#o a n ami#o: >ando sal#o sin para#as% lleve' andoest3 despejado% no lleve' 6e#&n el hom!re del tiempo% mañanaestar3 despejado o har3 nie!la' De todos modos saldr; sinpara#as>' Entonces mi ami#o responde: >Entonces mañana%adem3s de llover% ha!r3 nie!la>' ómo lo spo<

    6olción:

    Bm!as e5presiones se dedcen ló#icamente sponiendo "e todaslas +rases sean erdaderas% se pede compro!ar "e sólo e5iste

    esa posi!ilidad'

    ,''7' Don an Ienorio% hi9o las si#ientes declaraciones% con respectoa las doncellas 0n;s% ana * Mar$a% "e le costaron la vida' Qi;no "i;nes son las asesinasBmo a la &ltima de las tres' 6i amo a0n;s pero no a Mar$a% entonces tam!i;n amo a ana' @ amo aMar$a * a ana o no amo a nin#na' 6i amo a Mar$a% entoncesamo a 0n;s>' (se spone "e la asesina era a";lla a la "e Donan no ama!a)'

    6olción:

    Hin#na de ellas era la asesina% pes las ama!a a las tres'

    ,''.' En n jicio el +iscal ar#menta: >6i el acsado es clpa!le%entonces ten$a n testi#o>' B ello% el a!o#ado de+ensor respondióinmediatamente: >Eso es +also>' El acsado decidió cam!iar dea!o#ado de+ensor' Es ló#ica la decisión tomada por el acsado<8or ";<

    6olción:

    6i es /alsa la sentencia >6i el acsado es clpa!le entonces ten$an testi#o>% por la ta!la de verdad de la implicación% elantecedente es erdadero * el consecente /also% le#o elantecedente es erdadero% es decir% el acsado ser$a clpa!le'

    ,''Z' Bnali9ar la coherencia ló#ica (no teoló#ica) del si#ientera9onamiento: >6i Dios e5iste es todo amor * omnipotencia' 6i Dioses incapa9 de erradicar el s+rimiento del mndo entonces no esomnipotente' Dios no es amor o est3 dispesto a erradicar els+rimiento del mndo' Dios es capa9 de erradicar el s+rimientodel mndo * est3 dispesto a ello solo si no e5iste s+rimiento enel mndo' E5iste s+rimiento en el mndo' 8or tanto: Dios noe5iste>'

    6olción:

    El ra9onamiento es correcto en t;rminos ló#icos'

    ,''1' >6i la Pella Drmiente despierta% los ha!itantes del castillotam!i;n lo har3n' 6i el pr$ncipe la !esa% despertar3' El pr$ncipe la!esar3 si est3 de !en ver' @ la !esa o no se despierta nadie'omo esto es n cento% la princesa% a pesar de llevar 1 añosdormida si#e de m* !en ver' 6i la princesa se despierta secasar3n% vivir3n +elices * comer3n perdices si no estamos en veda'Estamos en veda>' 6e casan< 6on +elices< omen perdices<

    6olción:

    6e casan% viven +elices% pero no comen perdices por"e estamosen veda'

    ,''11' 2os dos carteles si#ientes est3n col#ados respectivamente a laperta de las ha!itaciones 1 * ,' =no de los carteles dice laverdad * el otro cartel miente' 6a!iendo "e en la mismaha!itación no pede ha!er na dama * n ti#re% * "e pede

    Edición ,. .*

  • 8/16/2019 POO - Apruébala YA - C# - 7

    14/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad II: )ablas de *erdad 

    ha!er dos damas * dos ti#res% se pide decidir ló#icamente ";perta se de!e a!rir para li!erar a la dama (si es "e e5iste)'Bm!as ha!itaciones est3n ocpadas'

    BIE2 1: En esta ha!itación ha* na dama * en la otra n ti#re'BIE2 ,: En na de estas ha!itaciones ha* na dama * en na

    de estas ha!itaciones ha* n ti#re'

    6olción:

    2a &nica +orma de "e n cartel di#a la verdad * otro mienta es"e el artel 1 mienta * el artel , di#a la verdad' on lo calha!r$a n ti#re en la ha!itación 1 * na dama en la ha!itación ,'

    ,''1,' 0#al al pro!lema anterior% pero ahora sponiendo "e los doscarteles si#ientes dicen am!os la verdad o mienten am!os'

    Dedcir en "; ha!itación ha* na dama% sa!iendo% como antes%"e pede no ha!erla'

    BIE2 1: Bl menos en na de estas ha!itaciones ha* na dama'BIE2 ,: Ga* n ti#re en la otra ha!itación'

    6olción:

    2a &nica posi!ilidad es "e los dos carteles di#an la verdad *ha!r$a na dama en la ha!itación , * n ti#re en la ha!itación 1'

    ,''1' Discrso so!re los estdios de 6istemas en clase de 2ó#ica:>6eñoras% señores% !enas tardes: Es hora de "e recapacitemosso!re los estdios de sistemas en v$speras de la #radación ennestra =niversidad' 6e sa!e "e si las comptadoras ha!lasen lossist;micos (0n#' En sistemas) no e5istir$an' 8or otra parte% en la&ltima renión del onsejo de =niversidades% ;ste a+irmó "e:>'''la =niversidad #radar3 sist;micos mientras las comptadorasno ha!len'''>N a+irmación "e nos parece m* correcta% si !ien locierto es "e las comptadoras no ha!lan pero los sist;micos

    e5isten' B la vista de todo ello nos pre#ntamos: Es% por tanto%coherente "e la =niversidad e5pida t$tlos de 0n#enieros de6istemas en la actalidad<

    6olción:

    6$% se si#e "e la niversidad e5penda t$tlos de 6istemas a partirde las premisas' El ra9onamiento es correcto'

    Edición ,. .0

  • 8/16/2019 POO - Apruébala YA - C# - 7

    15/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    +nidad III

    Objeti,o:

    8revio repaso% lectra e investi#ación% el participante recordar3 la historiade la comptación% as$ como enmerar3 las di+erentes #eneraciones del

    comptador * los sistemas operativos' Iam!i;n reconocer3 los diversoslen#ajes de pro#ramación * relacionar3 ss paradi#mas'

    Contenido:

    ' Gistoria de la omptación''1' 8rocesamiento de datos'',' 2as O #eneraciones del comptador''' omptador''' 6istemas operativos'

    'O' 2en#ajes de 8ro#ramación''R' 0nt;rpretes * compiladores''7' 8aradi#mas de la 8ro#ramación''.' riterios del len#aje'

    Acti,idades del participante:

    • eali9ar lectra previa so!re el tema% tili9ando la presente #$a *otros medios !i!lio#r3+icos'

    • 0nteractar en clase'• Disctir en #rpo'• eali9ar las actividades propestas en clase'

    &,aluación multidireccional:

    • Evalación +ormativa: a trav;s de las discsiones de los conocimientose intervenciones en clase'

    • Evalación smativa: a trav;s de n e5amen pr3ctico *Fo parcial'

    =istoria de la Computación

    *$ =istoria de la Computación

    +%$% Procesamiento de datos

    El ori#en de la comptación sr#e de la necesidad consecente del hom!repor reali9ar c3lclos nm;ricos * procesar in+ormación% "e le permitiera+acilitar ss tareas cotidianas' 8re!a de ello son los nmerosos *novedosos inventos creados "e han conllevado al desarrollo de latecnolo#$a actal' En la historia sr#ieron mchos inventos% nevos *aplica!les% pero sólo al#nos de ellos marcaron na !recha en el desarrollode la comptación% los cales son:

    '1'1' $astón con muescas: es n instrmento de madera con +orma de!astón * con hendidras ad*acentes% c*a +ncionalidad se !asa!a

    en llevar el conteo de al#&n hecho espec$+ico% sin sistemasdecimales% como lo conocemos ho* en d$a% sólo da!a n indicio delas veces "e sced$a al#&n evento'

    '1','  %baco #!ino: es n instrmento "e permitió crear la estrctradel primer sistema nm;rico (decimal)% * con ello% podermaniplar los n&meros con ma*or propiedad * precisión' onsta!acon n mecanismo "e permit$a asi#nar las nidades% decenas *centenas del n&mero "e se "er$a representar'

    '1'' $las Pascal &'.())*: /e n cient$+ico "e lo#ró crear na m3"inasmadora a trav;s de n sistema de en#ranajes mec3nicos dedistintos tamaños% en donde cada no de ellos representa!a nanidad espec$+ica'

    '1'' +otfred on Leibnitz &'.(')*: Iomó la idea de 8ascal * lo#ró crearna m3"ina% "e adem3s de smar * restar% mltiplica!a *divid$a'

    '1'O' -erman -ollerit &'.)*: onstr*ó na m3"ina% c*a +nción erala de interpretar na serie de tarjetas per+oradas% en donde el

    Edición ,. .5

  • 8/16/2019 POO - Apruébala YA - C# - 7

    16/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    pnto de per+oración si#ni+ica!a n estado verdadero &true ó '*, *el pnto de no per+oración +also &false ó )*' Esta serie de 1[s * [sera procesada * nos da!a na in+ormación espec$+ica' Estastarjetas +eron sadas en el censo reali9ado en EE== para ese año'

    '1'R' /012# &'.34(*: /lectronical 0umerical 1ntegrator and #alculador,

    +e el primer comptador creado por el hom!re en 8ensilvania%compesto por 1.' t!os al vac$o% pesa!a tres toneladas *ocpa!a n espacio de apro5imadamente 1O mts,' Estecomptador pod$a ejectar 1' operaciones por se#ndo% todana maravilla para ese entonces' 2os pro#ramadores de estasmacrocomptadoras de!$an conocer a +ondo el hardXare de lamisma para poder maniplarlas con precisión'

    +%&% -as 5 generaciones del computador

    B partir de la creación de EH0B% comen9ó na carrera tecnoló#ica pormejorar los procesos de cómpto% amentando s velocidad *compati!ilidad% * por spesto% redciendo s tamaño * complejidad' 8araello se crearon nevas tendencias * tecnolo#$as "e dejaron hellas en eldesarrollo de la comptación'

    ','1' Primera +eneración &'.34(5'.366*: esta #eneración la con+ormaronlas macrocomptadoras como EH0B% "e tra!aja!an en len#aje!inario * ocpa!an #randes espacios +$sicos'

    ',',' Segunda +eneración &'.3665'.3(7*: este +e el primer salto

    histórico en el desarrollo de la comptación' 6e creó el transistor%"e lo#ró simlar el comportamiento de centenares de t!os alvac$o en n solo componente electrónico' 6e redjo nota!lementeel tamaño de los comptadores% el len#aje sado era elensam!lador (nemónicos) * los dispositivos de almacenamientoesta!an hechos de material +erroma#n;tico'

    ','' 8ercera +eneración &'.3(75'.39)*: esta #eneración se !asó en laredcción del tamaño del comptador m3s "e en el amento dela velocidad% miniatri9ando an m3s los componentes

    actalmente tili9ados'

    ','' #uarta +eneración &'.39)5'.36*: esta #eneración representó else#ndo #ran salto histórico en el desarrollo de la comptación' 6elo#ró crear chips de silicio "e lo#ra!an inte#rar a millones detransistores "e redc$an nota!lemente el tamaño del comptador

    * amenta!a indiscti!lemente s velocidad de procesamiento'8ara esta ;poca eran accesi!les a las personas * eranmedianamente compati!les'

    ','O' :uinta +eneración &2;os 3)*: a partir de los Z% el desarrollo de lacomptación se ha en+ocado mcho m3s en la creación deso+tXare "e permitan procesar el conocimiento e+icientemente%se crea la inteli#encia arti+icial * los sistemas e5pertos(reconocedor de hellas% im3#enes% voces% etc')' 2acompati!ilidad entre so+tXare * hardXare es total en esta

    #eneración'+%+% Computador

    Es n sistema electrónico r3pido * e5acto "e manipla datos de entrada%los procesa * #enera datos de salida se#&n las ordenes de n pro#rama deinstrcciones almacenadas en s memoria' Est3 compesto por dos !lo"esesenciales: -ard

  • 8/16/2019 POO - Apruébala YA - C# - 7

    17/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    procesos internos ejectados en la 8=' 2a = tra!aja en dosciclos: ciclo de identi+icación * locali9ación% * ciclo de ejección'

    2a nidad aritm;tica ló#ica% se encar#a de reali9ar todas lasoperaciones aritm;ticas (\ - ] F) * comparar valores para o!tenerresltados de verdadero o +also'

    2a nidad de memoria principal es tili9ada por la 8= para #ra!ar* e5traer in+ormación% *a sea en +orma temporal o permanente'E5isten dos tipos de memoria !3sicas: BM (Aandom 2ccess?emory*% es la llamada memoria del sario% de!ido a "e elpro#ramador pede leer * escri!ir datos en la misma' Estamemoria es temporal% *a "e mantiene ss datos siempre * candoest; conectada a n sministro de ener#$a% s in+ormación esvol3til' @M (Aead Only ?emory*% es la memoria del +a!ricante%ss datos son permanentes * no peden ser modi+icados mediante

    pro#ramación'

    '',' Soft

  • 8/16/2019 POO - Apruébala YA - C# - 7

    18/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    manera "e si la comptadora tviese m3s de no le ser$a in&til' Elejemplo m3s t$pico de este tipo de sistemas es el D@6 * Mac@6'

    ultiproceso: =n sistema operativo mltiproceso se re+iere aln&mero de procesadores del sistema% "e es m3s de no * ;ste escapa9 de sarlos todos para distri!ir s car#a de tra!ajo'

    eneralmente estos sistemas tra!ajan de dos +ormas: sim;trica oasim;tricamente' ando se tra!aja de manera asim;trica% elsistema operativo selecciona a no de los procesadores el calj#ar3 el papel de procesador maestro * servir3 como pivote paradistri!ir la car#a a los dem3s procesadores% "e reci!en elnom!re de esclavos' ando se tra!aja de manera sim;trica% losprocesos o partes de ellos (threads) son enviados indistintamente acal"iera de los procesadores disponi!les% teniendo%teóricamente% na mejor distri!ción * e"ili!rio en la car#a detra!ajo !ajo este es"ema'

    6e dice "e n thread es la parte activa en memoria * corriendo den proceso% lo cal pede consistir de n 3rea de memoria% nconjnto de re#istros con valores espec$+icos% la pila * otrosvalores de conte5to' =n aspecto importante a considerar en estossistemas es la +orma de crear aplicaciones para aprovechar losvarios procesadores' E5isten aplicaciones "e +eron hechas paracorrer en sistemas monoproceso "e no toman nin#na ventaja amenos "e el sistema operativo o el compilador detecte seccionesde códi#o paraleli9a!le% los cales son ejectados al mismo tiempoen procesadores di+erentes' 8or otro lado% el pro#ramador pede

    modi+icar ss al#oritmos * aprovechar por s$ mismo esta +acilidad%pero esta &ltima opción las m3s de las veces es costosa en horashom!re * m* tediosa% o!li#ando al pro#ramador a ocpar tanto om3s tiempo a la paraleli9ación "e a ela!orar el al#oritmo inicial'

    +%.% -enguajes de Programación

    En in+orm3tica% es cal"ier len#aje arti+icial "e pede tili9arse parade+inir na secencia de instrcciones para s procesamiento por nordenador o comptadora' Es complicado de+inir "; es * "; no es n

    len#aje de pro#ramación' 6e asme #eneralmente "e es la tradcción delas instrcciones a n códi#o "e comprende la comptadora * "e de!eser completamente sistem3tica' Hormalmente es la comptadora la "ereali9a la tradcción'

    'O'1' Lenguaje de maquina: istos a m* !ajo nivel% los

    microprocesadores procesan e5clsivamente señales electrónicas!inarias' Dar na instrcción a n microprocesador spone enrealidad enviar series de nos * ceros espaciadas en el tiempo dena +orma determinada' Esta secencia de señales se denominacódi#o m3"ina' El códi#o representa normalmente datos *n&meros e instrcciones para maniplarlos'

    'O',' Lenguajes de bajo nivel:  =n modo m3s +3cil de comprender elcódi#o m3"ina es dando a cada instrcción n nemónico% comopor ejemplo STORE% ADD  o JUMP' Esta a!stracción da como

    resltado el ensam!lador% n len#aje de m* !ajo nivel "e esespec$+ico de cada microprocesador'

    2os len#ajes de !ajo nivel permiten crear pro#ramas m*r3pidos% pero "e son a mendo di+$ciles de aprender' M3simportante es el hecho de "e los pro#ramas escritos en n !ajonivel son pr3cticamente espec$+icos para cada procesador' 6i se"iere ejectar el pro#rama en otra m3"ina con otra tecnolo#$a%ser3 necesario rescri!ir el pro#rama desde el principio'

    'O'' Lenguajes de alto nivel: 8or lo #eneral se piensa "e los

    ordenadores son m3"inas "e reali9an tareas de c3lclos oprocesamiento de te5tos' 2a descripción anterior es sólo na +ormam* es"em3tica de ver na comptadora' Ga* n alto nivel dea!stracción entre lo "e se pide a la comptadora * lo "erealmente comprende' E5iste tam!i;n na relación compleja entrelos len#ajes de alto nivel * el códi#o m3"ina'

    2os len#ajes de alto nivel son normalmente +3ciles de aprenderpor"e est3n +ormados por elementos de len#ajes natrales%como el in#l;s' En PB60% el len#aje de alto nivel m3s conocido%

    Edición ,. .9

  • 8/16/2019 POO - Apruébala YA - C# - 7

    19/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    los comandos como:

    IF (CONTADOR = 10) THEN STOP

    peden tili9arse para pedir a la comptadora "e pare siCONTADOR es i#al a 10' 8or des#racia para mchas personas esta

    +orma de tra!ajar es n poco +rstrante% dado "e a pesar de "elas comptadoras parecen comprender n len#aje natral% lohacen en realidad de na +orma r$#ida * sistem3tica'

    +%/% Intérpretes compiladores

    2a tradcción de na serie de instrcciones en len#aje ensam!lador (elcódi#o +ente) a n códi#o m3"ina (o códi#o o!jeto) no es n procesom* complicado * se reali9a normalmente por n pro#rama especialllamado compilador ' 2a tradcción de n códi#o +ente de alto nivel a n

    códi#o m3"ina tam!i;n se reali9a con n compilador% en este caso m3scomplejo% o mediante n int;rprete' =n compilador crea na lista deinstrcciones de códi#o m3"ina% el códi#o o!jeto% !as3ndose en n códi#o+ente' El códi#o o!jeto resltante es n pro#rama r3pido * listo para+ncionar% pero "e pede hacer "e +alle el ordenador si no est3 !iendiseñado' 2os int@rpretes% por otro lado% son m3s lentos "e loscompiladores *a "e no prodcen n códi#o o!jeto% sino "e recorren elcódi#o +ente na l$nea cada ve9' ada l$nea se tradce a códi#o m3"ina* se ejecta' ando la l$nea se lee por se#nda ve9% como en el caso delos pro#ramas en "e se retili9an partes del códi#o% de!e compilarse denevo' Bn"e este proceso es m3s lento% es menos sscepti!le deprovocar +allos en la comptadora'

    +%0% Paradigmas de la Programación

    =n paradi#ma se pede considerar como na colección de caracter$sticasa!stractas "e cate#ori9an n #rpo de len#ajes "e son aceptados *tili9ados por n #rpo de pro+esionales' 2os pro#ramas de comptadora setili9an para resolver pro!lemas% * ha ha!ido miles de años de tra!ajomatem3tico para tal +in' 2os len#ajes de pro#ramación est3nespeci+icados por re#las para +ormar instrcciones correctas%

    or#ani93ndolas en módlos% someterlas hacia n compilador% el caltradce el códi#o en len#aje comprensi!le para na m3"ina enparticlar% * +inalmente ejecta el pro#rama% es decir% someter la entradahacia la comptadora% la cal la trans+orma en na salida de acerdo conlas instrcciones en el pro#rama'

    '7'1' Paradigmas 1mperativos. /acilitan c3lclos por medio de cam!iosde estado' Entendemos por estado la condición de na BM oB2MBEHBM0EHI@'

    '7',' Paradigma de procedimientos.  Est3 constitido por !lo"es depro#ramas "e +orman n archivo plano% donde cada !lo"e si#ea s predecesor% constr*;ndose as$ n pro#rama lineal' Es nejemplo de este paradi#ma el len#aje de pro#ramación /@IBH'

    '7'' Paradigma estructurado en bloques. Est3 constitido por 3m!itos

    anidados% es decir% los !lo"es peden estar anidados dentro deotros !lo"es * peden contener ss propias varia!les' 6onejemplos de este paradi#ma los len#ajes: BDB% B2@2R% 8B6B2%B2@2R. * '

    '7'' Paradigma basado en objetos.  Descri!e a los len#ajes "esoportan o!jetos en interacción% tales como BDB (8BQ=EIE6)%M^D=2B (M^D=2@6)% 6MB22IB2K (@PEI@6)% * adem3s pedensoportar BP6IB0^H% EHB86=2B0^H * 8@20M@/06M@'

    '7'O' Paradigma orientado a objetos. Descri!e a los len#ajes "e est3n

    !asados en o!jetos * adem3s soportan clases de o!jetos * laherencia de atri!tos de n o!jeto padre por parte de ss hijos'6on ejemplos de este paradi#ma los len#ajes: \\% @!ject 8ascal* ava'

    '7'R' Paradigma del procesamiento en paralelo.  El t;rmino 8BB2E2@implica las posiciones de procesadores m&ltiples% mientras "e@H=EHIE s#iere "e los procesos se est3n ejectando en+orma simlt3nea' Este paradi#ma descri!e los len#ajes "esoportan el so de procesadores m&ltiples% la cooperación entre

    Edición ,. .;

  • 8/16/2019 POO - Apruébala YA - C# - 7

    20/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    procesos * el potencial para +alla parcial% es decir% no o m3sprocesos peden +allar sin hacer peli#rar todo el pro*ecto' 6onejemplos de este paradi#ma los len#ajes: oncrrent % 8ascal 6%BDB% @BM * -20HDB'

    '7'7' Paradigma de la programación lógica. 2a pro#ramación ló#ica est3

    !asada en n s!conjnto del c3lclo de predicados% incl*endoinstrcciones escritas en +ormas conocidas como cl3slas deG@H% a trav;s del c3lclo de estos predicados "e proporcionana5iomas * re#las de in+erencia se peden dedcir nevos hechos apartir de hechos conocidos' =na cl3sla de G@H permite "esolo n nevo hecho sea dedcido en cal"ier instrcción simple'=n sistemas de estas cl3slas permite n m;todo particlarmentemec3nico de demostración llamado resolción' =n pro#rama!asado en ló#ica se compone de na serie de a5iomas o hechos%re#las de in+erencia * n teorema o cestión por demostrarse' 2a

    salida es cierta si los hechos soportan o apo*an la cestión * es+alsa en el caso contrario'

    '7'.' Paradigma funcional. 2os len#ajes pramente +ncionales operansolamente a trav;s de +nciones' =na +nción develve sólo nvalor% dada na lista de par3metros'

    '7'Z' Paradigma del lenguaje de bases de datos.  2as propiedades "edistin#en a los len#ajes diseñados para tratar con !ases de datosson la persistencia * la administración de cam!ios' =n sistema deadministración de !ases de datos incl*e n 2en#aje Descriptor

    de Datos (DD2) * n 2en#aje Maniplador de Datos (DM2)'

    +%1% Criterios del lenguaje

    2os criterios del len#aje son caracter$sticas interrelacionadas sadas paraconsiderar si n len#aje tiene m;ritos% es decir% si este es con+ia!le *e+iciente'

    '.'1' Sintais: Ga!lar de sinta5is es ha!lar de la +orma del len#aje%ha!lar de la +orma del len#aje es ha!lar de na colección de

    instrcciones +ormadas al se#ir n conjnto de re#las "edi+erencian los pro#ramas v3lidos de los no v3lidos' 8ero la sinta5ispor s$ misma no da si#ni+icado a n len#ajeN meramente de+ine lacolección de +rases * sentencias "e son com!inaciones v3lidas delos caracteres de n len#aje'

    '.',' SemBntica: Descri!e de manera precisa lo "e si#ni+ica naconstrcción particlar' ada len#aje de pro#ramación podr$ainterpretar de manera distinta dos instrcciones escritase5actamente i#al'

    '.'' #omprobabilidad : 2a pre!a de "e n pro#rama +ncionacorrectamente involcra tres pasos "e descri!en scompro!a!ilidad% estos son: la compro!ación de "e el pro#ramacmple con la intención del pro#ramador% pro!ar "e elcompilador tradce de manera correcta a códi#o de m3"ina la

    sinta5is * la sem3ntica del pro#rama en el len#aje empleado% *compro!ar "e la m3"ina misma +nciona correctamente'

    '.'' #onfiabilidad : El pro#rama se considera con+ia!le si se comportacomo es annciado * prodce los resltados "e el sario espera'8ara los len#ajes de pro#ramación% la con+ia!ilidad por lo #eneralse re+iere a los mecanismos "e promeven la escritra%mantenimiento * depración de pro#ramas correctos% * els!si#iente manejo de e5cepciones cando n pro#rama seejecta'

    '.'O' 8raducción rBpida: 2os pro#ramas "e son escritos en n len#ajede!en tradcirse a n len#aje "e la m3"ina peda reconocer *por &ltimo a n códi#o de m3"ina "e peda ejectarse enrealidad% la tradcción del códi#o +ente de!e ser lo m3s r3pido *optimo posi!le'

    '.'R' #ódigo fuente eficiente: E5iste n !alance comparativo entre eltra!ajo "e el pro#ramador de!e hacer * el tra!ajo "e elcompilador pede hacer' 2en#ajes de m* alto nivel donde lospro#ramas maniplan estrctras complejas tales como re#istros%

    Edición ,. ()

  • 8/16/2019 POO - Apruébala YA - C# - 7

    21/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad III: istoria de la omputain

    listas% relaciones o conjntos dependen de compiladores deoptimi9ación por e+iciencia (ejectan varios pasos del an3lisissem3ntico)% en contraparte los len#ajes "e ejectan la #ama delos parecidos al % donde el pro#ramador pede tra!ajar m*cerca de la 8=% pdiera a#ili9ar el proceso de compilación% sinem!ar#o el pro#ramador de!e tener nociones de la m3"ina en

    cestión'

    '.'7' Ortogonalidad : En n len#aje las varia!les aleatorias seconsideran orto#onales si son independientes entre s$' Es en estesentido de independencia "e las caracter$sticas de n len#aje seconsideran orto#onales' on esto "eremos decir "e loscomponentes son independientes entre s$ * "e se comportan en lamisma manera en cal"ier circnstancia'

    '.'.' 8ransportabilidad : =n len#aje es transporta!le si ss pro#ramas

    peden compilarse * ejectarse en di+erentes m3"inas sin tener"e rescri!ir el códi#o +ente'

    Edición ,. (.

  • 8/16/2019 POO - Apruébala YA - C# - 7

    22/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I": Introduin a la #ro"ramain 2rientada a 2betos

    +nidad I"

    Objeti,o:

    8revio repaso% lectra e investi#ación% * la indcción prestada por el+acilitador% el participante de+inir3 los diversos conceptos !3sicos *

    necesarios de la pro#ramación orientada a o!jetos'

    Contenido:

    ' 8ro#ramación @rientada a @!jetos''1' onceptos de la 8@@'

    '1'1' @!jeto''1',' lase''1'' Encapslación''1'' B!stracción'

    '1'O' 8olimor+ismo''1'R' Gerencia'',' De+inición de lases * @!jetos'

    Acti,idades del participante:

    • eali9ar lectra previa so!re el tema% tili9ando la presente #$a *otros medios !i!lio#r3+icos'

    • 0nteractar en clase'• Disctir en #rpo'• eali9ar las actividades propestas en clase'

    &,aluación multidireccional:

    • Evalación +ormativa: a trav;s de las discsiones de los conocimientose intervenciones en clase'

    • Evalación smativa: a trav;s de n e5amen pr3ctico *Fo parcial'

    Programación Orientada a Objetos

    0$ Programación Orientada a Objetos

    2a pro#ramación orientada a o!jetos% ha tomado las mejores ideas de la

    pro#ramación estrctrada (no sa!e lo "e es la pro#ramaciónestrctrada

  • 8/16/2019 POO - Apruébala YA - C# - 7

    23/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I": Introduin a la #ro"ramain 2rientada a 2betos

    clase contiene toda la in+ormación necesaria para crear nevoso!jetos'

    '1'' &ncapsulación:  Es na t;cnica "e permite locali9ar * ocltar losdetalles de n o!jeto' 2a encapslación previene "e n o!jetosea maniplado por operaciones distintas de las de+inidas' 2a

    encapslación es como na caja ne#ra "e esconde los datos *solamente permite acceder a ellos de +orma controlada'

    2as principales ra9ones t;cnicas para la tili9ación de laencapslación son:

    • Mantener a salvo los detalles de representación% si solamentenos interesa el comportamiento del o!jeto'

    • Modi+icar * ajstar la representación a mejores solcionesal#or$tmicas o a nevas tecnolo#$as de so+tXare'

    '1'' Abstracción: En el sentido m3s #eneral% na a!stracción es narepresentación concisa de na idea o de n o!jeto complicado' Enn sentido m3s especi+ico% la a!stracción locali9a * oclta losdetalles de n modelo o diseño para #enerar * maniplar o!jetos'

    '1'O' Polimorismo:  6i#ni+ica "e n nom!re se pede tili9ar paraespeci+icar na clase #en;rica de acciones% es decir% podemosañadir +nciones distintas a n solo nom!re (+nción *Fo m;todo) operador'

    '1'R' =erencia: 2a herencia es n proceso mediante el cal n o!jeto(hijo) pede ad"irir las propiedades de otro o!jeto (padre)'

    omo resmen de los conceptos e5pestos anteriormente% podemos decirdos cosas' B sa!er:

    1) 2os o!jetos son encapslaciones de a!stracciones en la 8@@',) 2a nidad de encapslación en la 8@@ es el o!jeto'

    Bhora% la #ran pre#nta: C#ómo diferenciar una clase de un objetoD... =na

    clase es n tipo * n o!jeto es na instancia de ese tipo' Bdem3s% la clasees n concepto est3tico% es decir% na clase es n elemento reconoci!le enel te5to del pro#rama'

    =n o!jeto es n concepto pramente din3mico% el cal pertenece% no alte5to del pro#rama% sino a la memoria de la comptadora% donde los

    o!jetos ocpan n espacio en tiempo de ejección na ve9 "e ha*a sidocreado'

    -%&% 6einición de Clases Objetos

    8ara crear n o!jeto% es preciso de+inir primero s +orma #eneral% es decir%de!emos de+inir la clase a la cal pertenece el o!jeto a crear% para ellotili9amos la pala!ra reservada class'

    6einición de la clase: na clase es n tipo de+inido por el sario "e

    determina la estrctra de los datos * las operaciones asociadas a estetipo'

    2as clases son como plantillas o modelos "e descri!en como se constr*enciertos tipos de o!jetos' ada ve9 "e se constr*e n o!jeto de na clasese crea na instancia de esa clase% por consi#iente los o!jetos soninstancias de clases'

    2a +orma #eneral de la declaración de na clase es:

    class 

  • 8/16/2019 POO - Apruébala YA - C# - 7

    24/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I": Introduin a la #ro"ramain 2rientada a 2betos

    cal"ier tipo% incl*endo otras clases'

    ?iembros de la clase pri(ateE

    2os miem!ros de la clase private  tienen el m3s estricto control deacceso' 6ólo la clase misma pede tener acceso a n miem!ro  private' En

    este ejemplo nadie pede sar la clase *a "e todo es private'

    class Pr*,!d! %  private *n& ,!r1  private ,o*d Fn"*on1()  private ,o*d Fn"*on()/

    #&!&*" ,o*d m!*n() %  22 Se "re! ob3e&o1 de "!#e Pr*,!d!4  Pr*,!d! ob3e&o1 = new Pr*,!d!()

      ob3e&o14,!r1 = 5 22 !""e#o no ,!*do +or #er +r*,!&e4  ob3e&o14Fn"*on1() 22 !""e#o no ,!*do +or #er +r*,!&e4

      ob3e&o14Fn"*on() 22 !""e#o no ,!*do +or #er +r*,!&e4/

    8ara poder tener acceso necesitar$a "e las +nciones miem!ro +erandeclaradas en la sección public'

    ?iembros de la clase publiE

    8ara tili9ar los datos * +nciones miem!ro de na clase en otra "e noten#a relación al#na% se de!en declarar las +nciones * datos en lasección public'

    class Pb*"! %  public *n& ,!r1  public ,o*d Fn"*on1()  public ,o*d Fn"*on()/

    #&!&*" ,o*d m!*n() %  Pb*"! ob3e&o1 = new Pb*"!() 22 Se "re! ob3e&o16 "!#e Pb*"!4

      ob3e&o14,!r1 = 5 22 !""e#o ,7*do4  ob3e&o14Fn"*on1() 22 !""e#o ,7*do4  ob3e&o14Fn"*on() 22 !""e#o ,7*do4/

    al"ier miem!ro "e se declare en la sección  public% hace posi!le elacceso ilimitado de dicho miem!ro desde cal"ier clase *Fo m;todo +erade la clase "e la declare'

    ?iembros de la clase proteted E

    ando se de+ine na clase "e se tili9a s!si#ientemente como clase de!ase para otras clases (clase padre)% se pede hacer "e los miem!rosest;n accesi!les solo para +nciones de las clases derivadas mediante elso de la pala!ra clave protected '

    onsidere las clases si#ientes% se#&n s jerar"$a:

    class An*m!e# %  protected *n& N+!&!#  protected *n& No3o#  protected  ,o*d de#+!8!r#e()/

    class Perro6 An*m!e# %  protected #&r*n. r!8!  protected  ,o*d A#*.n!r_P!&!#() %  22 !""e#o ! "!m+o N+!&!# de An*m!e# ,7*do +or #er protected 4  &9*#4N+!&!# = :  //

    #&!&*" ,o*d m!*n() %  Perro P1 = new Perro() 22 Se "re! P1 de "!#e Perro4  P14r!8! = ;P!#∨ 22 !""e#o no ,7*do +ore ! n"*>n

    22 m!*n() no &*ene re!"*>n "on !22 "!#e Perro4

    /

    2os campos prote#idos sólo peden ser accedidos por las +ncionesmiem!ros de esa clase * las +nciones miem!ro de las clases derivadas(clases hijas)'

    #onstructores de una claseE

    =n constrctor es na +nción especial "e es miem!ro de esa clase * "etiene el mismo nom!re de la clase' Es m* +recente "e na cierta partede n o!jeto necesite na iniciación antes de "e peda ser tili9adaN

    Edición ,. (0

  • 8/16/2019 POO - Apruébala YA - C# - 7

    25/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad I": Introduin a la #ro"ramain 2rientada a 2betos

    como el re"isito de iniciación es tan +recente% A permite "e loso!jetos se den a s$ mismos valores iniciales cando se crean' Estainiciación atom3ticamente se lleva a ca!o mediante el so de na +nciónde constrcción o constrctor'

    8or ejemplo% si tenemos na clase "e simle el tan"e de #asolina de n

    carro el constrctor de!er$a ser al#o como el códi#o "e se mestra acontinación' En dicho códi#o se coloca el modi+icador this para hacermención a n miem!ro (!ien sea campo o +nción)% de la clase actal'omo se podr3 o!servar% al principio de la creación del o!jeto (en elconstrctor)% sponemos "e el tan"e del carro est3 completamentelleno'

    class T!ne %  protected *n& T*+o?!#o*n!  protected *n& C!n&*d!d?!#o*n!  protected  ,o*d T!ne(*n& T*+o?!#) %  this4T*+o?!#o*n! = T*+o?!#

    this4C!n&?!#o*n! = 100 22 100 e# ! m7@*m! "!n&*d!d  //

    2a +nción de constrcción de n o!jeto se invoca cando se crea elo!jeto' Esto si#ni+ica "e se invoca cando se ejecta la declaración delo!jeto' omo lo dice el nom!re% n constrctor es na +nción "e setili9a para constrir n o!jeto de na clase dadaN esto pede implicar lapresencia de di+erentes escenarios'

    1) reación de o!jetos con iniciación de+inida'

    ,) reación de o!jetos con iniciación especi+ica') reación de o!jetos copiando otro o!jeto'

    ada no de estos procesos implica n tipo di+erente de constrctor' =nconstrctor tiene el nom!re de la clase a la "e pertenece'

    Festructores de una claseE

    2os destrctores entran en la misma cate#or$a "e los constrctores' 6etili9an para reali9ar ciertas operaciones "e son necesarias cando *a no

    se tili9a n o!jeto como es la li!eración de memoria'

    E5isten al#nas di+erencias importantes entre los constrctores * losdestrctores:

    1) 2os destrctores peden ser virtales% los constrctores H@'

    ,) B los destrctores no se les pede mandar ar#mentos') 6ólo se pede declarar n destrctor para na clase dada'

    El destrctor se nom!ra como la clase (o sea% con el mismo nom!re)% peroeste va precedido de na tilde (_)'

    class T!ne%  protected *n& T*+o?!#o*n!  protected *n& C!n&*d!d?!#o*n!

      protected  ,o*d T!ne()

      %  this4C!n&?!#o*n! = 0  //

    El destrctor se tili9a% #eneralmente% para desechar cal"ier espacio dememoria asi#nado al o!jeto'

    Edición ,. (5

  • 8/16/2019 POO - Apruébala YA - C# - 7

    26/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    +nidad "

    Objeti,o:

    8revio repaso de la nidad 0 * la lectra e investi#ación% anado con laindcción prestada por el +acilitador% el participante emplear3 s

    conocimiento para reali9ar pro#ramas de comptación !3sicos% en los "eresolver3 pro!lemas variados'

    Contenido:

    O' Bspectos 2;5icos'O'1' omentarios'O',' 2iterales'O'' @peradores'O'' aria!les * tipos de datos'

    O'O' 0nstrcciones'O'O'1' 0nstrcciones !3sicas'O'O',' 0nstrcciones condicionales'O'O'' 0nstrcciones iterativas'O'O'' 0nstrcciones de salto'

    Acti,idades del participante:

    • eali9ar lectra previa so!re el tema% tili9ando la presente #$a *otros medios !i!lio#r3+icos'

    • 0nteractar en clase'• Disctir en #rpo'• eali9ar las actividades propestas en clase'

    &,aluación multidireccional:

    • Evalación +ormativa: a trav;s de las discsiones de los conocimientose intervenciones en clase'

    • Evalación smativa: a trav;s de n e5amen pr3ctico *Fo parcial'

    6atos imples &structuras de Control

    5$ Aspectos -é2icos

    =na ve9 ad"irida la ló#ica de pro#ramación% es necesario conocer n

    so+tXare de desarrollo (len#aje de pro#ramación)% el cal tili9aremospara transcri!ir de +orma sistem3tica el so+tXare "e se desea crear' 8araello de!emos sa!er cómo +nciona el len#aje a tili9ar% es decir% conocerss aspectos l;5icos% como declarar ss instrcciones% asi#naciones% ciclos%+nciones% etc'

    omo *a se dijo en al#&n momento% el o!jetivo de esta #$a est3 orientadaa la enseñan9a de los conceptos de la 8@@% * para esto nos apo*aremos enn len#aje de pro#ramación denominado A% propio del pa"ete depro#ramación Microso+t isal 6tdio 'HEI'

    .%$% Comentarios

    =n comentario es te5to "e se incl*e en el códi#o +ente para +acilitar slectra a los pro#ramadores * c*o contenido es% por de+ecto%completamente i#norado por el compilador' 6elen sarse para inclirin+ormación so!re el ator del códi#o% para aclarar el si#ni+icado o elpor"; de determinadas secciones de códi#o% para descri!ir el+ncionamiento de los m;todos de las clases% etc'

    En A ha* dos +ormas de escri!ir comentarios' 2a primera consiste en

    encerrar todo el te5to "e se desee comentar entre caracteres /*  * */si#iendo la si#iente sinta5is:

    /*

  • 8/16/2019 POO - Apruébala YA - C# - 7

    27/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    Bhora !ien% ha* "e tener cidado con el hecho de "e no es posi!leanidar comentarios de este tipo' Es decir% no vale escri!ir comentarioscomo el si#iente:

    2B Comen&!r*o "on&enedor 2B Comen&!r*o "on&en*do B2 B2

    Esto se de!e a "e como el compilador i#nora todo el te5to contenido enn comentario * sólo !sca la secencia */ "e marca s +inal% i#norar3 else#ndo /* * cando lle#e al primer */ considerar3 "e ha aca!ado elcomentario a!ierto con el primer /* (no el a!ierto con el se#ndo) *pasar3 a !scar códi#o' omo el */ sólo lo admite si ha detectado antesal#&n comentario a!ierto * a&n no cerrado (no mientras !sca códi#o)%cando lle#e al se#ndo */ considerar3 "e ha ha!ido n error *a "eencontrar3 el */ donde espera!a encontrar códi#o'

    Dado "e mchas veces los comentarios "e se escri!en son m* cortos *

    no selen ocpar m3s de na l$nea% A o+rece na sinta5is alternativa m3scompacta para la escritra este tipo de comentarios en las "e seconsidera como indicador del comien9o del comentario la pareja decaracteres // * como indicador de s +inal el +in de l$nea' 8or tanto% lasinta5is "e si#en estos comentarios es:

    22 mo e#"r*b*r "omen&!r*o# !bre,*!do# de n! ne!

    Estos comentarios de na sola l$nea s$ "e peden anidarse sin nin#&npro!lema' 8or ejemplo% el si#iente comentario es per+ectamente v3lido:

    22 Comen&!r*o "on&enedor 22 Comen&!r*o "on&en*do

    .%&% -iterales

    =n literal es la representación e5pl$cita de los valores "e peden tomarlos tipos !3sicos del len#aje' B continación se e5plica c3l es la sinta5is

    con "e se escri!en los literales en A des#los3ndolos se#&n el tipo devalores "e representan:

    •Literales enteros: =n n&mero entero se pede representar en A tantoen +ormato decimal como he5adecimal' En el primer caso !astaescri!ir los d$#itos decimales (-Z) del n&mero nos tras otros%

    mientras "e en el se#ndo ha* "e preceder los d$#itoshe5adecimales (-Z% a-+% B-/) con el pre+ijo )2' En am!os casos esposi!le preceder el n&mero de los operadores > ó ? para indicar si espositivo o ne#ativo% an"e si no se pone nada se considerar3 "e espositivo' Ejemplos de literales enteros son % O% \1O% -,% 51B% -51a%etc'

    •Literales de cadena: =na cadena  no es m3s "e na secencia decaracteres encerrados entre comillas do!les' 8or ejemplo ;Ho!mndo;% ;"!m*>n;% etc' El te5to contenido dentro estos literalespede estar +ormado por cal"ier n&mero de literales de car3cter

    concatenados * sin las comillas simples% an"e si incl*e comillasdo!les ;stas han de escri!irse sando secencias de escape por"e sino el compilador las interpretar$a como el +inal de la cadena'

    •Literal nulo: El literal nulo es n valor especial "e se representa en A con la pala!ra reservada null * se sa como valor de las varia!les deo!jeto no iniciali9adas para as$ indicar "e contienen re+erenciasnlas'

    .%+% Operadores

    =n operador es n s$m!olo +ormado por no o m3s caracteres% "e permitereali9ar na determinada operación entre no o m3s datos * prodce nresltado% "e !ien podremos% por ejemplo% asi#n3rselo a al#na varia!ledeclarada previamente'

    B continación se descri!en c3les son los operadores inclidos en ellen#aje% clasi+icados se#&n el tipo de operaciones "e permiten reali9ar%an"e ha* "e tener en centa "e A permite la rede+inición delsi#ni+icado de la ma*or$a de los operadores% se#&n el tipo de dato so!re el

    Edición ,. (8

  • 8/16/2019 POO - Apruébala YA - C# - 7

    28/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    "e se apli"en% por lo "e lo "e a"$ se centa se corresponde con lossos m3s comnes de los mismos:

    • Operaciones aritm@ticas: 2os operadores aritm;ticos son los t$picos desma (+)% resta (-)% prodcto (*)% división (/) * módlo (%)'

    • Operaciones lógicas:  6e incl*en operadores "e permiten reali9ar lasoperaciones ló#icas t$picas: !nd (&& * &)% or (|| * |)% no& (!)'

    2os operadores && * || se di+erencian de & * | en "e los primeros reali9anevalación pere9osa * los se#ndos no' 2a evalación pere9osa consiste en"e si el resltado de evalar el primer operando permite dedcir elresltado de la operación% entonces no se eval&a el se#ndo * se develvedicho resltado directamente% mientras "e la evalación no pere9osaconsiste en evalar siempre am!os operandos' Es decir% si el primeroperando de na operación && es +also se develve false directamente%sin evalar el se#ndoN * si el primer operando de na ||  es cierto sedevelve true directamente% sin evalar el otro'

     • Operaciones relacionales: 6e han inclido los tradicionales operadores de

    i#aldad (==)% desi#aldad (!=)% ma*or "e (> )% menor "e ( n "om+e#&!&em+er!&r! = 1 22 U#!ndo !#*.n!"*>n "om+e#&!&em+er!&r! 22 U#!ndo *n"remen&o

    6i el operador ++  se coloca tras el nom!re de la varia!le (como en elejemplo anterior)% develve el valor de la varia!le antes  de

    incrementarla% mientras "e si se coloca delante% develve el valor de;sta después de incrementarlaN * lo mismo ocrre con el operador --' 8orejemplo:

    " = b 22 Se !#*.n! ! " e ,!or de b ' e.o #e *n"remen&! b" = b 22 Se *n"remen&! e ,!or de b ' e.o #e !#*.n! ! "

    2a ventaja de sar los operadores ++ * -- es "e en mchas m3"inas sonm3s e+icientes "e el resto de +ormas de reali9ar smas o restas de nanidad% pes el compilador pede tradcirlos en na &nica instrcción encódi#o m3"ina'

    • Operaciones con cadenas: 8ara reali9ar operaciones de concatenación decadenas se pede sar el mismo operador "e para reali9ar smas% *a"e en A se ha rede+inido s si#ni+icado para "e cando se apli"eentre operandos "e sean cadenas o "e sean na cadena * n car3cterlo "e ha#a sea concatenarlos' 8or ejemplo% ;Ho!; ; mndo;develve ;Ho! mndo;% * ;Ho! mnd; o tam!i;n'

    • Operaciones de acceso a arreglos: =n arreglo es n conjnto ordenadode o!jetos de tamaño +ijo' 8ara acceder a cal"ier elemento de este

    Edición ,. (9

  • 8/16/2019 POO - Apruébala YA - C# - 7

    29/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    conjnto se aplica el operador post+ijo @ so!re el arre#lo para indicarentre corchetes la posición "e ocpa el o!jeto al "e se desea accederdentro del conjnto' Es decir% este operador se sa as$:

    [

  • 8/16/2019 POO - Apruébala YA - C# - 7

    30/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    %ota: 8ara poder convertir na cadena en n&mero es necesario colocarla +nción In&54P!r#e(n;)*n& @ = 5

    2a especi+icación de n valor inicial tam!i;n com!inarse con la de+iniciónde m&ltiples varia!les separadas por comas en na misma l$nea' 8orejemplo% las si#ientes de+iniciones son v3lidas:

    Per#on! +1 = neL Per#on!(;Jo#K; Q:5Q)

    Edición ,. *)

  • 8/16/2019 POO - Apruébala YA - C# - 7

    31/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

      + = neL Per#on!(;J!n; 1 Q:1)*n& @ = 5 ' =

    ? son tratadas por el compilador de +orma completamente e"ivalentes aha!erlas declarado como:

    Per#on! +1 = neL Per#on!(;Jo#K; Q:5Q)

    Per#on! + = neL Per#on!(;J!n; 1 Q:1)*n& @ = 5*n& ' =

    2os tipos de datos !3sicos son ciertos tipos de datos tan com&nmentetili9ados en la escritra de aplicaciones "e en A se ha inclido nasinta5is especial para tratarlos' 8or ejemplo% para representar n&merosenteros de , !its con si#no se tili9a el tipo de dato '(ste)nt,de+inido en la P2 (li!rer$a propia del len#aje A)% an"e a la hora decrear n o!jeto a de este tipo "e represente el valor , se sa la si#ientesinta5is:

    S'#&em4In&5 ! =

    omo se ve% no se tili9a el operador new  para crear o!jeto'(ste)nt,% sino "e directamente se indica el literal "e representa elvalor a crear% con lo "e la sinta5is necesaria para crear entero de estetipo se redce considera!lemente' Es m3s% dado lo +recente "e es el sode este tipo tam!i;n se ha prede+inido en A el alias int para el mismo%por lo "e la de+inición de varia!le anterior "eda as$ de compacta:

    *n& ! =

    %ota: El valor "e por de+ecto se da a los campos de tipos !3sicosconsiste en poner a cero toda el 3rea de memoria "e ocpen'Esto se tradce en "e los campos de tipos !3sicos nm;ricos seiniciali9an por de+ecto con el valor % los de tipo bool lo hacen conalse% los de tipo cBar con b[% * los de tipo string * objectcon null'

    '(ste)nt, no es el &nico tipo de dato !3sico inclido en A' En el

    espacio de nom!res '(ste)  se han inclido todos los "e a continación semestran en la si#iente ta!la'

    'ipo 6escripción

  • 8/16/2019 POO - Apruébala YA - C# - 7

    32/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    instrcciones es:

     

  • 8/16/2019 POO - Apruébala YA - C# - 7

    33/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    .

    El si#ni+icado de esta instrcción es el si#iente: se eval&a la e5presiónfcondicióng% "e ha de devolver n valor ló#ico' 6i es cierta (develvetrue) se ejectan las finstrcciones0+g% * si es +alsa (alse) se ejectanlas finstrccionesElseg' 2a rama else es opcional% * si se omite * lacondición es +alsa se se#ir$a ejectando a partir de la instrcción

    si#iente al i ' En realidad% tanto finstrcciones0+g comofinstrccionesElseg peden ser na &nica instrcción o n !lo"e deinstrcciones'

    =n ejemplo de aplicación de esta instrcción es esta variante delGolaMndo:

    #*n. S'#&em

    "!## Ho!MndoI %  +b*" #&!&*" ,o*d M!*n(S&r*n.G !r.#) %  * (!r.#4en.&9 $ 0) %

      Con#oe4r*&e*ne(;Ho! %0/; !r.#G0)/ e#e %  Con#oe4r*&e*ne(;Ho! mndo;)/

      //

    6i ejectamos este pro#rama sin nin#&n ar#mento veremos "e elmensaje "e se mestra es Ho! Mndo% mientras "e si loejectamos con al#&n ar#mento se mostrar3 n mensaje de!ienvenida personali9ado con el primer ar#mento indicado'

    • 1nstrucción swit4: 2a instrcción sDitcB permite ejectar nos otros !lo"es de instrcciones se#&n el valor de na cierta e5presión'6 estrctra es:

    switch "n$#  case

  • 8/16/2019 POO - Apruébala YA - C# - 7

    34/79

  • 8/16/2019 POO - Apruébala YA - C# - 7

    35/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    • continueF: 0ndica "e se ha de a!ortar la ejección de lasfinstrccionesg * reevalarse la fcondicióng del !cle% volvi;ndosea ejectar las finstrccionesg si es cierta o pas3ndose a ejectar lainstrcción si#iente al DBile si es +alsa'

    • 1nstrucción do…w4ile: 2a instrcción  do$$$DBile es na variante

    del DBile "e se sa as$:

    do 

  • 8/16/2019 POO - Apruébala YA - C# - 7

    36/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    omo en el resto de instrcciones hasta ahora vistas% enfinstrccionesg pede ser tanto na &nica instrcción como n !lo"ede instrcciones' Bdem3s% las varia!les "e se de+inan enfiniciali9acióng ser3n visi!les sólo dentro de esas finstrccionesg'

    2a si#iente clase es e"ivalente a la clase GolaMndoYhile *a vistasolo "e hace so del or para compactar m3s s códi#o:

    #*n. S'#&em

    "!## Ho!MndoFor %  +b*" #&!&*" ,o*d M!*n(S&r*n.G !r.#) %  * (!r.#4en.&9 $ 0)  or (*n& !"&! = 0 !"&! < !r.#4en.&9 !"&!)  Con#oe4r*&e*ne(;Ho! %0/; !r.#G!"&!)  e#e  Con#oe4r*&e*ne(;Ho! mndo;)  //

    Bl i#al "e con DBile% dentro de las finstrccionesg del or tam!i;npeden inclirse instrcciones  continueF * breaEF "e pedan alterarel +ncionamiento normal del !cle'

    O'O'' Instrucciones de salto

    2as instrcciones de salto permiten variar el orden normal en "e seejectan las instrcciones de n pro#rama% "e consiste en ejectarlas natras otra en el mismo orden en "e se h!iesen escrito en el códi#o

    +ente' 8osteriormente se descri!ir3n c3les son las instrcciones de saltoinclidas en A:

    • 1nstrucción brea5: ?a se ha visto "e la instrcción  breaE sólopede inclirse dentro de !lo"es de instrcciones asociados ainstrcciones iterativas o instrcciones sDitcB e indica "e se deseaa!ortar la ejección de las mismas * se#ir ejectando a partir de lainstrcción si#iente a ellas' 6e sa as$:

     brea0

    • 1nstrucción ontinue: ?a se ha visto "e la instrcción  continuesólo pede sarse dentro del !lo"e de instrcciones de na instrccióniterativa e indica "e se desea pasar a reevalar directamente lacondición de la misma sin ejectar el resto de instrcciones "econtviese' 2a evalación de la condición se har$a de la +orma ha!ital:

    si es cierta se repite el !cle * si es +alsa se contin&a ejectando por lainstrcción "e le si#e' 6 sinta5is de so es as$ de sencilla:

    continue

    • 1nstrucción return: Esta instrcción se sa para indicar c3l es elo!jeto "e ha de devolver n m;todo' 6 sinta5is es la si#iente:

    return

  • 8/16/2019 POO - Apruébala YA - C# - 7

    37/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad ": 3atos simples y estruturas de ontrol

    omo en la ma*or$a de los len#ajes% el so de ;sta instrcción no serecomienda por"e di+iclta innecesariamente la le#i!ilidad del códi#o* sele ser +3cil simlarla sando instrcciones iterativas * selectivascon las condiciones apropiadas' 6in em!ar#o% en A se incl*e por"epede ser e+iciente sarla si se anidan mchas instrcciones * para

    redcir ss e+ectos ne#ativos se le han impesto nas restricciones:

    • 6ólo se peden eti"etar instrcciones% * no directivaspreprocesador% directivas using o de+iniciones de miem!ros% tipos oespacios de nom!res'

    • 2a eti"eta indicada no peda pertenecer a n !lo"e deinstrcciones anidado dentro del !lo"e desde el "e se sa el gotoni "e eti"ete a instrcciones de otro m;todo di+erente a a";l enel cal se encentra el goto "e la re+erencia'

    8ara eti"etar na instrcción de modo "e peda ser destino de nsalto con goto !asta precederla del nom!re con el "e se la "ieraeti"etar se#ido de dos pntos (:)'

    8or ejemplo% el si#iente códi#o demestra cómo sar goto * de+inirna eti"eta' Este pro#rama de ejemplo lo "e hace es mostrar porpantalla todos los ar#mentos "e se le pasen como par3metros%an"e si al#no de +ese salir entonces se dejar$a de mostrarar#mentos * se a!orta la ejección de la aplicación' ;ase adem3s"e este ejemplo pone de mani+iesto na de las tilidades de lainstrcción nla% *a "e si no se h!iese escrito tras la eti"eta +in el

    pro#rama no compilar$a en tanto "e toda eti"eta ha de preceder aal#na instrcción (an"e sea la instrcción nla)'

    #*n. S'#&em

    "!## Ho!Mndo?o&o %  +b*" #&!&*" ,o*d M!*n(#&r*n.G !r.#) %  or (*n& *=0 *

    *n6   //

    Hótese "e% al +in * al ca!o% los sos de goto dentro de instrccionessDitcB "e se vieron al estdiar dicha instrcción% no son m3s "evariantes del so #eneral de goto% *a "e deault: no es m3s "e naeti"eta * case fvalorg:  pede verse como na eti"eta n tanto

    especial c*o nom!re es case se#ido de espacios en !lanco * n valor'En am!os casos% la eti"eta indicada ha de pertenecer al mismo sDitcB"e el goto sado * no vale "e ;ste no la conten#a pero la conten#aal#&n sDitcB "e conten#a al sDitcB del goto'

    Edición ,. *8

  • 8/16/2019 POO - Apruébala YA - C# - 7

    38/79

  • 8/16/2019 POO - Apruébala YA - C# - 7

    39/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad "I: 3atos ompuestos6 arre"los 7tablas8 y adenas

    on esta &ltima sinta5is es posi!le cam!iar din3micamente el n&mero deelementos de na varia!le de tipo arre#lo sin m3s "e irle asi#nandonevos arre#los' Ello no si#ni+ica "e n arre#lo se peda redimensionarconservando los elementos "e tviese antes del cam!io de tamaño% sino"e ocrre todo lo contrario: cando a na varia!le de tipo arre#lo se leasi#na n arre#lo de otro tamaño% ss elementos anti#os son sobrescritos

    por los nevos'

    6i se crea na arre#lo con la sinta5is hasta ahora e5plicada todos sselementos tendr$an el valor por de+ecto de s tipo de dato' 6i "eremosdarles otros valores al declarar el arre#lo% hemos de indicarlos entre llavessando esta sinta5is:

    ftipoDatosg@ fnom!reBrre#log T neD ftipoDatosg@ HfvaloresgF

    Gan de especi+icarse tantos fvaloresg como n&mero de elementos se desee

    "e ten#a el arre#lo% * si son m3s de no se han de separar entre s$mediante comas (G) Hótese "e ahora no es necesario indicar el n&mero deelementos de el arre#lo (an"e pede hacerse si se desea)% pes elcompilador pede dedcirlo del n&mero de valores especi+icados' 8orejemplo% para declarar n arre#lo de catro elementos de tipo int  convalores O% 1% % se podr$a hacer lo si#iente:

    *n&G !rre.o = neL *n&G % 1 : 0/

    0nclso se pede compactar a&n m3s la sinta5is declarando el arre#lo as$:

    *n&G !rre.o = % 1 : 0/

    B la hora de acceder a los elementos almacenados en n arre#lo !astaindicar entre corchetes% * a continación de la re+erencia a la misma% laposición "e ocpe en el arre#lo el elemento al "e acceder' ando seha#a ha* "e tener en centa "e en A las arre#los se inde5an desde % lo"e si#ni+ica "e el primer elemento de el arre#lo ocpar3 s posición %el se#ndo ocpar3 la posición 1% * as$ scesivamente para el resto deelementos' 8or ejemplo% an"e es m3s ine+iciente% el arre#lo declarado

    en el &ltimo +ra#mento de códi#o de ejemplo tam!i;n podr$a ha!ersede+inido as$:

    *n&G !rre.o = neL *n&G:

    !rre.oG0 = !rre.oG1 22 Por dee"&o #e *n*"*!*8> ! 0 e.o !9or!  22 e ,!or de !rre.oG1 +!#! ! #er 1!rre.oG = !rre.oG0 X !rre.oG1 22 !rre.oG +!#! ! ,!er :  22 +e# : = 1

    22 E "on&en*do de !rre.o #er7 % 1 : 0/ +e# !rre.oG522 #e *n*"*!*8> +or dee"&o ! 04

    Ga* "e tener cidado a la hora de acceder a los elementos de na arre#lo*a "e si se especi+ica na posición sperior al n&mero de elementos "epeda almacenar el arre#lo se prodcir3 na e5cepción o error de tipostem$OutO

  • 8/16/2019 POO - Apruébala YA - C# - 7

    40/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad "I: 3atos ompuestos6 arre"los 7tablas8 y adenas

    *n&GG den&!do = neL *n&GG%neL *n&G %1 / neL *n&G %5 : //

    omo se indica e5pl$citamente c3les son los elementos del arre#lodeclarado no hace +alta indicar el tamaño del mismo% por lo "e ladeclaración anterior es e"ivalente a:

    *n&GG den&!do = neL *n&GG %neL *n&G %1 / neL *n&G %5 : //

    Es m3s% i#al "e como se vio con los arre#los nidimensionales tam!i;n esv3lido hacer:

    *n&GG den&!do = %neL *n&G %1 / neL *n&G %5 : //

    6i no "isi;semos indicar c3les son los elementos de los arre#loscomponentes% entonces tendr$amos "e indicar al menos c3l es el n&merode elementos "e podr3n almacenar (se iniciali9ar3n con valores porde+ecto) "edando:

    *n&GG den&!do = %neL *n&G neL *n&G5/

    6i no "eremos crear los arre#los componentes en el momento de crear elarre#lo dentado% entonces tendremos "e indicar por lo menos c3l es eln&mero de arre#los componentes posi!les (cada na valdr$a null)% con lo"e "edar$a:

    *n&GG den&!do = neL *n&GG

    Es importante señalar "e no es posi!le especi+icar todas las dimensionesde n arre#lo dentado en s de+inición si no se indica e5pl$citamente elvalor inicial de ;stas entre llaves' &s decirG esta declaración esincorrecta:

    *n&GG den&!do = neL *n&GG

    Esto se de!e a "e el tamaño de cada arre#lo componente pede serdistinto * con la sinta5is anterior no se pede decir c3l es el tamaño decada na' =na opción h!iese sido considerar "e es O para todas como se

    hace en ava% pero ello no se ha implementado en A * ha!r$a "edeclarar el arre#lo de% por ejemplo% esta manera:

    *n&GG den&!do = %neL *n&G neL *n&G)

    /inalmente% si sólo "eremos declarar na varia!le de tipo arre#lo dentado

    pero no "eremos indicar s n&mero de elementos% (le#o la varia!levaldr$a null)% entonces !asta poner:

    *n&GG den&!do

    Ga* "e precisar "e an"e en los ejemplos hasta ahora presentes se hanescrito ejemplos !asados en arre#los dentados de sólo dos niveles deanidación% tam!i;n es posi!le crear arre#los dentados de cal"ier n&merode niveles de anidación' 8or ejemplo% para na arre#lo de arre#los dearre#los de enteros de , elementos en la "e el primero +ese na arre#lodentado +ormada por dos arre#los de O enteros * el se#ndo elemento+ese na arre#lo dentado +ormada por na arre#lo de enteros * otra de se podr$a de+inir as$:

    *n&GGG den&!do = neL *n&GGG %neL *n&GG %neL *n&G  neL *n&G/neL *n&GG %neL *n&G: neL *n&G5//

    B la hora de acceder a los elementos de na arre#lo dentado lo &nico "eha* "e hacer es indicar entre corchetes c3l es el elemento e5acto de lasarre#los componentes al "e se desea acceder% indic3ndose n elementode cada nivel de anidación entre nos corchetes di+erentes perocoloc3ndose todas las parejas de corchetes jntas * ordenadas de elarre#lo m3s e5terna a la m3s interna' 8or ejemplo% para asi#nar el valor 1al elemento carto del arre#lo "e es elemento primero del arre#lo "e eselemento se#ndo del arre#lo dentado declarada en &ltimo l#ar se har$a:

    den&!doG1G0G5 = 10

    /%+% Arreglos multidimensionales

    =n arreglo multidimensional  o matri/ es a"ella c*os elementos se

    Edición ,. 0)

  • 8/16/2019 POO - Apruébala YA - C# - 7

    41/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad "I: 3atos ompuestos6 arre"los 7tablas8 y adenas

    encentran or#ani9ados en na estrctra de varias dimensiones' 8arade+inirlas se tili9a na sinta5is similar a la sada para declarar arre#losnidimensionales pero separando las di+erentes dimensiones mediantecomas (G) 8or ejemplo% na arre#lo mltidimensional de elementos de tipoint "e conste de 1, elementos pede tener ss elementos distri!idos endos dimensiones +ormando na estrctra 5 similar a na matri9 de la

    +orma:

    1 5 : Q Y 10 11 1

    Este arre#lo se podr$a declarar as$:

    *n&G m&*d*m = neL *n&G5: %%15:/ %Q/ %Y10111//

    En realidad no es necesario indicar el n&mero de elementos de cadadimensión del arre#lo *a "e peden dedcirse de los valorese5pl$citamente indicados entre llaves% por lo "e la de+inición anterior essimilar a esta:

    *n&G m&*d*m = neL *n&G %%15:/ %Q/ %Y10111//

    0nclso pede redcirse a&n m3s la sinta5is necesaria "edando tan sólo:

    *n&G m&*d*m = %%15:/ %Q/ %Y10111//

    6i no "eremos indicar e5pl$citamente los elementos del arre#lo aldeclararla% podemos o!viarlos pero a&n as$ indicar el tamaño de cadadimensión del arre#lo (a los elementos se les dar$a el valor por de+ecto des tipo de dato) as$:

    *n&G !rre.oM&*d*men#*on! = neL *n&G5 :

    Iam!i;n podemos no especi+icar ni si"iera el n&mero de elementos delarre#lo de esta +orma (arre#loMltidimensional contendr$a ahora null):

    *n&G !rre.oM&*d*men#*on!

    Hótese "e tanto las arre#los dentados como las arre#losmltidimensionales peden ser tili9adas tanto para representarestrctras matriciales como para% en #eneral% representar cal"ierestrctra de varias dimensiones'

    omo los arre#los dentados son arre#los de arre#los% cada no de sselementos pede ser n arre#lo de n tamaño di+erente' Bs$% con lasarre#los dentados podemos representar matrices en las "e cada colmnaten#a n tamaño distinto (por el aspecto >aserrado> de este tipo dematrices es por lo "e se les llama arre#los dentados)% mientras "esando arre#los mltidimensionales sólo es posi!le crear matricesrectan#lares o cadradas'

    2as estrctras aserradas peden simlarse sando matrices

    mltidimensionales con todas ss colmnas del tamaño de la colmna m3s#rande necesaria% an"e ello implica desperdiciar mcha memoria so!retodo si los tamaños de cada colmna son m* di+erentes * el arre#lo es#rande' De todos modos% las estrctras m3s comnes "e se san en lama*or$a de aplicaciones selen ser rectan#lares o cadradas'

    2os tiempos "e se tardan en crear * destrir arre#los dentados sonsperiores a los "e se tardan en crear * destrir arre#losmltidimensionales' Esto se de!e a "e las primeras son arre#los dearre#los mientras "e las se#ndas son n &nico arre#lo'

    8or ejemplo% para crear na arre#lo dentado 11 ha* "e crear 11arre#los (el arre#lo dentado m3s las 1 arre#los "e contiene)% mientras"e para crear na crear na arre#lo !idimensional 1% 1 ha* "ecrear na &nica arre#lo'

    /%-% -a clase stem$Arra

    En realidad% todos los arre#los "e de+inamos% sea cal sea el tipo deelementos "e conten#an% son o!jetos "e derivan de stem$Arra' Es

    Edición ,. 0.

  • 8/16/2019 POO - Apruébala YA - C# - 7

    42/79

    Programación Orientada a Objetos en C#… Apruébala YA!!! +nidad "I: 3atos ompuestos6 arre"los 7tablas8 y adenas

    decir% van a disponer de todos los miem!ros "e se han de+inido para estaclase% entre los "e son destaca!les:

    R''1' -engtB: ampo de sólo lectra "e in+orma del n&mero total