2014

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.

University

Personal

edit SideBar