Você está na página 1de 41

FUNDAMENTOS DE

ALGORITMOS
UNIDAD 1
SESION 2
UNIDAD 1: ESTRUCTURAS DE CONTROL BASICA
SESIÓN 2:
• Operadores aritméticos, lógicos y relacionales
• Expresiones aritméticas y funciones matemáticas
• Estructuras Condicionales simples y doble
REFLEXIONA:

¿Qué son las expresiones


aritméticas?
¿Cómo se expresan en un contexto
computacional?
LOGRO DE SESIÓN

Al término de la sesión el estudiante analiza y determina las reglas


de precedencia para elaborar fórmulas y expresiones matemáticas
según el contexto de ejecución. Asimismo, aprende el uso de las
estructuras secuenciales y condicionales para elaborar flujos de
ejecución basado en criterios predefinidos.

Temario:
• Operadores aritméticos, lógicos y relacionales
• Expresiones aritméticas y funciones matemáticas
• Estructuras Condicionales simples y doble
OPERADORES ARITMÉTICOS, LÓGICOS Y
RELACIONALES
OPERADOR DE ASIGNACIÓN

• El operador de asignación es un operador cuya sintaxis es la siguiente:

variable = expresión;

• Donde variable es un identificador válido de C++ declarado como variable.


• El operador = asigna el valor de la expresión derecha a la variable situada a su
izquierda.
• Este operador es asociativo por la derecha, eso permite realizar asignaciones
múltiples.

A = B = C = D = 12; Es equivalente a: A = (B =(C = (D = 12)))


OPERADORES Y EQUIVALENCIAS DE ASIGNACIÓN DE C++
OPERADORES Y EQUIVALENCIAS DE ASIGNACIÓN DE C++

#include<iostream>
#include<conio.h>
using namespace std;

int main(){
int c = 3, d = 5, e = 4, f = 6, g = 12;

c += 7;
d -= 4;
e *= 5;
f /= 3;
g %= 9;
cout<<"Resultado c = "<<c<<endl;
cout<<"Resultado d = "<<d<<endl;
cout<<"Resultado e = "<<e<<endl;
cout<<"Resultado f = "<<f<<endl;
cout<<"Resultado g = "<<g<<endl;
getch();
return 0;
}

2.1.asignacion.cpp
OPERADORES ARITMÉTICOS

• Los operadores aritméticos de C++ sirven para realizar operaciones aritméticas


básicas. Siguen las reglas algebraicas típicas, de jerarquía o prioridad, clásicas de
matemáticas.

Tabla. Operadores aritméticos


OPERADORES ARITMÉTICOS - REGLAS DE PRIORIDAD

• Las expresiones que tienen dos o más operando requieren unas reglas matemáticas
que permitan determinar el orden de las operaciones, se denominan reglas de
prioridad o precedencia y son:

1. Las operaciones que están encerradas entre paréntesis se evalúan primero. Si


existen diferentes paréntesis anidados (las mas internas se evalúan primero).

2. Las operaciones aritméticas tienen el siguiente orden de prioridad:

• operador ( )

• operadores ++, – – + y – unitarios,

• operadores *, /, % (producto, división, módulo)

• operadores +, – (suma y resta).Estos

• En los lenguajes que soportan la operación de exponenciación, este operador tiene


la mayor prioridad.
OPERADORES ARITMÉTICOS - REGLAS DE PRIORIDAD

¿Cuál es el resultado de las siguientes expresiones?

a) 3 + 6 * 14

b) 8 + 7 * 3 + 4 * 6
OPERADORES ARITMÉTICOS - REGLAS DE PRIORIDAD
OPERADORES ARITMÉTICOS

2.2.opeAritmetico.cpp
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;

int main(){
float a,b,c;

a = 3 + 6 * 14;
b = 8 + 7 * 3 + 4 * 6;
c = -4 * 7 + pow(2,3) / 4 - 5;

cout<<"Resultado a = "<<a<<endl;
cout<<"Resultado b = "<<b<<endl;
cout<<"Resultado c = "<<c;
getch();
return 0;
}
OPERADORES DE INCREMENTO Y DECREMENTO

• Además de los operadores de asignación aritméticos, C++ proporciona dos


operadores unarios para sumar 1, o restar 1, al valor de una variable numérica.

• Estos operadores son el operador de incremento unario, ++, y el operador de


decremento unario, --.
OPERADORES DE INCREMENTO Y DECREMENTO

Operador Llamado Expresión Explicación


de ejemplo
++ Pre incremento ++ a Incrementar a en 1, después utilizar el
nuevo valor de a en la expresión en que
esta variable reside.
++ Post incremento a ++ Usar el valor actual de a en la expresión en
la que esta variable reside, después
incrementar a en 1.
-- Pre decremento -- a Decrementar b en 1, después utilizar el
nuevo valor de b en la expresión en que
esta variable reside.
-- Post decremento a -- Usar el valor actual de b en la expresión en
la que esta variable reside, después
decrementar b en 1.
2.3.incrementos.cpp
#include<iostream>
#include<conio.h>
using namespace std;

int main(){
int c;
// demuestra el postincremento
c = 5; // asigna 5 a c
cout<< c <<endl; // print 5
cout<< c++ <<endl; // imprime 5 y después postincrementa
cout<< c <<endl; // imprime 6

cout << endl; // salta una línea

// demuestra el preincremento
c = 5; // asigna 5 a c
cout<< c <<endl; // imprime 5
cout<< ++c <<endl; // preincrementa y después imprime 6
cout<< c <<endl; // imprime 6

getch();
return 0;
}
OPERADORES DE INCREMENTO Y DECREMENTO
EXPRESIONES LÓGICAS (BOOLEANAS)

• Un segundo tipo de expresiones es la expresión lógica o booleana, cuyo valor es


siempre verdadero (true) o falso (false) .

• Las expresiones lógicas se forman combinando constantes lógicas, variables lógicas


y otras expresiones lógicas, utilizando los operadores lógicos not, and y or y los
operadores relacionales (de relación o comparación) =, <, >, <=, >=, <>.

• Se denominan también expresiones booleanas en honor del matemático británico


George Boole, que desarrolló el Álgebra lógica de Boole.
EXPRESIONES LÓGICAS (BOOLEANAS)

• Los operadores relacionales o de relación permiten realizar comparaciones de


valores de tipo numérico o carácter.

• Los operadores de relación sirven para expresar las condiciones en los algoritmos.

• El formato general para las comparaciones es:

• El resultado de la operación será verdadero o falso: Así, por ejemplo, si A = 4 y B = 3,


entonces A > B es verdadero. Mientras que (A – 2) < (B – 4) es falso.
EXPRESIONES LÓGICAS (BOOLEANAS)
EXPRESIONES LÓGICAS (BOOLEANAS)

N1 N2 Expresión lógica Resultado


3 6 3<6 verdadero
0 1 0>1 falso
4 2 4=2 falso
8 5 8 <= 5 falso
9 9 9 >= 9 verdadero
5 5 5 <> 5 falso
EXPRESIONES LÓGICAS (BOOLEANAS)

• Para realizar comparaciones de datos tipo carácter, se requiere una secuencia de


ordenación de los caracteres similar al orden creciente o decreciente. Esta
ordenación suele ser alfabética, tanto mayúsculas como minúsculas, y numérica,
considerándolas de modo independiente.

• Estos códigos normalizados son:


EXPRESIONES ARITMÉTICAS Y FUNCIONES
MATEMÁTICAS
¿CÓMO PASAR UNA EXPRESIÓN ARITMÉTICA A
UNA EXPRESIÓN ALGORÍTMICA ?

• Los lenguajes de programación no comprenden muchas expresiones aritméticas y es


necesario convertirlo a expresiones algorítmicas para poder hacer los procesos.

EJEMPLO:

• Cree un programa que calcule el área de un triángulo. A = (b x h) / 2


LIBRERÍA CMATH EN C++:

• El archivo de encabezado <cmath> proporciona una colección de funciones que nos


permiten realizar cálculos matemáticos comunes.

• Todas las funciones en el archivo de encabezado <cmath> son funciones globales;


por lo tanto, para llamar a cada una de ellas solo hay que especificar el nombre de la
función, seguido de paréntesis que contienen los argumentos de la misma
• Algunas funciones matemáticas se sintetizan en la figura
LIBRERÍA CMATH EN C++:
EJERCICIOS

• Escribir un programa en C++ que permita calcular la hipotenusa de un triangulo


rectángulo. (Restricciones los datos ingresados son números positivos mayores a
cero)
2.4.HipotenusaV1.cpp
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main(){
double a,b,c;
cout<<"ingrese un cateto"<<endl;
cin>>a;
cout<<"ingrese el otro cateto"<<endl;
cin>>b;
c=sqrt((a*a+b*b));
cout<<"El valor de la hipotenusa es:
"<<c<<endl;
getch();
return 0;
}
2.5.HipotenusaV2.cpp
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main(){
double a,b,c;
cout<<"ingrese un cateto"<<endl;
cin>>a;
cout<<"ingrese el otro cateto"<<endl;
cin>>b;
c=sqrt(pow(a,2)+pow(b,2));
cout<<"El valor de la hipotenusa es:
"<<c<<endl;
getch();
return 0;
}
EJERCICIOS

• Escribir un programa en C++ que permita resolver una ecuación cuadrática.


(Restricciones los datos ingresados son números positivos mayores a cero)

Uno de los métodos para encontrar el valor o valores de x, en


caso de que existan, es mediante la fórmula general:
2.6.ecuación.cpp

#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

int main(){
double a,b,c,x1,x2;
cout<<"Introduzca el coeficiente \"a\": ";
cin>>a;
cout<<"Introduzca el coeficiente \"b\": ";
cin>>b;
cout<<"Introduzca el coeficiente \"c\": ";
cin>>c;

x1 = (-b+sqrt(pow(b,2)-4*a*c))/(2*a);
x2 = (-b-sqrt(pow(b,2)-4*a*c))/(2*a);

cout<<"x1 = "<<x1<<endl;
cout<<"x2 = "<<x2<<endl;
getch();
return 0;
}
ESTRUCTURAS CONDICIONALES SIMPLES Y
DOBLE
ESTRUCTURAS DE CONTROL CONDICIONAL

• Las estructuras de decisión, controlan el flujo de ejecución de un programa.


• Permiten seleccionar la próxima proposición a ejecutarse dependiendo del valor de
una condición (cierta o falsa).
• Para construir esta condición se usarán las expresiones lógicas o relacionales.
ESTRUCTURAS CONDICIONAL SIMPLE

• Se evalúa la condición, si la condición es cierta se realiza proposición, y si es falsa


entonces no se realiza la proposición.
ESTRUCTURAS CONDICIONAL DOBLE

• Se evalúa la condición, si la condición es cierta se realizará proposición 1 y si


condición es falsa se realizará la proposición 2.
SENTENCIAS IF ANIDADAS

• No hay restricciones en cuanto a cuáles pueden ser las sentencias en un If. Por
tanto, un If dentro de un If es correcto.

• De hecho, un If dentro de un If dentro de un If es lícito.


SENTENCIAS IF ANIDADAS

If (no anidadas) If (anidada equivalente)


EJERCICIOS

• Se desea realizar un programa en C++ que permita realizar descuentos en las


pensiones a los alumnos que obtengan los siguientes promedios:

• Si un alumno tiene un promedio mayor o igual a 19 se le hará un 20% de


descuento en la universidad.

• Si tiene un promedio mayor o igual a 18 pero menor que 19 el descuento será


del 10%.

• Si su promedio es menor que 18 pero mayor o igual a 17 el descuento será del


5%.

• Si promedia con menos 17 no tendrá descuento.


2.7.ifAnidados.cpp
#include <iostream> }
#include <conio.h> }
using namespace std; }
total=universidad-universidad*descuento;
int main(){ cout<<"El total Pensión es : "<<total<<endl;
float promedio=0,descuento=0; getch();
float universidad=1500,total=0; return 0;
cout<<"Ingresa promedio anual "<<endl; }
cin>>promedio;

if(promedio >= 19){


descuento = 0.2;
}
else{
if(promedio>=18 && promedio<19){
descuento=0.1;
}
else{
if(promedio>=17 && promedio<18){
descuento=0.05;
}
else{
descuento=0.0;
EJERCICIOS
¿Preguntas o
Comentarios?

Você também pode gostar