Sección 5-2 Estructuras de Control de Decisión Expresiones Lógicas
Prog 5-1 #include #include // needed for formatting using namespace std; int main() { double taxable, taxes; cout << "Please type in the taxable income: "; cin >> taxable; if (taxable <= ) taxes = 0.02 * taxable; else taxes = * (taxable ) ; // set output format cout << setiosflags(ios::fixed) << setiosflags(ios::showpoint) << setprecision(2); cout << "Taxes are $ " << taxes << endl; return 0; }
Flujo de Control El orden en el cual los enunciados de un programa son ejecutados. Cuales son las posibilidades...
Flujo de Control Secuencial a menos que se use una estructura de control para cambiarlo. Hay 2 tipos de estructuras de control: Selección (also called branching) Repetición (also called looping)
Ejemplo Secuencial #include int main() { int a,b,c; a=4; b = a + 5; c = b % 3; cout <<“ a = “<< a<<“ b = “<<b<<“ c = “<<c<<endl; a = a + b + 4; cout <<“ a = “<< a<<“ b = “<<b<<“ c = “<<c<<endl; return 0; } Memoria: a b c Salida: a= 4 b= 9 c= 0 a= 17 b =9 c=0
Estructuras de Control de Decisión Las estructuras de control de decisión nos permiten escoger entre dos alternativas. Para eso c++ nos ofrece el enunciado if-else
if ( Expression ) StatementA else StatementB NOTE: StatementA and StatementB cada uno puede ser un solo enunciado o un bloque. Sintaxis del enunciado if-else
Nos permite seleccionar 1 de dos alternativas TRUE FALSE if clauseelse clause expression
Expresiones lógicas Tienen uno de dos posible valores o son ciertas o son falsas true false
#include #include // needed for formatting using namespace std; int main() { int x1,y1,x2,y2; double dx,dy,m; cout<<"Este progrma recibe las coordenadas de dos puntos"<<endl; cout<<"Calcula la pendiente de la linea recta que pasa por ellos"<<endl; cout<<"Entre las coordenas del primer punto: "; cin>> x1>>y1; cout<<"Entre las coordenas del segundo punto: "; cin>>x2>>y2; //calculasr dx dx = x2-x1; //calcular dy dy = y2-y1; m = dy/dx; cout<<"La pendiente calculada es m = "<<m<<endl; cin.ignore(); return 0; }
int x1,y1,x2,y2; double dx,dy,m; cout<<"Este progrma recibe las coordenadas de dos puntos"<<endl; cout<<"Calcula la pendiente de la linea recta que pasa por ellos"<<endl; cout<<"Entre las coordenas del primer punto: "; cin>> x1>>y1; cout<<"Entre las coordenas del segundo punto: "; cin>>x2>>y2; //calculasr dx dx = x2-x1; //calcular dy dy = y2-y1; if (dx == 0) cout<<"La pendiente no exixte "<<endl; else cout<<"La pendiente calculada es m = "<<dy/dx<<endl;
Problema Escriba un programa para calcular el salario semanal de un empleado que se le paga por horas trabajadas. A empleados que trabajan más de 40 horas, se le pagan las horas sobre las cuarenta a tiempo y medio.
Análisis del problema Salida: De acuerdo con el enunciado el problema, qué salida se necesita? Entrada: Qué entada se necesita para obtener la salida necesaria? Se requerirá que el usuario entre toda la data a través del teclado o se incluirá data como constantes?
Análisis del problema Qué procesamiento se requiere para determinar el salario semanal? Recuerde que necesita usar un enunciado de decisión if - else Para empleados que trabajan sobre cuarenta horas se le calcula el salario semanal de la siguiente forma: rate* *rate*(hours-40) A empleados que trabajan 40 horas o menos se le calcula el salario semanal de la siguiente forma: rate* hours
Algoritmo obtener la data de entrada necesaria: horas : (horas trabajadas durante la semana) salarioh : (salario por hora) Determinar si trabaja horas extra: horas > 40 a. no trabaja horas extras: horas * salarioh b. trabaja horas extras: 40 * salarioh * salarioh*(horas – 40) Mostrar los resultados : mostrar el salario calculado