Curso Intro CC - copia.docx

download Curso Intro CC - copia.docx

of 27

Transcript of Curso Intro CC - copia.docx

  • 7/25/2019 Curso Intro CC - copia.docx

    1/27

    INDICE

    1. La computadora

    1.1 Conceptos generales

    1.2 Almacenamiento

    1.2.1 Sistema hexadecimal

    1.2.2 Almacenamiento porcomplemento a dos

    1.2.3 Almacenamiento por exceso

    1.2.4 Almacenamiento por puntootante

    2. Algoritmo

    2.1 Concepto in!ormal " !ormal

    2.2 #$todos de ra%onamientopara la computaci&n

    3. Conceptos tradicionalesde la programaci&n

    3.1 'seudoc&digo " suin!ormali%aci&n

    3.2 (ecepci&n de conceptospr)cticos

    3.3 E*ercicios resueltos

    4. Estructuras de control

    selecti+as4.1 Es,uema

    4.2 E*ercicios resueltos

    -. Estructuras de controliterati+as

    4.1 Es,uema

    4.2 E*ercicios resueltos

    . Anidamiento

    4.1 Es,uema

    4.2 E*ercicios resueltos

    /. Su0programas

    4.1 Es,uema

    4.2 E*ercicios resueltos

    . Arreglosunidimensionales

    4.1 Es,uema4.2 E*ercicios resueltos

    . Cadena de caracteres

    4.1 Es,uema

    4.2 E*ercicios resueltos

    1. #atrices

    4.1 Es,uema

    4.2 E*ercicios resueltos

  • 7/25/2019 Curso Intro CC - copia.docx

    2/27

    Captulo 1

    La computadora

    1.1 Conceptos generales5

    Antes de estudiar " es,uemati%ar las di!erentes propiedades ,ue en+uel+enlos estudios de la ciencia de la computaci&n6 es necesario entender 0a*o ,u$condiciones tra0a*aremos " en ,ue entorno se emplear)n todos los m$todosha0idos " por ha0er. Se re,uiere un ligero es!uer%o mental para entender,ue la +ida real " un entorno a0stracto del cali0re de una computadora sonentornos de tra0a*o mu" distintos6 pero ,ue empleando las analogas delcaso6 ser)n !)ciles de relacionar. Si 0ien a continuaci&n se tratar)n m$todospara almacenar n7meros6 seg7n la estructura de una computadora6 se lepide al lector ,ue tenga paciencia " lea todo en el orden en el ,ue "a est)8

    se pro!undi%ar) a !ondo las analogas ,ue se ,ueran estudiar ahora en elCaptulo 3.1

    Acelerando las cosas para cumplir con lo ,ue se estudiar) cronol&gicamente9seg7n el sla0o:6 empecemos a discutir como una computadora almacenan7meros. Es 0ien sa0ido ,ue un sistema de computadoras est) construidoen 0ase a respuestas opuestas " descarta0les8 es decir6 de cumplirse laprimera6 no se entrar) a anali%ar la segunda. Esto6 traducido al mundo real6se ;lee< como ceros 9: " unos 91:6 representando casos de ;+erdad< o;!alsedad< 9si deseas in+estigar un poco 9solo un poco6 casi nada: m)s a!ondo de $ste tema6 te sugiero 0uscar a cerca de +aria0les 0ooleanas:. Es

    7til ,ue la comunicaci&n entre el ser humano " la m),uina sea de estamanera6 agili%a procesos " simpli=ca la 07s,ueda de posi0les errores. 'erosi un sistema digital como lo es una computadora est) 0asado en esta 0ase0inaria6 >c&mo se almacenaran n7meros di!erentes a $stos dos? Acontinuaci&n se resol+er)n $stos pro0lemas estrechamente ligados alalmacenamiento num$rico.

    1.2 Almacenamiento5

    Se de0e entender primero c&mo una computadora recepciona data " laguarda6 para ,u$ la guarda " c&mo podra discernir entre los di!erentes tiposde data. 'ara esto primero se presentar)n unidades " elementos propios deuna computadora.

    Bit:@nidad mnima de almacenamiento digital. Son dgitos representadospor los sm0olos ;< " ;1

  • 7/25/2019 Curso Intro CC - copia.docx

    3/27

    omando como e*emplo una celda de longitud 0its 90"te:6 sealaremos suspartes5

    Extremo de orden alto5 Extremo m)s pr&ximo al 0it m)s signi=cati+oExtremo de orden 0a*o5 Extremo m)s pr&ximo al 0it menos signi=cati+oDirecci&n5 Nom0re representati+o 9indicado por un n7mero: ,ue identi=ca ala celda en un con*unto de las mismas. Se empie%an a contar desde la celdacero.

    Estas partes solo sir+en para identi=car " manipular de una manera m)sordenada un con*unto de celdas con caractersticas similares. De estamanera es como una serie de celdas6 identi=cadas por su direcci&n "conociendo sus extremos gracias a sus ni+eles de signi=cancia6 se puedenarreglar para mane*ar cierta tarea en com7n.

    1.2.1 Sistema hexadecimal5

    omando de manera paralela las clases de aritm$tica ,ue te permitieroningresar a la tercera6 empe%aremos a de=nir un nue+o sistema denumeraci&n propio de los procesos de manipulaci&n digital. omando dee*emplo operaciones de con+ersi&n sencillas6 se entender)n 9creo "o: demanera m)s !)cil el sistema de almacenamiento entero hexadecimal.Sea la siguiente ta0la De la o0ra ;Computer Science5 An o+er+ie< por F.

    Blenn GrooHshear 11 edici&n 9p)gina 2-:J

  • 7/25/2019 Curso Intro CC - copia.docx

    4/27

    N&tese ,ue todo lo ,ue se est) haciendo con los n7meros del al 1- estrans!ormarlos a la 0ase 0inaria6 completando ceros por la i%,uierda 9cosa,ue es o0+io dado ,ue de completar por el otro sentido se alterara el +alornum$rico original:. Luego6 a partir del 16 se rempla%ar)n los +aloresnum$rico 16 116 126 etc. 'or letras del a0ecedario correctamente ordenasde la A a la K. omando en cuenta estas pautas6 procederemos con ele*emplo5

    Sea el n7mero5

    311El cual deseamos trans!ormarlo a sistema de almacenamiento enterohexadecimal. 'rocederemos a expresarlo en 0inario5

    311 = 100110111

    Contando6 de derecha a izquierda6 grupos de cuatro ci!ras cada uno6 setiene5

    1 0011 0111

    Luego6 seg7n la ta0la6 reempla%amos los +alores preesta0lecidos6 dei%,uierda a derecha. Al excedente ,ue no llega a completar un grupo se lerellenar) con ceros para poder completar los cuatros necesarios

    0001 0011 0111 = 1 3 7

    Luego6 el n7mero 311 en hexadecimal ser) 13/.

  • 7/25/2019 Curso Intro CC - copia.docx

    5/27

    Captulo 3

    Conceptos tradicionales de la

    programaci&n3.1 'seudoc&digo " su in!ormali%aci&n5

    Si 0ien de todo lo ,ue lle+amos discutiendo6 solo mencionamos c&digo pora,u " c&digo por all)6 es necesario ,ue el lector6 por un tema de orden "!ormalidad6 aprenda a crear programas utili%ando solo pseudoc&digo6 antesde utili%ar un lengua*e de programaci&n !ormal8 esto le har) entender c&mo!uncionan las estructuras de control " cu)ndo " de ,u$ manera se aplican.Si 0ien usted de0e tener alguna noci&n de ,u$ es un lengua*e !ormal 9pore*emplo5 *a+a6 c6 p"thon6 entre otros:6 es necesario explicar a detalle unacualidad de $stos ,ue no presenta un lengua*e in!ormal 9pseudoc&digo:5 launicidad estructural. Si 0ien solo existe una " solo una manera de escri0iruna estructura en lengua*e !ormal6 existen muchas por no decir in=nitasmaneras de escri0ir una estructura en pseudoc&digo6 por lo ,ue a usted lo ola e+aluar)n solo por la !uncionalidad del programa ,ue cree " no como locree. Esto se detallar) a !ondo en cada uno de los captulos siguientes conel primer pro0lema resuelto.

    3.2 (ecepci&n de conceptos pr)cticos5Es necesario6 para el desarrollo de este curso introductorio a la

    computaci&n6 ,ue se entienda 0ien ,ue es lo ,ue sucede dentro de unacomputadora. Dado ,ue es imposi0le comprender lo ,ue pasa en losdi+ersos procesos digitales he considerado 7til utili%ar analogas a conceptostangi0les " entendi0les para representar procesos a0stractos " comple*os6ignorando ciertas pautas ,ue pertenecen a temas m)s pro!undosrelacionados al desarrollo de so!tare. Dado ,ue ahora sa0emos ,u$con!orma a una computadora6 cu)les son sus partes " c&mo !uncionan 9todoesto +isto en captulos anteriores: ahora podremos de=nir lo ,ue es unacomputadora.Seg7n la de=nici&n de la o0ra de Luis Fo"anes 9Fundamentos de

    programacin:6 una computadora es un dispositi+o electr&nico ,ue procesain!ormaci&n " o0tiene resultados8 es capa% de reali%ar c)lculos " tomar

    decisiones seg7n sus tareas asignadas. Lo ,ue nos +a a interesar de estade=nici&n es c&mo se designan estas tareas " de ,u$ !orma la computadoralas entender). odo este curso se 0asa en el entendimiento de c&mopodemos trans!ormar una tarea humana a un proceso algortmico a0stractolegi0le por la computadora.Empe%ando con algunos pro0lemas comunes ,ue se tienen al empe%ar aestudiar6 tomemos el inicio de un programa simple >C&mo de0era empe%armi programa? Gueno6 lo ideal es ,ue comience por el principio. 'i$nselo unpoco6 al presentarse a una persona desconocida6 lo primero ,ue hacemos esdarles nuestro nom0re8 similarmente6 una 0uena pr)ctica al desarrollar unprograma es el de sentenciar el nom0re del mismo antes de hacer nada6

    esto le dar) una idea a otra persona 9como por e*emplo6 el ,ue re+isar) tuexamen: de ,u$ es lo ,ue hace tu programa. Si se 0uscan simpli=car lascosas6 tam0i$n se podra aadir un 0re+e comentario explicando ,ue hace

  • 7/25/2019 Curso Intro CC - copia.docx

    6/27

    el programa6 " dar un nom0re un poco m)s simple al inicio 9no se preocupe,ue todo esto se resumir) de manera ideal al =nal de esta secci&n:.@na +e% ,ue sa0emos el nom0re " apellido del programa6 " a ,u$ se dedica6regresemos al e*emplo inicial. Nos estamos presentando ante esta personadesconocida8 $sta "a sa0e nuestro nom0re " a ,u$ nos dedicamos6 peroahora est) interesada en c&mo hacemos nuestro tra0a*o6 detalles m)sespec=cos de como completamos nuestras tareas. Es ah donde entra atallar nuestro c&digo6 el cual discutiremos a m)s pro!undidad a lo largo deesta o0ra. Aca0ada la con+ersaci&n6 es necesario ,ue la otra persona sepa,ue hemos terminado de ha0lar6 por lo ,ue una simple despedida ser) m)s,ue su=ciente para terminar la con+ersaci&n8 esto tam0i$n es o0ligatorio almomento de escri0ir c&digo6 para ,ue as la computadora entienda hastadonde ,ueremos ,ue ella !uncione.En general " resumiendo todo6 se puede entender como un programasencillo 9!ormal o0+iando el cuerpo de c&digo: como el siguiente5

    En resumidas cuentas6 todo lo ,ue se necesita para empe%ar a escri0ir

    c&digo es orden " ra%onamiento8 adem)s a"uda 0astante en tener la ideade la ;mente< de la computadora como la de un reci$n nacido ,ue soloentiende c&digo8 esto 7ltimo ser) mu" 7til para resol+er los pro0lemas+enideros.Ahora ha0lemos de los par)metros. Si 0ien es di!cil al principio eliminarcostum0res arraigadas ,ue e*ecutamos por rutina6 es necesario ,ue el lectorse tome una pausa para entender 0ien esta parte. @n par)metro se puedetraducir a lo ,ue en matem)ticas es una +aria0le. Si nos piden resol+er unaecuaci&n sencilla tal como5M2 4

    O adem)s nos dice ,ue x es un n7mero no positi+o natural6 es !)cil decir ,ueM solo puede ser igual a P2. Algo similar sucede con los par)metros6 estas+aria0les se usan " manipulan con c&digo dentro de un programa. omemospor e*emplo el siguiente c&digo 9!ormal o0+iando el cuerpo:

  • 7/25/2019 Curso Intro CC - copia.docx

    7/27

    Como se puede o0ser+ar6 los par)metros se C(EAN !uera del procedimiento" luego se procedera a usarlos dentro de los lmites del programa 9entre laslneas INICIQ " KIN:. Adem)s se puede leer una lnea de comentario 9,ue lacomputadora no leer) por antecederle un do0le slash: ,ue indica donde es,ue se crean los par)metros. Ahora6 ha0lando de los par)metros en el

    e*emplo6 tenemos dos llamados ;a; " ;0

  • 7/25/2019 Curso Intro CC - copia.docx

    8/27

    de +alor llegar) a llenar esta celda. As6 al crear la +aria0le entero a lo ,uehacemos es crear una celda llamada ;a< a la cual llegar) un dato espec=co6el cual ser) un numero entero. An)logamente6 al crear el entero 0 36 lo,ue hacemos es crear una celda llamada 0 " la cual llenamos tan prontocomo la creamos6 con el +alor de 3@sted se est) preguntando >[u$ tal si ,uiero almacenar un numero perosolo como caracter? Es decir6 solo ,uiero tomar en cuenta el sm0olo " no el+alor num$rico ,ue representa. Esto si es posi0le " mu" 7til6 pero no sepro!undi%ar) en el tema en este escrito8 consultelo con su pro!esor " h)galo+olar a $l6 a m no me moleste.

    @sted se est) preguntando >Tara alguna di!erencia crear lospar)metros dentro del inicio? 'ara esta parte no ha0ra ninguna di!erencia6sin em0argo6 cuando lleguemos al captulo en el ,ue ha0lamos desu0programas6 tendremos ,ue de=nir lo ,ue son +aria0les locales "glo0ales6 por lo ,ue s ser) 7til " har) una di!erencia si es ,ue lossentenciamos !uera o dentro del INICIQPKIN.

    Ahora ha0lemos de asignaci&n de +alores a par)metros 9o +aria0les:.'rimero tenemos ,ue entender ,ue in+olucra asignar una propiedad ;A< a unelemento ;G

  • 7/25/2019 Curso Intro CC - copia.docx

    9/27

    Si 0ien el +alor inicial de la +aria0le ;edad< es 1/6 una +e% ,ue se leaumentan 2 unidades6 el +alor de 1/ se pierde " lo reempla%a el 1.

    am0i$n se tiene ,ue explicar ,ue signi=ca esa echa apuntando hacia lai%,uierda " cu)l es el procedimiento de la computadora para asignar un+alor. Iremos paso por paso desde el punto de +ista de la computadora 9parala primera +ersi&n del e*emplo:

    1. La computadora llega a leer la lnea de par)metros " se encuentra con,ue se ha creado una +aria0le entera llamada edad

    2. La computadora entra al procedimiento

    3. Se lee la lnea 16 en la ,ue a la celda de almacenamiento llamada ;edad[u$ me indica en realidad el detector?2.P >C&mo puedo apro+echar todo lo ,ue me indica?

    3.P >C&mo puedo crear mi propio detector?4.P >[u$ tan importantes son las CQNDICIQNES?-.P >En cu)ntos ciclos apro0ar$ el curso?

    Si 0ien un detector de metales es eso6 una m),uina ,ue reacciona acual,uier tipo de metal6 tam0i$n podramos usar su noPreacci&n a otrosmateriales como otra utilidad +)lida 9solo emplea0le en nuestra )rea detra0a*o5 la computadora:. Adem)s6 resulta mu" 7til entender ,u$ es undetector en s. 'ara esto le propongo la de=nici&n de un detector como ;unaherramienta que permanece inerte solo hasta que se cumple ciertorequerimiento

    (egresando al e*emplo " entendi$ndolo con pseudoc&digo6 se tiene5

  • 7/25/2019 Curso Intro CC - copia.docx

    16/27

    Si9Se ha detectado un metal:entonces9Encender alarma:sino9'ermanecer apagado:

    Kin si

    E,ui+alente a5

    Si9Se ha detectado un metal:entonces9Encender alarma:

    Kin si

    N&tese ,ue el permanecer apagado es la utilidad +)lida de la noPreacci&n6dado ,ue no importa ,ue material cruce el detector6 si no es metal noencender) la alarma. As 0ien6 en lugar de crear un ;si< para pl)stico6 +idrioo papel6 solo se crear) uno ,ue analice metales " no metales6 haciendo 7tilla NEBACI_N del re,uerimiento con la parte de ;sino

  • 7/25/2019 Curso Intro CC - copia.docx

    17/27

    necesitan e+aluar 3 condiciones en paralelo. 'ara esto se utili%ar) laestructura de control selecti+a m7ltiple5 sitch. No se compli,ue con elnom0re " +eamos la soluci&n a $ste pro0lema 9la soluci&n ,ue se expone acontinuaci&n no tiene un es,uema !ormal " solo tiene el o0*eti+o deentender el presente tema de manera did)ctica6 no se te ocurra escri0irloas en el examen:

    Al crear el sitch6 de0emos poner entre par$ntesis 0a*o ,ue +aria0leestamos condicionando " creando los casos. Luego empe%amos a crear elprimer posi0le caso llamado caso 16 con su respecti+a condici&n ,ue6 de ser+erdadera6 permitir) a la computadora leer la lnea -6 en la ,ue 'recio`acumaumenta una unidad. Similarmente para los 3 casos a e+aluar para los 3di!erentes productos6 aumentamos el 'recio`acum correspondiente. 'ara=nali%ar el sitch solo sentenciamos ;Kin sitch< " terminamos el programa.

    Es necesario tener un 0uen criterio al escoger entre usar una estructuraselecci&n simple 9si entonces sino: o una de selecci&n m7ltiple 9sitch:8a"uda 0astante el pre+er cuantos casos posi0les existir)n " si de ha0er dos6si es ,ue se usa o no la negaci&n del primero.

    4.3 E*ercicios resueltos5

    1. 'ida ingresar tres n7meros entero. Luego6 muestre el ma"or " menor delos n7meros ingresados con un algoritmo.

    Idea pre+ia5 De captulos anteriores sa0emos ,ue para presentar unprograma +alido en pseudoc&digo de0emos tener un orden espec=co9(e+isar la secci&n 3.2:6 entonces en!oc)ndonos en el c&digo en s6pensemos. Se necesita recepcionar 3 n7meros ,ue el usuario +a a ingresar6intuiti+amente de0emos pensar en la operaci&n ;Leer< " las 3 +aria0les enlas ,ue +amos a almacenar estos +alores. Luego +iene el meollo del asunto5>C&mo de 3 n7meros +o" a lograr descu0rir el ma"or " menor de $stos?'ara resol+er $ste pro0lema ha" muchos caminos6 pero >no cree usted ,ue

    el m)s pr)ctico sera e+aluar con una estructura selecti+a un par den7meros " tomar el ma"or de los 26 " compararlo con el tercero ,ue !alta?

  • 7/25/2019 Curso Intro CC - copia.docx

    18/27

    9an)logamente para el caso del menor:. Entonces6 le propongo la siguientesoluci&n5

    Estudiando la soluci&n lnea por lnea tenemos5 Antes de empe%ar el cuerpo6se sentencian las +aria0les a usar 9todas enteras:. Luego6 "a en el cuerpo6de la lnea 1 a la solo se recepcionan los +alores a tra0a*ar. En la lnea creamos una estructura de control selecti+a de tipo ;siPentoncesPsino

  • 7/25/2019 Curso Intro CC - copia.docx

    19/27

    el c&digo !uncione. Int$ntelo usted6 dele +alores a N16 N26 N3 " corro0ore la+alide% del c&digo expuesto como soluci&n al pro0lema 9haga algo:.

    2. Cree una calculadora simple ,ue pida ingresar dos n7meros " laoperaci&n elemental 96 P6 W6 :

    Notas 7tiles para este e*ercicio5i. N&tese como se usa un par)metro de tipo ;car)cter