Introducción A Las Estructuras De Seleccion En C
Upcoming SlideShare
Loading in...5
×
 

Introducción A Las Estructuras De Seleccion En C

on

  • 31,691 views

 

Statistics

Views

Total Views
31,691
Views on SlideShare
31,605
Embed Views
86

Actions

Likes
3
Downloads
340
Comments
2

2 Embeds 86

http://www.slideshare.net 84
http://us-w1.rockmelt.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Introducción A Las Estructuras De Seleccion En C Introducción A Las Estructuras De Seleccion En C Presentation Transcript

    • Programación en C. Estructuras de Control Profesora: Painé Pintos. Materia: Práctica Profesional II Instituto Terciario “Simón Bolivar”
    • Indice de la presentación
      • Estructuras de control.
      • Diagrama de flujo.
      • Estructuras de selección
        • Sentencia IF.
        • Sentencia IF… ELSE.
        • Sentencia IF… ELSE IF.
        • Sentencias anidadas.
        • Sentencia SWITCH ( ejemplo ).
      • Estructuras de repetición (bucles).
        • Sentencia WHILE
          • Ejemplo 1 (bucle regulado por contador).
          • Ejemplo 2 (bucle regulado por centinela).
        • Sentencia DO…WHILE.
          • Uso de operadores de incremento y decremento
        • Sentencia FOR .
          • Ejemplo 1
      s
    • ESTRUCTURAS DE CONTROL
      • En general, las instrucciones de un programa se ejecutan una tras otra, en el orden que fueron escritas. A esto se llama EJECUCIÓN SECUENCIAL .
      • Las INSTRUCCIONES DE CONTROL son aquellas que permiten transferir el control a otras instrucciones sin seguir la ejecución secuencial.
        • C proporciona 3 tipos de instrucciones de selección : IF , IF…ELSE y SWITCH .
        • Proporciona además 3 tipos instrucciones de repetición : WHILE, DO…WHILE y FOR.
      s I
    • DIAGRAMA DE FLUJO
      • Un diagrama de flujo es una representación gráfica de un algoritmo o de una porción de algoritmo.
      • Se dibuja con símbolos de propósito especiales tales como:
      s I Símbolo de acción : indica cualquier tipo de acción que desarrolla el programa. Símbolo de decisión: indica el punto de lrpograma en el que se va a tomar una decisión (de acá pueden partir varios cursos de acción diferentes Símbolo de inicio y final: indica el inicio y el final del programa entero. Se agrega adentro la palabra que sea pertienente (“inicio”, “fin”) Símbolo conector : cuando se escribe parte del programa, se inicia y se termina el diagrama con este símbolo en vez de con los símbolos de inicio y final Líneas de flujo : conectan los símbolos e indican secuencia de sentencias.
    • DIAGRAMA DE FLUJO – Ejemplo: Supongamos un programa en el que se ingresa dos enteros y se muestra si son iguales o no. El diagrama sería A==B Declarar variables A y B integer inicio Imprimir “Cargar dos valores Enteros” Leer valores en Variables A y B Imprimir “A es igual B” A!=B Imprimir “A es diferente B” fin verdadero verdadero falso falso
    • ¿QUÉ SON LAS ESTRUCTURAS DE SELECCIÓN?
      • Las estructuras de selección (o bifurcación) se utilizan para elegir entre diversos cursos de acción. En este caso, se evaluará una condición que permitirá elegir hacer o no una acción o en otros casos, tomar un curso ú otro de acción.
      • Hay tres tipos de estructuras de selección: if (selección simple), if…else (selección doble) y switch (selección múltiple)
      s I
    • INSTRUCCIÓN DE SELECCIÓN SIMPLE IF
      • Esta sentencia de control permite ejecutar o no una sentencia simple o compuesta según se cumpla o no una determinada condición
      s I
      • Ejemplo: if (calificación >=6) printf (“aprobado ”);
        • Calificación es la variable;
        • “ calificación >=6” es la condición;
        • si esta condición es verdadera , se ejecuta “printf (“aprobado ”); “
        • si es falsa , se sigue con el resto del programa, sin ejecutar el printf.
      Calificación >=6 Imprime “ Aprobado” verdadero falso
    • INSTRUCCIÓN DE SELECCIÓN DOBLE: IF… ELSE Esta sentencia permite realizar una bifurcación, ejecutando una parte u otra del programa según se cumpla o no una cierta condición Ejemplo: if (condicion>=60) printf (“Aprobado”) ; else printf (“Reprobado”) ; I s
    • INSTRUCCIÓN DE SELECCIÓN MULTIPLE: IF… ELSE IF Esta sentencia permite realizar una ramificación múltiple, ejecutando una entre varias partes del programa según se cumpla una entre n condiciones Ejemplo: Ej: Para la nota ingresada de un alumno debe imprimirse una “A” si la calificación es mayor o igual a 90; una “B” si las calificaciones son mayores o iguales a 80 (pero menores a 90), una “C” si la calificación es mayor o igual a 70 (pero menor a 80); una “D” si la nota es mayor o igual a 60 (pero menor a 70); una “F” para todas las demás calificaciones. El código en C podría ser: If (calificación >=90) Printf (“A ”); Else if (calificación >=80) Printf (“B ”); Else if (calificación >=70) Printf (“C ”); Else if (calificación >=60) Printf (“D ”); Else Printf (“F ”); I
    • DIAGRAMA DE FLUJO IF MÚLTIPLE. V verdadero verdadero verdadero verdadero falso falso falso falso If calificacion >= 90 Imprimir “A” If calificacion >= 80 Imprimir “B” If calificacion >= 70 Imprimir “C” If calificacion >= 60 Imprimir “D” Imprimir “F”
    • INSTRUCCIÓN DE SELECCIÓN ANIDADAS Una sentencia if puede incluir otros if dentro de la parte correspondiente a su sentencia, A estas sentencias se les llama sentencias anidadas Ejemplo: Se realizará una división siempre y cuando el denominador sea menor o igual al numerador y no sea igual a 0. Supongamos que el numerador se ha cargado en A y el denominador en B If (A >= B) if (B!=0) c=A/B; Supongamos que en caso de que B no cumpla condiciones deberá guardarse en C un 0. El código podría ser: If (A >= B) if (B!=0) c=A/B; else c=0;
      • ¿A quién pertenece el else?
      • Para evitar dudas, utilizar llaves:
          • If (A >= B) {
          • if (B!=0)
          • c=A/B;
          • }
          • Else
          • c=0;
      s I
    • SENTENCIA DE SELECCIÓN MÚLTIPLE: SWITCH Desarrolla una función similar a la de la sentencia if ... else con múltiples ramificaciones, aunque con importantes diferencias La instrucción switch consiste en una serie de etiquetas case y un caso opcional default . I s
    • SWITCH - EJEMPLO: Ejemplo: supongamos que se quiere crear un programa que traduzca notas numéricas (1 a 10) a notas cualitativas aproximadas (exc, mb, b, r, mal) Para esto se le pide al alumno que ingrese su nota cuantitativa (almacenada en una variable NOTA) y se ingresa a la sentencia de selección: V D
    • DIAGRAMA DE FLUJO SWITCH V inicio Declarar int nota Cargar nota case NOTA = 1 case 2 case 3 Imprimir nota “MAL” BREAK Case 4 case 5 Imprimir nota “ REGULAR” BREAK case 6 Case 7 Imprimir nota “ BUENO” BREAK Case 8 Imprimir nota “ MUY BUENO” BREAK Case 9 Case 10 Imprimir nota “ EXCELENTE” BREAK DEFAULT Imprimir “Ingresó valor Incorrecto”; final v v v v v v
    • INSTRUCCIONES DE REPETICIÓN
      • Instrucciones que permiten repetir una serie de veces la ejecución de unas líneas de código.
      • Esta repetición se realiza o bien un número determinado de veces o bien hasta que se cumpla una determinada condición de tipo lógico o aritmético.
      • De modo genérico, a estas sentencias se les denomina bucles .
      • Hay 3 tipos de instruc. de repetición: WHILE , DO…WHILE y FOR.
      s I
    • INSTRUCCIÓN WHILE
      • Permite ejecutar repetidamente, mientras se cumpla una determinada condición , una sentencia o bloque de sentencias
      Ej: encontrar la primera potencia de 2 que sea mayor que 1000. La variable producto se inicializa en 2. Producto = 2; While (producto <=1000) Producto = 2 * producto; I s
    • USO DE WHILE – EJEMPLO 1 (BUCLE CONTROLADO POR CONTADOR) Programa que permite sacar el promedio de un grupo de 10 alumnos a partir de notas individuales ingresadas por teclado. I D
    • DIAGRAMA DE FLUJO WHILE – EJEMPLO 1 V INICIO Declarar INT contador, total, promedio, calificacion. INICIALIZAR contador = 1; total = 0; While (contador <=10) Ingresar nota en calificacion; Guardar en promedio = total / 10; Imprimir promedio; Acumular calificacion en total; Sumar 1 a contador; FIN verdadero falso
    • Uso WHILE – EJEMPLO 1 - Variables
      • Para sacar promedio necesitamos: sumar todas las notas (esto se hará en TOTAL ); permitir el ingreso de cada nota individual (esto se hará en la CALIFICACION ); habilitar una variable para almacenar el promedio una vez que se hayan ingresado TODAS las notas (esto se hará en PROMEDIO ).
      • La variable CONTADOR es la que permite regular el bucle: irá aumentando en 1 a medida que se vayan ingresando las notas.
      V
    • Uso WHILE – EJEMPLO 1 - Inicialización
      • TOTAL es un “acumulador”: va a ir “acumulando” los valores de las diferentes calificaciones. La operación de acumulación tiene la forma TOTAL =TOTAL+CALIFICACION. Si no inicializamos TOTAL en 0, en la primera asignación se estará sumando un valor “espurio”.
      • CONTADOR debe inicializarse en 1 para ir contando los ciclos que deben repetirse.
      V
    • Uso WHILE – EJEMPLO 1 - Bucle
      • La condición que regula el ciclo es que CONTADOR sea menor o igual a 10 . Si esta condición es VERDADERA , se ejecutan las instrucciones del bucle; si esta condición es FALSA , se “sigue de largo” y se continúa con la siguiente instrucción.
      • Dentro del bucle se pide al usuario que cargue la nota y con esta nota cargada se ACUMULA en TOTAL y se ACTUALIZA el contador (se le suma 1).
      • Cuando CONTADOR sea 11, no se cumplirá la condición y se saldrá del bucle.
      V
    • Uso WHILE – EJEMPLO 1 - Terminación
      • Ya fuera del bucle, se realiza el cálculo de PROMEDIO . En TOTAL se encuentra la suma total de las 10 notas ingresadas por el usuario.
      • Se imprime el resultado de la variable PROMEDIO.
      V
    • USO DE WHILE – EJEMPLO 2 (BUCLE CONTROLADO POR CENTINELA) Programa que permite sacar el promedio de un grupo de “X” alumnos a partir de notas individuales ingresadas por teclado. El usuario controla la cantidad de notas. I D
    • DIAGRAMA DE FLUJO WHILE – EJEMPLO 2 INICIO Declarar INT contador, total, calificacion; float promedio. INICIALIZAR contador = 0; total = 0; While (calificacion !=-1) Ingresar nota en calificacion; Guardar en promedio = total / 10; Imprimir promedio; Acumular calificacion en total; Sumar 1 a contador; FIN verdadero falso V Ingresar calificacion if contador !=0 Imprimir “No se ingresaron nº”; verdadero falso
    • Uso WHILE – EJEMPLO 2 - Variables
      • Para sacar promedio necesitamos: sumar todas las notas (esto se hará en TOTAL ); permitir el ingreso de cada nota individual (esto se hará en la CALIFICACION ); habilitar una variable para almacenar el promedio una vez que se hayan ingresado TODAS las notas (esto se hará en PROMEDIO ).
      • El tipo de datos de PROMEDIO será ahora FLOAT . Se contemplará los lugares decimales del promedio.
      • CONTADOR contará la cantidad de notas que ingresa el usuario.
      V
    • Uso WHILE – EJEMPLO 2 - Inicialización
      • TOTAL es un “acumulador”: va a ir “acumulando” los valores de las diferentes calificaciones.
      • CONTADOR debe inicializarse en 0 para ir contando la cantidad de notas que ingresa el usuario. Ya no regula el bucle (como en el ejemplo 1). Por esta razón debe comenzar en 0. La operación de asignación será contador = contador +1.
      V
    • Uso WHILE – EJEMPLO 2 Carga inicial de calificación.
      • A diferencia del ejemplo 1, antes de entrar al bucle se hace una carga de la variable calificacion .
      • Esto es así porque es calificacion la que ahora regula el bucle .
      V
    • Uso WHILE – EJEMPLO 2 - Bucle
      • La condición que regula el bucle es que CALIFICACION no sea igual a -1. Si esto es verdadero, se ejecutarán las instrucciones del bucle; si esto es falso, se “pasará de largo” al bucle y se ejecutará la siguiente instrucción.
      • Dentro del bucle se pide al usuario que cargue la nota y con esta nota cargada se ACUMULA en TOTAL y se ACTUALIZA el contador (se le suma 1 – necesario para luego sacar el promedio.
      • Cuando el usuario ingrese -1 , no se cumplirá la condición y se saldrá del bucle.
      V
    • Uso WHILE – EJEMPLO 2 – Verificación de valor
      • Como el usuario regula ahora la ejecución del bucle, cabe la posibilidad de que el usuario no haya ingresado calificaciones. En este caso el contador será igual a 0 y al efectuar la división para sacar el promedio, dará un error (división por 0).
      • Se realiza la verificación dentro de una instrucción IF…ELSE. Si el contador es distinto de 0 , se realiza el cálculo del promedio y se muestra en la pantalla. Si el contador es igual a 0 , se avisa que no se ha ingresado ningun valor y se sale del programa.
      V
    • Uso WHILE – EJEMPLO 2 – Operador de conversión
      • Los promedios no siempre resultan en valores enteros. A veces contienen una parte fraccional. Este tipo de valores se los conocen como números de punto flotante y se representan mediante el tipo de dato FLOAT.
      • El cálculo total/contador resultará en un entero debido a que tanto total como contador son variables enteras, por lo tanto la parte fraccional se trunca.
      • Al agregar el operador de conversión de tipo FLOAT a la variable total se realiza una conversión EXPLÍCITA . De esta manera se transforma temporalmente la variable total y contador a un tipo FLOAT y así, se preserva la parte fraccional que será almacenada, junto con la parte entera, en la variable PROMEDIO (que es de tipo FLOAT).
      V Promedio = ( float ) total / contador;
    • Uso WHILE – EJEMPLO 2 – Especificador de conversión de Printf
      • La “f” especifica que se imprimirá un valor de punto flotante .
      • El .2 es la precisión con la cual se desplegará el valor (es decir, se desplegará con 2 dígitos a la derecha del punto decimal).
      • Si se utiliza el especificador de conversión %f sin especificar precisión se utiliza la precisión predeterminada de 6 (como si se hubiera utilizado %.6f ).
      • Se puede regular la cantidad de espacios que se imprimirán antecediendo al punto el número de posiciones. P.ej: %10.6f imprimirá el número con 6 lugares después de la coma en un espacio de 10.
      • El valor impreso se redondea al número indicado de posiciones decimales.
      • Ejemplos:
      • Printf( “% . 2f ”, 3.446); IMPRIME 3.45
      • Printf( “% . 1f ”, 3.446); IMPRIME 3.4
      V Printf(“El promedio del grupo es: %.2f ”);
    • INSTRUCCIÓN DO… WHILE
      • Funciona parecido a while.
      • La diferencia es que la evaluación de la expresión de control se realiza al final del bucle , después de haber ejecutado al menos una vez las sentencias entre llaves del bucle
      I Ejemplo: se mostrarán los valores de 1 al 10: int contador =1; do { printf (“%d “, contador); } while (++contador <=10); s
    • OPERADORES DE: incremento, decremento y asignación.
      • C proporciona operadores unitarios de incremento (++) y de decremento (--).
      • Así, la expresión c=c+1 se transforma en c++ . Y la expresión c=c-1 se transforma en c-- .
      • ++c : incrementa un valor en c y después de usa en la expresión en que reside.
      • c++ : utiliza el valor actual de c en la expresión en que reside y luego incrementa en 1.
      • También pueden utilizarse los operadores de asignación += , -= , *= , /= . De esta forma la expresión c=c+1 podría transformarse en c+=1 o la expresión a=a*7 podría transformarse en a*=7 .
      V
    • INSTRUCCIÓN FOR
      • Maneja todos los detalles de la repetición controlada por contador.
      I Por ej: supongamos el ejemplo anterior (mostrar los valores de 1 a 10). int contador; for (contador=1; contador <=10; contador++) { printf(“%d ”, contador); } diagrama s
    • DIAGRAMA DE FLUJO DE INSTRUCCIÓN FOR V
    • INSTRUCCIÓN FOR – Ejemplo 1 I Revisaremos el primer ejemplo de While, utilizando el For: Hacer un programa que permite sacar el promedio de un grupo de 10 alumnos a partir de notas individuales ingresadas por teclado. s
    • Uso FOR – EJEMPLO 1 – DECLARACIÓN DE VARIABLES
      • En C se puede declarar variables y al mismo tiempo inicializarlas .
      • Veasé la variable total . Se la declara INTEGER y al mismo tiempo, se la inicializa en 0
      • La variable contador no se inicializa aquí; se hará dentro de la instrucción del FOR.
      V
    • Uso FOR – EJEMPLO 1 – Bucle FOR.
      • “ contador = 1 ”: se inicializa el contador en 1.
      • “ contador <=10 ”: condición que de ser verdadera, habilita la ejecución de las instrucciones dentro del FOR. De ser falso, “pasa de largo” a la siguiente instrucción.
      • “ contador++ ”: posincremento. Contador primero será evaluada en la condición y luego se incrementará en 1. P.ej: en la primera vuelta, contador es = 1, por lo tanto es menor a 10 (cumple condición). Sólo luego de verificar esto, contador se incrementa en 1 (vale 2) y será evaluado en el próximo ciclo.
      V
    • Uso FOR – EJEMPLO 1- TERMINACIÓN
      • Al incluir el operador de conversión float delante de total , se preserva la parte fraccional de la división.
      • Al almacenar el resultado del cálculo en la variable promedio (declarada como del tipo FLOAT), se almacena tanto la parte entera como la fraccional.
      • Al mostrar el resultado, se utiliza el especificador de conversión %.2f . Esto permite que el promedio se muestre con dos valores después del punto decimal.
      V