(Teoría segunda evaluación)
F. DEFINICION DE NUEVOS TIPOS
Aveces conviene renombrar los tipos de datos que existen de manera que faciliten la lectura y escritura del código fuente. Esto se hace mediante la sentencia Typedef, que se usa para renombrar tipos de datos.
Typedef int entero; renombra int por entero.
G. CONSTANTES
Una constante en “C” es un valor fijo que no puede modificarse a lo largo de la ejecución del programa. Una vez compilado no puede alterarse durante la ejecución.
2.3 OPERADORES Y EXPRESIONES
Una expresión es una combinación de operadores y operandos en “C” que producen un valor o generan un efecto secundario. Las variables y constantes se consideran las expresiones más simples puesto que proporcionan un valor directamente.
Ejemplo:
3(expresión/operando)+(operador)a+8
A. OPERADORES ARITMETICOS
Se utilizan para realizar operaciones normales.
o Binarios (+ - * /)
o Unarios (– signo de la fracción, que indica negativo)
B. OPERADORES RELACIONADES
Se utilizan para determinar las relaciones entre valores. El resultado de toda operación relacional es siempre verdadero o falso.
En “C” el verdadero es un 1 y el falso es un 0 y los operadores son (>, >=, <, <=, != esto representa distinto)
C. OPERADORES LOGICOS
Los operadores lógicos se utilizan para representar las conexiones lógicas (y, o) y la negación. Mediante estos operadores se pueden crear expresiones relacionales complejas a partir de expresiones más simples.
o Y conjunción: Se representa en “C” mediante el símbolo “&&”.
o O disyunción: Se representa en “C” mediante el símbolo “||”
o La negación se representa con !
*El resultado de las operaciones lógicas es verdadero o falso 0 o 1.
Ejemplo:
X = 5
Y = 2
Relación =(( x != y)) (x<y)
1 0
Relación = 1
Ejemplo 2:
Relación = ((x!=y) && ((x>y))
1 1
Relación = 1
Ejemplo 3:
Relación = !(x= = y)
= ! 0
Relación = 1
D. OPERADORES DE INCREMENTO Y DECREMENTO
Son una de las operaciones más comunes dentro de la programación. En “C” se puede poner el incremento mediante “++”, y el decremento mediante “—“, a la vez que se admiten como prefijos y sufijos.
X++ sufijo esto = x + 1
Post incremento o post decremento
X-- sufijo esto = x – 1
++X prefijo esto = 1 + x
Pre incremento o pre decremento
--X prefijo esto = 1 - x
Ejemplo:
#include <stdio.h>
Main ()
{
Int x, y;
x=y=9;
printf(“el valor de x es %d”, x++); 9; x= 10 pos incremento, 1º muestra y luego aumenta
prinft(“el valor de y es %d”, ++y); y=10; 10 pre incremento, 1º aumenta y luego muestra
}
E. OPERADORES DE ASIGNACIÓN
Se utiliza para asignar la expresión de la derecha de la variable. El símbolo es el “=”. Se puede aplicar a varias variables.
Por ejemplo x = y = z = 2 las tres variables pasan a valer 2.
Las asignaciones se evalúan de derecha a izquierda y hay una determinada forma de representar determinadas asignaciones, que son:
o X + = Y; x = x + y;
o X - = Y; x = x – y;
o X * = Y; x = x * y;
o X / = Y; x = x / y;
o X % = Y; x = x % y
A esto se le llama sobrecarga de la operación a realizar por ejemplo, sobrecarga de multiplicación.
Traducir este otro:
F. OPERADORES Y EXPRESIONES
Ejemplo:
#include <stdio.h>
Main()
{
Char x= “A”; /* en binario x = 01000001 */
Char y =”Z”; /* en binario y = 01111010 */
Char z;
Int i = 14550; /* en binario i= 00000000000000000011100011010110
z = x&y; /* el resultado es z = 01000000 */
printf (“z = %c \ n”, z); /* imprime z= @;
z = x/y; /* z= 01111011 */
printf (“z = %c\n” z) /* imprime z = { */
z = x*y; /* z=00111011 */
printf (“z=%c\n”, z) /* imprime x = ; */
z = x >>1; /* z = 00100000 */
printf (“z = %c\n”, z) /* imprime z = no hay símbolo definido */
z= *i; /* z = 1111111111111111 11 */
printf )”z=%d\n”, z); /* imprime z = -14551 */
G. OPERADOR CONDICIONAL
Es un operador ternario con la siguiente sintaxis:
- Expresión 1 ? expresión 2: expresión 3
este operador evalúa la expresión 2 o la expresión 3 dependiendo de la evaluación de la expresión 1.
En otras palabras, evalúa la expresión 1, si es verdadera ejecuta la expresión 2 y en caso contrario la expresión 3.
Ejemplo:
Nota = (teoría > = 5) ¿ teoría + practica : 0;
Si teoría es >=5, nota = teoría + practica. Si no, nota = 0
Todo esto equivale a una sentencia de control de flujo.
H. SENTENCIAS DE CONTROL
Una sentencia es una instrucción completa que el ordenador es capaz de entender. En c hay 5 tipos:
o Declaración: Se utilizan para establecer nombres y tipos de las variables
Ej: int valor;
char carácter;
o Asignación: Se utilizan para asignar valor a las variables utilizando un operador de asignación
Ej: valor = 5;
char carácter;
o Función: Este tipo de sentencias son llamadas a una función que realiza alguna tarea.
Ej: printf (“es un ejemplo\n”);
o Control: Estas sentencias permiten controlar el flujo de ejercicios del programa.
Ej: While (valor>1)
valor ++;
o Nulas: No realizan ninguna operación.
I. OPERADORES DE MANEJO DE BITS
El “C”, como vimos en el tema 1, puede manipular a bajo nivel de memoria y para ello necesita operadores a nivel de bits que permitan manipular las variables a nivel de bit.
Estos son aplicables a todas las variables int, short, long y char y no a float y doublé.
Los operadores son:
o & Y lógico (AND)
o | O lógico (OR)
o ^ O exclusivo (XOR)
o << desplazamiento a la izquierda. Se rellenan 0 a la derecha
o >> desplazamiento a la derecha. Se rellenan 0 a la izquierda
o ~ complemento a 1
F. DEFINICION DE NUEVOS TIPOS
Aveces conviene renombrar los tipos de datos que existen de manera que faciliten la lectura y escritura del código fuente. Esto se hace mediante la sentencia Typedef, que se usa para renombrar tipos de datos.
Typedef int entero; renombra int por entero.
G. CONSTANTES
Una constante en “C” es un valor fijo que no puede modificarse a lo largo de la ejecución del programa. Una vez compilado no puede alterarse durante la ejecución.
2.3 OPERADORES Y EXPRESIONES
Una expresión es una combinación de operadores y operandos en “C” que producen un valor o generan un efecto secundario. Las variables y constantes se consideran las expresiones más simples puesto que proporcionan un valor directamente.
Ejemplo:
3(expresión/operando)+(operador)a+8
A. OPERADORES ARITMETICOS
Se utilizan para realizar operaciones normales.
o Binarios (+ - * /)
o Unarios (– signo de la fracción, que indica negativo)
B. OPERADORES RELACIONADES
Se utilizan para determinar las relaciones entre valores. El resultado de toda operación relacional es siempre verdadero o falso.
En “C” el verdadero es un 1 y el falso es un 0 y los operadores son (>, >=, <, <=, != esto representa distinto)
C. OPERADORES LOGICOS
Los operadores lógicos se utilizan para representar las conexiones lógicas (y, o) y la negación. Mediante estos operadores se pueden crear expresiones relacionales complejas a partir de expresiones más simples.
o Y conjunción: Se representa en “C” mediante el símbolo “&&”.
o O disyunción: Se representa en “C” mediante el símbolo “||”
o La negación se representa con !
*El resultado de las operaciones lógicas es verdadero o falso 0 o 1.
Ejemplo:
X = 5
Y = 2
Relación =(( x != y)) (x<y)
1 0
Relación = 1
Ejemplo 2:
Relación = ((x!=y) && ((x>y))
1 1
Relación = 1
Ejemplo 3:
Relación = !(x= = y)
= ! 0
Relación = 1
D. OPERADORES DE INCREMENTO Y DECREMENTO
Son una de las operaciones más comunes dentro de la programación. En “C” se puede poner el incremento mediante “++”, y el decremento mediante “—“, a la vez que se admiten como prefijos y sufijos.
X++ sufijo esto = x + 1
Post incremento o post decremento
X-- sufijo esto = x – 1
++X prefijo esto = 1 + x
Pre incremento o pre decremento
--X prefijo esto = 1 - x
Ejemplo:
#include <stdio.h>
Main ()
{
Int x, y;
x=y=9;
printf(“el valor de x es %d”, x++); 9; x= 10 pos incremento, 1º muestra y luego aumenta
prinft(“el valor de y es %d”, ++y); y=10; 10 pre incremento, 1º aumenta y luego muestra
}
E. OPERADORES DE ASIGNACIÓN
Se utiliza para asignar la expresión de la derecha de la variable. El símbolo es el “=”. Se puede aplicar a varias variables.
Por ejemplo x = y = z = 2 las tres variables pasan a valer 2.
Las asignaciones se evalúan de derecha a izquierda y hay una determinada forma de representar determinadas asignaciones, que son:
o X + = Y; x = x + y;
o X - = Y; x = x – y;
o X * = Y; x = x * y;
o X / = Y; x = x / y;
o X % = Y; x = x % y
A esto se le llama sobrecarga de la operación a realizar por ejemplo, sobrecarga de multiplicación.
Traducir este otro:
F. OPERADORES Y EXPRESIONES
Ejemplo:
#include <stdio.h>
Main()
{
Char x= “A”; /* en binario x = 01000001 */
Char y =”Z”; /* en binario y = 01111010 */
Char z;
Int i = 14550; /* en binario i= 00000000000000000011100011010110
z = x&y; /* el resultado es z = 01000000 */
printf (“z = %c \ n”, z); /* imprime z= @;
z = x/y; /* z= 01111011 */
printf (“z = %c\n” z) /* imprime z = { */
z = x*y; /* z=00111011 */
printf (“z=%c\n”, z) /* imprime x = ; */
z = x >>1; /* z = 00100000 */
printf (“z = %c\n”, z) /* imprime z = no hay símbolo definido */
z= *i; /* z = 1111111111111111 11 */
printf )”z=%d\n”, z); /* imprime z = -14551 */
G. OPERADOR CONDICIONAL
Es un operador ternario con la siguiente sintaxis:
- Expresión 1 ? expresión 2: expresión 3
este operador evalúa la expresión 2 o la expresión 3 dependiendo de la evaluación de la expresión 1.
En otras palabras, evalúa la expresión 1, si es verdadera ejecuta la expresión 2 y en caso contrario la expresión 3.
Ejemplo:
Nota = (teoría > = 5) ¿ teoría + practica : 0;
Si teoría es >=5, nota = teoría + practica. Si no, nota = 0
Todo esto equivale a una sentencia de control de flujo.
H. SENTENCIAS DE CONTROL
Una sentencia es una instrucción completa que el ordenador es capaz de entender. En c hay 5 tipos:
o Declaración: Se utilizan para establecer nombres y tipos de las variables
Ej: int valor;
char carácter;
o Asignación: Se utilizan para asignar valor a las variables utilizando un operador de asignación
Ej: valor = 5;
char carácter;
o Función: Este tipo de sentencias son llamadas a una función que realiza alguna tarea.
Ej: printf (“es un ejemplo\n”);
o Control: Estas sentencias permiten controlar el flujo de ejercicios del programa.
Ej: While (valor>1)
valor ++;
o Nulas: No realizan ninguna operación.
I. OPERADORES DE MANEJO DE BITS
El “C”, como vimos en el tema 1, puede manipular a bajo nivel de memoria y para ello necesita operadores a nivel de bits que permitan manipular las variables a nivel de bit.
Estos son aplicables a todas las variables int, short, long y char y no a float y doublé.
Los operadores son:
o & Y lógico (AND)
o | O lógico (OR)
o ^ O exclusivo (XOR)
o << desplazamiento a la izquierda. Se rellenan 0 a la derecha
o >> desplazamiento a la derecha. Se rellenan 0 a la izquierda
o ~ complemento a 1