Forum: PC-Programmierung Vektoren C++


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Josef (Gast)


Bewertung
0 lesenswert
nicht 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) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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.

#include <iostream>


std::ostream& operator<<(std::ostream& os, const MyVector& vec)
{
  os << "(" << vec[0];
  for (int i=1; i<vec.length(); ++i){
    os << ", "<<vec[i];
  }
  os << ")";
  return os;
}

int main(){
  MyVector x(1.,5.6, 34.);
  std::cout << "x = "<< x << std::endl;
  std::cerr << "x = "<< x << std::endl;

  return 0;
}



@rufus
sorry, dein Post war noch nicht da.

: Bearbeitet durch User
von Usus (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.