C-Programmierung: Aufgaben: Skalarprodukt zweier Vektoren

Aus Wikibooks

Wechseln zu: Navigation, Suche

[Bearbeiten] Aufgabenstellung

Entwickeln Sie ein Programm, das das Skalarprodukt zweier Vektoren bestimmt. Die Anzahl der Elemente und die Werte der Vektoren sind in der Eingabeschleife manuell einzugeben.

Überprüfen Sie, ob die Anzahl der Elemente die Maximalgröße der Vektoren überschreitet und ermöglichen Sie ggf. eine Korrektur. Legen Sie die maximale Anzahl der Vektorelemente mit einer define-Anweisung durch den Präprozessor fest.

Skalarprodukt: A*B = a1*b1 + a2*b2 + a3*b3 + ... + an*bn

[Bearbeiten] Musterlösung

#include <stdio.h>
#define DIMENSION 100
int main (void)
{
    int v1[DIMENSION],v2[DIMENSION];  // Arrays für Vektor 1 und 2
    int anzahl;      // Anzahl der Vektoren
    int index;       //Zählwert der Arrays;
    int produkt;     //Produkt jedes Schleifendurchlaufs;
    int ergebnis=0;  //Gesamtwert auf den Einzelprodukte aufaddiert werden
 
    // Programmüberschrift
    printf("Skalarprodukt 2er beliebiger Vektoren berechnen\n\n");	 
 
    do
    {
        printf("Bitte Anzahl der Dimensionen angeben (1-%i):" ,DIMENSION);
        scanf("%i",&anzahl);  //Einlesen des Wertes der Vektordimension
        if (anzahl>DIMENSION || anzahl<1)  //wenn Wert > DIMENSION erneute Eingabe
            {
                printf("\n Eingabe uebersteigt max. Dimensionszahl\n\n");
 
            }
 
    }while (anzahl>DIMENSION || anzahl<1);
 
    for(index=0; index<anzahl; index++)  //Einleseschleife des ersten Vektors
        {
            printf("Wert %i fuer vektor 1 eingeben: ",index+1);	
            scanf("%i",&v1[index]);  //Einlesen des Vektorwertes
        }
 
    for(index=0; index<anzahl; index++)  // Einleseschleife des zweiten Vektors
        {
            printf("Wert %i fuer Vektor 2 eingeben: ",index+1);
            scanf("%i",&v2[index]);  //Einlesen eines Vektorwertes
        }
 
    //Schleife zur Berechnung des Skalarproduktes
    for(index=0; index<anzahl; index++)
        {
            produkt=v1[index]*v2[index];  //Einzelwerte addieren
            ergebnis+=produkt;  //Produkte zum Gesamtwert aufsummieren
        }
/*Berechnung kann auch in die letzte Eingabeschleife integiert werden*/
    // Ausgabe des Gesamtwertes des Skalarproduktes
    printf("Das Skalarprodukt der Vektoren betraegt: %i\n",ergebnis);
 
return 0;
}
Persönliche Werkzeuge