Estructuras de Control Contenido del Tema

Documentos relacionados
Tema 4. Estructuras de control

Programación Estructurada

ESTRUCTURAS DE CONTROL

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

TEMA 4: Programación estructurada

TEMA 4. ESTRUCTURAS DE CONTROL

Operadores aritméticos

Conceptos. Generales ALGORITMOS

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Tema 3. Estructuras de control

Estructuras de Control 3

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Sentencias de Procesamiento Iterativo: while y do-while

Programación: Estructuras de Control

TEMA 4: Estructuras de Control

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Tema: Estructuras de Selección en C#.

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Informática Ingeniería en Electrónica y Automática Industrial

LENGUAJE DE PSEUDOCÓDIGO

Estructuras de control

Estructuras de control. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

1. Detalle de los Comandos:

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Fundamentos de programación

Tema 4: Estructuras de Control Estructura y Contenidos

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Algoritmos I Lenguaje de Programación

Unidad 4. Lógica de Programación. Prof. Eliana Guzmán U.

Programación 1 Tema 5. Instrucciones simples y estructuradas

Tema 3. Estructuras de control en C++

Estatutos de Control C# Estatutos de Decisión (Selección)

DISEÑO ESTRUCTURADO. Herramientas de representación de algoritmos

fundamentos de programación (unidad 4) programación estructurada en Java

El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan

Estructuras de Control

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Lección 3 Sentencias de control

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Universidad Autónoma del Estado de México Facultad de Medicina

Conocer los tipos de esquemas condicionales. Entender su funcionamiento y sus diferencias. 1. Introducción. 3. Esquemas condicionales en C

Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Centro Universitario UAEM Zumpango Ingeniería en Computación

INSTITUTO TECNOLÓGICO

PYTHON. Programación estructurada

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Conocimientos previos

Objetivos. Conceptos 1. ESTRUCTURAS DE CONTROL SELECTIVAS. Estructura condicional if-else

Tema 3. Estructuras de Datos

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Programación Estructurada

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

Programación. Test Autoevaluación Tema 4

Programación Estructurada. Sesión 4:Estructuras de control

Capítulo 4. Estructuras Iterativas

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Introducción a la Algorítmica Transparencias correspondientes a las clases impartidas por los profesores: Lourdes Miró Amarante Ignacio García Vargas

ESTRUCTURAS REPETITIVAS

Guía práctica de estudio 05: Pseudocódigo

Lógica de programación

Lenguaje de Diseño. Primera Parte. Segundo Cuatrimestre 2017

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (mientras)

Estructuras de Control JAVA

Centro Universitario UAEM Zumpango! Ingeniería en Computación! Programación estructurada

DEPARTAMENTO TECNOLOGIA EN ELECTRONICA FUNDAMENTOS DE PROGRAMACION CÓDIGO

Estructuras de Repetición

Tema: Estructuras de Selección en C#.

Programación 1 Tema 5. Instrucciones simples y estructuradas

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros

Versión 1.0. Corina Flores Villarroel

RECORDAR TIPOS DE DATOS

Lenguaje de Diseño. Primera Parte. Resolución de Problemas y Algoritmos. Primer Cuatrimestre Ing. En Informática e Ing.

Capítulo 4. Control de flujo. Continuar

Capítulo 3. Sentencias condicionales

Tema: Estructuras de Selección en C#.

Transcripción:

Estructuras de Control Contenido del Tema T E M A 4 4.1. Introducción. 4.2. Expresiones lógicas. 4.3. Estructuras selectivas. 4.3.1. Sentencia de selección simple. 4.3.2. Sentencia de selección binaria. 4.3.3. Sentencia de selección múltiple. 4.3.4. Anidamientos. 4.4. Estructuras repetitivas. 4.4.1. Sentencia repetitiva MIENTRAS. 4.4.2. Sentencia repetitiva REPETIR. 4.4.3. Sentencia repetitiva PARA. 4.4.4. Anidamientos.

Introducción Composición secuencial de sentencias acción1 acción2 acción3 Recurso insuficiente por sí sólo. No permite resolver problemas que exijan una toma de decisión. No permite la ejecución de un conjunto de acciones un número determinado de veces.

Introducción Necesidad de herramientas para alterar el orden lógico de las sentencias Ejecutar unas sentencias u otras Estructura selectiva Ejecutar un número de veces unas acciones Estructura iterativa Capacidad de realizar preguntas sobre objetos del programa Expresiones lógicas

Expresiones Lógicas Condicionales, lógicas, booleanas. Posibles valores una vez evaluadas: VERDADERO FALSO

Expresiones lógicas Construcción: Variable lógica Bool Asignación: Bool=VERDADERO Mediante operadores relacionales:(==,<=,<,>=,>,!=) a>3 Relaciones de comparación combinadas mediante operadores lógicos: Y(conjunción),O(disyunción),NO(negación) (a>3) Y (3+c!=9) Los operandos de los operadores lógicos pueden ser expresiones cuya evaluación sea un resultado lógico (es decir, expresiones lógicas)

Expresiones lógicas Expresiones válidas NO((letra== Q )O(letra== z ))Y(x>=6) (largo==ancho)y NO(x<5) x Y (altura<=5) ((n+m)!=10) O (x<5) Por qué los paréntesis? Orden de precedencia. Cada operador tiene una prioridad. Ejemplo: v= NO x Y y (B v,x,y) x,y son FALSO v==verdadero ó v==falso?

Expresiones lógicas Orden de precedencia + - NO *,/ +,- relacionales igualdad Y, O Si queremos cambiar el orden de ejecución, paréntesis En caso de duda, paréntesis

Expresiones Lógicas Evaluación de expresiones lógicas en CORTOCIRCUITO (ExpLógica) Y (ExpLógica) (ExpLógica) O (ExpLógica) Ejemplo: (100 DIV j<2) Y (j>0) Evaluación??

Expresiones lógicas Equivalencias de algunas expresiones lógicas. Z A,B,C,D NO(A==B) es equivalente a A!=B NO((A==B)O(A==C)) NO((A==B)Y(C>D)) (A!=B)Y(A!=C) (A!=B)O(C<=D) Leyes de De Morgan

Expresiones lógicas Ejemplos: a) Si B valor, cómo se puede poner de otra forma la expresión lógica valor==falso? b) y valor==verdadero? c) B prueba,valor, prueba=valor==falso es correcto? a qué es equivalente?

Expresiones lógicas d) Si Bcierto Z x,y cierto=(x<y)y(y<x) es equivalente a? cierto=(x<=y)o(y<=x)

Estructuras Selectivas Control de selección, alternativas. Ejecutar un bloque de acciones dependiendo de la evaluación de una condición. 3 tipos de sentencias alternativas: Sentencias de selección simple Sentencias de selección binaria Sentencias de selección múltiple

Estructuras Selectivas Sentencia de Selección simple. Sintaxis SI CondControl ENTONCES FINSI accionesdentro accionseguida Ejemplo: probar si un valor es positivo o negativo SI dato>0 ENTONCES Escribir( Incorrecto ) FINSI Escribir(dato)

Estructuras Selectivas Diagrama de Flujo CondControl falso verdad ero Acciones

Estructuras Selectivas Sintaxis Sentencia de selección binaria. SI CondControl ENTONCES accionessi SINO accioneseoc FINSI accionseguida

Estructuras Selectivas Diagrama de Flujo verdad ero CondControl falso AccionesSI AccionesEOC

Estructuras Selectivas Ejemplo: probar si un valor es positivo o negativo SI dato>0 ENTONCES Escribir( Positivo ) SINO Escribir( Negativo o cero ) FINSI Escribir(dato)

Estructuras Selectivas Ejemplo: Algoritmo que lea tres números diferentes e imprima en pantalla los valores máximo y mínimo Ejemplo: Algoritmo que lea de teclado los coeficientes de una ecuación de segundo grado, e imprima las raíces de dicha ecuación. Ejemplo: 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.

Estructuras Selectivas Sentencia de selección múltiple Sintaxis CASO expresión SEA valores 1 : sentencias 1 valores 2 : sentencias 2...... valores n : sentencias n SINO accioneseoc FINCASO accionseguida Selector

Estructuras Selectivas Cómo funciona la sentencia CASO? 1.- Evaluación del selector 2.- Comparación del selector con los valores i 3.- Ejecución de las sentencias correspondientes 4.- Fin de la sentencia. Ejecución de la accionseguida Errores posibles El valor del selector aparece en más de una lista de valores i El selector no es de tipo ordinal

Estructuras Selectivas Ejemplo CASO Mes SEA 1,2,4,5,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 ) FINCASO Mes=1,2,4,5,6,8,9 no ejecuta nada Mes=10, 12 ERROR DE EJECUCIÓN NOTA:es posible incluir un subrango en la lista de valores i 1,2,4..6,8,9

Estructuras Selectivas Anidamientos SI CondControl1 ENTONCES acciones1 SINO SI CondControl2 ENTONCES acciones2 SINO SI CondControl3 ENTONCES acciones3 SINO acciones4 FINSI FINSI FINSI SI CondControl1 ENTONCES acciones1 SINOSI CondControl2 ENTONCES acciones2 SINOSI CondControl3 ENTONCES acciones3 SINO acciones4 FINSI

Estructuras Selectivas Objetivo metodológico: LEGIBILIDAD Realizar un sangrado o indentación Incluir comentarios Ejemplo: SI CondControl ENTONCES /* 1 */ SINO SI CondControl ENTONCES /* 2 */ SINO SI CondControl ENTONCES /* 3 */ SINO FINSI /* 3 */ FINSI /* 2 */ FINSI /* 1 */

Ejemplo: Algoritmo para determinar el mayor de tres valores ALGORITMO MAYOR VAR Z may, a, b, c INICIO Escribir( Introduzca tres numeros ) Leer(a,b,c) SI a>b ENTONCES /*1*/ SI a>c ENTONCES may = a SINO may = c FINSI SINO SI b>c ENTONCES may = b SINO may = c FINSI FINSI /*1*/ Escribir( may ) FIN MAYOR

Estructuras Selectivas Matiz referente a la legibilidad Los siguientes grupos de sentencias ejecutan lo mismo: CASO Operador SEA + : Resultado = a+b - : Resultado = a-b * : Resultado = a*b / : Resultado = a/b SINO Escribir( Operador Indefinido ) FINCASO

Estructuras Selectivas SI Operador == + ENTONCES SINO FINSI Resultado=a+b SI Operador== - ENTONCES SINO FINSI Resultado=a-b SI Operador== * ENTONCES SINO FINSI Resultado= a*b SI Operador== / ENTONCES Resultado=a/b SINO FINSI Escribir( Operador Indefinido ) Insertar los números de las sentencias SI entre comentarios

Estructuras Selectivas (C) if (CondControl) { accionessi } accionseguida if (CondControl) { accionessi } else { } accioneseoc accionseguida

Estructuras Selectivas (C) if (CondControl) { accionessi } else if (CondControl1) { accionescc1 } else if (CondControl2) { accionescc2 } else { accioneselse } accionseguida

Estructuras Selectivas (C) switch (expresion){ } case exp-const: proposiciones break; case exp-const: proposiciones break; case exp-const: proposiciones default break; : proposiciones break;

Estructuras Repetitivas Necesarias en la mayoría de los algoritmos. Estructura repetitiva = bucle = lazo. Iteración Ejecutan un conjunto de operaciones un número determinado o indeterminado a priori de veces. Cuantas veces se ejecutan las instrucciones? Condición de control

Estructuras Repetitivas A) Número de veces indeterminado a priori. Estructura MIENTRAS Sintaxis : MIENTRAS CondControl HACER Acciones FINMIENTRAS

Estructuras Repetitivas Diagrama de flujo CondControl verdad ero falso Acciones

Estructuras Repetitivas 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. BUCLE PREPRUEBA. Condición verdadero seguirá ejecutando el cuerpo Algunos ejemplos de bucles con nombre: Bucle controlado por contador Bucle controlado por centinela Bucle contador

Estructuras Repetitivas Bucle controlado por contador Se ejecuta un número determinado de veces. Variable de control del bucle inicialización, evaluación, incremento i=1 /*Inicialización*/ MIENTRAS i<10 HACER /*Evaluación*/ acciones i=i+1 FINMIENTRAS /*Incremento*/ Cuantas veces se ejecuta el anterior bucle?

Estructuras Repetitivas Bucle controlado por centinela Centinela = valor especial que controla el final del bucle Es necesario actualizar el centinela en cada iteración LECTURA ADELANTADA Leer(centinela)/*lectura adelantada*/ MIENTRAS centinela!=0 HACER acciones Leer(centinela)/*actualización*/ FINMIENTRAS

Estructuras Repetitivas 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=0 Leer(ch) MIENTRAS ch!=. HACER Escribir(ch) cont=cont+1 Leer(ch) FINMIENTRAS

Estructuras Repetitivas Sintaxis : Estructura REPETIR REPETIR Acciones HASTA QUE CondControl

Estructuras Repetitivas Diagrama de flujo. Acciones verdad ero CondControl falso

Estructuras Repetitivas 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. BUCLE POSTPRUEBA. Condición falso seguirá ejecutando el cuerpo Menos general que el bucle MIENTRAS.

Estructuras Repetitivas B) Número de veces determinado a priori. Estructura PARA Sintaxis : PARA vcb=vi HASTA vf ( PASO p)hacer acciones FINPARA

Estructuras Repetitivas Cómo se ejecuta? Ejemplo: Suma=0 PARA i= 1 HASTA 10 HACER FINPARA Leer(valor) Escribir(valor)/*Eco*/ Suma=Suma + valor

Estructuras Repetitivas La vcb se incrementa (decrementa) 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 vi y vf se evalúan una sola vez.

Estructuras Repetitivas Fácilmente podemos diseñar un bucle MIENTRAS equivalente vcb=vi MIENTRAS (vcb<=vf) HACER /*si paso negativo MIENTRAS (vcb>=vf)*/ acciones vcb=vcb + paso FINMIENTRAS Igual podemos construir un bucle REPETIR

Estructuras Repetitivas Ejemplo: Calcular el factorial de un número. ALGORITMO Factorial; VAR Z factorial, n, indice INICIO factorial=1 Leer(n) PARA indice= 2 HASTA n HACER FINPARA factorial=factorial * indice Escribir(factorial) FIN Factorial

Estructuras Repetitivas Ejemplo:Sumar los n ( n>=0 ) primeros números naturales. ALGORITMO Sumanaturales VAR N num,suma,contador INICIO Escribir( Introduzca el número n: ) Leer(num) suma=0 PARA contador= 1 HASTA num HACER suma=suma+contador FINPARA Escribir(suma) FIN Sumanaturales

Estructuras Repetitivas Anidamientos 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

Estructuras Repetitivas 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. Ejemplo: PARA i= 1 HASTA 20 HACER PARA j= 1 HASTA 10 HACER FINPARA FINPARA acciones

Sentencias Repetitivas Ejemplo:Algoritmo que escriba un triángulo de números. La altura se introduce como dato y debe ser menor de 10. Con altura=4 quedaría como sigue: Observaciones: 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 Una iteración por cada línea de dígitos Cada línea se realiza en dos mitades:ejemplo:la línea 3 123--21

Estructuras Repetitivas ALGORITMO triangulo CONST C consblanco= VAR Z altura,blancos,fila Z mitad1,mitad2 INICIO Leer(altura) PARA fila=1 HASTA altura HACER PARA blancos=1 HASTA (altura-fila) HACER Escribe(consblanco) FINPARA PARA mitad1=1 HASTA fila HACER Escribe(mitad1) FINPARA PARA mitad2=fila-1 HASTA 1 (PASO -1) HACER Escribe(mitad2) FINPARA Saltar_Linea FINPARA FIN triangulo

Estructuras Repetitivas (C) while (expresion) { } acciones for (expr1;expr2;expr3) { } acciones do { acciones } while (expresion);

Programación Estructurada BOHM Y JACOPINI: 1.965 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."

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.