Forum: PC-Programmierung Vektoren C++


von Josef (Gast)


Lesenswert?

Hallo liebe Gemeinde, ich sitze hier an folgender Aufgabe:

Implementieren Sie für das Arbeiten/Rechnen mit Vektoren x,y aus R hoch 
n die nachfolgenden Funktionen:
a)print (Ausgabe eines Vektors gegebener Länge; Bildschirmausgabe)
b) add (Addition von x,y aus R hoch n; y <--- y+x)


zu a)
Da ich ein Anfänger bin, weiss ich leider nicht so recht, wie ich die 
"Funktion" print, add schreiben soll. Ich könnte das jetzt ohne die 
Funktion schreiben, einfach mit
cout << vec[0] << ... << vec[n] << endl;
Kann mir vllt jemand kurz den Quellcode zumindest für a) zeigen, damit 
ich wenigstens mal eine Vorlage habe, woran man sich orientieren könnte? 
Das wäre echt super! :-)

LG!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Josef schrieb:
> Kann mir vllt jemand kurz den Quellcode zumindest für a) zeigen

Nein. Du bist schon sehr nah dran, es selbst hinzubekommen:

> einfach mit cout << vec[0] << ... << vec[n] << endl;

Was steht in den eckigen Klammern? Was hat das mit dem folgenden Teil 
aus der Aufgabenstellung zu tun?

> Ausgabe eines Vektors /gegebener Länge/

Was ist eine for-Schleife?

Hilf' Dir selbst. Dann lernst Du was.

von Vlad T. (vlad_tepesch)


Lesenswert?

allein die Aufgabe zeigt, dass der Aufgabensteller Grundlegende C++ 
Konzepte nicht verstanden hat.

man schreibt in C++ keine print-Funktion (zumindest nicht für 
Grundlegende Datentypen).

Man überläd den stream operator!

dann kann man nämlich mit der selben implementierung den Vektor auf die 
Standardausgabe, auf die Error-Ausgabe oder in einen beliebigen 
Dateistream schreiben.

gleiches gilt für arithmetische Basisoperationen (add) man überläd die 
entsprechenden Operatoren.

1
#include <iostream>
2
3
4
std::ostream& operator<<(std::ostream& os, const MyVector& vec)
5
{
6
  os << "(" << vec[0];
7
  for (int i=1; i<vec.length(); ++i){
8
    os << ", "<<vec[i];
9
  }
10
  os << ")";
11
  return os;
12
}
13
14
int main(){
15
  MyVector x(1.,5.6, 34.);
16
  std::cout << "x = "<< x << std::endl;
17
  std::cerr << "x = "<< x << std::endl;
18
19
  return 0;
20
}

@rufus
sorry, dein Post war noch nicht da.

: Bearbeitet durch User
von Usus (Gast)


Lesenswert?

Hallo Josef,

Wenn du C++ erlernen willst kann ich dir die Bücher

Der C++ Programmierer von Ulrich Breymann

oder (etwas besser für Anfänger geeignet)
Einführung in die Programmierung mit C++ von Bjarne Stroustrup

empfehlen.

von xxxxxxxxxxxaaaaaaaaaaaaaaaa (Gast)


Lesenswert?

Josef schrieb:
> Kann mir vllt jemand kurz den Quellcode zumindest für a) zeigen, damit
> ich wenigstens mal eine Vorlage habe, woran man sich orientieren könnte?
> Das wäre echt super! :-)

Stichwort: Schleifen!

Pseudocode:
for i=0 to length(vector) do
begin
  printFloat(vector[i]);
end

von A. H. (ah8)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.