Está en la página 1de 15

UACJ/IIT Clase #5

Departamento: Eléctrica y Computación Operadores, prioridad y expresiones con


Materia: Programación I variables y constantes

Maestra: Fecha:

Nombre: Correo:

Matricula:

Objetivos
 Identificar la clasificación de los tipos de operadores y su orden de prioridad
 analizar y evaluar expresiones que empleen datos primitivos con variables,
constantes y operadores
 aplicar en problemas donde se requiera construir expresiones que soluciones
problemas en diferentes casos

Preguntas introductorias

Introducción
La lógica computacional es la misma lógica matemática aplicada al contexto de las ciencias de la computación. Su uso es
fundamental a varios niveles: en los circuitos computacionales, en la programación lógica y en el análisis y optimización (de
recursos temporales y espaciales) de algoritmos.

Circuitos computacionales

El nivel menos abstracto dentro de una computadora está constituido por circuitos electrónicos que responden a diferentes
señales eléctricas, siguiendo los patrones de la lógica booleana; esto es, compuertas lógicas que devuelven un valor
dependiendo de las entradas que se le dan al sistema. Existen ocho compuertas lógicas básicas con las cuales se pueden
formar sistemas muy complejos: AND, OR, Inverter(NOT), Buffer, NAND, NOR, XOR y XNOR.

&& || !

Algoritmos

En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latin, dixit algorithmus y
éste a su vez del matemático persa Al Juarismi ) es un conjunto preescrito de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar
dicha actividad y que solucione problemas.
Programación lógica

La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de
programación; La programación lógica es un tipo de paradigmas de programación dentro del paradigma de programación
declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación
funcional, programación basada en restricciones, programas DSL (de dominio específico) e híbridos. El que estamos
estudiando es el paradigma imperativo y modular

¿Cuáles son las diferentes áreas de las matemáticas?

En teoría, se dice que existen unos quinientos campos de estudio en las matemáticas distintos. Sin embargo, en una
clasificación más general se aglutinan sólo cuatro objetos de estudio, nombrados anteriormente- la cantidad, la estructura,
el espacio y el cambio- estos conciernen a las distintas ramas de las matemáticas básicas: aritmética, álgebra, geometría y
cálculo.

Aritmética Se define como "el arte de contar". La aritmética es el área de la matemáticas que estudia los números
enteros, racionales y números reales y las operaciones elementales que surgen entre ellos (la suma, la
resta, la multiplicación y la división). Se incluyen aquí las potencias, radicales y algoritmos.

Primaria, secundaria, preparatoria, universidad

Álgebra El álgebra es la rama de las matemáticas que emplea las letras para representar las operaciones
aritméticas. La aplicación de esta parte de las matemáticas se realiza mediante estructuras más
abstractas como operaciones con polinomios, ecuaciones y sistemas de ecuaciones, matrices y
determinantes. Esta área de las matemáticas incluye, además, el álgebra lineal, que estudia las
matrices, sistemas de ecuaciones de tipo lineal y vectores. Trabajar en álgebra consiste en manejar
relaciones numéricas en las que una o más cantidades son desconocidas. Estas cantidades se llaman
variables, incógnitas o indeterminadas y se representan por letras. Una expresión algebraica es una
combinación de letras y números ligadas por los signos de las operaciones: adición, sustracción,
multiplicación, división y potenciación, modulo.

Secundaria y preparatoria universidad

Geometría Dentro de las diferentes áreas de las matemáticas la geometría es la que se ocupa de estudiar las
formas o figuras en el plano o el espacio. Incluye dentro otras áreas como la trigonometría, que se
encarga específicamente de calcular el área y espacio de los triángulos.

Primaria, Secundaria preparatoria, universidad

Cálculo El cálculo es el campo de aplicación de las matemáticas empleado para hacer estadística y
probabilidad. Consiste en realizar las operaciones para prever el resultado de una acción. Incluye
operaciones para calcular la media de un estudio, la distribución de las cosas, hacer estimaciones o
muestreos.
Para desarrollar las capacidades de modelar e interpretar fenómenos físicos, sociales y matemáticos, requerimos de
manejar un conjunto de herramientas

La escritura de un algoritmo constituye una representación escrita en lenguaje natural, y su implementación en un lenguaje
de programación constituye otro tipo de representación, más vinculada con la representación simbólica que usa la
matemática

Las ideas matemáticas pueden ser representadas en formas variadas: imágenes, materiales concretos, tablas, gráficos,
números y letras, hojas de cálculo, y muchas otras más.

Las formas en las cuales se representan las ideas matemáticas son fundamentales para determinar cómo las personas
comprenden y utilizan esas ideas

¿Cómo aplicar las matemáticas en la codificación de algoritmos por medio de un lenguaje de alto nivel?

Para poder desarrollar algunos de los aspectos de las disciplinas de las matemáticas se requiere como base conocer la
clasificación Operadores y construcción de expresiones

Un operador es el símbolo que determina el tipo de operación o relación que habrá de establecerse entre los operandos
para alcanzar un resultado.

Clasificación de Operadores y expresiones en Lenguaje C

Las expresiones están constituidas por constantes, variables y operadores

Todos los operadores producen un valor a partir de sus operandos y las operación se efectúa sin modificar los operandos,
EXCEPTO con los operadores de asignación, incremento y decremento.

Los Operadores se pueden clasificar

 Unarios !a a++ a--


 Binarios a+b a-b a*b
 Ternarios tres operandos y un operador ?

Actividad

analizar los códigos que aplican diferente tios de expresiones

Unitarios para las expresiones requieren de un operando y un operador ( - + & * ++ -- !)

Binarios para expresiones se requiere de dos operandos y un operador (* + - / % etc)

Aritméticos Relacionales Lógicos.

+ - / * % <> >= <= != == compara && || !


= asignacion Int a=4,b=10,R=0; Y or not

R=a>b; 0 Int a=4,b=10,c=3;R=0;

Int a=4,b=10,R=0; R=a>=b; 0

R=a+b; R=14 R=a<b; 1

R=a-b; R=-6 R=a<=b; 1

R=a*b; R=40 R=a!=b;1

R=a/b; R= R=a==b;0

R=a%b; R= R=!a;

#include<stdio.h> #include<stdio.h> #include<stdio.h>


#include<conio.h> #include<conio.h> #include<conio.h>
int main() int main()
int main() { {
{ int a=4,b=10,c=3,R=0;
R= (a>b)&&(a>c);
int b=10,R1=0; int a=4,b=10,R=0,c=0; printf("R= %d\n",R);//R=0
float a=4,R=0; R=a>b; //R=0 R= (a>b)||(a>c);
R=a+b; //R=14 printf("R=%d\n",R); printf("R= %d\n",R);//R=1
printf("R=%f\n",R); R=a>=b; //R=0 R= !(a>b)&&(a>c);
R=a-b; //R=-6 printf("R=%d\n",R); printf("R= %d\n",R);//R=1
printf("R=%f\n",R); R=a<b; //R=1 getch();
R=a*b; //R=40 printf("R=%d\n",R); return 0;
printf("R=%f\n",R); R=a<=b; //R=1 }
R=a/b; // 4/10 //R=0 printf("R=%d\n",R);
printf("R=%f\n",R); R=a!=b; //R=1
//R1=a%b; // 4%10 //R=4 printf("R=%d\n",R);
printf("R=%f\n",R1); R=a==b; //R=0
getch(); printf("R=%d\n",R);
return 0;
} R=!a; //R=0
printf("R=%d\n",R);
ojo la operación de módulo requiere los R=!b; //R=0
datos enteros printf("R=%d\n",R);

cociente= divisor/dividendo R=!c; //R=0


printf("R=%d\n",R);
getch();
Residuo return 0;
}
Flotantes cociente y dividendo

Necesarias para el cálculo de una Ojo decir cualquier número diferente


división de cero es verdadero
Requerimientos para construir expresiones dependiendo del tipo de operador y operandos

Unarios requiere de un operando y un operador ++ -- (incremento y decremento)


Ejemplo

#include<stdio.h>
int main()
{
int A=5,R;
R=A++;
printf("El valor de R es ojo %d\n",R);
R=++A;
printf("El valor de R es %d\n",R);
R= A--;
printf("El valor de R es %d\n",R);
R=--A;
printf("El valor de R es %d\n",R);

return 0;
}

 El operador unario ++ y – incrementa o decremento en uno la cantidad especificada del operando


 pero tiene un efecto interno en cuanto el tiempo de ejecución es decir cuando el operador unario esta antes del
operando el incremente se visualiza inmediatamente
 en cambio, cuando esta después del operando el efecto tiene un desfasamiento de una línea de código
 debemos de tener cuidado cuando construimos expresiones más complejas como el ejemplo que desarrollamos

hasta aquí nos quedamos

Tipos de expresiones

Unitaria a++; &a !a

Binarios requiere de dos operandos y un operador

Que son los aritméticos, relacionales y lógicos

A+B A<B A||B

Combinar expresiones unitarias con binarias

R= A+B ++A >A hasta aquí nos quedamos

#include<stdio.h>
int main()
{
int R=0,A=2,B=4;
R= ((A+B)+(++A ))>A;
3
3+4
7 +3
10 > 3
1
printf("R= %d\n",R);

return 0;
}
Es muy importante identificar el tipo de expresión y el nivel de prioridad de los operadores

En este caso la prioridad más alta es la del ++ luego la primera suma de izquierda a derecha enseguida
segunda de izquierda a derecha al final comprara este resultado con el valor de A

9>2 es verdadero = 1

Ternario requiere de tres operandos y un operador

#include<stdio.h>
#include<conio.h> Tener en cuenta que los operadores unitarios tienen
int main() un orden de prioridad nivel 2 que significa?
{
int A=5,R=0;
R=R+1; R=++A+ A++ -A;
R++;
printf("R=%d\n",R); Primero procesa las operaciones de segundo nivel de
R=R+A; derecha a izquierda
printf("R=%d\n",R);
Luego las operaciones del siguiente nivel en este caso los
R=A++; de suma y resta que son nivel cuatro y valida de izquierda
printf("El valor de R es ojo %d\n",R); a derecha.
R=++A;
printf("El valor de R es %d\n",R);
R= A--;
printf("El valor de R es %d\n",R);
R=--A;
printf("El valor de R es %d\n",R);
R=++A+ A++ -A;
// 5 6 6
printf("El valor de R=A+ ++A -A es %d\n",R);
getch();
return 0;

EXPRESIONES

Una expresión es una combinación de variables y/o constantes, y operadores.

La expresión es equivalente al resultado que proporciona al aplicar sus operadores a sus operandos.
Una expresión puede estar formada por otras expresiones más sencillas, y puede contener paréntesis de
varios niveles agrupando distintos términos. En C existen distintos tipos de expresiones.

EXPRESIONES ARITMÉTICAS

Están formadas por variables y/o constantes, y distintos operadores aritméticos e incrementales (+, -, *, /,
%, ++, --). Como se ha dicho, también se pueden emplear paréntesis de tantos niveles como se desee, y su
interpretación sigue las normas aritméticas convencionales. Por ejemplo, la solución de la ecuación de
segundo grado:

equivale a x=(-b+sqrt(b*b-(4*a*c)))/(2*a);

EXPRESIONES LÓGICAS

Los elementos con los que se forman estas expresiones son valores lógicos; verdaderos (true, o distintos de
0) y falsos corresponde a 1) (false, corresponde a 0),

los operadores lógicos ||, && y !. También se pueden emplear los operadores relacionales (<, >, <=, >=, ==,
!=) para producir estos valores lógicos a partir de valores numéricos.

Estas expresiones equivalen siempre a un valor 1 (true) o a un valor 0 (false). Ej

a = ((b>c)&&(c>d))||((c==e)||(e==b));

EXPRESIONES GENERALES

Una de las características más importantes (y en ocasiones más difíciles de manejar) del C es su flexibilidad
para combinar expresiones y operadores de distintos tipos en una expresión que se podría llamar general,
aunque es una expresión absolutamente ordinaria de C.

El resultado de una expresión lógica es siempre un valor numérico (un 1 ó un 0); esto permite que cualquier
expresión lógica pueda aparecer como sub-expresión en una expresión aritmética. Recíprocamente,
cualquier valor numérico puede ser considerado como un valor lógico: true si es distinto de 0 y false si es
igual a 0. Esto permite introducir cualquier expresión aritmética como sub-expresión de una expresión
lógica. Por ejemplo:
(a - b*2.0) && (c != d)

a = b = c = 1; que equivale a: a = (b = (c = 1));

OTROS OPERADORES

Además de los operadores vistos hasta ahora, el lenguaje C dispone de otros operadores. En esta sección
se describen algunos operadores unarios adicionales.

 Operador menos (–).


El efecto de este operador en una expresión es cambiar el signo de la variable o expresión que le sigue.
Recuérdese que en C no hay constantes numéricas negativas. La forma general de este operador es:

- expresión

 Operador más (+).


Este es un nuevo operador unario introducido en el ANSI C, y que tiene como finalidad la de servir de
complemento al operador (–) visto anteriormente. Se puede anteponer a una variable o expresión
como operador unario, pero en realidad no hace nada.

 Operador sizeof().
Este es el operador de C con el nombre más largo. Puede parecer una función, pero en realidad es un
operador. La finalidad del operador sizeof() es devolver el tamaño, en bytes, del tipo de variable
introducida entre los paréntesis. Recuérdese que este tamaño depende del compilador y del tipo de
computador que se está utilizando, por lo que es necesario disponer de este operador para producir
código portable. Por ejemplo:

var_1 = sizeof(double) // var_1 contiene el tamaño


// de una variable double

 Operador negación lógica (!).


Este operador devuelve un cero (false) si se aplica a un valor distinto de cero (true), y devuelve un 1
(true) si se aplica a un valor cero (false). Su forma general es:

!expresion

 Operador coma (,).


Los operandos de este operador son expresiones, y tiene la forma general:

expresion = expresion_1, expresion_2

En este caso, expresion_1 se evalúa primero, y luego se evalúa expresion_2. El resultado global es el valor
de la segunda expresión, es decir de expresion_2. Este es el operador de menos precedencia de todos los
operadores de C. Como se explicará más adelante, su uso más frecuente es para introducir expresiones
múltiples en la sentencia for.

 Operadores dirección (&) e indirección (*).


Aunque estos operadores se introduzcan aquí de modo circunstancial, su importancia en el lenguaje
C es absolutamente esencial, resultando uno de los puntos más fuertes –y quizás más difíciles de
dominar– de este lenguaje. La forma general de estos operadores es la siguiente:
*expresion;
&variable;

El operador dirección & devuelve la dirección de memoria de la variable que le sigue. Por ejemplo:

variable_1 = &variable_2;

Después de ejecutarse esta instrucción variable_1 contiene la dirección de memoria donde se guarda el
contenido de variable_2. Las variables que almacenan direcciones de otras variables se
denominan punteros (o apuntadores), deben ser declaradas como tales, y tienen su propia aritmética y
modo de funcionar. Se verán con detalle un poco más adelante.

No se puede modificar la dirección de una variable, por lo que no están permitidas operaciones en las que
el operador & figura a la izquierda del operador (=), al estilo de:

&variable_1 = nueva_direccion;

El operador indirección * es el operador complementario del &. Aplicado a una expresión que represente
una dirección de memoria (puntero) permite hallar el contenido o valor almacenado en esa dirección. Por
ejemplo:

variable_3 = *variable_1;

El contenido de la dirección de memoria representada por la variable de tipo puntero variable_1 se recupera
y se asigna a la variable variable_3.

Como ya se ha indicado, las variables puntero y los operadores dirección (&) e indirección (*) serán
explicados con mucho más detalle en una sección posterior.
Actividades:

1. Evaluar las siguientes expresiones y codificar para comprobar los resultados

Expresiones con operadores aritméticos y lógicos

R=2, I=4, J=1

R=I*J;

I++; I=I+1;

I>J;

!I;

Manualmente Resultado Codigo en c Resultado

4 Int R=2, I=4, J=1; Printf(“R=%d\n”);


R=4*1
R=I*J;
Codigo del programa Notas

2. ¿Cuáles resultados obtenemos al combinar expresiones aritméticas y lógicas?

R= (I>J)&&(I+j);

R=I+I-I++;

Operacion resultado

R= (I>J)&&(I+j);

R=I+I-I++;

3. ¿Podemos combinar operadores unarios y binarios?


4. ¿Una expresión lógica que tipo de resultado tiene?
5. Relaciones las columnas

Expresiones y operandos acciones

R=I*J-B; Evalúa de izquierda a derecha y luego asigna

I*J primero calcularía la resta y luego la multiplicación

= lo almacena en un espacio temporal

Temporal-B Lo que se encuentra en el espacio temporal lo resta


aB

R=I*(J-B); primer o calcularía la multiplicación y luego la resta

Cuáles de los operadores de las expresiones son


binarios
6. Codifique las Expresiones algebraicas comunes en código de lenguaje C especificando primero
los tipos de datos que se requieren

#include<stdio.h>
El doble o duplo de un número: 2x
#include<conio.h>
int main()
{

int x=4, R=0;


R=2*x;
printf("El doble de %d es %d",x,R);

getch();
return 0;
}
#include<stdio.h>
El triple de un número: 3x
#include<conio.h>
int main()
{

int x=4, R=0;


R=3*x;
printf("El triple de %d es %d",x,R);

getch();
return 0;
}
#include<stdio.h>
El cuádruplo de un número: 4x
#include<conio.h>
int main()
{
int x=4, R=0;
R=3*x;
printf("El cuádruplo de %d es %d",x,R);

getch();
return 0;
}
Float x=4.0, R=0;
La mitad de un número: x/2
R=x/2; nota por lo menos dos de los miembros de una división
deberán ser flotantes para que no ocurra truncamiento y ojo no
se permiten las divisiones entre cero
Printf(“La division es %f”,R);
#include<stdio.h>
#include<conio.h>
int main()
{
float x=4.0, R=0;
R=x/2;
printf("la division es %f",R);

getch();
return 0;
}
#include<stdio.h>
Un tercio de un número: x/3
#include<conio.h>
int main()
{
float x=4.0, R=0;
R=x/3;
printf("la division es %f",R);
getch();
return 0;
#include<stdio.h>
Un cuarto de un número: x/4
#include<conio.h>
int main()
{
float x=4.0, R=0;
R=x/3;
printf("la division es %f",R);
getch();
return 0;

#include<stdio.h>
Un número es proporcional a 2, 3, 4...: 2x, 3x, 4x... #include<conio.h>
int main()
{
int x=4, R=0;

for(int A=1;A<=10;A++);
{
R=A*x;
printf("el numero d proporcional de %d es %d\n",x,R);
}

getch();
return 0;
}
Un número al cuadrado: x²

Un número al cubo: x³

Un número par: 2x

Un número impar: 2x + 1

Dos números consecutivos: x y x + 1

Dos números consecutivos pares: 2x y 2x + 2

Dos números consecutivos impares: 2x + 1 y 2x + 3

Descomponer 24 en dos partes: x y 24 − x

La suma de dos números es 24: x y 24 − x

La diferencia de dos números es 24: x y 24 + x

El producto de dos números es 24: x y 24/x

El cociente de dos números es 24: x y 24 · x

7. las expresiones algebraicas al inciso que corresponda y codifique en lenguaje C:


1. (a + 6)3 A. El cubo del doble de un número menos ocho

2. x + 2(x + 1) B. El número once menos el triple de

C. Un número más el doble de su siguiente

3.
4. a–7 D. La diferencia del doble de un número con 8
elevada al cubo

5. 2(x + 4) E. La tercera parte del cuadrado de un número


6. 2x + 4 F. La suma de dos números consecutivos

7. a + (a + 1) G. El triple de un número más su cuarta parte

H. El módulo de un numero

8.
9. (2y)3 – 8 I. El doble de la suma de un número más cuatro

J. Un número menos siete

10.
11. (2y − 8)3 K. El cubo de la suma de un número más seis

12. 11 − 3x L. El doble de un número más cuatro

13. 10MOD2 M. La mitad de un número menos tres elevada al


cuadrado

8. Codifica un programa en lenguaje c donde se puedan calcular las siguientes expresiones

14. A(x) = 7x3 − 3x2 − x + 10


A(2) =

15. P(x) = 5x7 − 4x2 + 11x + 17


P(−1) =

16. B(x) = x4 − 5x2 + 7x − 20


B(0) =

Conclusiones

Referencias

http://portalacademico.cch.unam.mx/alumno/matematicas1/unidad1/OpNumerosEnteros/priorid
adOperadoresAritmeticos
http://maxus.fis.usal.es/fichas_c.web/03xx_pags/0303.html

http://www.vadenumeros.es/tercero/ejercicios-con-parentesis.htm

http://www.aulamatematica.com/Revistas/pdf_revistas/22_7/22_7_08_Jerarquia.pdf

https://adolfredobelizario.wordpress.com/2012/06/15/tutorial-3-lenguaje-c/

http://informatica.uv.es/estguia/ATD/apuntes/laboratorio/Lenguaje-C.pdf

https://www.fing.edu.uy/~darosa/matyprogversionfinal.pdf ojo

También podría gustarte