Está en la página 1de 39

21/01/2014

Mdulo Algoritmia

Temticas
Anlisis del problema Diseo del algoritmo Presentacin de algoritmos Programacin del algoritmo Pseudocdigo Organigramas structuras de control structuras secuenciales structuras selecti!as structuras repetiti!as Programacin modular "unciones Procedimientos o subrutinas Programacin estructurada #ecursi!idad Desarrollo $ generacin del so%t&are 'ngenier(a del so%t&are )iclo de !ida del so%t&are

21/01/2014

)onsideraciones

)onsideraciones
*gica es la )iencia +ue estudia la estructura, %undamentos $ uso de las e-presiones del conocimiento .umano/ 0e considera la lgica como una serie co.erente de ideas $ ra1onamientos/ *gica es la %orma mas O23'A $ mas "4)'* de .acer algo/

21/01/2014

)onsideraciones
Atributo 6 )aracter(sticas 6 Ad7eti!os/ Dato/ 0encillamente es un atributo codi%icado8 en t9rminos entendibles a un sistema de in%ormacin, en condiciones mane7ables $ comparables $ de manera casi absoluta :no totalmente pero s( en gran medida;/

)onsideraciones
<Codificado8 signi%ica +ue .a sido con!ertido a una escala determinada para poder ser mas mane7able lo cual indica +ue lo podemos operar con otros atributos de la misma escala, es decir, podemos reali1ar comparaciones $ obtener resultados $ respuestas/ = debe tener sentido 6 ste es un campo/

21/01/2014

)onsideraciones
3arios campos son un Registro/ Operan indi!idualmente :Instancias; Al ser almacenadas de manera permanente, estas instancias se con!ierten en un Archivo en disco/

)onsideraciones
Informtica/ Disciplina +ue estudia, aplica $ optimi1a el tratamiento e%iciente de la in%ormacin/

21/01/2014

Anlisis del problema


)omponentes para la solucin de problemas? Descripcin @ Ob7eti!o Precondicin Postcondicin )omponentes :3ariables @ )onstantes; )onocidos )alculables Desconocidos Operaciones Alternati!as de solucin $ prueba

Descripcin @ Ob7eti!o
a/ Tener claro el ob7eti!o nos permite saber .acia donde !amos/ b/ Tener claro el ob7eti!o nos permite saber .asta donde debemos llegar/ ABu9 es un AlgoritmoC s un con7unto de pasos secuenciales $ ordenados +ue permiten lograr un ob7eti!o/

>

21/01/2014

7emplo Algoritmo
Algoritmo Adquisicion_Libro Inicio
1. Saber cul es el libro que se quiere adquirir 2. Desplazarnos hacia una librera . !reguntar si tienen el libro que necesitamos ". Si lo tienen
adquirirlo # !arar all $dentro de este algoritmo%

Si no lo tienen
ir al paso 2

&in

Taller de e7ercicios Parte 1

21/01/2014

3ariables Operacin $ almacenamiento


Variable es un campo de memoria al +ue se le puede cambiar su contenido cuantas !eces sea necesario/ structura en memoria/ Tipos de datos 6 Tipos de !ariables )omo nombrarlos $ asignarlos/ )asos? aFGH bFaH cFaIbH

)aso aplicado
1/ 2/ 5/ 4/ >/ D/ E/ ntero? A, 2, ) A F 10 2 F 1> ) F 20 AFAI2 2F2IG )F)IA G/ A F A I > J/ 2 F 2 I 5 10/) F ) I 2 11/A F A 6 2 12/2 F A 6 2 15/) F A 6 2
3ariable A F 4 3ariable 2 F @22 3ariable ) F 2D

21/01/2014

Taller de e7ercicios Parte 2

Operaciones
K @ le!ar a potencias L @ Multiplicaciones / @ Di!isiones 7emplo a+b

Var =

c+d

n %orma de algoritmo ? !ar F aIb/cId

21/01/2014

Operaciones
n %orma de algoritmo ? !ar F aIb/cId #esultadosC

b Var = a + + d c Var = a+b +d c

Var = a +

b c+d

Operaciones
n %orma de algoritmo, determinar el operador principal :/;, $ agrupar/ Merramienta Par9ntesis/ !ar F :aIb;/:cId; l computador siempre soluciona primero los par9ntesis ms internos $ aplica la 7erar+u(a de operadores, en cada uno de los elementos del operador principal/

21/01/2014

Operaciones
3A# F : a I b / c 6 d ; / : a I b / : c K dI d / : a 6 b / c L d ; ; ;

Operacin re@escrita

10

21/01/2014

Taller de e7ercicios Parte 5

Algoritmos structuras bsicas

11

21/01/2014

0ecuenciales
Planeando ir este %in de semana a pasear con la %amilia lo +ue en su mente se !a dibu7ando poco a poco es una secuencia de acciones a reali1ar $ +ue le permitan pasar un %in de semana bien bueno/

Decisin
Nsted .a llegado al paradero de buses, !e como pasan $ pasan buses pero ninguno tiene la ruta +ue necesita por+ue usted !i!e en ese barrio para el cual .a$ un transporte mu$ de%iciente/ Por cada bus +ue pasa usted le mira la ruta $ al !er +ue no es, espera el siguiente bus $ as( sucesi!amente .asta +ue !e llegar al bus +ue usted necesita/ *a decisin se da siempre +ue usted tenga +ue escoger de entre, por lo menos, dos caminos lgicos/

12

21/01/2014

)iclos
0e acostumbra todos los d(as a !er el noticiero de las J?50 de la noc.e, acostumbra a ir al traba7o a la misma .ora $ a esperar el bus en el mismo paradero, acostumbra saludar de la misma %orma a su esposa $ acostumbra dormir en el mismo lado $ en la misma posicin/ Oos permite repetir una o !arias acciones una cantidad de%inida de !eces/

structuras
Por a.ora lo +ue importa es +ue usted tenga claro +ue todo lo +ue usted .ace, sin importar +ue sea, cual+uier accin o con7unto de acciones +ue usted .aga siempre estarn enmarcadas en estas tres estructuras? 1/ 0ecuencias de acciones 2/ Decisin de accin 5/ )iclos de acciones

15

21/01/2014

structuras e-presadas t9cnicamente


Secuencias Algoritmo para asomarnos a la 'entana Inicio
(bicar la 'entana por la que nos queremos asomar Le'antarnos del lugar en donde estemos sentados A'anzar hacia la 'entana Llegar hasta tener la 'entana mu# mu# cerquita Asomarnos por la 'entana

&in

structuras e-presadas t9cnicamente


Decisiones
Algoritmo para asomarnos a la 'entana Inicio (bicar la 'entana por la que nos queremos asomar Si estamos sentados Le'antarnos del lugar en donde estemos sentados )rientarnos hacia la 'entana Sino )rientarnos hacia la 'entana A'anzar hacia la 'entana Llegar hasta tener la 'entana mu# mu# cerquita Si esta cerrada Abrirla Asomarnos por la 'entana &in

14

21/01/2014

structuras e-presadas t9cnicamente


Ciclos
Algoritmo para *igilar desde una 'entana
Inicio Llegar puntual a la hora de inicio de la +ornada laboral (bicarnos en nuestro escritorio ,ientras no sea el -in del da (bicar la 'entana por la que nos queremos asomar Si estamos sentados Le'antarnos del lugar en donde estemos sentados )rientarnos hacia la 'entana Sino )rientarnos hacia la 'entana A'anzar hacia la 'entana Llegar hasta tener la 'entana mu# mu# cerca Si esta cerrada Abrirla Asomarnos por la 'entana .egresar a nuestro escritorio &in_,ientras &in

#epresentacin de Algoritmos
0eudocodigo 6 Oormas 1/ Debe tener nombre +ue lo identi%i+ue/ Bue tenga sentido/ 2/ Dar !alores iniciales a las !ariables a ser usadas/ OPmeros o *etras/ 5/ l algoritmo de solucin debe encerrarse entre inicio $ %in

1>

21/01/2014

#epresentacin de Algoritmos
0eudocodigo 6 Oormas 4/ Mensa7es A!iso? scribir < sta es una demostracin8H Dato de una !ariable
Oum F>H scribir OumH

Titulo $ un !alor
scribir < l !alor del numero es ? 8 OumH

#epresentacin de Algoritmos
0eudocodigo 6 Oormas 4/ Mensa7es Titulo $ !arios !alores
Oum1 F > Oum2 F E scribir < l !alor de los numeros es ? 8 Oum1, Oum2H

1D

21/01/2014

#epresentacin de Algoritmos
0eudocodigo 6 Oormas >/ )aptura de datos *eer un dato
*ea OumH

3arios datos
*ea Oum1, Oum2H

#epresentacin de Algoritmos
0eudocodigo 6 Oormas D/ )ondicionales 0i :)ondicin;
Acciones en caso de +ue sea !erdaderoH

0ino
Acciones en caso de +ue sea %alsoH

"in 0i

1E

21/01/2014

#epresentacin de Algoritmos
0eudocodigo 6 Oormas D/ )ondicin
Q R QF RF RQ F Ma$or +ue Menor +ue Ma$or o igual Menor o igual Di%erente 'gual a

#epresentacin de Algoritmos
0eudocodigo 6 Oormas D/ Operadores boleanos
= :AOD;
Operando1 3 3 " " Operando2 3 " 3 " A D 3 " " "

1G

21/01/2014

#epresentacin de Algoritmos
0eudocodigo 6 Oormas D/ Operadores boleanos
O :O#;
Operando1 3 3 " " Operando2 3 " 3 " OR 3 3 3 "

#epresentacin de Algoritmos
0eudocodigo 6 Oormas D/ Operadores boleanos
Oegacin :OOT;
Operando1 3 " O! " 3

1J

21/01/2014

#epresentacin de Algoritmos
0eudocodigo 6 Oormas E/ )iclos Mientras :)ondicin; .aga
Acciones en caso de +ue sea !erdaderoH

"in Mientras

Taller de e7ercicios Parte 1

20

21/01/2014

Anlisis del problema


)omponentes para la solucin de problemas? Descripcin @ Ob7eti!o Precondicin Postcondicin )omponentes :3ariables @ )onstantes; )onocidos )alculables Desconocidos Operaciones Alternati!as de solucin $ prueba

Descripcin @ Ob7eti!o
)lari%icar ob7eti!o )lari%icar componentes #e%le-ionar en cuanto a los alcances de nuestro ob7eti!o :enunciado como un problema; $a +ue con eso tendremos mu$ claro no solo .acia donde debemos ir sino .asta donde debemos llegar/

21

21/01/2014

Descripcin @ 3ariables
lementos conocidos $ sus posibles !alores #esultados posibles $ sus !alores 0ustanti!os 6 Ad7eti!os )on7unto de elementos encargados de gestionar los datos, a tra!9s de operaciones/

Descripcin @ Operaciones
3erbos Operaciones Algoritmos s el con7unto de pasos +ue nos permiten llegar :o7al de la me7or de las %ormas; a alcan1ar el ob7eti!o propuesto/ Debe ser organi1ado $, ante todo, ordenado para +ue sea absolutamente entendible/

22

21/01/2014

Algoritmo 'n%ormal
Algoritmo para determinar si un n/mero es par Inicio
Leer un n/mero # guardarlo en una 'ariable entera Si ese n/mero es negati'o
0scribir que ese n/mero no sir'e para nuestro prop1sito

Sino
!reguntar si el n/mero es par Si lo es entonces escribir que el n/mero ledo es par Si no lo es escribir que el n/mero ledo no es par

&in Si

&in

Algoritmo Trans%ormacin
Algoritmo para determinar si un n/mero es par
Inicio
Leer un n/mero # guardarlo en una 'ariable entera

Algoritmo 2umero_!ar
*ariables
0ntero 3 num4

Inicio
Lea num4

25

21/01/2014

Algoritmo Trans%ormacin
Si ese n/mero es negati'o
0scribir que ese n/mero no sir'e para nuestro prop1sito

Si num 5 6
0scriba 70l n/mero debe ser positi'o84

Algoritmo 2umero_!ar *ariables


0ntero 3num4

Inicio
Lea num4 Si num 5 6
0scriba 70l n/mero debe ser positi'o84

Algoritmo Trans%ormacin
Sino
!reguntar si el n/mero es par Si lo es entonces escribir que el n/mero ledo es par Si no lo es escribir que el n/mero ledo no es par

&in Sino
Si $$num 9 2 : 2 %; num%
0scriba 70l n/mero ledo es par8

Sino
0scriba 70l n/mero ledo no es par8

&in

24

21/01/2014

Algoritmo 'n%ormal
Algoritmo para determinar si un n/mero es par Inicio
Leer un n/mero # guardarlo en una 'ariable entera Si ese n/mero es negati'o
0scribir que ese n/mero no sir'e para nuestro prop1sito

Sino
!reguntar si el n/mero es par Si lo es entonces escribir que el n/mero ledo es par Si no lo es escribir que el n/mero ledo no es par

&in Si

&in

Algoritmo Trans%ormado
Algoritmo 2umero_!ar *ariables 0ntero 3num4 Inicio Lea num4 Si $num 5 6% 0scriba 70l n/mero debe ser positi'o84 Sino Si $$num 9 2 : 2% ; num% <<<<< $Alternati'as% 0scriba 70l n/mero ledo es par84 Sino 0scriba 70l n/mero ledo no es par84 &in Si &in Si &in

2>

21/01/2014

7emplo 2
*eer dos nPmeros enteros positi!os $ determinar si el Pltimo d(gito de un nPmero es igual al Pltimo d(gito del otro/ Sean dos n/meros ledos= por e+emplo= el 1>? # el @A entonces tendremos que comparar el ? $/ltimo dgito del 1>?% con el A $/ltimo dgito del @A%. Si -ueran esos los dos n/meros ledos entonces tendramos que decir que no son iguales. Si los n/meros ledos -ueran el B # el "B entonces al comparar el B del B con el B del "B tendramos que decir que son iguales.

Algoritmo 'n%ormal
Algoritmo para comparar el Pltimo d(gito 'nicio *eer un nPmero entero $ guardarlo en una !ariable entera *eer otro nPmero entero $ guardarlo en otra !ariable entera Suardar en una !ariable el Pltimo d(gito del primer nPmero le(do Suardar en otra !ariable el Pltimo d(gito del Pltimo d(gito le(do )omparar el contenido de estas dos Pltimas !ariables 0i son iguales scribir +ue los dos Pltimos d(gitos son iguales 0i no son iguales scribir +ue los dos Pltimos d(gitos no son iguales "in 0i "in

2D

21/01/2014

Algoritmo Compara_(lt_digs *ariables 0ntero 3 num1= num2= ud1= ud2 Inicio 0scriba 7Digite dos n/meros enteros 74 Lea num1= num2 Si $num1 5 6% num1 ; num1 : $<1%4 &in Si Si $num2 5 6% num2 ; num2 : $<1%4 &in Si ud1 ; num1 D num1 9 16 : 164 ud2 ; num2 D num2 9 16 : 164 Si $ud1 ; ud2% 0scriba 70l /ltimo dgito de un n/mero es igual al /ltimo dgito del otro84 Sino 0scriba 70l /ltimo dgito de un n/mero no es igual al /ltimo dgito del otro84 &in Si &in

7emplo 5
*eer un nPmero entero $ determinar cuntos d(gitos tiene/

2E

21/01/2014

structuras Decisiones

"orma
Si $Condici1n%
. . Instrucciones a e+ecutar 0n caso de que la condici1n sea *erdadera . .

Sino
. . Instrucciones a e+ecutar 0n caso de que la condici1n sea &alsa . .

&in_Si

2G

21/01/2014

Decisiones en cascada
Si Condici1n1 Instrucciones en caso de que condici1n1 sea *erdadera Sino Si Condici1n2 Instrucciones en caso de que condici1n2 sea *erdadera Sino Si Condici1n Instrucciones n caso de que condici1n sea *erdadera Sino Instrucciones en caso de que condici1n sea &alsa &in Si &in Si &in Si

7emplo Decisiones
*eer un nPmero entero $ determinar si es de uno o dos o tres o cuatro d(gitos/ 3alidar +ue el nPmero no sea negati!o/

2J

21/01/2014

!rograma Decisi1n_en_Cascada *ar 0ntero 3 num Inicio 0scriba 7!or -a'or= digite un n/mero entero84 Lea num4 Si num 5 6 num ; num : $ <1 %4 Si num E ; 1 # num 5 ; ? 0scriba 7 0l n/mero tiene 1 dgito 84 Sino Si num E ; 16 # num 5 ; ?? 0scriba 70l n/mero tiene 2 dgitos 84 Sino Si num E ; 166 # num 5 ; ??? 0scriba 70l n/mero tiene dgitos 84 Sino Si num E ; 1666 # num 5 ; ???? 0scriba 70l n/mero tiene " dgitos 84 Sino 0scriba 70l n/mero tiene mas de " dgitos 84 &in Si &in Si &in Si &in Si &in

Decisiones en 0ecuencia
!rograma Decisiones_en_Secuencia *ariables 0ntero 3 num4 Inicio 0scriba 7Digite un n/mero entero84 Lea num4 Si $num 5 6% 0scriba 70l n/mero digitado es negati'o84 &in Si Si $num E 6% 0scriba 70l n/mero digitado es positi'o84 &in Si Si $num ; 6% 0scriba 70l n/mero digitado es cero84 &in Si &in

50

21/01/2014

structuras Decisiones de )asos 0imples

"orma de operacin
0'al/e $'ariable% Si 'ale $'alor_1% 3 Instrucciones a e+ecutar en caso de que la 'ariable sea igual a 'alor_1 Si 'ale $'alor_2% 3 Instrucciones a e+ecutar en caso de que la 'ariable sea igual a 'alor_2 Si 'ale $'alor_ % 3 Instrucciones a e+ecutar en caso de que la 'ariable sea igual a 'alor_ .. .. Si 'ale $'alor_n% 3 Instrucciones a e+ecutar en caso de que la 'ariable Sea igual a 'alor_n Sino 3 Instrucciones a e+ecutar en caso de que la 'ariable no sea Igual a ninguno de los 'alores posibles $o sea 'alor_1= 'alor_2= 'alor_ = 'alor_"=.....= 'alor_n% &in_0'al/e

51

21/01/2014

7emplo de )asos
!rograma 2ombre_Digito *ariables 0ntero 3 n4 Inicio 0scriba 7Digite un n/mero entero8 Lea n Si n 5 6 n ; n : $ <1 %4 0'al/e $ n % Si 'ale 1 3 0scriba 7(no84 Si 'ale 2 3 0scriba 7Dos84 Si 'ale 3 0scriba 7Fres84 Si 'ale " 3 0scriba 7Cuatro84 Si 'ale A 3 0scriba 7Cinco84 Sino 3 0scriba 70l n/mero es ma#or que cinco84 &in_0'al/e &in

Taller de e7ercicios Parte 4

52

21/01/2014

structuras )iclos

)iclo
s una estructura asociada +ue nos permite representar un con7unto de instrucciones +ue debe repetirse una cantidad determinada de !eces, normalmente, dependiente de una condicin/ *os ciclos nos !an a permitir iterar todo un proceso tantas !eces como nosotros : el usuario; lo determinemos

55

21/01/2014

)aracter(sticas del )iclo


l con7unto de instrucciones debe ser %inito *a cantidad de !eces +ue se repita dic.o con7unto de instrucciones tambi9n debe ser %inita/ Dependiendo del programa, o del analista $ programador/ Deben estar claramente demarcados el inicio $ el %in del ciclo/ n los casos en los cuales solo e-ista una instruccin a iterar, no sern necesarios dic.as marcas/ Dentro de un ciclo podr ir cual+uiera de las otras estructuras +ue se .an estudiado inclu$endo otros ciclos/

7emplo )iclo Mientras


!rograma *ers_Ine-_1 Inicio 0scriba 7 1 84 0scriba 7 2 84 0scriba 7 84 0scriba 7 " 84 0scriba 7 A 84 0scriba 7 @ 84 0scriba 7 B 84 0scriba 7 > 84 0scriba 7 ? 84 0scriba 7 16 84 T T 0scriba 7 ?> 84 0scriba 7 ?? 84 0scriba 716684 &in !rograma 2ums_1_166 *ariables 0ntero 324 Inicio 2;1 ,ientras 2 5 ; 166 0scriba 24 2 ; 2 G 14 &in_mientras &in

54

21/01/2014

7emplo )iclo Para


!rograma *ers_Ine-_1 Inicio 0scriba 7 1 84 0scriba 7 2 84 0scriba 7 84 0scriba 7 " 84 0scriba 7 A 84 0scriba 7 @ 84 0scriba 7 B 84 0scriba 7 > 84 0scriba 7 ? 84 0scriba 7 16 84 T T 0scriba 7 ?> 84 0scriba 7 ?? 84 0scriba 716684 &in

!rograma 2ums_1_166 *ariables 0ntero 324 Inicio !ara $i;1 hasta i5;166 paso 1% 0scriba i4 &in_para &in

)onsideraciones
Oo todos los ciclos sir!en para todos los casos, e7emplo?
!rograma 0+emplo_Ciclo_,H *ariables 0ntero 3 2umero= Cuenta_Digitos4 Inicio 0scriba 7 Digite un n/mero entero 74 Lea 2umero4 Cuenta_Digitos ; 64 ,ientras $2umero 5 E 6% 2umero ; 2umero 9 164 Cuenta_Digitos ; Cuenta_Digitos G 14 &in_,ientras 0scriba 7 Fiene 8= Cuenta_Digitos= 7 dgitos 7 4 &in

Para un ciclo PA#A A0e podr(aC

5>

21/01/2014

7emplo )iclos
Presentar en pantalla todos los nPmeros comprendidos entre dos nPmeros capturados por pantalla/ *eer nPmeros enteros .asta +ue digiten 0 $ determinar a cunto es igual el promedio de los nPmeros le(dos +ue .a$an sido positi!os/ )alcular "actorial/
)iclo Mientras )iclo Maga Mientras )iclo Para )iclo Maga Masta

structuras )iclos Anidados

5D

21/01/2014

)iclo Anidado Mientras


,ientras Condici1n1 . . ,ientras Condici1n2 . . Cuerpo del ciclo mas interno . . &in_,ientras Interno . . &in_,ientras 0Iterno

)iclo Anidado Para


!ara *ar1;*alor inicial hasta *alor -inal $!aso I% . . !ara *ar2;*alor inicial hasta *alor -inal $!aso #% . . Cuerpo del ciclo mas interno . . &in_!ara Interno . . &in_!ara 0Iterno

5E

21/01/2014

7emplo )iclos Anidados


#eali1ar las tablas de multiplicar del 1 al 15/
Nsar dos ciclos di%erentes

Taller de e7ercicios Parte >

5G

21/01/2014

5J