Post on 28-Feb-2018
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=227/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/pascal7/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 +.