Ejemplos de Programación en C: Neuronas, Vectores y DNI
Enviado por Comunidad Xuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,82 KB
Modelo Simple de Neurona en C
Este código implementa un modelo muy básico de neurona artificial, calculando la suma ponderada de entradas y comparándola con un umbral para determinar si la neurona se activa.
#include <stdio.h>
int main() {
int Entrada[5], Peso[5], limite, i;
putchar('\n');
for (i = 0; i < 5; i++) {
printf("Entrada %d: ", i);
scanf("%d", &Entrada[i]);
}
putchar('\n');
for (i = 0; i < 5; i++) {
printf("Peso %d: ", i);
scanf("%d", &Peso[i]);
}
putchar('\n');
printf("Limite: ");
scanf("%d", &limite);
putchar('\n');
if (Neurona_activa(Entrada, Peso, limite))
printf("La neurona se activa.\n");
else
printf("La neurona NO se activa.\n");
// getch(); // Esta función no es estándar y puede causar problemas en algunos entornos
return 0;
}
int Neurona_activa(int X[5], int W[5], int umbral) {
int i = 0, suma = 0;
for (; i < 5; i++)
suma += X[i] * W[i];
return (suma > umbral);
}Operaciones con Vectores en C
Este programa demuestra diversas operaciones comunes con vectores tridimensionales, como lectura, impresión, suma/resta, intercambio, producto escalar y vectorial, y cálculo del módulo.
#include <stdio.h>
#include <math.h>
void leer(double v[3]);
void imprimir(double v[3]);
void suma_resta(double v1[3], double v2[3], double v3[3], char signo);
void intercambia(double v1[3]);
void escalar(double v1[3], double v2[3], double n);
void vectorial(double v1[3], double v2[3], double v3[3]);
double producto_escalar(double v1[3], double v2[3]);
double modulo(double v[3]);
int main(){
int i, n, p;
double v1[3], v2[3], v3[3];
char signo;
double num;
printf("Introduzca los valores del vector v1:\n");
leer(v1);
printf("\n");
printf("Introduzca los valores del vector v2:\n");
leer(v2);
printf("\n");
printf("Introduzca los valores del vector v3:\n");
leer(v3);
printf("\n");
printf("Introduzca el valor del escalar n: ");
scanf("%d", &n);
getchar(); /* se lee el carácter "\n" */
printf("\n");
printf("Introduzca el valor del signo (+/-): ");
signo = getchar(); /* Es mejor "getchar()" que "scanf()" en este caso */
suma_resta(v1, v2, v3, signo);
printf("Resultado de la suma/resta es: ");
imprimir(v3);
printf("\n");
intercambia(v1);
printf("\nEl vector v1 intercambiado es: ");
imprimir(v1);
printf("\n");
vectorial(v1, v2, v3);
printf("\nEl producto vectorial es: %lf %lf %lf\n", v3[0], v3[1], v3[2]);
num = producto_escalar(v1, v2);
printf("\nEl producto escalar es: %lf\n", num);
escalar(v1, v3, n);
printf("\nEl vector v1 escalado por %d es: ", n);
imprimir(v3);
printf("\n");
printf("El módulo del vector v1 es: %lf\n\n", modulo(v1));
// system("pause"); // Esta función no es estándar y puede causar problemas en algunos entornos
return 0;
}
// Implementaciones de las funciones (faltan en el código original, se asume que existen)
/*
void leer(double v[3]) { ... }
void imprimir(double v[3]) { ... }
void suma_resta(double v1[3], double v2[3], double v3[3], char signo) { ... }
void intercambia(double v1[3]) { ... } // Asume intercambio de componentes, e.g., v[0] <-> v[2]
void escalar(double v1[3], double v2[3], double n) { ... } // Asume v2 = v1 * n
void vectorial(double v1[3], double v2[3], double v3[3]) { ... } // Asume v3 = v1 x v2
double producto_escalar(double v1[3], double v2[3]) { ... }
double modulo(double v[3]) { ... }
*/Cálculo de la Letra del DNI en C
Este código calcula la letra correspondiente a un número de DNI español utilizando el algoritmo basado en el módulo 23.
#include <stdio.h>
void main() {
char NIF;
unsigned long int DNI;
puts("\n---> SEPA su NIF <---\n");
printf("\t-Dime tu número de DNI: ");
scanf("%lu", &DNI);
switch (DNI % 23) {
case 0: NIF = 'T'; break;
case 1: NIF = 'R'; break;
case 2: NIF = 'W'; break;
case 3: NIF = 'A'; break;
case 4: NIF = 'G'; break;
case 5: NIF = 'M'; break;
case 6: NIF = 'Y'; break;
case 7: NIF = 'U'; break;
case 8: NIF = 'P'; break;
case 9: NIF = 'D'; break;
case 10: NIF = 'X'; break;
case 11: NIF = 'B'; break;
case 12: NIF = 'N'; break;
case 13: NIF = 'J'; break;
case 14: NIF = 'Z'; break;
case 15: NIF = 'S'; break;
case 16: NIF = 'Q'; break;
case 17: NIF = 'V'; break;
case 18: NIF = 'H'; break;
case 19: NIF = 'L'; break;
case 20: NIF = 'C'; break;
case 21: NIF = 'K'; break;
case 22: NIF = 'E'; break;
};
printf("\n\t- La letra de su NIF es: %c\n", NIF);
}