Iniciando en C - Parte 2

8 de Junio de 2024 - ed. hace: 5 meses, 2 semanas


Introducción al lenguaje de programación C, segunda parte. El contenido de este post es una traducción al idioma español de la pagina w3schools.com/c la cual solo se encuentra disponible en inglés


Funciones

Una función es un bloque de código que solo se ejecuta cuando es llamado.

Se le pueden pasar datos, llamados parametros.

Las funciones son usadas para realizar ciertas acciones, y son importantes para reutilizar código: Define el código una vez, usalo muchas veces

Funciones predefinidas

  • main()
  • printf()
  • scanf()
  • etc

Crear funciones

Función que no retorna nada (void)

void mi_funcion(){
    // código a ejecutar
}

Llamar a la función

mi_funcion();

código

void mi_funcion(){
    printf("Acabo de ser ejecutada!");
}

int main(){
    mi_funcion();
    mi_funcion();
    mi_funcion();
    return 0;
}

Parametros y argumentos

Sintaxis

tipo_de_retorno nombre_de_funcion(parametro_1, parametro_2, parametro_3) {
    // Código a ejecutar
}

La siguiente función recibe una cadena de texto nombre como parametro. Cuando la función es llamada, se pasa un "nombre", que es usado dentro de la función para imprimir "Hola" y el nombre de cada persona

#include <stdio.h>

void mi_funcion(char nombre[]){
    printf("Hola %s\n", nombre);
}

void main(){
    mi_funcion("Pepe");
    mi_funcion("Juanita");
    mi_funcion("Rosamel");
}

Salida

Hola Pepe
Hola Juanita
Hola Rosamel
#include <stdio.h>

void mi_funcion(char nombre[], int edad){
    printf("Hola %s, tienes %i años de edad\n", nombre, edad);
}

void main(){
    mi_funcion("Pepe", 16);
    mi_funcion("Juanita", 35);
    mi_funcion("Rosamel", 46);
}
Hola Pepe, tienes 16 años de edad
Hola Juanita, tienes 35 años de edad
Hola Rosamel, tienes 46 años de edad
#include <stdio.h>

void mi_funcion(int numeros[5]){
    for (int i=0; i<5; i++) {
        printf("%d\n", numeros[i]);
    }
}

void main(){
    int mis_numeros[5] = {10, 20, 30, 40, 50};
    mi_funcion(mis_numeros);
}
10
20
30
40
50

Retornar valores

Si se quiere que una función retorne un valor, se puede usar tipos de datos (como int float, etc) en vez de void, y usar return dentro de la función

int mi_funcion(int x, int y) {
  return x + y;
}

int main() {
  printf("El resultado es: %d", mi_funcion(5, 3));
  return 0;
}

Salida

8

Almacenando la salida en una variable

int mi_funcion(int x, int y) {
    return x + y;
}

void main() {
    int resultado = mi_funcion(5, 3);
    printf("El resultado es: %d", resultado);
}

Salida

8

Ejemplo convertir de fahrenheit a celcius

#include <stdio.h>

float a_celcius(float fahrenheit){
    return (5.0/9.0) * (fahrenheit - 32.0);
}

void main(){
    float f_valor = 98.8;
    float resultado = a_celcius(f_valor);
    printf("%.2f° Fahrenheit ", f_valor);
    printf("equivalen a %.2f° Celcius\n", resultado);
}
98.80° Fahrenheit equivalen a 37.11° Celcius

Recursión

Recursión es la técnica de hacer que una función se llame a sí misma. Esta técnica provee una manera de romper problemas complejos en problemas más simples, que son mas faciles de resolver.

La recursión puede se un poco complicada de comprender. La mejor forma de entender como funciona es experimentando con ella.

Ejemplo de recursión

int sun(int k);

int main(){
    int result = sum(10);
    printf("%d", result);
    return 0;
}

int sum(int k){
    if(k>0){
        return k + sum(k-1);
    } else {
        return 0;
    }
}

Cuando la función sum() es llamada, esta agrega el parámetro k la la suma de todos los números menores que k y retorna el resultado. Cuando k vale 0, la función solo retorna 0.

Cuando este programa se ejecuta, realiza los siguientes pasos:

10 + sum(9)
10 + (9 + sum(8))
10 + (9 + (8 + sum(7)))
10 + (9 + (8 + (7 + sum(6))))
10 + (9 + (8 + (7 + (6 + sum(5)))))
10 + (9 + (8 + (7 + (6 + (5 + sum(4))))))
10 + (9 + (8 + (7 + (6 + (5 + (4 + sum(3)))))))
10 + (9 + (8 + (7 + (6 + (5 + (4 + (3 + sum(2))))))))
10 + (9 + (8 + (7 + (6 + (5 + (4 + (3 + (2 + sum(1)))))))))
10 + (9 + (8 + (7 + (6 + (5 + (4 + (3 + (2 + (1 + sum(0))))))))))
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0 

Funciones matemáticas

#include <math.h>

Raíz cuadrada

printf("%f", sqrt(16));

Redondear un número

  • ceil() hacia arriba
  • floor() hacia abajo
  • round() hacia el entero mas cercano
printf("%f", ceil(1.4));
printf("%f", floor(1.4));
printf("%f", round(1.4));
printf("%f", round(1.5));

Potencia

printf("%f", pow(4,3));

Otras funciones matemáticas

Función Descripción
abs(x) Devuelve el valor absoluto de x
acos(x) Devuelve el arcocoseno de x
asin(x) Devuelve el arcoseno de x
atan(x) Devuelve el arco tangente de x
cbrt(x) Devuelve la raíz cúbica de x
cos(x) Devuelve el coseno de x
exp(x) Devuelve el valor de $E^x$
sin(x) Devuelve el seno de x (x en radianes)
tan(x) Devuelve la tangente de un ángulo x


Iniciando en C



Tags

  • Categoría(s):
  • Desarrollo

  • Volver al blog