Upload
phamquynh
View
223
Download
0
Embed Size (px)
Citation preview
1
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
1
Tema 3. Estructuras de control
Contenido del tema:– Expresiones aritméticas– Expresiones booleanas.– Sentencias de selección.– Sentencias de iteración.– Aplicaciones– Estructuras de control en C++
Francisco Rus Mansilla
Dpto. Lenguajes y Ciencias de la Computación
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
2
Expresiones aritméticas y lógicas
• Una expresión es una combinación de elementos que representan valores (operandos) y conectivas (aritméticas y/o lógicas) que representan operaciones (operadores).
• Ejemplos:s<=((d+4.0e-5)*32.1)/SQRT(valor) Y NO fin
(angulo==45) O NO (33.56<POW(cifra, exp))
2
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
3
Elementos léxicos de una expresión
• Operandos:– Constantes literales.– Constantes simbólicas.– Variables.– Llamadas a funciones.
• Operadores:– Aritméticos.– Relacionales.– Lógicos.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
4
Elementos sintácticos de una expresión
• Notación infija para los operadores binariosa * bsuma >= 20.5
• Notación prefija para los operadores unarios- xNO a
• Posibilidad de uso y anidamiento de paréntesis.(dato + 5) * 32((valor + 0.6 * (2.6 – dato)) * 1E6 + 99.9)
3
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
5
Elementos semánticos de una expresión
• Todos los elementos son de un determinado tipo. • Todos los operadores y funciones devuelven un
determinado tipo.
Operadoro
función
tipo argumento 1
tipo argumento 2
...
tipo del resultado
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
6
Tipos de los operadores
+ - *
DIV MOD
N Z
N Z N Z
+ - * /
R
RR
Sobrecarga de operadores
Y O
B
B B
NO B B
< > <= >= != ==
tipo simple
tipo simpleB
4
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
7
Tipos de las funciones predefinidas
ABS
N Z N Z
SQRT R R
POW
Z
Z Z
POW
R
ZR
CHR
N Z C
CAP
C C
ORD ordinal N Z
SUC
PRED
ordinal
ordinalordinal
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
8
Compatibilidad de tipos
• Los operandos binarios deben ser compatiblesentre sí y con los operadores.
• Regla de estilo, que los tipos de los operandos de una expresión DEBEN SER IDÉNTICOS.
• Ejemplo:VAR
N a, b = 3; R c, d = 2.0; B eINICIO
a = (2 * 5) DIV bc = 4E3 * POW(10.5, d) / 25.0e = a > b Y c < da = b / 2.0 // Error semánticoe = a > ‘a’ // Error semántico
5
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
9
Conversiones de tipo
• Permiten mezclar en la misma expresión datos de distinto tipo.
• Tipos de conversión:– Explícita: TipoDestino(expresión)
• Son indicadas por el programador: 2 + Z(3.6 / 2)• Regla de estilo: todas las conversiones de tipo en una
expresión deben ser explícitas.
– Implícitas: especificadas por el lenguaje• Ejemplo: 2 + 3.5 (convierte el segundo operando al tipo del
primero, esto es, natural o entero)• Regla de estilo: deben evitarse las conversiones implícitas.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
10
Evaluación de una expresión• Reglas de precedencia:
– Los paréntesis tienen la mayor precedencia: los más internos preceden a los más externos.
– Si no se utilizan paréntesis, el orden en que se realizan las operaciones es el siguiente:
• 1º Operador unario lógico y aritmético: NO y -• 2º Operadores multiplicativos: *, /, DIV, y MOD• 3º Operadores aditivos (binarios): + y –• 4º Operadores relacionales: <, >, <=, >=, ==, !=• 5º Operador lógico de conjunción: Y• 6º Operador lógico de disyunción: O
– Los operadores con la misma precedencia se evalúan de izquierda a derecha.
• Recomendación: en caso de duda, usar paréntesis
6
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
11
La sentencia de asignación (=)
• Es un operador universal: aplicable a cualquier tipo de datos, simples o compuestos.
variable = expresión
lvalue r-value
Memoria valor
• A la izquierda de la expresión debe haber una variable (contenedor).
• Los tipos de la variable y la expresión deben ser idénticos.• Dos posibles acciones: (1) inicializar una variable después
de declararla y (2) modificar el valor (estado) que ya tenga.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
12
Precisiones sobre la asignación• Modo de ejecución:
1) Se calcula el resultado correspondiente a la expresión que aparece a la derecha.
2) Se almacena el valor calculado en la variable cuyo nombre aparece a la izquierda.
• El tipo de la expresión de la derecha (r-value) debe ser idéntico al de la variable (l-value)..
• Pueden hacerse conversiones explícitas de tipos entre tipos compatibles antes de realizar la asignación.Ejemplo: suma = 3.5 + R(num), si suma es real y num natural.
A=5A=A+1
7
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
13
Ejemplos de asignación de literales
Suponiendo las siguientes declaraciones de variables... VAR
Z Num1
N Num2R Num3
C Letra1, Letra2
son válidas:Num1 = -10;
Num2 = 32;Num3 = 1.5E2;
Letra1 = ‘1’;
Letra2 = ‘Ñ’;
no son válidas:Num2 = -20;Num3 = 10;Letra1 = 1;Letra2 = ‘ab’;
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
14
Otros ejemplos de asignaciones
a = ORD(‘8’)-ORD(‘0’) // Na = (b*4) DIV (a+b) // Ze = VERDADERO // Be = a > 4 // Bc1 = ‘a’; c2 = CAP(c1) // Cc2 = CHR(126) // Cc = R(a)/R(b) // R
8
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
15
Expresiones en C++• El tipo de la expresión/variable de la derecha debe ser
compatible con el tipo de la variable, aunque se aconseja, como regla de estilo, que sean tipos idénticos.
• Sin embargo, existen conversiones implícitas, desaconsejadas. Por ejemplo,
float x;
int y;
x = y; //El tipo de y se pasa a float
• Usaremos conversiones explícitas. Por ejemplo, x = float(y);
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
16
Ejemplos de asignaciones en C++int main () {
int Num1;
unsigned int Num2, Num4=2;
float Num3;
char Letra1, Letra2;
Num1 = -10;
Num2 = (32+10)/Num4;Num3 = 1.5E2;Letra1 = ‘1’;Letra2 = ‘Ñ’;Num2 = -20; // No es correctaNum3 = 10; // Se aconseja mejor usar 10.0Letra1 = 65; // No es correcta, aunque…Letra2 = ‘ab’; // No es correcta
return 0;}
9
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
17
Estructura secuencial de sentencias
• Se ejecuta una instrucción a continuación de la otra:
• No permite resolver problemas que exijan una toma de decisión: control de selección.
• No permite la ejecución de un conjunto de acciones un número determinado de veces: control de iteración.
INICIO FIN Instrucción 1 Instrucción 2 Instrucción n
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
18
Expresiones lógicas
• También se denominan condicionales o booleanas.
• Permite “hacer preguntas” sobre el estado del programa para tomar decisiones sobre el flujo.
• Al ser evaluadas devuelven un valor lógico: VERDADERO o FALSO.
• Tipos:– Variable lógica: Ej.: B encontrada = FALSO– Con operadores relacionales y/o lógicos:
Ej.: a>3 Y NO(b+5!=9) O encontrada• Los operandos de las expresiones lógicas pueden ser, a su vez,
expresiones lógicas.
10
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
19
Ejemplos de expresiones lógicasNO((letra==‘Q’)O(letra==‘z’))Y(x>=6)
(largo==ancho)Y NO(x<5)x Y (altura<=5)
((n+m)!=10) O (x<5)
• Deben respetarse las reglas de precedencia (ver capítulo anterior).
• Los paréntesis tienen la mayor precedencia.
VARB resul, x=FALSO, y=FALSO
INICIOresul = NO x Y y // ¿Cuánto vale resul?
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
20
Evaluación por cortocircuito
• El resultado de la evaluación del primer operando condiciona la evaluación de los siguientes.
• Puede evitar errores en la evaluación de operandos.• Si el primer operando de la conjunción (Y) es FALSO, la
expresión es FALSA.• Si el primer operando de la disyunción (O) es
VERDADERO, la expresión es VERDADERA.
VARN a=0, b=2, c=3, d=0; B resul
INICIOresul = (a>0) Y (c DIV a == 3)resul = (d==0) O (d DIV b == 2)
11
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
21
Equivalencia de expresiones lógicas
• Se aplican las leyes de MorganVAR
Z a,b,c,dB res, x
INICIO// Suponemos inicializadas a, b, c, dres = NO(a==b) // a!=bres = NO((a==b)O(a==c)) // (a!=b)Y(a!=c)res = NO((a==b)Y(c>d)) // (a!=b)O(c<=d)res = x == FALSO // NO xres = x == VERDADERO // xres = (a<b) Y (b<a) // FALSO
res = (a<=b) O (b<=a) // VERDADERO
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
22
Estructuras selectivas
• Permiten controlar la selección de flujos alternativos en un algoritmo.
• Permiten ejecutar un bloque de acciones dependiendo de la evaluación de una condición (o guarda) que es una expresión lógica.
• Tipos de sentencias selectivas:– Sentencias de selección simple– Sentencias de selección binaria– Sentencias de selección múltiple
12
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
23
Sentencia de selección simple• Sintaxis:SI CondControl ENTONCES
// accionesdentroFINSI//accionseguida
• Ejemplo: probar si un valor es positivo o negativo:
SI dato>0 ENTONCESEscribir( “Dato positivo”)
FINSIEscribir(dato)
Acciones VERDADERO
CondControl FALSO
Diagrama de flujo
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
24
Sentencia de selección binariaSI CondControl ENTONCES// Acciones SI
SINO// Acciones EOC
FINSIaccionseguida
Diagrama de flujo
VERDADEROCondControl
FALSO
Acciones SI Acciones EOC
13
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
25
Ejemplo sentencia selección binaria
• Probar si un valor es positivo o negativo
SI dato>0 ENTONCESEscribir(“Positivo”)
SINOEscribir(“Negativo o cero”)
FINSIEscribir(dato)
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
26
Ejercicios propuestos
• Algoritmo que lea tres números diferentes e imprima en pantalla los valores máximo y mínimo.
• Algoritmo que lea de teclado los coeficientes de una ecuación de segundo grado e imprima las raíces de dicha ecuación, en caso de que las tenga.
• Algoritmo que lea un número de paquete seguido de un peso en kilos, y que escriba a la salida el número de paquete, seguido de “CLASE1” si el peso del paquete es menor de 32 kilos, “CLASE2” si va de 32 a 128 kilos y “CLASE3” para más de 128 kilos.
14
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
27
Sentencia de selección múltiple
CASO expresión SEAvalores1: sentencias1valores2: sentencias2
... ...
valoresn: sentenciasnSINO
accionesEOCFINCASOaccionseguida
Selector (ordinal) ¿Cómo funciona la sentencia CASO?
1. Evaluación del selector.2. Comparación del
selector con los valoresi.
3. Ejecución de las sentenciasicorrespondientes.
4. Fin de la sentencia. Ejecución de la accionseguida.Errores posibles:
• El valor del selector aparece en más de una lista de valoresi• El selector no es de tipo ordinal.
Separados por comas, o rangos (..).
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
28
Ejemplo de selección múltiple
CASO Mes SEA1,2,4..6,8,9: /*no ejecutamos
nada con estos valores*/
3: Escribir(“Cumpleaños de Ana”)7: Escribir(“Aniversario de Carolina”)11: Escribir(“Mi cumpleaños”)
Escribir(“Habrá que celebrarlo”)10: Escribir(“Cumpleaños de Juan”)12: Escribir(“Boda de Pepito”)
SINO /* Resto de los valores. No poner el SINO equivale a ponerlo vacío */
Escribir (“Mes erróneo”)FINCASO
15
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
29
Anidamientos de estructuras selectivasSI CondCtrl1 ENTONCES // 1
acciones1SINO
SI CondCtrl2 ENTONCES // 2acciones2
SINOSI CondCtrl3 ENTONCES // 3
acciones3SINO
acciones4FINSI // 3
FINSI // 2FINSI // 1
SI CondCtrl1 ENTONCESacciones1
SINOSI CondCtrl2 ENTONCESacciones2
SINOSI CondCtrl3 ENTONCESacciones3
SINOacciones4
FINSI
Equivalentes
¡Importante la indentación!
Comentarios como etiquetas aumentan la legibilidad.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
30
Ejemplo: mayor de tres valoresALGORITMO MayorVAR
Z may, a, b, cINICIO
Escribir(“Introduzca tres numeros”) Leer(a,b,c)SI a>b ENTONCES /*1*/
SI a>c ENTONCES /*2*/may = a
SINOmay = c
FINSI /*2*/
SINOSI b>c ENTONCES /*3*/
may = bSINO
may = cFINSI /*3*/
FINSI /*1*/Escribir(“Mayor: “, may)FIN MayorSigue..
16
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
31
Debe primarse la claridad del códigoCASO Operador SEA
‘+’ : Resultado = a+b‘-’ : Resultado = a-b
‘*’ : Resultado = a*b
‘/’ : Resultado = a/b
SINOEscribir(“Indefinido”)
FINCASO
SI Operador == ‘+’ ENTONCES // 1Resultado = a+b
SINOSI Operador == ‘-’ ENTONCES // 2
Resultado = a-b
SINOSI Operador == ‘*’ ENTONCES // 3
Resultado = a*b
SINOSI Operador == ‘/’ ENTONCES // 4Resultado = a/b
SINOEscribir(“Indefinido”)
FINSI // 4FINSI // 3
FINSI // 2FINSI // 1
Es más legible que...
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
32
Selección simple y binaria en C++
if (CondControl){accionesSI
}accionseguida
if (CondControl){accionesSI
}else{
accionesEOC}accionseguida
Selección simple
Selección binaria
¡Si la acción es única, puede prescindirse de las llaves!
17
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
33
Una forma de selección múltiple en C++
if (CondControl){accionesSI
}else if (CondControl1){
accionesCC1}else if (CondControl2){
accionesCC2}else{
accioneselse}accionseguida
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
34
Selección múltiple en C++switch (expresion){
case exp-const: sentencias
break;
case exp-const: sentenciasbreak;
case exp-const: sentencias
break;default: sentencias
}
switch (a+b%2){case 1: c = 3; cin >> d;
break;
case 5:case 6:
case 7: cout << “bingo”;
break;default: cout << “vaya”;
}
Sintaxis
Ejemplo:
Tres valores que ejecutan lo mismo.
18
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
35
Estructuras repetitivas
• También llamadas bucles o iteraciones.
• Permiten alterar el flujo del programa para repetir grupos de acciones.
• Ejecutan un conjunto de operaciones:a) Un número de veces determinado a priori.b) Un número de veces indeterminado a priori.
• Una condición de control (expresión lógica) permite controlar el número de repeticiones.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
36
El bucle MIENTRAS
• Las acciones dentro del bucle se repiten un número de veces indeterminado a priori.
MIENTRAS CondControl HACER// Acciones
FINMIENTRAS
AccionesVERDADERO
CondControl
FALSO
19
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
37
Características del bucle MIENTRAS
• Condición de control del bucle → expresión lógica.
• Las sentencias que forman el cuerpo del bucle se ejecutan 0 o más veces.
• Denominado también bucle pre-prueba (se evalúa la condición antes de ejecutar sus sentencias).
• Si la condición es VERDADERO el bucle se sigue ejecutando.
• Algunos ejemplos de bucles con nombre:– Bucle controlado por contador– Bucle controlado por centinela– Bucle contador
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
38
Bucle controlado por contador• Se ejecuta un número determinado de veces.• Se utiliza una variable de control del bucle (vcb).• Componentes del bucle:
– Inicialización– Evaluación– Incremento
i=1 /*Inicialización*/MIENTRAS i<=10 HACER /*Evaluación*/accionesi=i+1 /*Incremento*/
FINMIENTRAS
• Ejercicio propuesto: ¿cuántas veces se ejecuta el bucle anterior?
Condición de controlVCB
20
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
39
Bucle controlado por centinela
• Centinela → valor especial de una variable que controla el final del bucle.
• Es necesario actualizar el centinela en cada iteración.• La primera evaluación de la condición exige una lectura
adelantada de la variable de control del bucle.
Leer(centinela) /*lectura adelantada*/MIENTRAS centinela!=0 HACER
accionesLeer(centinela) /*actualización*/
FINMIENTRAS
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
40
Bucle contador
• Útil cuando se quiere contar el número de veces que se ejecuta el bucle.
• La expresión lógica no depende del contador.
cont=0Leer(ch)MIENTRAS ch!= ‘.’ HACER
Escribir(ch)cont=cont+1Leer(ch)
FINMIENTRAS
21
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
41
El bucle REPETIR
REPETIR// Acciones
HASTA QUE CondControl Acciones
VERDADERO
CondControl FALSO
• Las acciones dentro del bucle se repiten un número de veces indeterminado a priori.
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
42
Características del bucle REPETIR
• Condición de control del bucle → expresión lógica.
• Las sentencias que forman el cuerpo del bucle se ejecutan 1 o más veces.
• Denominado también bucle post-prueba (se evalúa la condición después de ejecutar sus sentencias).
• Si la condición es FALSO el bucle se sigue ejecutando.
• Menos general que el bucle MIENTRAS → hay ciertos bucles que no pueden implementarse con REPETIR.
22
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
43
El bucle PARA
• Se emplea cuando el número de veces que se repite el bucle se conoce a priori.PARA vcb=vi HASTA vf (PASO p)HACER
// Acciones
FINPARA
Suma=0PARA i = 1 HASTA 10 HACER
Leer(valor)Escribir(valor)Suma=Suma+valor
FINPARA
Ejemplo:
Variable de control del bucle
Valor finalValor inicial
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
44
Cómo se ejecuta un bulce PARA
La variable de control del bucle (VCB) se incrementa (o decrementa, según el paso sea positivo o negativo) automáticamente.El valor de la VCB puede usarse, pero no cambiarse dentro del bucle.La VCB queda indefinida al salir del bucle.La VCB puede ser de cualquier tipo ordinal.El bucle se ejecuta en su totalidad. Los valores de inicial (vi) y final (vf) se evalúan una sola vez, al principio del bucle.
23
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
45
Bucle MIENTRAS equivalente a PARA
vcb=viMIENTRAS (vcb<=vf) HACER
/*si paso negativo, MIENTRAS (vcb>=vf)*/accionesvcb=vcb + paso
FINMIENTRAS
Ejercicio propuesto: ¿puede construirse un bucle REPETIR equivalente a cualquier bucle PARA?
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
46
Ejemplo: factorial de un número natural
ALGORITMO CalcularFactorialVAR
N factorial, n, indiceINICIO
factorial = 1Escribir(“Introduzca número”)Leer(n)PARA indice = 2 HASTA n HACER
factorial = factorial * indiceFINPARAEscribir(“Resultado: “, factorial)
FIN CalcularFactorial
24
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
47
Ejemplo: suma de números naturales
/* Este algorimo suma los n primeros números naturales, sin contar el cero */ALGORITMO SumarNaturalesVAR
N num, suma, contadorINICIO
Escribir(“Introduzca el número n:”)Leer(num)suma = 0PARA contador = 1 HASTA num HACER
suma = suma + contadorFINPARAEscribir(“La suma es: “, suma)
FIN SumarNaturales
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
48
Anidamientos de estructuras repetitivas
• Al igual que en las estructuras selectivas, no hay restricciones en las sentencias del cuerpo del bucle.
• La estructura interna debe de estar incluida en la externa totalmente:
Bucle más externo
Bucle anidado
Bucle anidado
25
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
49
Bucles PARA anidados
• La VCB toma valores de modo tal que por cada valor de la variable control del bucle del ciclo externo se debe ejecutar totalmente el bucle interno.
• Muy útiles en el recorrido de estructuras dé más de una dimensión (véanse los arrays).
PARA vcb1 = vi1 HASTA vf1 (PASO s1) HACERPARA vcb2 = vi2 HASTA vf2 (PASO s2) HACER
// AccionesFINPARA
FINPARA
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
50
Ejemplo: triángulo de números naturales• Escribir un algoritmo que escriba un triángulo de números.• La altura se introduce como dato y debe ser menor de 10.• Ejemplo: con altura=4 quedaría como sigue:
11 2 1
1 2 3 2 11 2 3 4 3 2 1
• Observaciones:– Un bucle por cada línea de dígitos.– Cada línea se realiza en dos mitades: una incremental, desde uno hasta el
número correspondiente a la fila, y otra decremental hasta uno.• Ejemplo: la línea 3
1 2 3 2 1
26
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
51
Solución del algoritmo del triángulo
ALGORITMO Triangular
CONST
C BLANCO= ‘ ‘
VAR
N altura,blancos,fila
N mitad1,mitad2
INICIO
Leer(altura)
PARA fila=1 HASTA altura HACER
PARA blancos=1 HASTA (altura-fila) HACER
Escribir(BLANCO)
FINPARA
PARA mitad1=1 HASTA fila HACER
Escribir(mitad1)
FINPARA
PARA mitad2=fila-1 HASTA 1 (PASO -1) HACER
Escribir(mitad2)
FINPARA
Escribir(‘\n’)
FINPARA
FIN Triangular
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
52
Estructuras repetitivas en C++
while (expresion) {// acciones
}
for (inicialización; condición; incremento){// acciones
}
do {// acciones
} while (expresion);
¡Ojo!, es MIENTRAS, no HASTA
Equivale a nuestro MIENTRAS
Ej: for (i=0; i<MAX; i++){ // }
27
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
53
Bases de la programación estructurada
"Se demuestra que todo problema que pueda resolverse en un numero finito de pasos puede expresarse usando únicamente 3 tipos de estructuras o bloques fundamentales, con una sola entrada y una sola salida para organizar dichos pasos:
– Una caja proceso o de tratamiento secuencial.– Un mecanismo de decisión binaria.– Un mecanismo de bucle generalizado.“
(Bohm y Jacopini, 1965)
17-oct-05Introducción a los ComputadoresTema 3. Estruc. control
54
Bibliografía
• Programación en C++. Algoritmos, estructuras de datos y objetos. L. Joyanes. McGraw-Hill, 2000
• Cómo programar en C/C++. H.M. Deitel, P.J. Deitel. Prentice Hall, 1995
• Pascal. Dale/Orshalick. Ed. McGraw Hill 1986
• Programación I. José A. Cerrada y Manuel Collado. U.N.E.D. 1993.
• Fundamentos de Programación. Joyanes Aguilar. McGraw Hill. 2ª Edición, 1996.