Computación - galia.fc.uaslp.mxgalia.fc.uaslp.mx/~rmariela/computacion/unidad1.pdf · 1.4 Tipos de...
Transcript of Computación - galia.fc.uaslp.mxgalia.fc.uaslp.mx/~rmariela/computacion/unidad1.pdf · 1.4 Tipos de...
1/21/2009
1
Computación
Departamento de Electronica
Facultad de Ciencias
Programacion Basica
� Profesor:Dr. Jose Luis Tecpanecatl-Xihuitl
� Horario: 7:00 – 8:00 pm� Lunes – Viernes� Salon 24� E-mail : [email protected]
� Asesorias:
1/21/2009
2
Contenido
� Unidad 1. Conceptos Basicos de Programacion1.1 Algoritmos y pseudo-codigo1.2 Estructura del lenguaje C1.3 Compilacion y Ejecucion de un programa1.4 Tipos de datos, variables y el operador de asignacion1.5 Escritura de expresiones aritmeticas
1.5.1 Operadores aritmeticos1.5.2 Prioridad de Evaluacion
1.6 Instrucciones de Entrada y Salida1.7 Libreria matematica Math.h1.8 Ejemplos de Programas
� Unidad 2. Toma de Decisiones2.1 Escritura de expresiones booleanas
2.1.1 Operadores relacionales2.1.2 Conectores logicos
2.2 Estructuras de Seleccion IF2.2.1 IF e IF- ELSE2.2.2 IF escalonado2.2.3 IF anidado
2.3 Estructura de seleccion switch2.4 El operador ?2.5 Ejemplos de Programas
Contenido
� Unidad 3. Estructuras de Repeticion3.1 Estructuras de repeticion FOR
3.2 Estructuras de repeticion WHILE
3.3 Estructuras de repeticion DO-WHILE
3.4 Ciclos anidados3.5 Enunciados Break y Continue
3.6 Ejemplos de Programas
� Unidad 4. Arreglos4.1 Declaración y asignación de almacenamiento a arreglos.4.2 Operaciones con Arreglos unidimensionales
4.2.1. Recorrido de un arreglo4.2.2. Búsqueda4.2.3. Ordenación4.2.4. Inserción
4.3 Arreglos bidimensionales y ejemplos de aplicación4.3.1. Recorrido de un arreglo4.3.2. Búsqueda
4.4 Ejemplos de programas.
1/21/2009
3
Contenido
� Unidad 5. Cadenas de Caracteres5.1 Concepto, declaracion y asignacion de almacenamiento5.2 Operaciones con cadenas de caracteres: Libreria String.h5.3 Ejemplos de aplicacion de cadenas de caracteres5.4 Ejemplos de programas
� Referencias:� Fundamentos de Programacion, Piensa en C
Osvaldo CairoPearson Hall, 2006
� El Lenguaje de Programacion C, Brian W. Kernighan, Dennis M. Ritchie.Prentice Hall
� C How to Program, Deitel & DeitelPrentice Hall
Evaluacion
� 3 Examenes parciales (cada 2 unidades)� Tareas (Proyectos)� 80% Examenes parciales� 20% Tareas (Proyectos)� Asistencia
� Exposicion en el salon de clases� 3 Sesiones de Laboratorio.
1/21/2009
4
Politica del Curso
� No se tolerara copiar� Compañeros de clase� Codigo de Internet� Codigo de Libros� Telefono� (Usar Referencia)
� Las Tareas (projectos) seran individuales
Unidad 1.
� Porque aprender a programar?� Forma metodica de resolver problemas� Herramienta utilizada para resolver
problemas en diferentes areas como: ciencias, tecnologicas, economicas, artes y sociales.
� Electronica� Importante herramienta para calculos
numericos como:
1/21/2009
5
Unidad 1.
� Simulacion de circuitos� Simulacion de sistemas de control,
comunicaciones, sistemas digitales y analogicos,
� Procesamiento de señales como: imagenes, video, biomedicas, sismicas, etc.
Unidad 1.
� Cada vez la programacion tiene una mayor relevancia porque:
Programa
DSP (Digital Signal Processor)
FPGAField Programmable Gate Array
MicroControllers
Aplicacion
1/21/2009
6
� Aplicaciones:� Communicaciones� Automotriz� Robotica� Industria manufacturera� Articulos del hogar� Juguetes
� Que es una computadora?� Dispositivo capaz de realizar calculos numericos y toma de
decisiones logicas a grandes velocidades
� Computadoras Personales
� Calculadoras
� Computadoras de Proposito Especifico
� Supercomputadoras
� Las computadoras procesan datosbajo el control de un conjunto de instrucciones llamadas programa computacional.
1/21/2009
7
� Organizacion de una computadora
Unidadde
Entrada
Unidadde
Salida
Unidadde
MemoriaUnidadAritmetica
Logica(ALU)
UnidadCentral de
Procesamiento(CPU)
Unidadde
MemoriaSecundario
Mouse
Teclado
Lector de codigo de barras
Camara de video
Scanner
Monitor
Impresion en papel
Salida para controlar otros dispositivos
etc
Esta Unidad es la que coordina a la computadora y es la responsable de supervisar otras unidades.Por Ejemplo:Esta unidad es la encargada de inidcarle a la unidad de entrada cuando tomar informacion de la unidad de memoria.Le dice la unidad ALU cuando la informacion de la unidad de memoria puede ser tomada para realizar calculos
Esta Unidad es la encargada de realizar operaciones aritmeticas como: Suma, Resta, Multiplicacion y Division.Esta unidad es la encargada de realizar operaciones logicas, como comparar dos numeros de la unidad de memoria
Esta unidad es la llamada memoria principal, primaria o rapida.Esta memoria es de baja capacidadEsta unidad retiene informacion que ha sido adquirida por las unidades de entrada y que puede estar disponible para su inmediato procesamiento
Esta unidad es llama de memoria de larga duracion o de alta capacidadEsta unidad es lenta comparada con la memoria principalEsta Unidad pricipalmente almacena Programas o datos usados posiblemente en horas, dias, meses o años
� Como nos communicamos con la Computadora?
� Por medio de Lenguajes de Programacion� Algunos son entendibles y otros necesitan
de pasos de traduccion intermedios
� Lenguajes de Maquina� Lenguajes Ensambladores� Lenguajes de Alto Nivel
1/21/2009
8
� Lenguajes de Maquina� Lenguaje natural de una computadora en
particular y esta definido por medio de su hardware.
� Este lenguaje consiste de una cadena de 0s y 1s que le dicen a la computadora como realizar sus mas elementales operaciones una a la vez.
+1300042774+1400593419+1200274027
� Lenguaje Ensamblador� Es un lenguaje que traduce el lenguaje de
maquina a un lenguaje de mnemonico� Cada patrón binario asociado a una
instrucción es también asociado a un mnemónico.
� El conjunto de mnemónico forma el ensamblador del microprocesador.
LOAD BASEPAYADD OVERPAYSTORE GROSSPAY
1/21/2009
9
� Lenguaje de Alto Nivel� Lenguajes que permiten escribir programas
cercano al lenguaje que los seres humanos usamos (Ingles)
for i = 1:10C = A + B
If A < BC = A - B
1.1 Algoritmos y pseudo-codigo
� Que es un algoritmo?� Serie de acciones en un orden especifico para
solucionar un problema
� Problema a Resolver:� Cubo de Rubik
� 26 - 29 movimientos
� Buscadores en internet
1/21/2009
10
� En la vida diaria aplicamos algoritmos, incluso sin darnos cuenta de ello de manera automatica.� Al abrir una puerta� Al subir al autobus� Lustrando zapatos� Al realizar una llamada� Tomar un vaso de agua� Etc, etc.
Etapas para solucionar un algoritmo
Problema a
Resolver
Analisisdel
Problema
Construcciondel
Algoritmo
Verificaciondel
Algoritmo
1/21/2009
11
� Las 3 principales características que debe tener un algoritmo:
• Los pasos a seguir en el algoritmo deben ser claros y precisos
Precisión
• El algoritmo siempre debe de proporcionar los mismos resultados.
Determinismo
• El numero de pasos del algoritmo deber ser finito
Finito
� Todo algoritmo sigue tres pasos que son:
Datos de entrada
Procesamiento de losDatos
Datos de Salida
1/21/2009
12
1.1 Algoritmos y pseudo-codigo
� Problema a Resolver:� Ponchadura de una llanta
� Paso 1: Freno de Mano
� Paso 2: Sacar llanta de refaccion y gato hidraulico
� Paso 3: Aflojar tuercas de llanta
� Paso 4: Colocar gato hidraulico y se eleva el auto
� Paso 5: Quitar llanta dañada y colocar llanta nueva
� Paso 6: Colocar tuercas y retirar gato hidraulico
� Paso 3 ↔ Paso 4
1.1 Algoritmos y pseudo-codigo
� Ejemplos de Algoritmos:� Imaginemos el caso de un programa que
busque un numero dentro de un conjunto ordenado de 1000 elementos.
� Una solucion es: Recorrer la lista de numeros desde el principio hasta encontrar el numero buscado
[1, 2, 3, 4, …, 1000]
1/21/2009
13
1.1 Algoritmos y pseudo-codigo
� Ejemplos de Algoritmos:� Encotrar el numero mas grande de un
conjunto de numeros aleatorios.� Una solucion es comparar cada uno de los
numeros con el resto de ellos.
[1, 20, 13, 4, 5, 7,10, 2]
El mayor
1.1 Algoritmos y pseudo-codigo
� Pseudo-Codigo� Que es?
� Lenguaje informal que ayuda al programador a desarrollar algoritmos
� El pseudo-codigo puede ser facilmente convertido a lenguaje estructurado como “C”
� El pseudo-codigo no puede ser ejecutado por la computadora.
� El pseudo-codigo consiste de declaraciones que se van a ejecutar
Int i
1/21/2009
14
1.1 Algoritmos y pseudo-codigo
� Ejemplos de Pseudo-codigo.� Imaginemos el caso de un programa que
busque un numero dentro de un conjuntoordenado de 1000 elementos.
1. Asignar un indice a la posicion del primer elemento del vector2. Si el indice coincide con el ultimo elemento terminar3. Comparar el numero objetivo con el elemento del vector situado
en la posicion indice. Si son iguales, se ha encontrado el numeroobjetivo
4. Incrementar el indice5. Volver al paso 2
Algoritmos y pseudo-codigo
� Ejemplos de Pseudo-codigo.� Encotrar el numero mas grande de un
conjunto de numeros aleatorios.
1. Asignar al primer elemento una etiqueta de el mayor numero.
2. Comparar este numero con el siguiente numeroy si el numero con etiqueta es mayor continuar.De lo contrario asignar a este numero numero la etiqueta y
continuar hasta finalizar con el conjunto de numeros
1/21/2009
15
� Diseñe el pseudo código de la siguiente tarea:
Convierta la longitud y peso de un objeto en pies y libras a su equivalente en metros y kilos:
Un pie equivale a 0.09290 metrosUna libra equivale a 0.45359 kg.
� Diseñe el pseudo código de la siguiente tarea:Calcule e imprima el área y volumen de un cilindro. Proporcionando el radio y altura.
volumen = pi * radio*radio * alturaarea = 2 * pi * radio * altura
1/21/2009
16
Desplegar el resultado
Metro Peso
Conversión
Metro ← Pie * 0.09290 Peso ← Libra* 0.45359
Datos
Pie, Libra
Estructura del lenguaje C
� Estructura del Lenguaje C� El lenguaje C es creado en 1972 en los
Laboratorios Bell de AT&T y en 1978 sus creadores Kernighan & Ritchie publican el primer libro sobre C.
� Permite la creacion de programas transportables, es decir, programas que pueden ejecutarse sin cambios en multitud de computadoras.
1/21/2009
17
Estructura del lenguaje C
� Es un lenguaje pequeño, el cual ofrece sentencias de control sencillas y funciones.
� Mecanismos de alto nivel se ofrecen fuera del lenguaje y se ofrecen como funciones de biblioteca, como E/S
Estructura del lenguaje C
� Programacion Estructurada� Dividir la aplicacion en modulos� Cada modulo puede ser dividido en funciones
los cuales resuleven una tarea especifica� Cada bloque de codigo tiene un punto de
entrada y de salida unico. (Saltos incodicionales no son usados como goto)
� Cuando la ejecucion de un bloque finaliza, continua con otro y finaliza.
1/21/2009
18
Estructura de un programa en C� Programa en C/*
* Programa: Prog_1.c
* Este programa imprime un saludo al usuario
*/
#include <stdio.h>
#define DESTINO “lector”
/*
* Prototipo de funciones
*/
int imprimir_saludo (char * destino);
int main(void)
{
imprimir_saludo (DESTINO);
/* Terminacion del programa */
return(0); /* correcto */
}
/* Funcion que imprime el mensaje al usuario */
int imprimir_saludo (char * destino)
{
printf(“Hola %s.\n”, destino);
return(0);
}
Archivos que se indican en “ #include “,en este caso son funciones paradesplegar el mensaje en pantalla
Se declaran las funciones que incluyen enel programa, inlcuyendo:1. Nombre de la funcion2. Sus parametros3. Tipo que devuelve
Siempre debe existir una funcionprincipal, llamada main( ) ,Esta funcion marca el punto de incio de laejecucion de nuestro programaEsta funcion es unica y delimita el tamanodel programa mediante las llaves { }
Por ultimo se incluye el codigo de de lasfunciones del programa
Compilacion y Ejecucion de un programa
� Compilacion:� Conversion de un lenguaje de programacion a un
lenguaje de maquina� Este proceso es desarrollado por un programa
especial llamado compilador� Existen diferentes fabricantes de compiladores
� Ejecucion de un programa� Edicion del programa� Compilacion� Ejecucion
1/21/2009
19
Compilacion y Ejecucion de un programa
CodigoFuente
CompiladorCodigoObjeto
Lenguajeensambladoro de maquina
Programa en C
Linker
Combina los archivos objetosy las bibliotecas
de forma quepuedan ser ejecutados
como una sola unidadEjecutable
Miprograma.c
Miprograma.obj
Miprograma.exe
� Principales elementos del lenguaje:� Comentarios
� Son utiles para describir cada parte del codigo que se esta escribiendo.Ejemplos:
/*
Este es un programa prueba
*/
n = 2 + 3; /* Este seccion del codigo realiza la suma de 2 y 3 */
n = 2 + 3; // Este seccion del codigo realiza la suma d e 2 y 3
1/21/2009
20
Compilacion y Ejecucion de un programa
� Principales elementos del lenguaje:� Identificadores.
� Es un nombre que se asigna a distintos elementosde un programa como: variables, nombres de funciones
� Se usan caracteres alfa-numericos y el guion bajo( _ ), aunque no pueden empezar con numero. C es sensible a las mayusculas y minusculas.
� Ejemplos:� mi_var_2
� Mi_var_2
� 2_result_3
� 2_Result_3
� Palabras reservadas� Son identificadores pre-definidos por el
lenguaje y tiene un significado especial para el compilador.Ejemplos: for
if else
main
int
� Sentencias en C� Estan construidas por un conjunto de
identificadoresy palabras reservadas
1/21/2009
21
� Separadas por espacios en blanco y terminadas con un punto y coma al final “ ; ”Ejemplos: int a, b;
a = 5;
b = 2 + a;
� Variables y Tipos de Datos� El Lenguaje C tiene varios tipos de datos
predefinidos.Ejemplo:
int a; Define una variable a del tipo entero
� Cuando se define a una variable, esta esta asociada con unadeterminada zona dentro de la memoria de la computadora.
� Las variables pueden cambiar de valor durante la ejecucion del programa
� Se deben definir antes de ser utilizadas
tipo_de_dato var;
tipo_de_dato var0, var1, var2, … ; // mismo tipo
!Se recomienda utilizar nombres de variables que estenrelacionadas con los datos que estan utilizando!
� Variables con valor inicial
tipo_de_dato var = valor;
1/21/2009
22
� Tipos de datos basicos� caracteres, numeros enteros y numeros reales
Caracteres:
char es empleada para representar caracteres
‘a’ ‘X’ ‘3’ constantes tipo char
char letra; // definicion de una variable llamada letra
char letra = ‘a’; // Asignar un valor a una variable char // cuando es definida
� Representacion Numerica� En C se tienen varios tipos de numeros
� Enteros (int )� Reales (float )
� Enteros: � int
� short
� long
� long longshortsigned shortshort intsigned short int
unsigned shortunsigned short int
Longsigned longlong intsigned long int
unsigned longunsigned long int
1/21/2009
23
� Flotantes� float numeros reales de precision normal� double numeros reales de double precision� long double numeros reales de mayor precision
� Constantes� Se permite definir constantes simbolicas que
representan un valor determinado que n cambia a lo largo del programa.
Ejemplo:#define nombre_constante valor
#define pi 3.1416
#define const_1 0.3333
� Una forma alterna de definir una constantees:
� const int pi = 3.1416;
� Cual es la diferencia entre ambas formas de definir variables?
• “ #define “ el preprocesador sustituye el valor de la constante por su valorliteral en todo el programa.
• “const” es manejada como una variable con un valor constantey este nocambia durante la ejecucion del programa.
1/21/2009
24
� Escritura de datos con printf� Esta funcion permite escribir valores y variables
� Ademas permite dar formato a la salida
printf(formato, arg1,arg2,…,argN)
formato incluye la cadena de caracteres a imprimir y una serie de especificaciones de formatoEl especificador de formato indicara la forma en como se imprimiranlos datos que se encuentran en arg1,arg2,…,argN
printf(“valores: %d %d %d %d”,234, 4, 3, -9);
� Ejemplos: float b = 123.25
printf(“%f\n ”, b); 123.250000
printf(“%e\n ”, b); 1.232500e+02
printf(“%g\n ”, b); 123.25
printf(“Hola Lector”);
printf(“ a continuacion le muestro\t el valor: “);
printf(“%\n %d \n ”, 28);
Hola Lector a continuacion le muestro el valor:
28
codigo Formato
%c caracter
%d Entero con signo
%i Entero con signo
%e Notacion cientifica
%E Notacion cientifica
codigo Formato
%f Punto flotante
%s Cadena de caracteres
%u Entero sin signo
%% Un signo '%'
1/21/2009
25
� Operador Asignacion� Este operador es utilizado para construir
sentencias de C ( = ).� Mediante este operador se asigna el valor de
una expression a una variable.
int a, b;
a = 5;
b = a + 2;
a = b;
float num = 4.15;
a = b = c =0;
int a = 4, b = 10 , c = 4;float z, d = 1.1;
z = a + b /c * d;z = ?
Escritura de Expresiones Aritmeticas
� Operadores Aritmeticos� Permiter realizar operaciones con constantes
y variables� Aritmeticos� Logicos� Relacionales
� Aritmeticos Operador Funcion
+ Suma
- Resta
/ Division
* Producto
% Modulo
1/21/2009
26
� Operadores unarios + y –� Estos operadores indican el signo del
operando.� +4 indica que el valor es 4 y tiene signo positivo� -a indica que una variable a se toma con signo
negativo:-a = -1 * a
� Division� Si la division es entre dos numeros enteros el el
resultado es un entero:9/4 el resultado es 2 y
no 2.25
� Para el operador modulo (%) y division (/):� a/b y a%b estan indefinidas si b=0
� El tipo char y sus variantes signed char y unsigned charson cosniderados de tipo entero y su valor coinside con el codigo ASCII del caracter que representa.
char letra = ‘A’ // lo que se almacena en “letra” es el // codigo ASCII de la letra ‘A’ que es// 65
printf("Letra = %c; Numero = %d\n", letra, letra);
Letra A; Numero = 65
1/21/2009
27
� Reglas de conversion aritmetica� Cuando se aplica un operador aritmetico sobre operandos de distinto tipo el
operando de menor precision se convierte de forma implicitaal tipo de mayor precision.
� Reglas:1. Si uno de los operandos es long double el otro se convierte en long double
2. En caso contrario, si uno de los operandos es del tipo double , el otro se convierte a double
3. En caso contrario, si uno de los operandos es del tipo float , el otro se convierte a float
1. En el caso de Enteros:1. Si ambos opernados son enteros con signo tipo (signed ) o enteros sin signo (unsigned ), el
operando con menor rango de vlaores se convierte al de mayor rango:
int a; short b; b se convierte a int
1. En caso contrario, si el operando sin signo tiene un rango mayor o igual de valores que el tipodel otro operando, entonces el operando con signo se convierte al tipo del operanso sin signo
� En caso contrario, si el tipo de operando con signo puede representar todos lo valores del tipo del operando sin signo, entonces el operando sin signo se convierte al tipo del operando son signo.
� En caso contrario, si el tipo de operando con signo puede representar todos lo valores del tipo del operando sin signo, entonces el operando sin signo se convierte al tipo del operando son signo.
� Ejemplo: long nl = 2000;
unsigned short nu = 4890;
float nf = 9892;
double nd = 0.00023;
nl + nu = (ambos se convierten a long y el resultad o es del tipo long)nu + nf = (nu se convierte a float y el resultado es d el tipo float)nf + nd = (nu se convierte a double y el resultado es d el tipo double)
1/21/2009
28
� Programa Ejemplo: Realizar un programa que convierta unatemperatura dada en grados Fahrenheit a su correspondiente temperatura en grados centigrados utilizando la formula:
centigrados = (5 / 9) (Fahrenheit - 32)
float centigrados;
float fahrenheit = 82;
centigrados = (5/9) * (fahrenheit – 32);
printf(“Grados Fahrenheit %f”)
� Conversion de tipos explicita (casting)� En algunos casos esta conversion se desea controlar .
(tipo) expresion
La expresion se convierte al valor resultante de evaluar “expresion” al tipo indicado por tipo
(float) 5/9 /* Asi el valor 5 se convierte a float y por las reglas anteriores el otro de tipo entero se convierte a float y el resultado es tambien de tipo float */
constante, variable o expresion con operadores
1/21/2009
29
� Ejemplo: Se desea obtener solo la parte entera de la operacion de dos numeros reales:
float valor_real = 9/5.0;
int valor_entero;
valor_entero = (int) valor_real;
� Cuando en una sentencia de asignacion los dos operandosson de tipo distinto, el valor del operando de la derecha sera automaticamenteconvertido al tipo del operando de la izquierda siguiendo las siguientes reglas
� Formas abreviadas x = x + 5; x += 5
#include <stdio.h>
int main()
{
int x, y; x = 3; y = 5; x += 2;
printf( "x = %i\n", x ); x += y; //esto equivale a x = x + y
printf( "x = %i\n", x );
}
� Operador : Incremento /Decremento (++) (--) x = x + 1; x++
#include <stdio.h> x = x - 1; x--int main()
{
int x = 5; x++ ;
printf ( "Valor de x = %i\n", x );
x++ ; x--;
printf ( "Valor de x = %i\n", x );
}
1/21/2009
30
� Si el operadorprecedeal operando, el valor del operando se modificaraantesde su utilizacion.
++a --a
� Si el operadorsigueal operando, el valor del operando se modificaradespuesde su utilizacion.
a++ a--
� Los operadores de incremento y decremento tienen mayor prioridad que los operadores aritmeticos y se evaluan en las expresiones de derecha a izquierda
#include <stdio.h>
int main( )
{
int a = 1;
printf(“a = %d \n”, a);
printf(“a = %d \n”, ++a);
printf(“a = %d \n”, a++);
printf(“a = %d \n”, a);
}
Prioridad de Evaluacion
� Prioridad de evaluacion de operadores aritmeticos� La prioridad de los operadores indica el orden en el que se realizan las
operaciones aritmeticas.
� Dentro de cada categoria las operaciones aritmeticas se realizan de izquierda a derecha. A este orden se le denomina asociatividad
#include <stdio.h>
int main( )
{
int a = 4, b = 7, c = 3, d = 9; int resultado;
resultado = a + b * c; printf(“Resultado = %d\n”, resultado);
resultado = a * b / c * d; printf(“Resultado = %d\n”, resultado);
resultado = (a + b) * (d / c); printf(“Resultado = %d \n”, resultado);
}
Prioridad Operador
1 Signo mas (+), signo menos ( - )
2 * / %
3 + -
1/21/2009
31
� a = 4, b = 5, c = 2, d = 6,
� Los parentesis cambian el orden de evaluacion. Si una expresion contieneparentesis, lo primero en evaluarse son las expresiones dentro de ellos.
resultado = a * b / c * d;
printf(“Resultado = %d\n”, resultado);
resultado = (a + b) * (d / c);
printf(“Resultado = %d\n”, resultado);
a * b / c * d (a + b) * (d / c)
20 / c * d 9 * 3
10 * d 27
60
� Ejercicios:
#include <stdio.h>
int main( )
{
int a, c; a = 5; c += a +5; return 0;
}
// ------------------------------------------------ -----------
#include <stdio.h>
int main()
{
int a, b, c;
a = 5; b = ++a;
c = ( a + 5 * 2 ) * ( b + 6 / 2 ) + ( a * 2 );
printf( "%i, %i, %i", a, b, c );
} // Cual es el resultado?
1/21/2009
32
� Ejercicios: Determine el valor de las siguientes expresiones en numeroentero:
a) 2 * 3 / 12 * 8 / 4
b) 10 * (1 + 7 * 3)
c) (20 - 2) / 6 + 3
d) 20 - 2 / (6 + 3)
e) (10 + 3) % 4
int d = 1, v = 50, n = 10, t = 5; // Evalue las sig uientes//expresiones:
a) n / t + 3;
b) v / t + n – 10 * d;
c) v – 3 * n + 4 * d;
d) 18 / t;
e) -t * n;
f) (v + n) / (t + d);
= 6/12 * 8/4 = 0* 8/4 = 0 / 4 = 0= 10* (1 + 21) = 10 * 22 = 220= 18 / 6 + 3 = 3 + 3= 20 - 2/ 9 = 20 – 0 = 20= 13 % 4 = 1
= 10 / 5 + 3 = 2 + 3 = 5= 50 / (1 + 21) = 10 * 22 = 220= 18 / 6 + 3 = 3 + 3= 20 - 2/ 9 = 20 – 0 = 20= 13 % 4 = 1
� Mas ejercicios:#include <stdio.h>
main()
{
int a, b; a = b = 5;
printf("%d\n", ++a+5);
printf("%d\n", a);
printf("%d\n", b++ +5);
printf("%d\n", b); return 0;
}
int i,j;
float f;
i = 5; j = 2;
f = 3.0;
f = f + j/i;
printf("value of f is %f\n", f);
1/21/2009
33
Tipo Datos almacenados Nº de BitsValores posibles
(Rango)Rango usando unsigned
char Caracteres 8 -128 a 128 0 a 255
int enteros 16 -32.767 a 32.767 0 a 65.535
long enteros largos 32 -2.147.483.647 a
2.147.483.647 0 a 4.294.967.295
float Nums. reales (coma flotante) 32 3,4E-38 a 3,4E38
double Nums. reales (coma flotante doble)
64 1,7E-307 a
1,7E308
1.6 Instrucciones de entrada y salida
� Instrucciones de Entrada y Salida� Las funciones de entra/salida, son funciones de biblioteca
especificadas standard en la libreria <stdio.h>� printf, scan
� scanf: cuando se desea leer un dato y almacenarlo en una variable se utiliza esta funcion. Tiene un farmato generico igual al de printf.
\n Nueva línea\t Tabulador\b Espacio atrás\r Retorno de carro\f Comienzo de página\a Pitido sonoro\¿ Comilla simple\" Comilla doble\\ Barra invertida\xdd Código ASCII en notación hexadecimal (cada d repre senta un dígito)\ddd Código ASCII en notación octal (cada d representa u n dígito)
scanf (formato, arg1, …, argN);
1/21/2009
34
� Ejemplos:#include <stdio.h>
main()
{
char c; int e; float r;
printf("Introduzca un caracter: ");
scanf("%c", &c);
printf("Introduzca un numero entero: ");
scanf("%d", &e);
printf("Introduzca un numero flotante: ");
scanf("%f", &r);
printf(“Usted a introducido los siguientes caracteres: %f"
}
� Leer una cadena de caracteres.
#include <stdio.h>
main()
{
char cadena[128];
printf("Introduzca un cadena de caracteres: ");
scanf("%s", cadena);
printf("Usted a introducido: %s\n“,cadena);
}
1/21/2009
35
1.7 Libreria Matematica
� Libreria Matematica math.h
� Es una libreria standard del lenguaje de programacion C diseñada para operaciones matematicas basicas.
� La mayoria de las funciones considera el uso de numerosflotantes
#include<math.h> Funciones trigonometricas:
sin Seno cos Coseno
sinh Seno hiperbolico cosh hyperbolic cosine
tan Tangente
tanh Tangentehiperbolica
acos Arccosine
asin Arcsine
atan Arctangent
Las funciones trigoometricasregresan un valor en radianes
� Exponencial, logaritmo y funciones de potencia
Funciones
exp Funcion exponencial e
frexp fraccion y potencia de 2.
log Logaritmo natural
log10 Logaritmo base-10
pow(x,y)
Calcula un valor exponente xy
sqrt Raiz cuadrada
Las funciones en la libreriaregresan un valor en radianes
1/21/2009
36
� Otras funciones matematicas
� La libreria <math.h> provee tambien lassiguientes contantes
Funciones
ceil Regresa el valor entero mas pequeño mayor o igual a x
round Regresa el valor mas cercano a x
fabs Regresa el valor absoluto de un numero
floor Regresa el valor entero mas grande menor o igual a x
Fmod Regresa el residuo de una division x/y
M_E Valor de e M_2_PI Valor de 2/pi
M_LOG2E Valor de log2e M_2_SQRTPI Valor de 2/√pi
M_LOG10E
Valor de log10e M_SQRT2 Valor de √2
M_LN2 Valor de loge2 M_SQRT1_2 Valor de 1/√2
M_LN10 Valor de loge10
M_PI Valor de pi
M_PI_2 Valor de pi/2
M_PI_4 Valor de pi/4
M_1_PI Valor de 1/pi