Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Math.h

8/12
Recursos

Aportes 21

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Libro “C Programming Language” escrito por Brian W. Kernighan y Dennis M. Ritchie (Creador del lenguaje C)
C Programming Language, 2nd Edition

Conseguí un pdf del libro para aquellos que no lo pueden pagar (Como yo). C progamming language

Por defecto sin y cos esta en radianes, por eso le hice este cambio al programa para pasarlo a grados.

Notese que math.h tiene el valor de pi guardado y se llama M_PI

#include <stdio.h>
#include <math.h>

int x;
double result;

int main()
{
    printf("Ingrese el valor de x: \n");
    scanf("%d", &x); // Recibe un valor de entrada, asignamos el valor a la variable x
    
    result = cos(x*M_PI/180);
    
    printf("El valor ingresado es: %d \n", x);
    printf("El valor del sin de x es: %f \n", result);

    return 0;
}

Adicional estoy usando linux, y no me dejaba usar bien las funciones de la libreria de C. Como explican mas adelante en los comentarios hay que ponerle -lm al final de la instruccion. Por ende mi archivo tasks.json de VSCODE quedo asi:

{
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: gcc build active file",
            "command": "/usr/bin/gcc", //g++ for cpp
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-lm"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Generated task by Debugger"
        }
    ],
    "version": "2.0.0"
}
El seno y coseno están en radianes :v

Vamos, que es el mismo libro que estoy usando como material de apoyo en el curso de Ricardo Celis. 🤓

los amo gracias por lo de el -lm en la terminal de linux ❤️
tenia un problema al compilar

Para los que no pudieron compilar, como a mi. Utilicen el siguiente comando:

gcc -o math math.c -lm

Para realizar los ejercicios estoy utilizando una raspberrypi, con el sistema operativo raspbian.
Al tratar de compilar el programa, me marca el siguiente error:

pi@raspberrypi:~/Platzi/Escuelas/DesarrolloSoftware/ProgramacionEstructurada $ gcc -o mathDemo mathDemo.c
/usr/bin/ld: /tmp/ccg38xMX.o: en la función `main':
mathDemo.c:(.text+0x34): referencia a `sin' sin definir
collect2: error: ld returned 1 exit status

Buscando en internet, encontré esta página; https://c.dokry.com/384/referencia-indefinida-a-sin.html
Para poder compilar tuve que agregar la opción -lm al final:

pi@raspberrypi:~/Platzi/Escuelas/DesarrolloSoftware/ProgramacionEstructurada $ gcc -o mathDemo mathDemo.c -lm
Si alguien necesita el libro, lo tengo en español en formato. epub

Comparto link del libro “The C programming language”

https://ascslab.org/courses/ek132/reading/C-book.pdf

no entiendo que pasa ejecuto el programa y me sale el error descripto al final
#include <stdio.h>
#include <math.h>

int x;
float result;

int main()
{

printf( "ingrese el valor de x: ");
scanf("%d ",&x);	
printf (" el valor de x es: %d",x);
result= sin(x);
printf("el valor del coseno de x es: %f\n", result);
return 0;

}

[Error] ld returned 1 exit status

sin esta clase no se podía resolver los retos de hace un par de clases

Algo de lo que me di cuenta haciendo pruebas es que la librería trabaja con radianes, por eso al poner sin(90) no os saldrá 1.
Para ello hice un método que sirve de conversor de grados a radianes.

"Programming With C " de Byron S Gottfried,
Dicen que es el mejor libro para aprender lenguaje C.

Para los que no les reconozca math.h , y usa code blocks (estando en ubuntu 20.4).
Me funcionó hacer lo siguiente:
Ir a Project -> Build options -> Linker settings -> opción “add” :

Les aparecerá un cuadro de texto , escriben “libm.a” dan en “ok”.

Cierran la ventana dando en “ok” .
Listo, ya funciona.

pd: Abajo del cuadro de texto hay una opción que dice “Linker executable” está en auto detect. (Lo había probado seleccionando la opción “use C compiler”.) Funciona igual en auto detect o modificándolo. Saludoss

El video se queda sin audio despues del minuto 6:14

😂🤣😂

Visual Studio code ejecuta los codigos de forma correcta sin usar las etiquetas de librerias. Porque ocurre esto?

Donde esta el enlace del libro que menciona Celis o alguien que sepa donde buscarlo?

Los macros los vemos en la estructura de la librería. Espero ampliar sobre este tema.

buena clase