C Code Examples: Neurons, Vectors, and ID Validation

Neurons

The following C code demonstrates a simple neuron activation function.


#include <stdio.h>

int main() {
    int entry[5], weights[5], limit, and;
    putchar('\n');

    for (int i = 0; i < 5; i++) {
        printf("Entry%d: ", i);
        scanf("%d", &entry[i]);
    }

    putchar('\n');

    for (int i = 0; i < 5; i++) {
        printf("Weight%d: ", i);
        scanf("%d", &weights[i]);
    }

    putchar('\n');
    printf("Limit: ");
    scanf("%d", &limit);
    putchar('\n');

    if (Neurona_activa(entry, weights, limit))
        printf("The neuron is active.\n");
    else
        printf("The neuron is NOT active.\n");

    getchar(); // Corrected: Use getchar() to pause
    return 0;
}

int Neurona_activa(int x[5], int W[5], int threshold) {
    int i = 0, sum = 0;
    for (; i < 5; i++)
        sum += x[i] * W[i];
    return (sum > threshold);
}

Vector Operations

This C code provides functions for basic vector operations.


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

void read(double v[3]) {
    printf("Enter vector components (x y z): ");
    scanf("%lf %lf %lf", &v[0], &v[1], &v[2]);
}

void print(double v[3]) {
    printf("(%lf, %lf, %lf)", v[0], v[1], v[2]);
}

void suma_resta(double v1[3], double v2[3], double v3[3], signed char sign) {
    if (sign == '+') {
        for (int i = 0; i < 3; i++)
            v3[i] = v1[i] + v2[i];
    } else if (sign == '-') {
        for (int i = 0; i < 3; i++)
            v3[i] = v1[i] - v2[i];
    } else {
        printf("Invalid sign. Use '+' or '-'.\n");
    }
}

void Trading(double v1[3]) {
    double temp = v1[0];
    v1[0] = v1[1];
    v1[1] = temp;
}

void scalar(double v1[3], double v2[3], double n) {
    for (int i = 0; i < 3; i++)
        v2[i] = v1[i] * n;
}

void vector(double v1[3], double v2[3], double v3[3]) {
    v3[0] = v1[1] * v2[2] - v1[2] * v2[1];
    v3[1] = v1[2] * v2[0] - v1[0] * v2[2];
    v3[2] = v1[0] * v2[1] - v1[1] * v2[0];
}

double producto_escalar(double v1[3], double v2[3]) {
    double result = 0;
    for (int i = 0; i < 3; i++)
        result += v1[i] * v2[i];
    return result;
}

double modulo(double v[3]) {
    return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
}

int main() {
    double v1[3], v2[3], v3[3];
    char sign;
    double num;
    int n;

    printf("Enter the values of the vector v1\n");
    read(v1);
    printf("\n");

    printf("Enter the values of the vector v2\n");
    read(v2);
    printf("\n");

    printf("Enter the values of the vector v3\n");
    read(v3);
    printf("\n");

    printf("Enter the value of the scalar n: ");
    scanf("%d", &n);
    getchar(); // Consume newline character
    printf("\n");

    printf("Enter the sign (+ or -): ");
    scanf(" %c", &sign); // Note the space before %c to consume any leading whitespace

    suma_resta(v1, v2, v3, sign);
    printf("Result of sum/subtraction is: ");
    print(v3);
    printf("\n");

    Trading(v1);
    printf("Trading value is: ");
    print(v1);
    printf("\n");

    vector(v1, v2, v3);
    printf("\nThe value of the product vector is %lf %lf %lf\n", v3[0], v3[1], v3[2]);

    num = producto_escalar(v1, v2);
    printf("\nThe value of the scalar product is %lf\n", num);

    scalar(v1, v3, n);
    printf("\nThe scalar product is: ");
    print(v3);
    printf("\nThe module is: %lf\n\n", modulo(v1));

    printf("Press Enter to continue...");
    getchar();
    return 0;
}

ID Validation

This C code calculates the check letter for a Spanish ID card (DNI).


#include <stdio.h>

int main() {
    char letra_ID;
    unsigned long int numero_ID;

    printf("--- SEPA su ID ---\n");
    printf("Introduzca el nĂºmero de DNI: ");
    scanf("%lu", &numero_ID);

    switch (numero_ID % 23) {
        case 0: letra_ID = 'T'; break;
        case 1: letra_ID = 'R'; break;
        case 2: letra_ID = 'W'; break;
        case 3: letra_ID = 'A'; break;
        case 4: letra_ID = 'G'; break;
        case 5: letra_ID = 'M'; break;
        case 6: letra_ID = 'Y'; break;
        case 7: letra_ID = 'F'; break;
        case 8: letra_ID = 'P'; break;
        case 9: letra_ID = 'D'; break;
        case 10: letra_ID = 'X'; break;
        case 11: letra_ID = 'B'; break;
        case 12: letra_ID = 'N'; break;
        case 13: letra_ID = 'J'; break;
        case 14: letra_ID = 'Z'; break;
        case 15: letra_ID = 'S'; break;
        case 16: letra_ID = 'Q'; break;
        case 17: letra_ID = 'V'; break;
        case 18: letra_ID = 'H'; break;
        case 19: letra_ID = 'L'; break;
        case 20: letra_ID = 'C'; break;
        case 21: letra_ID = 'K'; break;
        case 22: letra_ID = 'E'; break;
    }

    printf("La letra del DNI es: %c\n", letra_ID);
    return 0;
}