37
Ingeniería en Sistemas Computacionales Fundamentos de Programación Unidad IV: Control de Flujo Este material de clase fue desarrollado para la asignatura Fundamentos de Programación clave SCD-1008, de la carrera de Ing. En Sistemas Computacionales, plan 2010.

Fundamentos de Programacion - Unidad 4 control de flujo

Embed Size (px)

Citation preview

Page 1: Fundamentos de Programacion - Unidad 4 control de flujo

Ingeniería en Sistemas ComputacionalesFundamentos de Programación

Unidad IV: Control de Flujo

Este material de clase fue desarrollado para la asignatura Fundamentos de Programación clave SCD-1008, de la carrera de Ing. En Sistemas Computacionales, plan 2010.

Page 2: Fundamentos de Programacion - Unidad 4 control de flujo

ESTRUCTURAS CONDICIONALES EN C++

FUNDAMENTOS DE PROGRAMACIÓN

Page 3: Fundamentos de Programacion - Unidad 4 control de flujo

ESTRUCTURAS CONDICIONALESProposición If - Else• Esta proposición sirve para ejecutar ciertas sentencias de

programa, si una expresión resulta CIERTA ú otro grupo de sentencias, si aquella resulta FALSA. Su interpretación literal sería: SI es CIERTA tal cosa, haga tal otra, si no lo es sáltela.

• El caso más sencillo sería :if (expresión) {

sentencia ; }

FUNDAMENTOS DE PROGRAMACIÓN

Page 4: Fundamentos de Programacion - Unidad 4 control de flujo

• Cuando la sentencia que sigue al if es única no se requiere abrir llaves {}. La sentencia sólo se ejecutará si el resultado de "expresión" es verdadero, en caso contrario el programa salteará dicha sentencia, realizando la siguiente en su flujo.

• En casos más complejos, la proposición if puede estar seguida por un bloque de sentencias por lo que las llaves son obligatorias:

if (expresión){

sentencia 1;...sentencia n ;

}

FUNDAMENTOS DE PROGRAMACIÓN

Page 5: Fundamentos de Programacion - Unidad 4 control de flujo

Operadores lógicos

FUNDAMENTOS DE PROGRAMACIÓN

Page 6: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Determinar si un alumno aprueba o reprueba un curso, sabiendo que aprobara si su promedio de 3 calificaciones es mayor o igual a 70; reprueba en caso contrario.

FUNDAMENTOS DE PROGRAMACIÓN

Page 7: Fundamentos de Programacion - Unidad 4 control de flujo

• El uso de else es optativo, y su aplicación resulta en la ejecución de una ó varias sentencias en el caso de que la expresión del if resulta FALSA. Su aplicación puede verse en el siguiente ejemplo:

if (expresión) { sentencia 1;...... sentencia n;

} else { sentencia 1;...... sentencia n;

}

FUNDAMENTOS DE PROGRAMACIÓN

Page 8: Fundamentos de Programacion - Unidad 4 control de flujo

4. Hacer un programa que lea dos números y los imprima en forma ascendente

FUNDAMENTOS DE PROGRAMACIÓN

Page 9: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• En un almacén se hace un 20% de descuento a los clientes cuya compra supere los $1000. ¿Cuál será la cantidad que pagara una persona por su compra?

FUNDAMENTOS DE PROGRAMACIÓN

Page 10: Fundamentos de Programacion - Unidad 4 control de flujo

• La función puts( ): escribe una cadena de caracteres y un carácter de nueva línea al final de la cadena en la salida estándar (monitor).

• Acepta como argumento una cadena (sin formato).

Sintaxis:puts (“cadena“);

FUNDAMENTOS DE PROGRAMACIÓN

Page 11: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Hacer un programa que capture un base y altura de un triángulo y pregunte una de las siguientes opciones:

1) Área del Triángulo2) Perímetro del Triángulo3) Superficie del Triángulo

• Si el número capturado es distinto a los mencionados el programa termina.

FUNDAMENTOS DE PROGRAMACIÓN

Page 12: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:

• Si trabaja 40 horas o menos se le paga $16 por hora• Si trabaja mas de 40 horas se le paga $16 por cada una de

las primeras 40 horas y $20 por cada hora extra.

FUNDAMENTOS DE PROGRAMACIÓN

Page 13: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio: Una empresa de bienes raíces ofrece casas de interés social, bajo las siguientes condiciones:

• Si los ingresos del comprador son menores de $8000 o igual el enganche será del 15% del costo de la casa y el resto se distribuirá en pagos mensuales, a pagar en diez años.

• Si los ingresos del comprador son mayores de $8000 el enganche será del 30% del costo de la casa y el resto se distribuirá en pagos mensuales a pagar en 7 años.

La empresa quiere obtener cuanto debe pagar un comprador por concepto de enganche y cuanto por cada pago parcial.

FUNDAMENTOS DE PROGRAMACIÓN

Page 14: Fundamentos de Programacion - Unidad 4 control de flujo

Tarea: Hacer un programa que calcule el Índice de Masa Corporal (IMC) de una persona bajo la siguiente fórmula:

IMC=peso(kg)/estatura M2 (metros al cuadrado)• Debe capturar: nombre, edad, género, peso en kilos y estatura en metros.• Al calcular el IMC mostrar al usuario la categoría correspondiente a su peso y

estatura:

FUNDAMENTOS DE PROGRAMACIÓN

Composición corporal Índice de masa corporal (IMC)Peso inferior al normal Menos de 18.50Peso normal 18.50 a 24.99Peso superior al normal 25.00 a 29.99Obesidad Más de 30.00

Page 15: Fundamentos de Programacion - Unidad 4 control de flujo

ITERACIONES O CICLOS EN C++

FUNDAMENTOS DE PROGRAMACIÓN

Page 16: Fundamentos de Programacion - Unidad 4 control de flujo

¿Qué es una ITERACIÓN o CICLO?

• Iteración se refiere a la acción de repetir una serie de pasos un cierto número de veces.

• En programación, Iteración es la repetición de una serie de instrucciones en un programa de computadora.

FUNDAMENTOS DE PROGRAMACIÓN

Page 17: Fundamentos de Programacion - Unidad 4 control de flujo

Estructuras Iterativas en C++

• Estructura while()

• Estructura do-while()

• Estructura for()

FUNDAMENTOS DE PROGRAMACIÓN

Page 18: Fundamentos de Programacion - Unidad 4 control de flujo

• El ciclo while es una de las tres iteraciones posibles en C++. Su sintaxis podría expresarse de la siguiente forma:

while(expresión){ proposición 1 ; ..... proposición n ;}

FUNDAMENTOS DE PROGRAMACIÓN

Page 19: Fundamentos de Programacion - Unidad 4 control de flujo

#include<stdio.h>#include<conio.h>main ( ){ int a , suma=0 , i=1 ; float promedio; while(i<=10) //las siguientes sentencias se ejecutarán mientras { cin >>a; //se un número, dentro del ciclo suma = suma + a ; // i sea menor a 20 i++; // equivale a i=i+1; } // termina ciclopromedio = (suma / 10) ; cout << “\n el promedio es; ” << promedio ; return 0;}

FUNDAMENTOS DE PROGRAMACIÓN

Ejemplo

Page 20: Fundamentos de Programacion - Unidad 4 control de flujo

Elementos que conforman el ciclo:

FUNDAMENTOS DE PROGRAMACIÓN

Variables de trabajo

Contador con valor inicial

Condición

Bloque de código a repetir

Cierre del ciclo

Incremento del contador

Page 21: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Utilizando el ciclo while hacer un programa dibuje una línea horizontal en la pantalla desde la posición 1 hasta la posición 80;

FUNDAMENTOS DE PROGRAMACIÓN

Page 22: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Utilizando el ciclo while hacer un programa que capture un número y despliegue en pantalla su tabla de multiplicar del 1 al 10;

FUNDAMENTOS DE PROGRAMACIÓN

Page 23: Fundamentos de Programacion - Unidad 4 control de flujo

Estructura do-while()

• Expresado en palabras, esto significa: ejecute las proposiciones, luego repita la ejecución mientras la expresión dé un resultado VERDADERO.

• La diferencia fundamental entre esta iteración y otras que existen en C++ es que el do-while se ejecuta siempre AL MENOS UNA VEZ, sea cual sea el resultado de expresión.

FUNDAMENTOS DE PROGRAMACIÓN

Page 24: Fundamentos de Programacion - Unidad 4 control de flujo

Sintaxis de la estructura do-while;

do { proposición 1 ; … proposición n ;} while (expresión) ;

FUNDAMENTOS DE PROGRAMACIÓN

Page 25: Fundamentos de Programacion - Unidad 4 control de flujo

#include<stdio.h>using namespace std;main( ){ int i=0 ; int a , suma=0 ; float promedio ; do { // comienza el ciclo cin >> a; suma + = a ; // reemplaza a suma = suma + a i++ ; // equivale a i=i+1; } while ( i < 10 ) ; //el ciclo se ejecuta, mientras i sea menor a 10 promedio = suma / 10; cout << “\n el promedio es: ” << promedio; return 0;}

FUNDAMENTOS DE PROGRAMACIÓN

Ejemplo

Variables de trabajo

Contador con valor inicial

Condición

Bloque de código a repetir

Cierre del ciclo

Incremento del contador

Page 26: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Utilizando el ciclo do-while hacer un programa que despliegue en pantalla los caracteres imprimibles del código ASCII (del 33 al 255).

• Nota: para realizar este programa requieres convertir valores enteros a tipo char, además de utilizar la instrucción printf();

FUNDAMENTOS DE PROGRAMACIÓN

Page 27: Fundamentos de Programacion - Unidad 4 control de flujo

• Funciones printf ( ) y scanf( ): La función printf ( ) escribe datos formateados en la salida estándar (pantalla). La función scanf ( ) lee datos formateados de la entrada estándar (teclado).

Sintaxis: printf (“cadena de control”, lista de argumentos);scanf (“cadena de control”, &lista de argumentos);

Ejemplo:printf(“Nombre %s",&nombre);scanf("%f",&estatura);

FUNDAMENTOS DE PROGRAMACIÓN

Page 28: Fundamentos de Programacion - Unidad 4 control de flujo

Tabla de códigos de control y argumentosFUNDAMENTOS DE PROGRAMACIÓN

Page 29: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Utilizando el ciclo do-while hacer un programa que calcule la media aritmética de 5 números capturados por teclado;

FUNDAMENTOS DE PROGRAMACIÓN

Page 30: Fundamentos de Programacion - Unidad 4 control de flujo

Iteración for

• El ciclo for() es simplemente una manera abreviada de expresar una iteración while(), es útil para los casos en donde se conoce de antemano el número de veces que una o más sentencias deben repetirse.

FUNDAMENTOS DE PROGRAMACIÓN

Page 31: Fundamentos de Programacion - Unidad 4 control de flujo

Sintaxis de la iteración FOR

for (contador; condición; incremento) {

Código a Repetir…; }

Donde:• Contador: es una variable numérica de tipo entero.• Condición: es la condición que se evalúa, es decir, el valor final para

contador.• Incremento: es el valor que se suma o resta al contador.

FUNDAMENTOS DE PROGRAMACIÓN

Page 32: Fundamentos de Programacion - Unidad 4 control de flujo

#include<stdio.h>using namespace std;int main( ){ int i; int a , suma=0; float promedio ; for ( i=1 ; i<=10 ; i++ ) //el ciclo se ejecutará con i desde 10 veces { cout<<“capture valor: ”; cin >>a; suma += a ; // EQUIVALE A suma = suma + a; } promedio = suma/10; cout << “\n el promedio es; ” <<promedio; return 0;}

FUNDAMENTOS DE PROGRAMACIÓNEjemplo

Variables de trabajo

Contador y valor inicial

Condición o final

Bloque de código a repetir

Cierre del ciclo

Incremento del contador

Page 33: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Hacer programa que calcule el factorial de un número X, utilizando el ciclo FOR.

Nota: El factorial de un número entero positivo se define como el producto de todos los números naturales anteriores o iguales a él. Se escribe n!, y se lee "n factorial“.

Por ejemplo, 5! = 5·4·3·2·1 = 120 (no se multiplica el 0)

FUNDAMENTOS DE PROGRAMACIÓN

Page 34: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Utilizando el ciclo for Hacer un programa que despliegue en dos columnas una numeración del: 1 al 100 y del 100 al 1 simultáneamente, utilizando con un solo ciclo y un solo contador.

FUNDAMENTOS DE PROGRAMACIÓN

Ejemplo

12345

10099989796

Page 35: Fundamentos de Programacion - Unidad 4 control de flujo

Nota: Todos los ciclos pueden ser terminados antes de cumplirse la expresión o condición puesta en su sintaxis, para esto C++ tiene las instrucciones break; y exit(0);• La función break (sin paréntesis) termina un ciclo y manda el

flujo a la siguiente instrucción del programa después del ciclo.• La función exit(0) (con paréntesis), es mas compleja, ya que

termina el programa en ejecución aún cuando no se haya llegado al final del mismo.

FUNDAMENTOS DE PROGRAMACIÓN

Page 36: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:• Hacer un programa que imprima en pantalla los números pares

del 1 hasta el 200;

Nota: Para hacer este programa necesitas usar la instrucción de C++ que determina el residuo de una división, esta instrucción es el signo de porcentaje “%”. Por ejemplo: si quieres saber cual es el residuo de 5/7 y asignarlo a una variable “Y” escribes: Y=5%7; el resultado es Y con valor 2.

FUNDAMENTOS DE PROGRAMACIÓN

Page 37: Fundamentos de Programacion - Unidad 4 control de flujo

Ejercicio:

• Hacer un programa que despliegue los números primos que hay entre 1 y 1000.

Para hacer este programa necesitas usar la instrucción que determina el residuo de una división % y de ser necesario la sentencia break;

FUNDAMENTOS DE PROGRAMACIÓN