Professional Documents
Culture Documents
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
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
21/01/2014
)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
Operaciones
K @ le!ar a potencias L @ Multiplicaciones / @ Di!isiones 7emplo a+b
Var =
c+d
21/01/2014
Operaciones
n %orma de algoritmo ? !ar F aIb/cId #esultadosC
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
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
&in
14
21/01/2014
#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
20
21/01/2014
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
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
"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
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
54
21/01/2014
!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
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
5D
21/01/2014
5E
21/01/2014
5G
21/01/2014
5J