Está en la página 1de 26

Algoritmos y Programación

Lenguaje C
Temas de clase
➢ Elementos de C
Variables
Operadores
Elementos de C

Keywords (o palabras reservadas)

3
Elementos de C

Funciones

Ya vimos

printf(“Hola mundo \n”);

➢ Hay muchas funciones más en la librería (biblioteca) a nuestra


disposición!!

➢ y muchas más construiremos nosotros!

4
Elementos de C

Directivas al compilador (o pre-proceso)

Ya vimos:
#include <stdio.h>

Usaremos mucho #define

Ej: #define MAX1 123

➢ No forman parte del código!!!


➢ Son indicaciones al compilador

5
Elementos de C

Variables, valores, operadores

float resultado, num1;

…..
resultado = 5 + sqrt(num1);
...

6
Elementos de C

Comentarios

Dos formas:

/* tantas lineas como querramos


para hacer nuestro comentarios */

// al final de una línea

7
Elementos de C

Estructuras de control

if( a > b)
{
printf(“%d is mayor que %d\n”,a,b);
}
else
{
printf(“%d no es mayor que %d\n”,a,b);
}

8
Variables

Las variables pueden cambiar su valor durante el programa, pero no el tipo.


Para usar variables, lo primero que debemos hacer es definir el tipo.

Los tipos básicos son;

➢ char (caracter o también entero de 8 bits)


➢ short (entero corto) (2 bytes)
➢ int (entero) (2 o 4 bytes) (4 en nuestro caso)
➢ long (entero grande) (4 bytes)
➢ float (punto flotante simple precisión)
➢ double (punto flotante doble precisión)

Podemos usar el modificador unsigned en la declaración de char, short, int y


long, para declararlo como variable entera sin signo

9
Variables

Ejemplo de declaraciones:

main()
{
int a,b;
unsigned int j;
float f;
double x, y;
char c;
unsigned char d;

10
Rangos para cada tipo

11
12
Operadores

➢ Asignación
➢ Aritméticos
➢ Relacionales
➢ Lógicos
➢ Bitwise o bit a bit

13
Operadores

Operador de asignación

Asigna a una variable –es decir, almacena en la zona de memoria


correspondiente a dicha variable– el resultado de una expresión (o el valor de
otra variable o una constante, etc)

nombrevariable = expresión ;

Ej: a = b;
x= (y+1) * 35;
c= 12;
a= a +1;

➢ No confundir con el operador de igualdad!

14
Conversión de tipos de datos

Cuando mezclamos tipos de datos en asignaciones, el compilador


convierte el tipo de dato de la derecha al del destino (izquierda)

main()
{
int i;
char c;
float f;

ch = i; //sólo copia los 8 bits menos significativos


x = f; //sólo copia la parte entera (si entra claro!!)
f = c; //convierte el entero de 8 bits en c a float
f = i; //convierte el entero de 32bits a float
}

15
16
Operadores

➢ Aritméticos

+ Suma
- Resta
* Multiplicación
/ División
% Resto

-- Decremento
++ Incremento

17
Operadores

➢ % Resto o resto de una división entera

Ej: 17%8 es 1, 23%4 es 3

➢ Incremento suma 1 a una variable, decremento resta 1


Ej: a++ le suma 1 a la variable a
b-- le resta 1 a la variable b

➢ Obvervar que:
+-*/y% requieren dos operandos

++ y -- requieren un operando

18
Operadores

++ y -- pueden escribirse antes o después del nombre de la


variable, a la que afectan.

Si preceden a la variable, ella es incrementada antes de que su valor sea


utilizado en la expresión en la que aparece. Si es la variable la que
precede al operador, la variable es incrementada después de ser utilizada
en la expresión
Ej:
i = 2;
j = 2;
m = i++; // resultará en m=2 e i=3
n = ++j; // resultará en n=3 e j=3

19
Operadores

➢ Relacionales

== Igual a:
> Mayor que
< Menor que
>= Mayor o igual a
<= Menor o igual a
!= Distinto que

➢ Se aplican sobre dos operandos o en general dos expresiones.


(expresión1 op expresión 2)

20
Operadores

➢ Relacionales

➢ Si la condición representada por el operador relacional se cumple, el


resultado es 1; si la condición no se cumple, el resultado es 0.
Ej:
(2==0) vale 0, ya que la condición no se cumple.
(2>=0) vale 1, ya que 2 es mayor que 0.
(1 != 2) vale 1, ya que 1 es distinto que 2.
(a != a) vale 0, ya que la var a no es distinta de si misma.

Observar que estamos considerando 0 como indicación de falso, y 1 como


indicación de verdadero. (En realidad, si no es 0 se considera verdadero!).

21
Operadores

➢ Lógicos

&& Operador Y
|| Operador O
! Negación

➢ && y || se aplican sobre dos expresiones.


(expresión1 op expresión 2)
➢ la negación sobre una sola expresión

22
Operadores

➢ Combinando los operadores lógicos con los relacionales podemos obtener


expresiones complejas.

Ej:
(2==1) || (-1==-1) // el resultado es 1
(2==2) && (3==-1) // el resultado es 0
((2==2) && (3==3)) || (4==0) // el resultado es 1
((6==6) || (8==0)) && ((5==5) && (3==2)) // el resultado es 0

23
Operadores

➢ Bitwise o bit a bit

& Operador Y (AND)


| Operador O (OR)
~ Operador Complemento lógico (Not)
^ Operador O exclusivo (XOR)
<< Desplazamiento a izq
>> Desplazamiento a der

➢ Sólo pueden utilizarse con variables enteras (ej char)


➢ Nos permiten trabajar a nivel de bit

24
Operadores

➢ Bitwise o bit a bit


Ej
char a,b,c;

a=0x41;
b=0x61;
a= a | 0x20; // a= 0x61
b= b & 0xDF; // b=0x41
c= a^b; // c=0x20
c= ~c; // c=0xDF
a= a << 1; // a= 0xC2
b= b >> 1; // b=0x20

25
Operadores - Precedencia

26

También podría gustarte