Neuronen und Vektoren in C: Programmierbeispiele mit Lösungen

Informatik4,17 KB

Neuronas

Neuronas

Das folgende C-Programm simuliert ein einfaches Neuron. Es liest fünf Eingabewerte und fünf Gewichte ein, berechnet die gewichtete Summe und prüft, ob diese den Schwellenwert überschreitet.

#include <stdio.h>

int main() {
    int entrada[5], pesos[5], limite, i;
    putchar('\n');
    for (i = 0; i < 5; i++) {
        printf("Eintrag %d: ", i);
        scanf("%d", &entrada[i]);
    }
    putchar('\n');
    for (i = 0; i < 5; i++) {
        printf("Gewicht %d: ", i);
        scanf("%d", &pesos[i]);
    }
    putchar('\n');
    printf("Limit: ");
    scanf("%d", &limite);
    putchar('\n');
    if (neurona_activa(entrada, pesos, limite))
        printf("Das Neuron ist aktiv.");
    else
        printf("Das Neuron ist nicht aktiv.");
    getchar();
    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);
}

Vektor

VEKTOR

Das folgende Programm führt Vektoroperationen durch: Addition und Subtraktion, Multiplikation mit einem Skalar, Kreuzprodukt, Skalarprodukt und Betrag (Modul).

#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], signed char signo);
void trasponer(double v1[3]);
void escalar(double v1[3], double v2[3], double n);
void vector(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 n;
    double v1[3], v2[3], v3[3];
    char signo;
    double num;
    printf("Geben Sie die Werte des Vektors v1:\n");
    leer(v1);
    printf("\n");
    printf("Geben Sie die Werte des Vektors v2:\n");
    leer(v2);
    printf("\n");
    printf("Geben Sie die Werte des Vektors v3:\n");
    leer(v3);
    printf("\n");
    printf("Geben Sie den Wert des Skalars ein: ");
    scanf("%d", &n);
    getchar();
    printf("\n");
    printf("Geben Sie das Vorzeichen ein (+ oder -): ");
    signo = getchar();
    suma_resta(v1, v2, v3, signo);
    printf("Das Ergebnis der Summe ist: ");
    imprimir(v3);
    printf("\n");
    trasponer(v1);
    printf("\nDer Wert der Transponierung ist: ");
    imprimir(v1);
    printf("\n");
    vector(v1, v2, v3);
    printf("\nDer Wert des Kreuzprodukts ist %lf %lf %lf", v3[0], v3[1], v3[2]);
    num = producto_escalar(v1, v2);
    printf("\nDer Wert des Skalarprodukts ist %lf", num);
    escalar(v1, v3, n);
    printf("\nDas Produkt mit dem Skalar ist: ");
    imprimir(v3);
    printf("\nDer Betrag ist: %lf\n\n", modulo(v1));
    system("pause");
    return 0;
}

ID-Berechnung (DNI-Buchstabe)

ID:

Das folgende Programm berechnet den Kontrollbuchstaben einer spanischen Personalausweisnummer (DNI) anhand des Restes der Division durch 23.

#include <stdio.h>

int main() {
    unsigned long int id;
    char letra;
    puts("Ein ---> SEPA Ihre ID <---\n");
    printf("Ausweisnummer eingeben: ");
    scanf("%lu", &id);
    switch (id % 23) {
        case 0: letra = 'T'; break;
        case 1: letra = 'R'; break;
        case 2: letra = 'W'; break;
        case 3: letra = 'A'; break;
        case 4: letra = 'G'; break;
        case 5: letra = 'M'; break;
        case 6: letra = 'Y'; break;
        case 7: letra = 'F'; break;
        case 8: letra = 'P'; break;
        case 9: letra = 'D'; break;
        case 10: letra = 'X'; break;
        case 11: letra = 'B'; break;
        case 12: letra = 'N'; break;
        case 13: letra = 'J'; break;
        case 14: letra = 'Z'; break;
        case 15: letra = 'S'; break;
        case 16: letra = 'Q'; break;
        case 17: letra = 'V'; break;
        case 18: letra = 'H'; break;
        case 19: letra = 'L'; break;
        case 20: letra = 'C'; break;
        case 21: letra = 'K'; break;
        case 22: letra = 'E'; break;
    }
    printf("Nach seiner Buchstabe ist der Steuerbuchstabe: %c\n", letra);
    return 0;
}

Herunterladen

PDF Word HTML