Clase 2
Menu Principal | VIM | Clase 1
Comenzando con C
Las preguntas en color verde deben ser enviadas por e-mail al profesor.
Para comenzar dentro de su directorio, ya creado su nombre, cree un nuevo directorio y subdirectorio llamados clase2/operaciones
mkdir operaciones cd operaciones
Dentro de este directorio escribiremos nuestro primer programa de C que realizará algunas operaciones sobre números.
Para comenzar a editar nuestro programa
vim main.c
Ahora escribimos el contenido del programa.
#include <stdio.h> int main() { double a=5; int b=6; printf("El valor de a es %f \n", a); printf("El valor de b es %d \n", b); printf("El valor de a*b es %f \n",a*b); return 0; }
Compile su programa
gcc -o main main.c
Ejecute su programa
./main
Ahora responda :
0.- ¿Qué acción realiza a*b?
1.- ¿Qué función cumplen los siguientes operadores? + / - %
2.- ¿Qué Ocurre si cambiamos a/b por b/a?
Mezclas de distintas operaciones
El lenguaje C se rige completamente por notación típica de las matemáticas.
Por ejemplo :
(a+b) * (c+d)
en primer lugar se suman a con b y c con d para luego multiplicar esta suma.
Cree un nuevo programa
vim multiple.c
Edite su contenido
#include <stdio.h> int main() { double a=0.1234,b=15.54; double c=3.4,d=10.8; /*Esto es un comentario La idea es que vamos a multiplicar por partes para luego hacerlo completamente */ double ab= a*b; double cd= c*d; double resultado = ab + cd; printf("El valor de a*b es %f \n", ab); printf("El valor de c*d es %f \n", cd); printf("El valor de a*b+c*d es %f \n",resultado); printf("El cálculo directo es %f \n",(a*b)+(c*d)); return 0; }
Compile el programa
gcc -o multiple multiple.c
Ejecute el programa
./multiple
Ahora, responda las siguientes preguntas
3.- ¿Son distintos los resultados?
4.- ¿Cómo deberían quedar los últimos dos printf para que se muestren unos 20 decimales de precisión?
5.- ¿Con 30 decimales de precisión, el resultado es el mismo?
Fórmulas más complejas.
Para utilizar formulas más complejas, es necesario utilizar librerias externas que trae C.
Retornemos en primer lugar a nuestro directorio clase_3 y creemos un nuevo directorio mat.
cd ~/clase_3/; mkdir mat; cd mat;
Dentro de este directorio, vamos a crear un nuevo archivo llamado main.c
vim main.c
y editamos su contenido
#include <stdio.h> #include <math.h> int main() { double ang_a=90; double ang_b=M_PI; printf("El valor de a es = %f \n",ang_a); printf("El valor de b es = %f \n",ang_b); /* Ahora vamos a calcular algunas funciones matematicas dentro del programa. */ printf("el sin(a) = %f \n", sin(ang_a)); printf("el sin(b) = %f \n", sin(ang_b)); return 0; }
Para compilar el programa, y debido a que vamos a utilizar una libreria externa, es necesario entregarle un flag adicional a nuestro programa a la hora de compilar
gcc -o main main.c -lm
donde -lm genera el link con la librería matemática.
Una vez que el código se haya compilado, notará que la función sin corresponde al seno de un número, entonces responda :
6.- El número que recibe la función sin, para que funcione como el seno de un ángulo, ¿debe entregarse en readianes o en grados?
7.- Prueba las siguientes funciones
- cos
- tan
- asin
- exp
- log
8.- Visite el sitio http://www.cplusplus.com/reference/clibrary/cmath/ y describa con sus palabras para qué sirven las funciones ceil y floor. Para ello escriba los códigos de ejemplos que se muestran para cada uno de ellos (llamelos ceil.c y floor.c)
Finalizando
Como desafío escriba por usted mismo un programa que muestre en la pantalla toda la información posible sobre los ángulos 0,pi/2, pi y 2pi.