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;
}