Publicado el 17 de Febrero del 2019
1.117 visualizaciones desde el 17 de Febrero del 2019
616,2 KB
21 paginas
Creado hace 5a (15/08/2018)
Fundamentos de Programación
CAPÍTULO 8
CONTROL DE FLUJO
(Estructuras iterativas)
2
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
1
Fundamentos de Programación
Preguntas detonadoras
¿Qué es una estructura iterativa? ¿Para qué sirve?
¿Cuántos tipos existen de estructuras iterativas?
¿Cuál es la diferencia entre las diversas estructuras
iterativas?
¿Cuándo se recomienda utilizar una estructura
iterativa de tipo do-while?
¿… cuándo una de tipo while?
¿… cuándo una de tipo for?
¿… cuándo una de tipo foreach?
Incrementos
Son contadores ascendentes
Se representan mediante expresiones de
tipo:
x = x + 1
Donde al valor actual de la variable x se le
suma 1 y el resultado se almacena en la
misma variable x
3
4
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
2
Fundamentos de Programación
Operador de incremento en C#
En C# se usa el operador ++ para representar un
incremento
Una expresión algorítmica de incremento como:
x = x + 1
se puede representar como:
++x;
x++;
// Notación prefijo
// Notación postfijo
5
C#
i = i + 1;
i++;
++i;
i+=1;
y = y + 1;
y++;
++y;
y+=1;
Edad = Edad + 1;
Edad++;
++Edad;
Edad+=1;
6
Ejemplos de incrementos
Incremento
Expresión algorítmica
i = i + 1
y = y + 1
i = i + 1
y = y + 1
Edad = Edad + 1
Edad = Edad + 1
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
3
Fundamentos de Programación
Ejemplo notación prefijo
static void Main(string[] args)
{
int x = 3, y;
y = ++x;
Console.WriteLine("x="+x); // x = 4
Console.WriteLine("y="+y); // y = 4
}
Ejemplo notación postfijo
static void Main(string[] args)
{
int x = 3, y;
y = x++;
Console.WriteLine("x="+x); // x = 4
Console.WriteLine("y="+y); // y = 3
}
7
8
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
4
Fundamentos de Programación
Decrementos
Son contadores descendentes
Se representan mediante expresiones de
tipo:
y = y - 1
Donde al valor actual de la variable y se le
resta 1 y el resultado se almacena en la
misma variable y
9
Operador de decremento en C#
En C# se usa el operador -- para representar un
decremento
Una expresión algorítmica de decremento como:
y = y - 1
se puede representar como:
--y;
y--;
// Notación prefijo
// Notación postfijo
10
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
5
Fundamentos de Programación
Ejemplos de decrementos
Incremento
Expresión algorítmica
i = i - 1
y = y - 1
i = i - 1
y = y - 1
Edad = Edad - 1
Edad = Edad - 1
C#
i = i - 1;
i--;
--i;
i-=1;
y = y - 1;
y--;
--y;
y-=1;
Edad = Edad - 1;
Edad--;
--Edad;
Edad-=1;
11
Operadores de asignación en C#
Operador
Descripción
Equivalencia
Ejemplo
+=
-=
*=
/=
%=
<<=
>>=
&=
|=
Suma
Resta
Multiplicación
División
Residuo
Desplazamiento
izquierda (bits)
Desplazamiento
derecha (bits)
And (bits)
Or (bits)
x=x+2;
y=y-3;
w=w*4;
x+=2;
y-=3;
w*=4;
a=a/7.3;
a/=7.3;
b=b%7;
r=r<<1;
b%=7;
r<<=1;
t=t>>2;
t>>=2;
q=q&3;
f=f|3;
q&=3;
f|=3;
12
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
6
Fundamentos de Programación
Acumuladores
Los
acumuladores
semejantes
contadores, pero con las siguientes diferencias:
son muy
a
los
Un contador solamente puede tener operadores de
suma o resta y el acumulador puede tener cualquier
operador aritmético.
Un contador solamente puede aumentar o disminuir
su valor de uno en uno, mientras que el acumulador
puede modificar su valor de n en n.
Utilizan los operadores de asignación en C#
Ejemplos de acumuladores
Acumulador
Expresión algorítmica
C#
i = i + 2
i = i + 2
y = y – 3
y = y – 3
a = a * 4
a = a * 4
w = w / 2
w = w / 2
i = i + 2;
i+=2;
y = y – 3;
y-=3;
a = a * 4;
a*=4;
w = w / 2;
w/=2;
13
14
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
7
Fundamentos de Programación
Estructuras iterativas
Son bloques de código que se repiten cierta
cantidad de veces
Cada vez que se ejecuta el bloque se conoce
como “iteración”
También se conocen como:
Estructuras cíclicas
Ciclos
Tipos de estructuras iterativas
1.
for
2. while
3. do-while
Tipos de
estructuras
iterativas
4. foreach (solamente en C#)
15
16
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
8
Fundamentos de Programación
Componentes de una estructura
iterativa
Componentes de
una estructura
iterativa
1.
Inicialización
2. Condición
3. Incremento/decremento
(paso)
4. Cuerpo
17
Ciclos
while
do – while
for
foreach
En C# todos los ciclos son de tipo “mientras”; es decir,
iteran mientras la condición es verdadera
18
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
9
Fundamentos de Programación
Ciclo while
i = 1
WHILE
i <= 10
V
i
i = i + 1
F
i=1;
while(i<=10)
{
Console.WriteLine(i);
i++;
}
Ciclo do-while
i = 1
i
i = i + 1
V
WHILE
i <= 10
F
i=1;
do
{
Console.WriteLine(i);
i++;
}
while(i<=10);
19
20
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
10
Fundamentos de Programación
Ciclo for
x = 1
x = x + 1
x <= 10
F
V
x
for(x = 1; x<=10; x++)
{
Console.WriteLine(x);
}
Ejemplo de ciclo for
x = 1
y = 2
x = x + 1
y = y +2
x <= 10
AND
y < = 12
F
V
X
for(x = 1, y = 2; x<=10 && y<=12; x++, y+=2)
{
Console.WriteLine(“x = ” + x);
}
21
22
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
11
Fundamentos de Programación
Ciclo foreach
Este ciclo es especialmente útil cuando se desea
recorrer todos los elementos de una lista, matriz
o colección de datos
foreach(int x in miListaEnteros)
{
Console.WriteLine(“x = “ + x);
}
Las sentencias break y continue
Sentencias que
afectan la ejecución
de ciclos
break;
Provoca la salida
inmediata del ciclo
continue;
Provoca la siguiente
iteración del ciclo
23
24
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
12
Fundamentos de Programación
Ejemplo de uso de break
static void Main(string[] args)
{
for (int i = 0; i<=10; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
}
Salida:
0
1
2
3
4
Ejemplo de uso de continue
static void Main(string[] args)
{
for (int i = 0; i<=10; i++)
{
if (i == 5)
continue;
Console.WriteLine(i);
}
}
Salida:
0
1
2
3
4
6
7
8
9
10
¡¡¡ Nótese que NO imprime el número 5 !!!
25
26
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
13
Fundamentos de Programación
Diferencias de los ciclos
do – while.
Se recomienda cuando se desea ejecutar el
cuerpo al menos 1 vez. Es útil para las validaciones en la
captura de datos.
while.
Se recomienda cuando se desea ejecutar el
cuerpo del ciclo 0 (cero) o más veces.
for. Es recomendable cuando se conoce la cantidad de
iteraciones que ejecutará el ciclo.
27
x
Diferencias de los ciclos (cont.)
F
i = 1
WHILE
i <= 10
V
i
i = i + 1
i = 1
i
i = i + 1
V
WHILE
i <= 10
F
x = 1
x = x + 1
x <= 10
F
V
Cero o más veces
Una o más veces
Se conoce la cantidad de
iteraciones
28
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
14
Fundamentos de Programación
Métodos de la clase Math
Método
Abs(x)
Descripción
Valor absoluto
Ceiling(x)
Redondeo
Cos(x)
Exp(x)
Coseno (x en radianes)
Método exponencial ex
Floor(x)
Redondea al valor inmediato
menor
Log(x)
Logaritmo natural (base e)
Ejemplo
Abs(-23.7) es 23.7
Ceiling(9.2) es 10.0
Cos(0.0) es 1.0
Exp(1.0) es
2.7182818284509451
Floor(9.2) es 9.0
Log(2.7182818284509451) es
1.0
Max(x, y)
Valor mas grande de x e y
Max(2.3, 12.7) es 12.7
Min(x, y)
Valor mas pequeño de x e y
Min(2.3, 12.7) es 2.3
Pow(x, y)
xy
Sin(x)
Sqrt(x)
Tan(x)
Tangente (x en radianes)
Tan(0.0) es 0.0
29
Seno (x en radianes)
Raíz cuadrada
Pow(2.0, 3.0) es 8.0
Sin(0.0) es 0.0
Sqrt(9.0) es 3.0
Ámbito de las variables
El ámbito de una variable define dónde puede usarse
una variable
Una variable local declarada en un bloque de programa,
sólamente puede ser usada en ese bloque
El ámbito de una variable también aplica a los métodos
y a los ciclos
30
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
15
Fundamentos de Programación
Ámbito de las variables
for(int x = 1; x<=10; x++)
{
Console.Write(x);
}
Console.Write(x);
31
Tarea
Investigar las secuencias de escape en
C#
¿Qué son?
¿Para qué sirven?
¿Cómo se usan?
32
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
16
Fundamentos de Programación
Ejercicio de algoritmo contador
Un profesor imparte clase a 10 estudiantes y
desea capturar el nombre y la calificación de
cada uno de ellos. Al finalizar debe imprimir la
cantidad de estudiantes
con calificación
aprobatoria.
NOTAS:
La calificación mínima aprobatoria es 70.
Valide que solamente se capturen calificaciones
entre 0 y 100.
Valide que no se capture el nombre en blanco.
Diagrama de clase
33
34
Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas
17
Fundamentos de Programación
Diagrama de flujo
INICIO
1
2
Declarar miEstudiante como Estudiante
Declarar i como entero
Declarar intEstudiantesAprobados como entero
"Teclee la calificación: "
"Estudiantes aprobados = "+
intEstudiantesAprobados
intEstudiantesAprobados = 0
miEstudiante.Calificacion
for(i=1; i<=10; i++)
2
no
yesyes
miEstudiante = new Estudiante()
yes
"Teclee el nombre del estudiante:"
miEstudiante.Nombre
WHILE
miEstudiante.Nombre == ""
Comentarios de: 04c.- Control de Flujo (Estructuras Iterativas) - Programación Orientada a Objetos en C# .NET (0)
No hay comentarios