CAPITULO #3: “ESTUDIO DE ALGORITMOS”

64
CAPITULO #3: “ESTUDIO DE ALGORITMOS”

description

CAPITULO #3: “ESTUDIO DE ALGORITMOS”. fin. inicio. Programa. asignación. lectura. Conjunto instrucciones = resultados. variables y constantes. escritura. //Pseudocódigo en PSeInt Proceso sin_titulo edad

Transcript of CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Page 1: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

CAPITULO #3:“ESTUDIO DE ALGORITMOS”

Page 2: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Review Capitulo Nro. 2: “Fundamentos de Programación”

Partes constitutivas de un programa:• Entrada (Leer), algoritmo de resolución

(instrucciones, expresiones o sentencias) y salida (Escribir).

Instrucciones:• Inicio/fin, Lectura, Asignación, Escritura.• Tipos de datos, variables y constantes,

operadores (aritméticos, relación y lógicos), expresiones, otras funciones.

Page 3: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programa

asignación

lectura

escritura

fin

inicio

Conjunto instrucciones = resultados

VARIABLES Y CONSTANTES

Dim edad, anoNac, anoAct As IntegeranoNac = Console.ReadLine()

Const anoAct As Integer = 2009Const PI As Double = 3.1416

//Pseudocódigo en PSeIntProceso sin_titulo

edad <-0;anoNac <-0;anoAct <-0;Leer anoNac ;

FinProceso

Page 4: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programa

asignación

lectura

escritura

fin

inicio

Conjunto instrucciones = resultados

OPERADORES

Aritméticos^, *, /, div, \, mod, +, -, &

Relacionales=, <>, <, >, <=, >=

Lógicosno (not), y (and), o (or)

Page 5: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programa

asignación

lectura

escritura

fin

inicio

Conjunto instrucciones = resultados

EXPRESIONES O TRAS FUNC.Expresiones

(5 > 10) o (‘A’ < ‘B’)(10 > 5) y (5 < 10+Num)

Otras funcionesabs(x), arctan(x), sqr(x)

Page 6: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Secuenciales Repetitivas Selección

Page 7: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras SECUENCIALESSon aquellas en las que una acción (instrucción) sigue a otra en secuencia.

comienzo

asignación

escritura

fin

Inicio del programaCabecera del

programa. Sección de declaración

Entrada de datos

Cuerpo del programaProceso de datos

Salida de datos

Fin del programa Finalización

lectura

Page 8: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓNCuando existen multiples alternativas, se utilizan para tomar decisiones lógicas.

comienzo

asignación

escritura

fin

Inicio del programaCabecera del

programa. Sección de declaración

Entrada de datos

Cuerpo del programa

Condición

Proceso de datos

Salida de datos

Fin del programa Finalización

condiciónSINO

lectura

Page 9: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASEstructuras que repiten una secuencia de instrucciones (iteraciones) un número determinado de veces (bucle)

• Mientras, hacer-mientras, repetir-hasta que, desde o para.

condición

acciones

SI

NO

condición

acciones

SI

NO

condición

acciones

SI

NO

i = 1

i <= 50

proceso

i = i +1

NO

SI

MIENTRAS, WHILE HACER – MIENTRAS, DO - WHILE

REPETIR HASTA QUE, REPEAT DESDE PARA, FOR

Page 10: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control SECUENCIALES

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Secuenciales

Page 11: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras SECUENCIALES

//Pseudocódigo en PSeInt

Proceso SumarDosNumeros intNum1 <- 0; intNum2 <- 0; intSumatoria <- 0; Escribir "Deme dos numeros"; Leer intNum1, intNum2; intSumatoria <- intNum1 + intNum2; Escribir "La suma es = ", intSumatoria;FinProceso

Son aquellas donde una acción (instrucción) siguen a otra en secuencia.

• Donde la salida de una, es la entrada de otra y de la siguiente y asi sucesivamente.

comienzo

asignación

escritura

fin

lectura

Page 12: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras SECUENCIALES

'Codificado en Visual BasicModule SumarDosNumeros Public Sub Main() Dim intNum1, intNum2, intSumatoria As Integer Console.WriteLine("Deme dos numeros") intNum1 = Console.ReadLine() intNum2 = Console.ReadLine() intSumatoria = intNum1 + intNum2 Console.WriteLine("La suma es = " & intSumatoria) Console.ReadLine() End SubEnd Module

Son aquellas donde una acción (instrucción) siguen a otra en secuencia.

• Donde la salida de una, es la entrada de otra y de la siguiente y asi sucesivamente.

comienzo

asignación

escritura

fin

lectura

Page 13: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Secuenciales Repetitivas Selección

Page 14: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control SELECTIVOS

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Selección

Page 15: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

condición

Sentencia(s)

SI

NO

Estructuras de SELECCIÓN

Pseudocódigo en español

Si {expresion_logica} Entoces {acciones_por_verdadero}FinSi

Pseudocódigo en ingles

If {expresion_logica} Then {acciones_por_verdadero}End If

Estructura de decisión simple.

Page 16: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

condición

Sentencia(s)POR EL SI

SI

Estructuras de SELECCIÓN

Estructura de decisión doble.

Sentencia(s)POR EL NO

NO

Pseudocódigo en español

Si {expresion_logica} Entoces {acciones_por_verdadero}Sino {acciones_por_falsoFinSi

Pseudocódigo en Ingles

If {expresion_logica} Then {acciones_por_verdadero}Else {acciones_por_falso}End If

Page 17: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

condición

lecturaCONDICIONES

x Mod y

(5 > 10) o (‘A’ < ‘B’)

(10 > 5) y (5 < 10)

cos (a) >= 0

no (40 > 2)

Page 18: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

x Mod y

lecturaCONDICIONES

x Mod y(5 > 10) o (‘A’ < ‘B’)

(10 > 5) y (5 < 10)

cos (a) >= 0

no (40 > 2)

Page 19: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

(5 > 10) o (‘A’ < ‘B’)

lecturaCONDICIONES

x Mod y

(5 > 10) o (‘A’ < ‘B’)(10 > 5) y (5 < 10)

cos (a) >= 0

no (40 > 2)

Page 20: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

(10 > 5) y (5 < 10)

lecturaCONDICIONES

x Mod y

(5 > 10) o (‘A’ < ‘B’)

(10 > 5) y (5 < 10)cos (a) >= 0

no (40 > 2)

Page 21: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

cos (a) > 0

lecturaCONDICIONES

x Mod y

(5 > 10) o (‘A’ < ‘B’)

(10 > 5) y (5 < 10)

cos (a) >= 0no (40 > 2)

Page 22: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓN

O de decisión:

• Permiten la decisión entre acciones alternativas, además el de llevar acabo una acción si una condición (lógica) tiene un valor (verdadero, true, V, 1) o (falsa, false, F, 0).

• operadores lógicos <, >, <>, =, >=, <=,

SINO

comienzo

asignación

escritura

fin

no (40 > 2)

lecturaCONDICIONES

x Mod y

(5 > 10) o (‘A’ < ‘B’)

(10 > 5) y (5 < 10)

cos (a) >= 90

no (40 > 2)

Page 23: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓNEstructura de decisión doble: EJEMPLO modulo

//Pseudocódigo en PSeInt Proceso Modulo_MOD x<-0; z<-0; Escribir "Ingrese valores para X y Z"; Leer x,z; Si (x Mod z) = 0 Entonces Escribir x, " ES exactamente divisible para ", z; Sino Escribir x, " NO es exactamente divisible para ", z; FinSiFinProceso

Page 24: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de SELECCIÓNEstructura de decisión doble: EJEMPLO modulo

'Codificado en Visual BasicModule Modulo_MOD Public Sub Main() Dim x, z As Integer x = 0 z = 0 Console.WriteLine("Ingrese valores para X y Z") x = Console.ReadLine z = Console.ReadLine If (x Mod z) = 0 Then Console.WriteLine(x & " ES exactamente divisible para " & z) Else Console.WriteLine(x & " NO es exactamente divisible para " & z) End If Console.ReadLine() End SubEnd Module

Page 25: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión anidadasSon estructuras en las que si la evaluación de la expresión lógica resulta ser verdadera se ejecuta la sentencia 1. Mientras que si el resultado de su evaluación es falsa se evalúa otra expresión lógica, si el resultado de esta ultima es verdadera, se ejecuta la sentencia 2, si es falso se evalúa otra expresión y así sucesivamente.

condición 1 Sentencia(s) 1V

condición 2

condición n

Sentencia(s) N+1

Sentencia(s) 2

Sentencia(s) N + 1

V

V

Pseudocódigo en ingles

if {expresion_logica} then <acción(es) SI 1>else if {expresion_logica} then <acción(es) SI 2> else if {expresion_logica} then <acción(es) SI n+1> else …. endif . …endif

F

F

F

Page 26: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión anidadas

//Pseudocódigo en PSeInt Proceso Mayor_TresNum

a<-0;b<-0;c<-0;

mayor<-0;Escribir "Ingrese tres numero";Leer a,b,c;Si a>b Entonces Si a>c Entonces

mayor<-a; Sino Si c>b Entonces mayor<-c; FinSi FinSiFinSiEscribir "El mayor es A = “,mayor;

FinProceso

Estructura de decisión anidadas: EJEMPLO Mayor_TresNum

Page 27: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión anidadas'Codificado en Visual BasicModule Mayor_TresNum Public Sub Main() Dim a, b, c, mayor As Integer a = 0 b = 0 c = 0 mayor = 0 Console.WriteLine("Ingrese tres numero") a = Console.ReadLine() b = Console.ReadLine() c = Console.ReadLine() If a > b Then If a > c Then mayor = a Else If c > b Then mayor = c End If End If End If Console.WriteLine("El mayor es = " & mayor) Console.ReadLine() End SubEnd Module

Estructura de decisión anidadas: EJEMPLO Mayor_TresNum

Page 28: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión múltipleA veces es necesario que existan mas de dos elecciones posibles. La estructura de decisión múltiple evalúa una expresión que podrá tomar n valores distintos. Según se elija uno de estos valores en la condición, se realizara una de las n acciones.

condición

Sentencia(s)S1

1

Sentencia(s)S2

Sentencia(s)Sn…

2 n

Pseudocódigo en español

Según_sea {variable_numerica} hacer {opcion_1}: {secuencia_de_acciones_1} {opcion_2}: {secuencia_de_acciones_2} {opcion_3}: {secuencia_de_acciones_3} De Otro Modo: {secuencia_de_acciones_dom}FinSegun

Page 29: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión múltipleA veces es necesario que existan mas de dos elecciones posibles. La estructura de decisión múltiple evalúa una expresión que podrá tomar n valores distintos. Según se elija uno de estos valores en la condición, se realizara una de las n acciones.

condición

Sentencia(s)S1

1

Sentencia(s)S2

Sentencia(s)Sn…

2 n

Pseudocódigo en Ingles

Select [ Case ] testexpression Case expresión constante: <acción(es)> Case expresión constante: <acción(es)> Case expresión constante: <acción(es)> [Case Else] [<acción(es)>] ]End Select

Page 30: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión múltiple

//Pseudocódigo en PSeInt Proceso Segun_ParesImpares Escribir "deme un número del 1 al 10"; Leer num; Segun num hacer 2, 4, 6, 8, 10: Escribir "El número es PAR"; 1, 3, 5, 7, 9: Escribir "El número es IMPAR"; De Otro Modo: Escribir "Número fuera de rango de entre el 1 al 10"; FinSegunFinProceso

Ejemplo de estructuras de decisión múltiple: Presentar si un número entre el 1 y el 10 ingresado por el teclado es par o impar

• ANÁLISIS:• 2, 4, 6, 8, 10 SON PARES• 1, 3, 5, 7, 9 SON IMPARES

• DISEÑO: Como se muestra a continuación

Page 31: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras de decisión múltiple

'Codificado en Visual BasicModule Segun_ParesImpares Public Sub Main() Dim num As Integer Console.WriteLine("deme un número del 1 al 10") num = Console.ReadLine Select Case num Case 2, 4, 6, 8, 10 : Console.WriteLine("El número es PAR") Case 1, 3, 5, 7, 9 : Console.WriteLine("El número es IMPAR") Case Else Console.WriteLine("Fuera de rango de 1 al 10") End Select Console.ReadLine() End SubEnd Module

Ejemplo de estructuras de decisión múltiple: Presentar si un número entre el 1 y el 10 ingresado por el teclado es par o impar

Page 32: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control SELECTIVOS

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Selección

SimplesIf – Then – End If

DoblesIf – Then- Else – End If

MúltiplesSelect – Case – Case Else – End Select

Anidados

Page 33: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Secuenciales Repetitivas Selección

Page 34: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control REPETITIVOS

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Repetitivas

Page 35: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASEstructuras que repiten una secuencia de instrucciones (iteraciones) un número determinado de veces (bucle)

• Mientras, hacer-mientras, repetir-hasta que, desde o para.

condición

acciones

SI

NO

condición

acciones

SI

NO

condición

acciones

SI

NO

i = 1

i <= 50

proceso

i = i +1

NO

SI

MIENTRAS, WHILE HACER – MIENTRAS, DO - WHILE

REPETIR HASTA QUE, REPEAT DESDE PARA, FOR

Page 36: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASMientras, While:

• Donde el cuerpo del bucle se repite mientras se cumple la CONDICIÓN.• Aquí lo primero que se ejecuta es la CONDICIÓN.• Para que se ejecute el bucle la evaluación de la condición debe ser TRUE.

SI

MIENTRAS - WHILE

comienzo

fin

lectura

condición

acciones

NO

Pseudocódigo en español

Mientras {expresion_logica} Hacer {secuencia_de_acciones}FinMientras

Pseudocódigo en inglés

While condition [ statements ] [ Exit While ] [ statements ] End While

Page 37: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASMientras, WhileEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

• ANÁLISIS:• SumaPares = 2 + 4 + 6 + 8 + 10 +12 + 14 + 16 + 18 + 20 = 110

• DISEÑO: Como se muestra a continuación

//Pseudocódigo en PSeInt Proceso Mientras_SumaPares intSumaPares <- 0; intContador <- 0; intPar <- 0; Mientras (intContador < 10) Hacer intPar <- intPar + 2; intContador <- intContador + 1; Escribir intContador, " Par = [",intPar, "]"; intSumaPares <- intSumaPares + intPar; FinMientras Escribir "Suma 10 primeros pares es ", intSumaPares;FinProceso

Page 38: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASMientras, While EJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

'Codificado en Visual BasicModule Segun_ParesImpares Public Sub Main() Console.WriteLine("ESTRUCTURA REPETITIVA WHILE") Dim intSumaPares, intContador, intPar As Integer intSumaPares = 0 intContador = 0 intPar = 0 While (intContador < 10) intPar = intPar + 2 intContador = intContador + 1 Console.WriteLine(intContador & " Par = [" & intPar & "]") intSumaPares = intSumaPares + intPar End While Console.WriteLine("Suma 10 primeros pares es " & _ intSumaPares) Console.ReadLine() End SubEnd Module

Page 39: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASEstructuras que repiten una secuencia de instrucciones (iteraciones) un número determinado de veces (bucle)

• Mientras, hacer-mientras, repetir-hasta que, desde o para.

condición

acciones

SI

NO

condición

acciones

SI

NO

condición

acciones

SI

NO

i = 1

i <= 50

proceso

i = i +1

NO

SI

MIENTRAS, WHILE HACER – MIENTRAS, DO - WHILE

REPETIR HASTA QUE, REPEAT DESDE PARA, FOR

Page 40: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASHacer-Mientras, Do Loop-While:

• Donde el cuerpo del bucle se repite al menos una vez.• Aquí la CONDICIÓN se evalua al final del bucle.• Para que se ejecute el bucle la evaluación de la condición debe ser TRUE.

SI

comienzo

fin

lectura

condición

acciones

NO

Pseudocódigo en inglés

Do [ statements ] [ Exit Do ] [ statements ] Loop { While } conditionHACER – MIENTRAS

DO - WHILE

Pseudocódigo en español

Hacer <acción S1> … <acción Sn>Mientras <condición>

Page 41: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASHacer-Mientras, Do Loop-WhileEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

• ANÁLISIS:• SumaPares = 2 + 4 + 6 + 8 + 10 +12 + 14 + 16 + 18 + 20 = 110

• DISEÑO: Como se muestra a continuación

‘Codificado en Visual BasicModule HacerMientras_SumaPares Public Sub Main() Console.WriteLine("ESTRUCTURA REPETITIVA “ & _ “HACER-MIENTRAS") Dim intPar, intContador, intSumaPares As Integer intPar = 0 intContador = 0 intSumaPares = 0 Do intPar = intPar + 2 intContador = intContador + 1 Console.WriteLine(intContador & " Par = [" & intPar & "]") intSumaPares = intSumaPares + intPar Loop While (intContador < 10) Console.WriteLine("Suma 10 primeros pares es " & intSumaPares) End SubEnd Module

Page 42: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASEstructuras que repiten una secuencia de instrucciones (iteraciones) un número determinado de veces (bucle)

• Mientras, hacer-mientras, repetir-hasta que, desde o para.

condición

acciones

SI

NO

condición

acciones

SI

NO

condición

acciones

SI

NO

i = 1

i <= 50

proceso

i = i +1

NO

SI

MIENTRAS, WHILE HACER – MIENTRAS, DO - WHILE

REPETIR HASTA QUE, REPEAT DESDE PARA, FOR

Page 43: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASRepetir Hasta-Que, Do Loop-Until:

• Donde el cuerpo del bucle se repite al menos una vez.• Aquí la CONDICIÓN se evalua al final del bucle.• Para que se ejecute el bucle la evaluación de la condición debe ser FALSE.

SI

comienzo

fin

lectura

condición

acciones

NO Pseudocódigo en inglés

Do [ statements ] [ Exit Do ] [ statements ] Loop { Until } condition

Pseudocódigo en español

Repetir {secuencia_de_acciones} Hasta Que {expresion_logica}

REPETIR HASTA QUEREPEAT

Page 44: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASRepetir Hasta-Que, Do Loop-UntilEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

• ANÁLISIS:• SumaPares = 2 + 4 + 6 + 8 + 10 +12 + 14 + 16 + 18 + 20 = 110

• DISEÑO: Como se muestra a continuación

//Pseudocódigo en PSeInt Proceso Repetir_SumaPares intSumaPares <- 0; intContador <- 0; intPar <- 0; Repetir intPar <- intPar + 2; intContador <- intContador + 1; Escribir intContador, " Par = [",intPar, "]"; intSumaPares <- intSumaPares + intPar; Hasta Que (intContador >= 10) Escribir "Suma 10 primeros pares es ", intSumaPares;FinProceso

Page 45: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASRepetir Hasta-Que, Do Loop-UntilEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

'Codificado en Visual BasicModule Repetir_SumaPares Public Sub Main() Console.WriteLine("ESTRUCTURA REPETITIVA " & _ "REPETIR HASTA-QUE") Dim intSumaPares, intContador, intPar As Integer intSumaPares = 0 intContador = 0 intPar = 0 Do intPar = intPar + 2 intContador = intContador + 1 Console.WriteLine(intContador & " Par = [" & intPar & "]") intSumaPares = intSumaPares + intPar Loop Until (intContador >= 10) Console.WriteLine("Suma 10 primeros pares es " & intSumaPares) Console.ReadLine() End SubEnd Module

Page 46: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASEstructuras que repiten una secuencia de instrucciones (iteraciones) un número determinado de veces (bucle)

• Mientras, hacer-mientras, repetir-hasta que, desde o para.

condición

acciones

SI

NO

condición

acciones

SI

NO

condición

acciones

SI

NO

i = 1

i <= 50

proceso

i = i +1

NO

SI

MIENTRAS, WHILE HACER – MIENTRAS, DO - WHILE

REPETIR HASTA QUE, REPEAT DESDE PARA, FOR

Page 47: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASDesde-Para, For-To-Next:

• Cuando se conoce de antemano el número de veces que se ejecutaran las acciones en un bucle.• Cuando el número de iteraciones sea FIJO o CONSTANTE.• Este es un bucle AUTOMATIZA el ingremento del contador y la evaluación de la condición.

comienzo

fin

lectura

Pseudocódigo en inglés

For counter [ As datatype ] = start To end [ Step step ] [ statements ] [ Exit For ] [ statements ] Next [ counter ]

Pseudocódigo en español

Para {variable_numerica}<-{valor_inicial} Hasta {valor_final} Con Paso {paso} Hacer {secuencia_de_acciones}FinPara

DESDE PARAFOR

i = 1

i <= 50

proceso

i = i +1

F

V

Page 48: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASDesde-Para, For-To-Next:

• Cuando se conoce de antemano el número de veces que se ejecutaran las acciones en un bucle.• Cuando el número de iteraciones sea FIJO o CONSTANTE.• Este es un bucle AUTOMATIZA el ingremento del contador y la evaluación de la condición.

DESDE contador = 0 HASTA limite [incremento decremento] HACER

FIN_DESDE

<acciones>

For counter [ As datatype ] = 0 To end [ Step step ]

[ statements ] [ Exit For ] [ statements ]

Next [ counter ]

Page 49: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASDesde-Para, For-To-NextEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

• ANÁLISIS:• SumaPares = 2 + 4 + 6 + 8 + 10 +12 + 14 + 16 + 18 + 20 = 110

• DISEÑO: Como se muestra a continuación

//Pseudocódigo en PSeInt Proceso Para_SumaPares intSumaPares <- 0; intContador <- 0; intPar <- 0; Para intContador<-1 Hasta 10 Con Paso 1 Hacer

intPar <- intPar + 2; intSumaPares <- intSumaPares + intPar;Escribir intContador, " Par = [",intPar, "]";

FinPara Escribir "Suma 10 primeros pares es ", intSumaPares;FinProceso

Page 50: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASDesde-Para, For-To-NextEJEMPLO: Presentar por pantalla la sumatoria de los 10 primeros números pares.

'Codificado en Visual BasicModule Para_SumaPares Public Sub Main() Console.WriteLine("ESTRUCTURA REPETITIVA FOR") Dim intSumaPares, intPar As Integer intSumaPares = 0 intPar = 0 For intContador As Integer = 1 To 10 intPar = intPar + 2 Console.WriteLine(intContador & " Par = [" & intPar & "]") intSumaPares = intSumaPares + intPar Next Console.WriteLine("Suma 10 primeros pares es " & intSumaPares) Console.ReadLine() End SubEnd Module

Page 51: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASOtros ejemplos:

Presentar la suma de N números

ANÁLISISLeer <número1> y sumarlo en <sumatoria>, leer <número2> y sumarlo en <sumatoria>, leer <númeron>y sumarlo en <sumatoria>….

DISEÑO

Proceso SumarN_Numeros numero <- 0; sumatoria <- 0; contador <- 1; Escribir "deme el limite de num a sumar"; Leer limite; Mientras (limite >= contador) Hacer Escribir "deme num ", contador ; Leer numero; sumatoria <- sumatoria + numero; contador <- contador + 1; FinMientras Escribir "La sumatoria es: " ,sumatoria;FinProceso

Page 52: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Secuenciales Repetitivas Selección

Page 53: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Una sentencia sigue de otra

F. C.SECUENCIALES

Page 54: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Simples • If-Then-End If

Dobles• If-Then-Else-End

If

Multiples

• Select Case-Case-Case Else-End Select

F. C.SELECTIVOS

Page 55: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control

• Controlar el orden en el que se ejecutan las sentencias de un programa.

Mientras

• While-End While

Hacer Mientr

as

• Do-Loop While

Pepetir

Hasta

• Do-Loop Until

PARA • For-To-Next

F. C.REPETITIVOS

Page 56: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Programación EstructuradaFlujos de control REPETITIVOS

• Controlar el orden en el que se ejecutan las sentencias de un programa.

RepetitivasR E T O

Page 57: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASRETO

ANÁLISIS

Los primeros números inicializados deberían ser. CERO 0 y UNO 1El siguiente número es la suma de un par de números anteriores, es decir 1 = 0+1, 2 = 1 + 1

Presento 0 (cero)Fibo = 0 + 1 = 1Fibo = 1 + 0 = 1Fibo = 1 + 1 = 2Fibo = 2 + 1 = 3Fibo = 3 + 2 = 5Fibo = 5 + 3 = 8Fibo = 8 + 5 = 13

Presentar la serie del Fibinacci = 0, 1, 1, 2, 3, 5, 8, 13, 21, …

Page 58: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Estructuras REPETITIVASRETO

FIBO FIBO= + NUMERO

FIBO FIBO= + NUMERO

FIBO FIBO= + NUMERO

Valor inicial = 0

Valor inicial = 1

Presento 0 (cero)

Fibo = 0 + 1 = 1

Fibo = 1 + 0 = 1

Fibo = 1 + 1 = 2

Fibo = 2 + 1 = 3

Fibo = 3 + 2 = 5

Fibo = 5 + 3 = 8

Fibo = 8 + 5 = 13

aux = fibofibo = numeronumero = aux

AUX = FIBO

AUX = FIBO

Page 59: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

CAPITULO #3:“ESTUDIO DE ALGORITMOS”

Resumen

Page 60: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Conceptos Claves:

Bucles infinitos: Aquellos en los que por la condición especificada por el programador, la condición no se termina.

Estructuras repetitivas anidadas: Todos aquellos bucles contenidos dentro de otro bucle.• Cuando se anidan bucles se debe tener cuidado que

el bucle inferior este contenido completamente dentro del bucle exterior.

Page 61: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Conceptos Claves:

Un programa sin ninguna sentencia de bifurcación o iteración (selectiva o repetitiva), se ejecuta secuencialmente (en el orden en el que están escritas las sentencias).

Una sección de código repetitivo se conoce como bucle controlado por una sentencia de repetición que comprueba una condición para determinar si el código se ejecutará.

Cada pasada a través del bucle se conoce como una iteración o repetición controladas por una sentencia o condición.

Page 62: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Tipos básicos de bucles

MIENTRAS WHILE

HACER – MIENTRAS DO - WHILE

REPETIR HASTA QUE REPEAT

DESDE PARA

FOR

Page 63: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Tipos básicos de bucles

Los mientras y para - desde son bucles controlados por la entrada, es decir la condición

se evalúa en el inicio del mismo.

Los hacer mientras y repetir hasta son bucles controlados por la salida en los que la condición

se evalúa al final del mismo. El cuerpo del bucle se ejecuta siempre al menos, una vez.

<hacer mientras> se repite mientras la condición es verdadera <repetir hasta> se

repite mientras la condición es falsa.

Page 64: CAPITULO #3: “ESTUDIO DE ALGORITMOS”

Referencias:Bibliográficas LUÍS, JOYANES AGUILAR. (2003): “Fundamentos de Programación,

Algoritmos, Estructuras de Datos y Objetos.” Mc-Graw Hill. Madrid. Páginas 131 y siguientes (Cap# 4 y Cap#5).

Direcciones electrónicas Instalador del [pseint]: http://pseint.sourceforge.net/ Video, manejo del [pseint]: http://monje.oneble.com/tag/pseint/ “El algoritmo, una iniciación a la programación”

http://www.scribd.com/doc/6686520/Manual-Algoritmo

Otros medios Microsoft Corporation (2008): Microsoft Document Explore Version

8.0.50727.42, actualizado 06 de diciembre de 2007 (citado 25 de Marzo del 2009). Disponible a través de: MSDN Library para Visual Studio 2005 (US).