Introducción a la programación BCH IES 2016.docx

download Introducción a la programación BCH IES 2016.docx

of 38

Transcript of Introducción a la programación BCH IES 2016.docx

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    1/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Introduccin a la programacin - Pseudocdigo

    Curso: Introduccin a la prograacin ! Ps"udocdigo

    1 - Introduccin

    Una d" las a#or"s di$cultad"s con las %u" s" "ncu"ntran los &ispanoparlant"s %u"

    "pi"'an a prograar "s "l idioa(

    Por una part") la a#or*a d" l"ngua+"s d" prograacin s" ,asan "n "l ingl-s) por lo %u"un "studiant" d" &a,la &ispana ti"n" %u" apr"nd"r %u" ./rit". o .print. son las pala,ras"%ui0al"nt"s a ."scri,ir.(

    Ad"1s) la a#or*a d" l"ngua+"s ti"n"n rd"n"s %u" r"al"nt" son a,r"0iaturas d" una o0arias pala,ras ingl"sas) d" odo %u" "l apr"ndi' ti"n" %u" "nt"nd"r o "ori'arpala,ras coo .print2. o ./rit"ln. incluso para r"ali'ar las tar"as 1s s"ncillas(

    Para colo) la a#or*a d" "ntornos d" prograacin "st1n ta,i-n "n ingl-s 3"n4s)

    "nsa+"s d" "rror # a0iso) "tc5(

    Por "so) una &"rrai"nta &a,itual para a#udar a los %u" "pi"'an "s "l .Pseudocdigo.)algo as* coo un 2also l"ngua+" d" prograacin "n "spa6ol) %u" a#uda a asiilar con1s 2acilidad las id"as ,1sicas(

    El ps"udocdigo soluciona "l pri"r pro,l"a: no &ac" 2alta apr"nd"r ingl-s para"nt"nd"r los conc"ptos ,1sicos( P"ro .&istrica"nt". no soluciona,a "l pro,l"a d"l."ntorno d" prograacin.: no "7ist*an "ntornos para prograar "n ps"udocdigo) as*%u" t*pica"nt" &a sido una &"rrai"nta para usar .con lapi' # pap"l.(

    Algunas uni0"rsidad"s &an cr"ado sus propios .int-rpr"t"s d" ps"udocdigo.) para a#udara los alunos d" pri"r curso a cr"ar los prograas .p"nsando "n "spa6ol.) p"rop"riti-ndol"s ad"1s pro,ar "sos prograas d"sd" un "ntorno .casi r"al.(

    E7ist"n 0arios d" "stos .int-rpr"t"s d" ps"udocdigo.) %u" p"rit"n t"cl"ar nu"stroprograa # 0"r cual s"r*a "l r"sultado) p"ro &a# uno %u" " par"c" "sp"cial"nt" ,u"no:PSEINT) %u" ad"1s r"al'a con color"s la sinta7is d" nu"stros prograas para a#udar ad"t"ctar "rror"s) ti"n" autocopl"tado para p"ritir ganar ti"po) "st1 disponi,l" para8indo/s # Linu7) "s gratuito395) "tc( st" "s "l %u" usar"os "n "st" curso introductorio(

    Eso s*) no "7ist" un "st1ndar claro "n cuanto a ps"udocdigo) pu"d" %u" la sinta7is %u"

    "pl""n "n tu uni0"rsidad o c"ntro d" "studios s"a lig"ra"nt" di2"r"nt" a la %u"0"r"os a%u*( Aun as*) "sp"raos pod"r a#udart" a cog"r con 2acilidad las nocion"s,1sicas(

    395 PSEINT r"al"nt" "s 1s %u" gratis) "s .d" cdigo a,i"rto.: cual%ui"ra pu"d" 0"rco "st1 cr"ado) d" 2ora %u" incluso si su autor p"rdi"ra "l int"r-s por "l pro#"cto)otras p"rsonas podr*an r"toarlo) lo %u" l" garanti'a una 0ida uc&o a#or(

    9

    http://www.aprendeaprogramar.com/course/view.php?id=22http://www.aprendeaprogramar.com/course/view.php?id=22
  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    2/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    PSEINT s" pu"d" d"scargar d"sd"&ttp:;;ps"int(sourc"2org"(n"t;

    " Atr"0o Con El Ingl-s?

    Ps"Int "s una &"rrai"nta 4til # %u") tras un p"r*odo d" apar"nt" a,andono) &a sido

    r"toada por su autor original) %ui"n l" &a a6adido nu"0as posi,ilidad"s %u" laod"rni'an(

    Si aun as* %ui"r"s ll"gar 1s all1 # no t" asusta "l ingl-s) ,i"n por%u" lo cono'cas o ,i"npor%u" "st-s dispu"sto a apr"nd"r @ pala,ras) "st1s d" su"rt": "l ps"udocdigo "ningl-s s" par"c" a 0arios l"ngua+"s d" prograacin) as* %u" podr*as apr"nd"r losconc"ptos ,1sicos usando ."ntornos r"al"s.(

    Posi,l""nt" Pascal s"r*a "l l"ngua+" %u" 1s s" par"c"r*a al ps"udocdigo) # por "sodurant" uc&o ti"po s" &a consid"rado un l"ngua+" u# ad"cuado para apr"nd"r) p"ro&o# "n d*a "st1 un tanto anticuado( Una alt"rnati0a 1s od"rna "s P#t&on) ,i"ndis"6ado # %u" "st1 disponi,l" para uc&os sist"as op"rati0os(

    Si %ui"r"s apr"nd"r cual%ui"r d" "llos dos) "n i /", podr1s "ncontrar cursos d" a,os:tanto d"P#t&oncoo Pascal(

    B

    http://pseint.sourceforge.net/http://www.nachocabanes.com/pythonhttp://www.nachocabanes.com/pascalhttp://pseint.sourceforge.net/http://www.nachocabanes.com/pythonhttp://www.nachocabanes.com/pascal
  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    3/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    2 - Toma de contacto

    Vamos a empezar por lo ms sencillo: escribir en pantalla.

    Si queremos crear un programa que muestre algn en pantalla, en la mayora de

    versiones de pseudocdigo usaremos la orden ES!"#"! $en otras versiones puede

    ser "%&!"%"! o %'S(!)!*. ) continuacin de esta palabras, entre comillas,

    detallaremos el te+to que deseamos que aparezca en pantalla.

    Escribir"Hola"

    acerlo usando &SE"-( tambin es casi igual de simple. En el caso de &SE"-(, cada

    programa debe encerrarse entre las palabras /&roceso/ $para indicar dnde comienza*

    y /0in&roceso/ $para se1alar dnde termina*. &ero eso no a1ade ninguna di2icultad,

    porque cuando entramos a &SE"-(, ese esqueleto de programa ya aparece escrito:

    En la lnea vaca que 3ay entre /&roceso/ y /0in&roceso/, deberemos comenzar a

    teclear nuestro programa, en este caso empezando por la palabra /Escribir/. Veremos

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    4/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    que &SE"-( se da cuenta de que se trata de una orden que conoce, y nos recuerda

    cmo es la orden e+acta, incluso cuando apenas llevamos unas pocas letras:

    &odemos terminar de teclear la palabra, o bien pulsar "ntro para que se complete

    automticamente. En cualquier caso, tras terminar la palabra /Escribir/, se nos

    propone que escribamos /una o ms e+presiones, separadas por comas/4 en nuestro

    caso, ser ser la palabra /ola/, entre comillas:

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    5/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    %ientras que estamos tecleando, &se"nt mostrar un mensa5e de aviso que nos

    recuerda que no ser correcto 3asta que terminemos de escribir el te+to y cerremos

    las comillas:

    El programa casi completo, a 2alta de un peque1o detalle, debera quedar as:

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    6/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    6a primera lnea todava es /&roceso sin7titulo/. &odemos emplear un nombre ms

    signi2icativo para nuestro programa. omo este es el primero de los e5emplos del

    curso, el nombre podra ser /E5emplo889/:

    -uestro programa est completo: podemos comprobar su 2uncionamiento pulsando el

    botn /E5ecutar/, cuya imagen recuerda al /&lay/ de los equipos de msica:

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    7/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    entonces aparecer una nueva ventana que nos muestra el resultado de nuestro

    programa $por supuesto, se trata de la palabra ola*:

    Si nos interesa guardar el programa para poder acceder a l ms adelante, deberemos

    usar la opcin /;uardar/:

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    8/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    9/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    )1adimos otro te+to que deseemos mostrar:

    el nuevo resultado del programa sera:

    H

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    10/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Si te parece que &se"nt te da demasiadas ayudas $aunque quiz nunca sean

    demasiadas cuando uno empieza*, las podras desactivar desde el men on2igurar >

    )sistecncias:

    &or supuesto, no slo podemos escribir te+tos pre2i5ados. &odemos usar nuestro

    ordenador como calculadora, que nos muestre el resultado de una operacin

    aritmtica:

    ProcesoEjemplo002

    Escribir20+30

    FinProceso

    omo es 3abitual en matemticas, el smbolo ? ser el que utilizaremos para calcular

    una suma. 6arestase indicar con @, la multiplicacincon A, la potenciacon B y

    9

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    11/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    la divisincon >. >* se considerar un comentario y

    no se tendr en cuenta en el momento de analizar nuestro programa:

    // Ejemplo de comenta!o en n #ente de $e&nt

    En el pr+imo apartado puntualizaremos un poco ms lo que 3emos 3ec3o en esteltimo programa y poco despus veremos cmo comprobar condiciones.

    Ejercicio de repaso propuesto 2.1:rea un programa que escriba /omienzo a

    aprender/

    99

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    12/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Ejercicio de repaso propuesto 2.2:rea un programa que escriba el resultado de

    multiplicar 9D por 9F

    Ejercicio de repaso propuesto 2.3:rea un programa que calcule el cuadrado de DG

    Ejercicio de repaso propuesto 2.4:rea un programa que escriba el resultado de

    dividir H entre G

    Ejercicio de repaso propuesto 2.5:rea un programa que escriba el resto de la

    divisin de H entre G

    $-ota: Ino 3as conseguido resolver alguno de los e5ercicios propuestosJ &uedes

    preguntar tus dudas en el 2oro de la clase.

    @ Variables

    Vamos a 3acer algo un poco ms comple5o: vamos a sumar dos nmeros que no estn

    pre2i5ados dentro del programa, sino que deber teclear el usuario.

    &ara eso, usaremos la orden /6eer/, que nos permite obtener un dato que el usuario

    teclee y de5arlo guardado para utilizarlo despus. =eberemos dar un nombre temporal

    a estos datos que leemos del usuario. &arece razonable que el primer nmero que

    teclee el usuario se llame algo como /primer-umero/, y el segundo sea algo como

    /segundo-umero/. El resultado que queremos obtener ser la suma de ese primer

    nmero y ese segundo nmero, as que nuestro programa podra quedar as:

    ProcesoEjemplo003

    Escribir"'!me n nmeo"

    Leerp!me(meo

    Escribir"'!me oto nmeo"

    Leere)ndo(meo

    Escribir" ma e " p!me(meo + e)ndo(meo

    9B

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    13/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    FinProceso

    $-ota: Esa es la apariencia de &se"nt 2uncionando sobre 6inu+, muy similar a la que

    muestra cuando se utiliza en KindoLs*.

    El resultado de este programa debera ser algo como $dependiendo de los datos que

    se introduzcan*:

    9@

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    14/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Esas dos palabras, /primer-umero/ y /segundo-umero/ representan a nmeros que

    no tienen un valor pre2i5ado. Eso es lo que llamaremos /variables/. En las variantes de

    pseudocdigo que emplean en muc3as universidades y centros de estudio $ya

    3abamos avisado de que no e+iste ningn estndar totalmente asentado* debemos

    /declarar las variables/ antes de usarlas: decir qu tipo de dato es el que querremosrepresentar con ese nombre. En nuestro e5emplo anterior se trataba de dos nmeros

    enteros, as que el programa sera:

    ProcesoEjemplo003b

    Definirp!me(meo comoEntero

    Definire)ndo(meo comoEntero

    Escribir"'!me n nmeo"

    Leerp!me(meo

    Escribir"'!me oto nmeo"

    Leere)ndo(meo

    Escribir" ma e " p!me(meo + e)ndo(meo

    FinProceso

    Esto se debe a que en la mayora de lengua5es de programacin /reales/ es necesario

    detallar qu tipo de datos querremos guardar en cada variable, para que la

    3erramienta de programacin sepa e+actamente qu cantidad de memoria ser

    necesario reservar para guardar ese dato.

    En el caso de &SE"-(, se puede escoger entre distintas sinta+is. 6a sinta+is que viene

    /por de2ecto/ $si no se cambia nada* es la llamada /2le+ible/, que permite que no se

    declaren las variables antes de usarlas, pero e+isten otras variantes de sinta+is,

    empleadas por ciertas universidades, en las que s puede ser obligatorio 3acerlo.

    &or otra parte, no siempre querremos que el valor de una variable lo introduzca el

    usuario. abr veces que seamos nosotros mismos los que demos el valor iniciala

    una variable desde nuestro programa, bien para usarlo en una serie de clculos

    posteriores, o bien por legibilidad $es ms 2cil entender algo como

    9

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    15/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    /longitudircun2erencia M D A pi A radio/ que algo como /longitudircun2erencia M N.DO A

    radio/.

    6a 2orma de dar un valor a una variable es con la secuencia de smbolos /P@/:

    ad!o ,- 3

    lon)!td.!cn#eenc!a ,- 2* p! * ad!o

    $esos smbolos representan una 2lec3a, para indicar que el valor se va a guardar

    dentro del espacio de memoria reservado para la variable llamada /radio/*.

    I qu ocurre si usamos una variable sin 3aberle dado valorJ Esto sucede a veces

    por despiste, si tecleamos mal el nombre de una variable, como en este 2ragmento deprograma:

    p!me(meo ,- 2

    Escribir p!me(meo

    Si lees ese 2ragmento con cuidado, vers que el nombre de la variable que aparece en

    la segunda lnea es incorrecto, 2alta la letra /u/. IQu sucede en ese casoJ En algunos

    lengua5es $pocos, a2ortunadamente* se da por sentado que es una variable nueva, y se

    le da el valor 84 en el caso de &se"nt, igual que en la mayora de lengua5es actuales,

    obtendremos un mensa5e de error que nos dir que estamos usando una variable que

    no tena valor.

    Ejercicio de repaso propuesto 3.1:rea un programa que escriba el resultado de

    multiplicar los dos nmeros que introduzca el usuario

    Ejercicio de repaso propuesto 3.2:rea un programa que calcule la super2icie de un

    rectngulo a partir de su base y su altura, y que despus muestre el valor de dic3a

    super2icie.

    Ejercicio de repaso propuesto 3.3:rea un programa que calcule la super2icie de un

    crculo a partir de su radio $la 2rmula es /&" A radioD/* y que despus muestre el valor

    de dic3a super2icie $pista: para calcular el cuadrado de un nmero puedes usar la

    opercin /potencia/: +BD, o bien multiplicar el nmero por l mismo: +DM+A+*.

    9

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    16/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    F @ omprobando ondiciones $9: Si*

    En casi cualquier secuencia de instrucciones para un ordenador, ser vital poder

    comprobar si se cumple alguna condicin.

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    17/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    &ara ayudarnos a plani2icar el comportamiento de una secuencia de instrucciones, se

    suele usar como ayuda los llamados /diagramas de 2lu5o/. En estos diagramas, una

    condicin se representa como un rombo, del que salen dos 2lec3as: una para la

    secuencia de acciones a realizar si se cumple la condicin y otra para cuando no se

    cumple:

    )s, si en &Se"nt 3acemos clic en el icono de la parte derec3a que representa la

    condicin S"@E-('-ES, aparece un esqueleto de programa casi completo, para que

    3agamos los cambios que nos interesen:

    Slo tenemos que escribir la condicin que realmente nos interesa, y la serie de pasosque se deben dar si se cumple y si no se cumple, de modo que nuestro programa

    podra quedar as:

    ProcesoEjemplo004

    Escribir"'!me n nmeo"

    9

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    18/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Leerp!me(meo

    Escribir"'!me oto nmeo"

    Leere)ndo(meo

    Sip!me(meo e)ndo(meo Entonces

    Escribir"El p!meo e mao"

    Sino

    Escribir"El e)ndo e mao"

    FinSi

    FinProceso

    Su resultado sera ste:

    En ese e5emplo 3emos comparado si un valor es mayor que el otro $R*. 6os

    operadores de comparacin que tenemos disponibles son:

    Operador relacional Significado Ejemplo

    R %ayor que RD

    P %enor que DP

    M "gual que M

    PM %enor o igual que GPMG

    RM %ayor o igual que NRMG

    9G

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    19/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Ejercicio de repaso propuesto 4.1:rea un programa que pida dos nmeros al

    usuario y responda si son iguales o no lo son.

    (ambin es posible comprobar varias condiciones a la vez, para 3acer construccionesms comple5as, como: /si a es mayor que b y b es mayor que c/, o como /si a es igual

    a 9 o b es igual a 9 /. 6os operadores lgicos que de los que disponemos son:

    Operador lgico Significado Ejemplo

    on5uncin $y*. $HRF* $DM9* >>2also

    T ' =isyuncin $o*. $9M9 T DM9* >>verdadero

    U -' -egacin $no*. U$DPG* >>2also

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    20/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Ejercicio de repaso propuesto 4.3:rea un programa que pida un nmero al usuario

    y diga si es positivo, negativo o cero.

    Ejercicio de repaso propuesto 4.4:az un programa que pida al usuario dosnmeros y diga cuntos de ellos son positivos.

    Ejercicio de repaso propuesto 4.5:rea un programa que pida al usuario dos

    nmeros y muestre su divisin si el segundo no es cero, o un mensa5e de aviso en

    caso contrario.

    Ejercicio de repaso propuesto 4.6:&repara un programa que pida al usuario tres

    nmeros y diga cul es el mayor de los tres.

    G @ omprobando ondiciones $D: Segun*

    Es 2recuente tener que comprobar ms de una condicin a la vez, o bien varias

    condiciones consecutivas. En concreto, un caso especialmente 3abitual es el de que

    una variable pueda un valor de entre varios. &or e5emplo, en el sistema de notas

    escolares espa1ol clsico, ciertas notas numricas tienen /nombres/ asociados: un G

    es un aprobado, un y un 98 son sobresaliente, etc. Si queremos 3acer un programa

    que convierta de la nota numrica a su equivalente escrito, podramos emplear varias

    rdenes "0, una tras la otra. &ero en muc3os lengua5es de programacin $y por tanto,tambin en muc3as variantes de pseudocdigo* e+iste una alternativa ms compacta y

    ms legible: la orden /SE;

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    21/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    El nmero de valores que podemos probar es inde2inido: no tiene por qu ser , sino

    que pueden ser menos casos o muc3os ms.

    Segn la variante de pseudocdigo $o el lengua5e de programacin* que empleemos,

    puede 3aberrestriccionesen el tipo de datos que es aceptable. &or e5emplo, en elcaso de &se"nt, la variable tiene que tener un valor numrico, no puede ser un te+to.

    )l igual que ocurra con la orden S", e+iste un smbolo que podemos usar en los

    diagramas de 2lu5o para ayudarmos a plani2icar nuestro programa $aunque este

    smbolo est menos e+tendido que el de S"*:

    )s, si en &se"nt 3acemos clic en el icono del panel derec3o que representa la

    condicin SE;

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    22/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Slo tenemos que escribir la condicin que realmente nos interesa, y la serie de pasos

    a dar si se cumple y si no se cumple, de modo que nuestro programa podra quedaras:

    ProcesoEjemplo.ao

    Escribir"&ntodca la nota"

    Leernota

    BB

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    23/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Segunnota Hacer

    10

    Escribir"Ha obten!do n obeal!ente alto"

    9

    Escribir"Ha obten!do n obeal!ente bajo"

    8

    Escribir"Ha obten!do n notable alto"

    7

    Escribir"Ha obten!do n notable bajo"

    6

    Escribir"Ha obten!do n apobado alto"

    5

    Escribir"Ha obten!do n apobado"

    De Otro Modo

    Escribir"Ha pend!do"

    FinSegun

    FinProceso

    Su resultado sera ste:

    B@

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    24/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    &ero no siempre 3abr que comprobar condiciones una nica vez. Es muy 2recuente

    que 3aya que 3acerlo de 2orma repetitiva. &or e5emplo, /pedir una contrase1a al

    usuario 3asta que sea la correcta/, o an ms cercano al mundo real, /pedir una

    contrase1a al usuario 3asta que sea la correcta o agote sus intentos/. =e eso

    3ablaremos en la pr+ima entrega.

    Ejercicio de repaso propuesto 5.1:az un programa que pida un nmero al usuario

    un nmero de da de la semana $del 9 al H* y escriba el nombre de ese da $por

    e5emplo, /martes/ para el da D*. =ebes emplear la orden SE;

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    25/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    N @ ondiciones !epetitivas $9: %ientras*

    abitualmente, una condicin se deber comprobar ms de una vez. &or e5emplo, una

    condicin de error puede repetirse: el usuario que introduce mal una contrase1a por

    primera vez puede equivocarse tambin en una segunda ocasin.

    &or eso, igual que cualquier lengua5e de programacin tiene una orden /si/, la gran

    mayora de ellos tendr una orden /mientras/, que permite que un 2ragmento de un

    programa se repita mientras una cierta condicin se siga cumpliendo $por e5emplo,

    mientras la contrase1a que teclee el usuario sea incorrecta, el usuario deber volver a

    introducirla*.

    (ambin e+iste un smbolo 3abitual en los diagramas de 2lu5o para representar este

    tipo de condiciones repetitivas, en las que si se cumple la condicin, se realiza unaserie de acciones y se vuelve a comprobar la condicin, y as sucesivamente 3asta

    que la condicin no se cumpla:

    en el caso de &se"nt, ese icono generara un esqueleto de programa como ste:

    B

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    26/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    &or e5emplo, un programa capaz de sumar muc3os nmeros, todos los que el usuario

    quisiera, y en el que 3ubiera que escribir /8/ para indicar que queremos terminar,

    podra ser as:

    Proceso!enta01

    Escribir"'!me n nmeo"

    Leer

    ma ,- 0

    Mientras , 0 Hacer

    ma ,- ma +

    Escribir"Hata aoa la ma e " ma

    Escribir"'!me oto nmeo"

    Leer

    FinMientras

    Escribir":em!nado"

    FinProceso

    su e5ecucin mostrara algo como:

    B

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    27/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Esta estructuras repetitivas reciben tambin el nombre de /bucles/.

    ay ms 2ormas de comprobar condiciones repetitivas. &ronto las veremos...

    Ejercicio de repaso propuesto 6.1:rea un programa que pida al usuario una

    contrase1a, de 2orma repetitiva mientras que no introduzca /9DF/. uando 2inalmente

    escriba la contrase1a correcta, se le dir /#ienvenido/ y terminar el programa.

    Ejercicio de repaso propuesto 6.2:az un programa que permita calcular la suma

    de pares de nmeros. &edir dos nmeros al usuario y mostrar su suma, volviendo a

    repetir 3asta que ambos nmeros introducidos sean 8.

    Ejercicio de repaso propuesto 6.3:rea un programa que genere dos nmeros al

    azar entre el 8 y el 988, y pida al usuario que calcule e introduzca su suma. Si la

    respuesta no es correcta, deber volver a pedirla tantas veces como sea necesario

    3asta que el usuario acierte.

    &ista: como vers en el apartado 98, para generar un nmero al azar del 8 al 988

    puedes 3acer numero

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    28/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    H @ ondiciones !epetitivas $D: !epetir@asta*

    Es tambin muy 2recuente que un bloque de programa que quiz se repita, deba

    e5ecutarse al menos una vez. &or e5emplo, si queremos pedir un dato al usuario, quiz

    e+ista algn error y 3aya que insistir, pero al menos deberemos pedrselo una primeravez.

    En estos casos, la estructura /mientras/ no es la ms adecuada: no podemos

    comprobar la condicin al principio, sino despus de 3aber pedir el valor. En estos

    casos $que son muy 2recuentes*, sera ms razonable usar otra estructura de

    programacin en la que la condicin se compruebe despus de dar ciertos pasos. Esa

    estructura es /repetir... 3asta/:

    Su representacin en un diagrama de 2lu5o sera:

    en el caso de &se"nt, ese icono generara un esqueleto de programa como ste:

    BG

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    29/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    &or e5emplo, un programa que pida al usuario una clave de acceso, y que no le

    permita seguir 3asta que la introduzca correctamente, se podra 3acer as:

    Proceso;epet!01

    Repetir

    Escribir"'!me t clae de acceo"

    Leerclae

    Siclae , 1234Entonces

    Escribir".lae !ncoecta"

    FinSi

    HastaQueclae=1234

    Escribir"

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    30/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Queda otra 2orma de repetir 2ragmentos de programa. &ronto estaremos con ella...

    Ejercicio de repaso propuesto 7.1:rea un programa que pida al usuario un cdigo

    de usuario y una contrase1a. =eber repetirse 3asta que el cdigo sea /9/ y la

    contrase1a sea /9DF/.

    Ejercicio de repaso propuesto 7.2:az un programa que permita calcular la suma

    de pares de nmeros. &edir dos nmeros al usuario y mostrar su suma, volviendo a

    repetir 3asta que ambos nmeros introducidos sean 8. Esta vez debers usar

    /!epetir/, por lo que tu solucin no ser igual que la del e5ercicio N.D, que empleaba

    /%ientras/.

    Ejercicio de repaso propuesto 7.3:&repara un programa que divida dos nmeros

    que introduzca el usuario. Si el segundo nmero es cero, se le deber avisar y volver a

    pedir tantas veces como sea necesario, 3asta que introduzca un nmero distinto de

    cero, momento en que se calcular y mostrar el resultado de la divisin

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    31/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    O @ !epetir

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    32/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Proceso$aa01

    Para ,- 1Hasta10Hacer

    Escribir

    FinPara

    FinProceso

    uyo resultado sera:

    Si no queremos avanzar de uno en uno, sino con un incremento distinto, podemos

    indicar otro tama1o de /paso/:

    Proceso$aa02

    Para ,- 10Hasta20on Paso2Hacer

    Escribir

    FinPara

    FinProceso

    obtendramos:

    @B

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    33/38

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    34/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    disminuyes* su valor en cada pasada de 2orma manual. omprubalo creando un

    programa que escriba los nmeros del 9 al 9G usando /mientras/ en vez de /para/.

    6as estructuras repetitivas $/bucles/* se pueden incluir una dentro de otra si 2uera

    necesario. El resultado se conoce como un /bucle anidado/. &or e5emplo, si se deseadibu5ar un rectngulo usando asteriscos, se puede plantear como escribir de 2orma

    repetitiva varias 2ilas que, a su vez estn 2ormadas cada una por varias columnas, de

    2orma tambin repetitiva, como muestra este e5emplo:

    // ;ect>n)lo #omado po ate!co

    Proceso;ectan)lo

    Escribir!n alta "&ntodce el anco "

    Leeranco

    Escribir!n alta "&ntodce el alto "

    Leeralto

    Para#!la,-1Hastaalto Hacer

    Paracolmna ,- 1Hastaanco Hacer

    Escribir!n alta "*"

    FinPara

    Escribir"" // ?ance de l@nea ta cada #!la

    FinPara

    FinProceso

    Ejercicio de repaso propuesto .7:) partir del e5emplo que dibu5a un rectngulo de

    asteriscos, crea un que dibu5e un cuadrado $deber pedir slo un dato, el lado, y

    ambas rdenes /para/ debern tener ese valor como lmite*.

    Ejercicio de repaso propuesto .:=ibu5a un tringulo creciente de asteriscos, del

    tama1o que indique el usuario. &or e5emplo, si escoge F, el resultado debera ser:

    A

    AA

    AAA

    AAAA

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    35/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    @ %atrices

    uando necesitamos mane5ar muc3os datos, generalmente 3ay soluciones ms

    e2ectivas que tener muc3as variables. &or e5emplo, si 3ay que guardar 98 nmeros,

    resultar incmodo usar 98 variables llamadas n9, nD, n, nF, nG, nN, nH, nO, n, n984si se trata de 988 nmeros, puede pasar de resultar incmodo a ser totalmente

    inviable. En esos casos, ser ms e2iciente almacenar esos 988 datos /5untos/,

    2ormando lo que se conoce como una /matriz/, en vez de usar 988 variables distintas.

    6a palabra /matriz/ es una traduccin del ingls /array/. )lgunos autores lo traducen

    alternativamente como tabla, vector o incluso /arreglo/.

    -ormalmente, en una matriz podremos acceder individualmente a cada uno de sus

    elementos usando corc3etes: el primer dato sera algo como /datoW9X/.

    omo primer contacto, se puede crear una matriz de elementos, guardar datos en

    sus posiciones y mostrar el primer dato y el tercero as:

    Procesoat!3

    DimensiondatoA3B

    datoA1B,- 10

    datoA2B,- 25

    datoA3B,- 50

    Escribir"El p!me dato e " datoA1B

    Escribir"C el teceo e " datoA3B

    FinProceso

    omo una matriz puede contener muc3os datos, es 2recuente recorrerlas de 2orma

    repetitiva, empleando una orden /para/. )s un e5emplo que nos pida N datos y luego

    los muestre en orden contrario al que se 3an introducido podra ser:

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    36/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Procesoota?l;ee

    DimensiondatoA6B

    Para! ,- 1Hasta6Hacer

    Escribir"'!me el dato nmeo " !

    LeerdatoA!B

    FinPara

    Escribir"Do dato al ee on "

    Para! ,- 6Hasta1on Paso-1Hacer

    EscribirdatoA!B

    FinPara

    FinProceso

    Que mostrara algo como:

    $aremos e5emplos ms avanzados como parte de los e5ercicios*

    Ejercicio de repaso propuesto !.1:rea un programa que pida un nmero al usuario

    un nmero de mes $por e5emplo, el F* y diga cuntos das tiene $por e5emplo, 8*.

    =ebes usar una matriz.

    Ejercicio de repaso propuesto !.2:az un programa que pida al usuario G datos, los

    guarde en una matriz y luego muestre su media $la suma de los G datos, dividida entre

    G*.

    Ejercicio de repaso propuesto !.3:rea una versin ampliada del e5ercicio .D, en la

    que se pida al usuario G datos, se guarden en una matriz y 2inalmente se calcule su

    media, se muestre sta y se muestren tambin los valores mayores que la media*.

    Ejercicio de repaso propuesto !.4:Si 3as estudiado lo que es un vector, crea un

    programa que reserve espacio para dos vectores de componentes, pida al usuario

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    37/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    sus valores y calcule la suma de ambos vectores $su primera componente ser +9?y9,

    la segunda ser +D?yD y as sucesivamente*.

    Ejercicio de repaso propuesto !.5:Si 3as estudiado lo que es un vector, prepara un

    programa que reserve espacio para dos vectores de componentes, pida al usuariosus valores y calcule su producto escalar $+9Yy9? +DYyD?+Yy*.

    Ejercicio de repaso propuesto !.6:az un programa que pida al usuario H nmeros

    enteros y calcule $y muestre* cul es el mayor de ellos. -ota: para calcular el mayor

    valor de una matriz, 3ay que comparar cada uno de los valores que tiene almacenados

    con el que 3asta ese momento es el m+imo provisional. El valor inicial de este

    m+imo provisional no debera ser cero $porque el resultado sera incorrecto si todos

    los nmeros son negativos*, sino el primer elemento de la matriz.

    Ejercicio de repaso propuesto !.7:rea un programa que prepare un array con 98

    datos pre2i5ados, luego pregunte al usuario qu dato desea buscar, avise si ese dato no

    aparece, y que en caso contrario diga cuntas veces se 3a encontrado.

    (ambin se pueden crear arrays /de dos dimensiones/ $por e5emplo, 2ilas y dos

    columnas*, que se acercan ms al concepto matemtico de matriz:

    Procesoat!32

    DimensiondatoA32B

    datoA11B,- 10

    datoA21B,- 25

    datoA31B,- 50

    datoA12B,- 11

    datoA22B,- 26

    datoA32B,- 51

    Escribir"El p!me dato en la p!mea colmna e " datoA11B

    @

  • 7/25/2019 Introduccin a la programacin BCH IES 2016.docx

    38/38

    CENTRO EDUCATIVO FRANCISCANO EL ESPIRITU SANTO

    Escribir"C el lt!mo de la e)nda colmna " datoA32B

    FinProceso

    Ejercicio de repaso propuesto !.:rea un programa que pida al usuario dos

    bloques de 98 nmeros cada uno $usando un array de dos dimensiones*. =espus

    deber mostrar el mayor dato que se 3a introducido en cada uno de esos dos bloques.

    Ejercicio de repaso propuesto !.!:Si 3as estudiado lgebra matricial, 3az un

    programa que calcule el determinante de una matriz de D+D, a partir de datos que

    introduzca el usuario.

    Ejercicio de repaso propuesto !.1":Si 3as estudiado lgebra matricial, prepara un

    programa que calcule el determinante de una matriz de +.