SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Programación 3
Tipos básicos de datos en C
Angel Vázquez-Patiño
angel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la Computación
Universidad de Cuenca
17 de abril de 2017
17/04/17 Angel Vázquez-Patiño 2/52
Objetivos
1. Conocer los tipos básicos de datos en C
2. Conocer cómo se manejan constantes en C
3. Conocer los principales operadores en C
4. Usar funciones/librerías predefinidas de C
17/04/17 Angel Vázquez-Patiño 3/52
Contenido
Tipos básicos de datos
Manejo de constantes
Operadores unarios
Prefix y postfix
Datos lógicos
Caracteres
Librería <math.h>
Otras funciones
17/04/17 Angel Vázquez-Patiño 4/52
Tipos básicos de datos
Statically-typed
● Todas las variables deben primero ser
declaradas antes de ser usadas. Se debe
especificar el tipo de la variable y el nombre:
int miVariable = 1;
● El tipo de dato de una variable determina el
valor que esta puede contener, además indica
las operaciones que se pueden hacer con/en
esta
¿Cómo se debe nombrar una variable?
17/04/17 Angel Vázquez-Patiño 5/52
Tipos básicos de datos
Gustedt,2017
17/04/17 Angel Vázquez-Patiño 6/52
Tipos básicos de datos
Eficiencia
● Los datos enteros ocupan menos memoria que
los datos reales
● Las operaciones entre datos enteros suelen ser
mucho más rápidas (¿Y con los CPUs
actuales?)
17/04/17 Angel Vázquez-Patiño 7/52
Manejo de constantes
17/04/17 Angel Vázquez-Patiño 8/52
Manejo de constantes
Constante
● Variable que mantiene un valor inmutable a lo
largo de toda la vida del programa
Definición
#define NOMBRE valor
#define PI 3.14
#define TAMANIO 100
#define CARACTER 'u'
17/04/17 Angel Vázquez-Patiño 9/52
Manejo de constantes
//Inclusión de cabeceras
#include <stdio.h>
//Definición de constantes. No se termina con ;
#define CONSTANTE1 16
#define CONSTANTE2 20
void main()
{
//Declaración de variables
int variable1=123, variable2=456;
char caracter1='a';
float f;
}
17/04/17 Angel Vázquez-Patiño 10/52
Manejo de constantes
#include <stdio.h>
#define D_SEM 7
#define D_LAB 5
int main()
{
printf("Días de la semana: %dn", D_SEM);
printf("Días laborables: %dn", D_LAB);
return 0;
}
17/04/17 Angel Vázquez-Patiño 11/52
Operadores unarios
17/04/17 Angel Vázquez-Patiño 12/52
Operadores unarios
Definición
● Requieren sólo un operando
17/04/17 Angel Vázquez-Patiño 13/52
Operadores unarios
Operador Descripción
+ operador unario más; indica un valor
positivo (números son positivos sin el
operador)
- operador unario menos; niega una
expresión
++ operador de incremento; incrementa un
valor en 1
-- operador de decremento; decrementa
un valor en 1
! operador lógico de complemento;
invierte un valor booleano
17/04/17 Angel Vázquez-Patiño 14/52
Operadores unarios
#include <stdio.h>
int main()
{
int r = +1;
// r contiene 1
printf("%dn", r);
r--;
// r contiene 0
printf("%dn", r);
r++;
//r contiene 1
printf("%dn", r);
r = -r;
// r contiene -1
printf("%dn", r);
_Bool exitoso = 0;
// falso
printf("%dn", exitoso);
printf(exitoso?"Truen":"Falsen");
// true
printf("%dn", !exitoso);
printf(!exitoso?"True":"False");
}
17/04/17 Angel Vázquez-Patiño 15/52
Operadores unarios
Prefix y postfix
● Los operadores de incremento y decremento
pueden ser aplicados antes (prefix) o después
(postfix) del operando. Ambas versiones tienen
el mismo resultado final; sin embargo, por
ejemplo, ++res es evaluado con el valor
incrementado y res++ con el valor original
17/04/17 Angel Vázquez-Patiño 16/52
Operadores unarios
¡Importante!
Si se usa el incremento o decremento en una
operación simple, no importa la versión usada.
Pero, puede haber una diferencia significativa en
una expresión más larga
17/04/17 Angel Vázquez-Patiño 17/52
Operadores unarios
#include <stdio.h>
int main()
{
int i = 3;
i++;
printf("%dn", i); // 4
++i;
printf("%dn", i); // 5
printf("%dn", ++i); // 6
printf("%dn", i++); // 6
printf("%dn", i); // 7
}
17/04/17 Angel Vázquez-Patiño 18/52
Precedencia de operadores
Operador Operación Orden de evaluación
op++ op-- posfijos Primero
++op --op
+op -op !
unarios Segundo
* Multiplicación Tercero. Si hay varios
operadores de este tipo,
son evaluados de izq a der
/ División
% Residuo
+ Adición Cuarto. Si hay varios
operadores de este tipo,
son evaluados de izq a der
- Sustracción
< > <= >= Relacional Quinto
= Asignación Evaluado al final
17/04/17 Angel Vázquez-Patiño 19/52
Operadores unarios
1) int x = -3 + 2 * 4 – 12 / 6 + 5 ;
2) int y = -3 + 2 * (14 – 2) / 6 + 5 ;
3) int i = 10; int n = i++ % 5; printf(n); n =
++i % 5; printf(n);
4) X = 7 % 2;
5) X = 8 % 3;
6) int x=5; y=5; int z; z=x++;
7) z=++y;
8) int i = 1; printf(i); printf(++i);
printf(i);
9) i = 1; printf(i); printf(i++); printf(i);
17/04/17 Angel Vázquez-Patiño 20/52
Datos lógicos
17/04/17 Angel Vázquez-Patiño 21/52
Datos lógicos
● True o False
● 1 o 0
Operadores lógicos
● And (&&)
● Or (||)
● Not (!)
17/04/17 Angel Vázquez-Patiño 22/52
Datos lógicos
Declaración, asignación e impresión
_Bool boolVar;
boolVar = 1;
// boolVar: True
printf("boolVar: %dn", boolVar);
// boolVar: False
printf("boolVar: %dn", !boolVar);
17/04/17 Angel Vázquez-Patiño 23/52
Datos lógicos
Operador ternario
_Bool boolVar;
boolVar = 1;
printf(boolVar ? "True":"False");
printf(!boolVar ? "True":"False");
17/04/17 Angel Vázquez-Patiño 24/52
Datos lógicos
Operadores de comparación
● Evaluación de datos
● Devuelve valor lógico
_Bool boolVar;
boolVar = 2<3;
printf("¿2<3?: %dn", boolVar);
printf("¿4=5?: %dn", 4==5);
17/04/17 Angel Vázquez-Patiño 25/52
Datos lógicos
Operador algebraico Operador C Condición C de
ejemplo
Operadores de igualdad
= == x == y
≠ != x != y
Operadores relacionales
> > x > y
< < x < y
≥ >= x >= y
≤ <= x <= y
17/04/17 Angel Vázquez-Patiño 26/52
Datos lógicos
Operador Asociatividad Tipo
* / % Izquierda a derecha Multiplicativo
+ - Izquierda a derecha Aditivo
< <= > >= Izquierda a derecha Relacional
== != Izquierda a derecha Igualdad
= Derecha a izquierda Asignación
Precedencia y asociatividad de los operadores
17/04/17 Angel Vázquez-Patiño 27/52
Datos lógicos
Operador Asociatividad
( )
not Derecha
and Izquierda
xor Izquierda
or Izquierda
Precedencia y asociatividad de los operadores
17/04/17 Angel Vázquez-Patiño 28/52
Datos lógicos
Ejemplo
● not p se evalúa p y después se aplica la
negación
● p and q se evalúa p y después se evalúa p and
q
● not p or q se evalúa (not p) or q ya que el
operador not tiene más prioridad que el
operador or
17/04/17 Angel Vázquez-Patiño 29/52
Datos lógicos
Con a=5, b=e, c=-12
1) a > 3
2) b < c
3) b != c
4) a == 3
5) a * b == -30
6) c/b < a
7) (a+b==8) && (a-b==2)
8) a > 3 && b > 3 && c < 3
1) True
2) False
3) True
4) False
5) False
6) True
7) True
8) False
17/04/17 Angel Vázquez-Patiño 30/52
Caracteres
17/04/17 Angel Vázquez-Patiño 31/52
Caracteres
American Standard Code for Information Interchange
● Un tipo de dato caracter contiene sólo un elemento
como su valor. Elementos establecidos y
normalizados por el estándar llamado ASCII, el cual
establece cuáles son los elementos y el orden de
precedencia entre los mismos. Los elementos son
las letras (mayúsculas y minúsculas), números (0-9)
y símbolos especiales (e.g., !, @, #, $, %)
disponibles en el teclado de la computadora y
algunos otros elementos gráficos. El código ASCII no
es único, pero es el más utilizado internacionalmente
17/04/17 Angel Vázquez-Patiño 32/52
17/04/17 Angel Vázquez-Patiño 33/52
Caracteres
Declaración, asignación e impresión
char ch;
ch = 'a';
printf("Caracter:t %cn", ch);
printf("ASCII:tt %dn", ch);
printf("ASCII + 2:t %dn", ch+2);
printf("Caracter:t %cn", ch+2);
17/04/17 Angel Vázquez-Patiño 34/52
Caracteres
Ejercicio
● Imprimir en pantalla todos los caracteres ASCII
17/04/17 Angel Vázquez-Patiño 35/52
Caracteres
Lectura de un carácter desde teclado
char ch1, ch2;
printf("Caracter 1: ");
scanf("%c", &ch1);
printf("Caracter: %cn", ch1);
printf("Caracter 2: ");
ch2 = getchar();
printf("Caracter: %cn", ch2);
17/04/17 Angel Vázquez-Patiño 36/52
Type casting
17/04/17 Angel Vázquez-Patiño 37/52
Type casting
Type casting
● Una forma de convertir un tipo de dato a otro
Cast operator
(type_name) expression
17/04/17 Angel Vázquez-Patiño 38/52
Type casting
Cast operator
int sum = 17, count = 5;
double mean;
mean = (double) sum / count;
printf("Media: %fn", mean);
17/04/17 Angel Vázquez-Patiño 39/52
Type casting
Promoción entera
● Proceso mediante el cual los valores enteros
“más pequeños” que int o unsigned int son
convertidos a int o unsigned int
int i = 17;
char c = 'c'; // valor ascii: 99
int sum = i + c;
printf("Suma: %dn", sum);
17/04/17 Angel Vázquez-Patiño 40/52
Type casting
Conversiones aritméticas usuales
● Son implícitamente realizadas para convertir
sus valores a un tipo común
● El compilador primero realiza la promoción
entera
● Si los operandos aún tienen diferentes tipos,
son convertidos al tipo que aparece en lo más
alto de la siguiente jerarquía
17/04/17 Angel Vázquez-Patiño 41/52
Type casting
● Las conversiones
aritméticas usuales
no son realizadas por
los operadores de
asignación ni para los
operadores lógicos
&& y ||
long double
double
float
unsigned long long
long long
unsigned long
long
unsigned int
int
17/04/17 Angel Vázquez-Patiño 42/52
Type casting
int i = 17;
char c = 'c'; // valor ascii: 99
float sum = i + c;
printf("Suma: %fn", sum);
● C primero convierte c a int pero como el valor
final es doble, se aplica la conversión aritmética
usual y el compilador convierte i y c en float
y los añade obteniendo un resultado float
17/04/17 Angel Vázquez-Patiño 43/52
Librería <math.h>
17/04/17 Angel Vázquez-Patiño 44/52
Librería <math.h>
● double acos(double x): arco coseno de x
en radianes
● double asin(double x)
● double atan(double x)
● double atan2(double y, double x):
arco tangente en radianes de y/x basado en los
signos de ambos valores para determinar el
cuadrante correcto
● double exp(double x): ex
17/04/17 Angel Vázquez-Patiño 45/52
Librería <math.h>
● double log(double x): logaritmo natural
(base e) de x
● double log10(double x)
● double pow(double x, double y)
● double sqrt(double x)
● double ceil(double x): el valor entero
más pequeño mayor o igual a x
● double fabs(double x): ABS. Para
enteros: int abs(int x), <stdlib.h>
17/04/17 Angel Vázquez-Patiño 46/52
Librería <math.h>
● double floor(double x): el valor más
grande menor o igual a x
● double fmod(double x, double y):
residuo de x/y
● double round(double x)
● float roundf(float x)
● long double roundl(long double x)
● Constante pi: M_PI
● Más: https://goo.gl/eEnRiY
17/04/17 Angel Vázquez-Patiño 47/52
Otras funciones
17/04/17 Angel Vázquez-Patiño 48/52
Otras funciones
Números aleatorios
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL));
printf("Aleatorio[0,6]: %dn", rand()%7);
}
17/04/17 Angel Vázquez-Patiño 49/52
Conceptos y términos importantes
17/04/17 Angel Vázquez-Patiño 50/52
Conceptos y términos importantes
● Librerías
● Type casting
● Tipos básicos
● Operadores
● Reglas de precedencia
17/04/17 Angel Vázquez-Patiño 51/52
Referencia
● Gustedt, J., 2017. Modern C. France.
● C Programming Operators,
https://goo.gl/7wHPax
● C - Type Casting, https://goo.gl/VOh2pV
● Más funciones:
http://www.tutorialspoint.com/c_standard_library
/
17/04/17 Angel Vázquez-Patiño 52/52
Preguntas
Programación 1: tipos básicos de datos en C

Weitere ähnliche Inhalte

Was ist angesagt?

210510145843-INDICE CROMATICO DE UN GRAFO.pptx
210510145843-INDICE CROMATICO DE UN GRAFO.pptx210510145843-INDICE CROMATICO DE UN GRAFO.pptx
210510145843-INDICE CROMATICO DE UN GRAFO.pptxDANIELSIMEONPEREZCRU
 
Diferenciación e integración numérica
Diferenciación e integración numéricaDiferenciación e integración numérica
Diferenciación e integración numéricaArmany1
 
Ejercicios pseudocodigo pse_int_regf
Ejercicios pseudocodigo pse_int_regfEjercicios pseudocodigo pse_int_regf
Ejercicios pseudocodigo pse_int_regfMichael Corvent
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoEnAutomático
 
Clasificacion Lenguajes de Programacion por Su Generacion
Clasificacion Lenguajes de Programacion por Su GeneracionClasificacion Lenguajes de Programacion por Su Generacion
Clasificacion Lenguajes de Programacion por Su GeneracionShirlid .n
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en javaaleja09_40
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONSol López
 

Was ist angesagt? (20)

8 tipos variables constantes
8 tipos variables constantes8 tipos variables constantes
8 tipos variables constantes
 
210510145843-INDICE CROMATICO DE UN GRAFO.pptx
210510145843-INDICE CROMATICO DE UN GRAFO.pptx210510145843-INDICE CROMATICO DE UN GRAFO.pptx
210510145843-INDICE CROMATICO DE UN GRAFO.pptx
 
Clases y objetos en java
Clases y objetos en javaClases y objetos en java
Clases y objetos en java
 
4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum
 
Pseint
PseintPseint
Pseint
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Diferenciación e integración numérica
Diferenciación e integración numéricaDiferenciación e integración numérica
Diferenciación e integración numérica
 
Ejercicios pseudocodigo pse_int_regf
Ejercicios pseudocodigo pse_int_regfEjercicios pseudocodigo pse_int_regf
Ejercicios pseudocodigo pse_int_regf
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Unidad 2 Sintaxis en java
Unidad 2 Sintaxis en javaUnidad 2 Sintaxis en java
Unidad 2 Sintaxis en java
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Clasificacion Lenguajes de Programacion por Su Generacion
Clasificacion Lenguajes de Programacion por Su GeneracionClasificacion Lenguajes de Programacion por Su Generacion
Clasificacion Lenguajes de Programacion por Su Generacion
 
Circuitos logicos
Circuitos logicosCircuitos logicos
Circuitos logicos
 
11 Funciones
11 Funciones11 Funciones
11 Funciones
 
Gs3055 manual
Gs3055 manualGs3055 manual
Gs3055 manual
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCIONLENGUAJE DE PROGRAMACION C++ INTRODUCCION
LENGUAJE DE PROGRAMACION C++ INTRODUCCION
 

Ähnlich wie Programación 1: tipos básicos de datos en C

Ähnlich wie Programación 1: tipos básicos de datos en C (20)

Programación 1: introducción a C
Programación 1: introducción a CProgramación 1: introducción a C
Programación 1: introducción a C
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
1.tipos de datos
1.tipos de datos1.tipos de datos
1.tipos de datos
 
Tipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.pptTipos de Datos y su tipologia en contexto.ppt
Tipos de Datos y su tipologia en contexto.ppt
 
Diapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdfDiapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdf
 
Elementosbasicosc
Elementosbasicosc Elementosbasicosc
Elementosbasicosc
 
Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014Elementos basicos cpp_oto2014
Elementos basicos cpp_oto2014
 
Unidad i
Unidad iUnidad i
Unidad i
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 
Unidad i
Unidad iUnidad i
Unidad i
 
1.Tipos de Datos.ppt
1.Tipos de Datos.ppt1.Tipos de Datos.ppt
1.Tipos de Datos.ppt
 
Guía no. 1 grado 7
Guía no. 1 grado 7Guía no. 1 grado 7
Guía no. 1 grado 7
 
Guía no. 1 grado 7
Guía no. 1 grado 7Guía no. 1 grado 7
Guía no. 1 grado 7
 
Guía no. 1 grado 7
Guía no. 1 grado 7Guía no. 1 grado 7
Guía no. 1 grado 7
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
00 Tipos de Datos.ppt
00 Tipos de Datos.ppt00 Tipos de Datos.ppt
00 Tipos de Datos.ppt
 

Mehr von Angel Vázquez Patiño

Valores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasAngel Vázquez Patiño
 
Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Angel Vázquez Patiño
 
Diferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorAngel Vázquez Patiño
 
Puntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealPuntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealAngel Vázquez Patiño
 
Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesAngel Vázquez Patiño
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesAngel Vázquez Patiño
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer ordenAngel Vázquez Patiño
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónAngel Vázquez Patiño
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
 

Mehr von Angel Vázquez Patiño (20)

Funciones, límites y continuidad
Funciones, límites y continuidadFunciones, límites y continuidad
Funciones, límites y continuidad
 
Integral definida e integración
Integral definida e integraciónIntegral definida e integración
Integral definida e integración
 
Valores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficasValores extremos y comportamiento de las funciones y de sus gráficas
Valores extremos y comportamiento de las funciones y de sus gráficas
 
Derivada y diferenciación
Derivada y diferenciaciónDerivada y diferenciación
Derivada y diferenciación
 
Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...Causality and climate networks approaches for evaluating climate models, trac...
Causality and climate networks approaches for evaluating climate models, trac...
 
Diferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calorDiferencias finitas y Ecuación de calor
Diferencias finitas y Ecuación de calor
 
Puntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO linealPuntos ordinarios y singularidades de una EDO lineal
Puntos ordinarios y singularidades de una EDO lineal
 
La ecuación diferencial de Legendre
La ecuación diferencial de LegendreLa ecuación diferencial de Legendre
La ecuación diferencial de Legendre
 
Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)
 
Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante series
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuaciones
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer orden
 
Sistemas de EDOs
Sistemas de EDOsSistemas de EDOs
Sistemas de EDOs
 
Método de la secante
Método de la secanteMétodo de la secante
Método de la secante
 
Iteraciones de punto fijo
Iteraciones de punto fijoIteraciones de punto fijo
Iteraciones de punto fijo
 
Objetos y variables en Python
Objetos y variables en PythonObjetos y variables en Python
Objetos y variables en Python
 
Definiciones de Error
Definiciones de ErrorDefiniciones de Error
Definiciones de Error
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y Programación
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
 

Kürzlich hochgeladen

PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOwillanpedrazaperez
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.pptjacnuevarisaralda22
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxmiguelmateos18
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5juanjoelaytegonzales2
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfCristinCrdova1
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheElisaLen4
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdfsmendozap1
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internamengual57
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptNombre Apellidos
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosRamiroCruzSalazar
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoluishumbertoalvarezv1
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 

Kürzlich hochgeladen (20)

PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptx
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 

Programación 1: tipos básicos de datos en C

  • 1. Programación 3 Tipos básicos de datos en C Angel Vázquez-Patiño angel.vazquezp@ucuenca.edu.ec Departamento de Ciencias de la Computación Universidad de Cuenca 17 de abril de 2017
  • 2. 17/04/17 Angel Vázquez-Patiño 2/52 Objetivos 1. Conocer los tipos básicos de datos en C 2. Conocer cómo se manejan constantes en C 3. Conocer los principales operadores en C 4. Usar funciones/librerías predefinidas de C
  • 3. 17/04/17 Angel Vázquez-Patiño 3/52 Contenido Tipos básicos de datos Manejo de constantes Operadores unarios Prefix y postfix Datos lógicos Caracteres Librería <math.h> Otras funciones
  • 4. 17/04/17 Angel Vázquez-Patiño 4/52 Tipos básicos de datos Statically-typed ● Todas las variables deben primero ser declaradas antes de ser usadas. Se debe especificar el tipo de la variable y el nombre: int miVariable = 1; ● El tipo de dato de una variable determina el valor que esta puede contener, además indica las operaciones que se pueden hacer con/en esta ¿Cómo se debe nombrar una variable?
  • 5. 17/04/17 Angel Vázquez-Patiño 5/52 Tipos básicos de datos Gustedt,2017
  • 6. 17/04/17 Angel Vázquez-Patiño 6/52 Tipos básicos de datos Eficiencia ● Los datos enteros ocupan menos memoria que los datos reales ● Las operaciones entre datos enteros suelen ser mucho más rápidas (¿Y con los CPUs actuales?)
  • 7. 17/04/17 Angel Vázquez-Patiño 7/52 Manejo de constantes
  • 8. 17/04/17 Angel Vázquez-Patiño 8/52 Manejo de constantes Constante ● Variable que mantiene un valor inmutable a lo largo de toda la vida del programa Definición #define NOMBRE valor #define PI 3.14 #define TAMANIO 100 #define CARACTER 'u'
  • 9. 17/04/17 Angel Vázquez-Patiño 9/52 Manejo de constantes //Inclusión de cabeceras #include <stdio.h> //Definición de constantes. No se termina con ; #define CONSTANTE1 16 #define CONSTANTE2 20 void main() { //Declaración de variables int variable1=123, variable2=456; char caracter1='a'; float f; }
  • 10. 17/04/17 Angel Vázquez-Patiño 10/52 Manejo de constantes #include <stdio.h> #define D_SEM 7 #define D_LAB 5 int main() { printf("Días de la semana: %dn", D_SEM); printf("Días laborables: %dn", D_LAB); return 0; }
  • 11. 17/04/17 Angel Vázquez-Patiño 11/52 Operadores unarios
  • 12. 17/04/17 Angel Vázquez-Patiño 12/52 Operadores unarios Definición ● Requieren sólo un operando
  • 13. 17/04/17 Angel Vázquez-Patiño 13/52 Operadores unarios Operador Descripción + operador unario más; indica un valor positivo (números son positivos sin el operador) - operador unario menos; niega una expresión ++ operador de incremento; incrementa un valor en 1 -- operador de decremento; decrementa un valor en 1 ! operador lógico de complemento; invierte un valor booleano
  • 14. 17/04/17 Angel Vázquez-Patiño 14/52 Operadores unarios #include <stdio.h> int main() { int r = +1; // r contiene 1 printf("%dn", r); r--; // r contiene 0 printf("%dn", r); r++; //r contiene 1 printf("%dn", r); r = -r; // r contiene -1 printf("%dn", r); _Bool exitoso = 0; // falso printf("%dn", exitoso); printf(exitoso?"Truen":"Falsen"); // true printf("%dn", !exitoso); printf(!exitoso?"True":"False"); }
  • 15. 17/04/17 Angel Vázquez-Patiño 15/52 Operadores unarios Prefix y postfix ● Los operadores de incremento y decremento pueden ser aplicados antes (prefix) o después (postfix) del operando. Ambas versiones tienen el mismo resultado final; sin embargo, por ejemplo, ++res es evaluado con el valor incrementado y res++ con el valor original
  • 16. 17/04/17 Angel Vázquez-Patiño 16/52 Operadores unarios ¡Importante! Si se usa el incremento o decremento en una operación simple, no importa la versión usada. Pero, puede haber una diferencia significativa en una expresión más larga
  • 17. 17/04/17 Angel Vázquez-Patiño 17/52 Operadores unarios #include <stdio.h> int main() { int i = 3; i++; printf("%dn", i); // 4 ++i; printf("%dn", i); // 5 printf("%dn", ++i); // 6 printf("%dn", i++); // 6 printf("%dn", i); // 7 }
  • 18. 17/04/17 Angel Vázquez-Patiño 18/52 Precedencia de operadores Operador Operación Orden de evaluación op++ op-- posfijos Primero ++op --op +op -op ! unarios Segundo * Multiplicación Tercero. Si hay varios operadores de este tipo, son evaluados de izq a der / División % Residuo + Adición Cuarto. Si hay varios operadores de este tipo, son evaluados de izq a der - Sustracción < > <= >= Relacional Quinto = Asignación Evaluado al final
  • 19. 17/04/17 Angel Vázquez-Patiño 19/52 Operadores unarios 1) int x = -3 + 2 * 4 – 12 / 6 + 5 ; 2) int y = -3 + 2 * (14 – 2) / 6 + 5 ; 3) int i = 10; int n = i++ % 5; printf(n); n = ++i % 5; printf(n); 4) X = 7 % 2; 5) X = 8 % 3; 6) int x=5; y=5; int z; z=x++; 7) z=++y; 8) int i = 1; printf(i); printf(++i); printf(i); 9) i = 1; printf(i); printf(i++); printf(i);
  • 20. 17/04/17 Angel Vázquez-Patiño 20/52 Datos lógicos
  • 21. 17/04/17 Angel Vázquez-Patiño 21/52 Datos lógicos ● True o False ● 1 o 0 Operadores lógicos ● And (&&) ● Or (||) ● Not (!)
  • 22. 17/04/17 Angel Vázquez-Patiño 22/52 Datos lógicos Declaración, asignación e impresión _Bool boolVar; boolVar = 1; // boolVar: True printf("boolVar: %dn", boolVar); // boolVar: False printf("boolVar: %dn", !boolVar);
  • 23. 17/04/17 Angel Vázquez-Patiño 23/52 Datos lógicos Operador ternario _Bool boolVar; boolVar = 1; printf(boolVar ? "True":"False"); printf(!boolVar ? "True":"False");
  • 24. 17/04/17 Angel Vázquez-Patiño 24/52 Datos lógicos Operadores de comparación ● Evaluación de datos ● Devuelve valor lógico _Bool boolVar; boolVar = 2<3; printf("¿2<3?: %dn", boolVar); printf("¿4=5?: %dn", 4==5);
  • 25. 17/04/17 Angel Vázquez-Patiño 25/52 Datos lógicos Operador algebraico Operador C Condición C de ejemplo Operadores de igualdad = == x == y ≠ != x != y Operadores relacionales > > x > y < < x < y ≥ >= x >= y ≤ <= x <= y
  • 26. 17/04/17 Angel Vázquez-Patiño 26/52 Datos lógicos Operador Asociatividad Tipo * / % Izquierda a derecha Multiplicativo + - Izquierda a derecha Aditivo < <= > >= Izquierda a derecha Relacional == != Izquierda a derecha Igualdad = Derecha a izquierda Asignación Precedencia y asociatividad de los operadores
  • 27. 17/04/17 Angel Vázquez-Patiño 27/52 Datos lógicos Operador Asociatividad ( ) not Derecha and Izquierda xor Izquierda or Izquierda Precedencia y asociatividad de los operadores
  • 28. 17/04/17 Angel Vázquez-Patiño 28/52 Datos lógicos Ejemplo ● not p se evalúa p y después se aplica la negación ● p and q se evalúa p y después se evalúa p and q ● not p or q se evalúa (not p) or q ya que el operador not tiene más prioridad que el operador or
  • 29. 17/04/17 Angel Vázquez-Patiño 29/52 Datos lógicos Con a=5, b=e, c=-12 1) a > 3 2) b < c 3) b != c 4) a == 3 5) a * b == -30 6) c/b < a 7) (a+b==8) && (a-b==2) 8) a > 3 && b > 3 && c < 3 1) True 2) False 3) True 4) False 5) False 6) True 7) True 8) False
  • 31. 17/04/17 Angel Vázquez-Patiño 31/52 Caracteres American Standard Code for Information Interchange ● Un tipo de dato caracter contiene sólo un elemento como su valor. Elementos establecidos y normalizados por el estándar llamado ASCII, el cual establece cuáles son los elementos y el orden de precedencia entre los mismos. Los elementos son las letras (mayúsculas y minúsculas), números (0-9) y símbolos especiales (e.g., !, @, #, $, %) disponibles en el teclado de la computadora y algunos otros elementos gráficos. El código ASCII no es único, pero es el más utilizado internacionalmente
  • 33. 17/04/17 Angel Vázquez-Patiño 33/52 Caracteres Declaración, asignación e impresión char ch; ch = 'a'; printf("Caracter:t %cn", ch); printf("ASCII:tt %dn", ch); printf("ASCII + 2:t %dn", ch+2); printf("Caracter:t %cn", ch+2);
  • 34. 17/04/17 Angel Vázquez-Patiño 34/52 Caracteres Ejercicio ● Imprimir en pantalla todos los caracteres ASCII
  • 35. 17/04/17 Angel Vázquez-Patiño 35/52 Caracteres Lectura de un carácter desde teclado char ch1, ch2; printf("Caracter 1: "); scanf("%c", &ch1); printf("Caracter: %cn", ch1); printf("Caracter 2: "); ch2 = getchar(); printf("Caracter: %cn", ch2);
  • 36. 17/04/17 Angel Vázquez-Patiño 36/52 Type casting
  • 37. 17/04/17 Angel Vázquez-Patiño 37/52 Type casting Type casting ● Una forma de convertir un tipo de dato a otro Cast operator (type_name) expression
  • 38. 17/04/17 Angel Vázquez-Patiño 38/52 Type casting Cast operator int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Media: %fn", mean);
  • 39. 17/04/17 Angel Vázquez-Patiño 39/52 Type casting Promoción entera ● Proceso mediante el cual los valores enteros “más pequeños” que int o unsigned int son convertidos a int o unsigned int int i = 17; char c = 'c'; // valor ascii: 99 int sum = i + c; printf("Suma: %dn", sum);
  • 40. 17/04/17 Angel Vázquez-Patiño 40/52 Type casting Conversiones aritméticas usuales ● Son implícitamente realizadas para convertir sus valores a un tipo común ● El compilador primero realiza la promoción entera ● Si los operandos aún tienen diferentes tipos, son convertidos al tipo que aparece en lo más alto de la siguiente jerarquía
  • 41. 17/04/17 Angel Vázquez-Patiño 41/52 Type casting ● Las conversiones aritméticas usuales no son realizadas por los operadores de asignación ni para los operadores lógicos && y || long double double float unsigned long long long long unsigned long long unsigned int int
  • 42. 17/04/17 Angel Vázquez-Patiño 42/52 Type casting int i = 17; char c = 'c'; // valor ascii: 99 float sum = i + c; printf("Suma: %fn", sum); ● C primero convierte c a int pero como el valor final es doble, se aplica la conversión aritmética usual y el compilador convierte i y c en float y los añade obteniendo un resultado float
  • 43. 17/04/17 Angel Vázquez-Patiño 43/52 Librería <math.h>
  • 44. 17/04/17 Angel Vázquez-Patiño 44/52 Librería <math.h> ● double acos(double x): arco coseno de x en radianes ● double asin(double x) ● double atan(double x) ● double atan2(double y, double x): arco tangente en radianes de y/x basado en los signos de ambos valores para determinar el cuadrante correcto ● double exp(double x): ex
  • 45. 17/04/17 Angel Vázquez-Patiño 45/52 Librería <math.h> ● double log(double x): logaritmo natural (base e) de x ● double log10(double x) ● double pow(double x, double y) ● double sqrt(double x) ● double ceil(double x): el valor entero más pequeño mayor o igual a x ● double fabs(double x): ABS. Para enteros: int abs(int x), <stdlib.h>
  • 46. 17/04/17 Angel Vázquez-Patiño 46/52 Librería <math.h> ● double floor(double x): el valor más grande menor o igual a x ● double fmod(double x, double y): residuo de x/y ● double round(double x) ● float roundf(float x) ● long double roundl(long double x) ● Constante pi: M_PI ● Más: https://goo.gl/eEnRiY
  • 47. 17/04/17 Angel Vázquez-Patiño 47/52 Otras funciones
  • 48. 17/04/17 Angel Vázquez-Patiño 48/52 Otras funciones Números aleatorios #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); printf("Aleatorio[0,6]: %dn", rand()%7); }
  • 49. 17/04/17 Angel Vázquez-Patiño 49/52 Conceptos y términos importantes
  • 50. 17/04/17 Angel Vázquez-Patiño 50/52 Conceptos y términos importantes ● Librerías ● Type casting ● Tipos básicos ● Operadores ● Reglas de precedencia
  • 51. 17/04/17 Angel Vázquez-Patiño 51/52 Referencia ● Gustedt, J., 2017. Modern C. France. ● C Programming Operators, https://goo.gl/7wHPax ● C - Type Casting, https://goo.gl/VOh2pV ● Más funciones: http://www.tutorialspoint.com/c_standard_library /