C/C++ Programmierung

Aufgabe 39

Es soll ein Datentyp definiert werden, der einen Vektor im Raum, also mit einer x-, y- und z-Komponente darstellen kann. Dann werden zwei Funktionen definiert, die das bequeme Einlesen und Ausgeben von Vektoren realisieren. Zwei weitere Funktionen berechnen die Summe und das Skalarprodukt der Vektoren. Das Hauptprogramm liest zwei Vektoren ein und gibt den Summenvektor und das Skalarprodukt des Vektors aus.
     Bitte Vektor eingeben: 1 2 3
     Bitte Vektor eingeben: 2 2 3
     Der Summenvektor ist: 3 4 6
     Das Skalarprodukt ist: 15

Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.

Lösung für die Aufgabe

#include <fstream.h>

// Vektor-Struktur definieren
struct vektor
{
  int x;
  int y;
  int z;
};

// Funktion zum Einlesen eines Vektors
void cinvektor(struct vektor *vektor)
{
  cout << "Bitte einen Vektor eingeben: ";
  cin >> vektor->x >> vektor->y >> vektor->z;
}

// Funktion zum Anzeigen eines Vektors
void coutvektor(struct vektor *vektor)
{
  cout << vektor->x << " " << vektor->y << " " << vektor->z;
}

// Funktion zum Berechnen der Summe zweier Vektoren
void summe(struct vektor *vektor1, struct vektor *vektor2, struct vektor *summenvektor)
{
  summenvektor->x = vektor1->x + vektor2->x;
  summenvektor->y = vektor1->y + vektor2->y;
  summenvektor->z = vektor1->z + vektor2->z;
}

// Funktion zum Berechnen des Skalarproduktes zweier Vektoren
int skalarprodukt(struct vektor *vektor1, struct vektor *vektor2)
{
  return(vektor1->x * vektor2->x + vektor1->y * vektor2->y + vektor1->z * vektor2->z);
}

// Start des Hauptprogrammes
main()
{
  // Variablen deklarieren
  struct vektor vektor1, vektor2;

  // 2 Vektoren einlesen
  cinvektor(&vektor1);
  cinvektor(&vektor2);

  // Summenvektor berechnen und anzeigen
  struct vektor summenvektor;
  summe(&vektor1, &vektor2, &summenvektor);
  cout << "Der Summenvektor ist: ";
  coutvektor(&summenvektor);
  cout << endl;
  
  // Skalarprodukt berechnen und anzeigen
  cout << "Das Skalarprodukt ist: " << skalarprodukt(&vektor1, &vektor2) << endl;
}


Zurück zur Übersicht