Vektor oder Array

Im Vektor stehen die Inhalte wie die Zinnsoldaten in einer Reihe. Also sieht es schön ordentlich aus wie im Gänsemarsch. In einem Vektor können Variablen, Strukturen oder Objekte stehen, und zwar sehr viele oder wenige (auch nur zwei).

Um den Vektor zu erklären, kannst Du Dir eine Tüte Gummibärchen vorstellen, und daneben eine Schachtel mit rohen Eiern. In der Tüte sind nur Gummibärchen und in der Schachtel nur Eier! Sie sind nicht durcheinander gewürfelt. So sind auch Vektoren: Ein Vektor besteht im einfachen Fall aus Variablen. In einem Vektor können also Variablen beispielsweise vom Typ int zusammenstehen. So:

Wenn Du einmal den Vektor deklariert hast, musst Du das erste Element dieses Vektors mit "[0]" ansprechen - und nicht mit "[1]"! Das ist wichtig. C / C++ fängt hier immer mit Null an.


Ein erstes Beispiel für Vektoren

Ein einfaches, kleines Programm bildet die Summe von einer Anzahl ganzer Zahlen.

#include <iostream>
using namespace std;

const int MAX = 15;
int arr[] = { 2,3,4,5,6,7,8,9,1,2,3,4,12,16,18 };

int sumFun(int *arr, int len)
{
    int sum = 0;
    for(int i=0; i<len; i++)
        sum += arr[i];
    return sum;
}

int main()
{
    int a = sumFun(arr, MAX);
    cout << a << endl;
    return 0;
}//main

Ein weiteres Beispiel

Die so genannten "Fibonacci-Zahlen" (hier nur bis 102.334.155) kann man ganz gut von solch einem Programm in einen Vektor schreiben lassen. Der Vektor ist hier eine Reihe von "long"-Zahlen (siehe Variablen).

Bitte das YouTube-Fenster groß stellen, damit Du alles lesen kannst!

//fibonacc.cpp

#include <iostream>//cout, endl, <<

#include <conio.h> //getch()

using namespace std;

 

int main()

{

long fi[41];//Vektor mit 41 Elementen

fi[0]=1;

fi[1]=1;

for (int i =2; i<40; i++)

{

fi[i] = fi[i-1]+fi[i-2];

}

cout << "Fibonacci";

cout <<endl;

 

for (int j=0; j<40; j++)

       cout << fi[j] << " ";

 

getch();

return 0;

} // (Hauptprogramm) Ende

 


Zweites Beispiel


Drittes Beispiel

Als dieses dritte Beispiel folgt ein etwas größeres Programm. Den Vektor kann man gut mit mehreren for-Schleifen weiterverarbeiten.

Damit Du alles lesen kannst, mach das Fenster groß!

Der Vektor ist hier jetzt das Wichtigste. Ich habe die "const int .... MAX" und "...WAHL" usw. so programmiert, damit ich das Programm schneller an andere Erfordernisse anpassen kann.


Stand 10. 11. 2014:

//hase.cpp

#include <iostream> //cout, cin

#include <conio.h> //getch()

#include <cstdlib> //srand, rand

#include <ctime> //srand()

 

using namespace std;

 

const int MAX = 21;

const int WAHL = 5;

string wort[MAX];

string eingabe;

 

int main()

{

srand(time(NULL));

wort[0]="Hase";

wort[1]="Igel";

wort[2]="Schnecke";

wort[3]="Regenwurm";

wort[4]="Dachs";

wort[5]="Ente";

wort[6]="Katze";

wort[7]="Luchs";

wort[8]="Eidechse";

wort[9]="Hund";

wort[10]="Pferd";

wort[11]="Kuh";

wort[12]="Tiger";

wort[13]="Elefant";

wort[14]="Schaf";

wort[15]="Ziege";

wort[16]="Wolf";

wort[17]="Hirsch";

wort[18]="Reh";

wort[19]="Fuchs";

wort[20]="Gans";

 

//Ueberschrift:

cout << "Kannst Du Dir " << WAHL << " Tiere merken ???? Die Reihenfolge ist hier wichtig.";

cout <<endl<< " ... Beachte bitte auch die Rechtschreibung der Worte! ...";

cout <<endl<< "-------------------------------------------------------------------";

 

//Mischen:

for (int i=0; i<MAX; i++)

{

int zufall = rand() % MAX;

string temp = wort[i];

wort[i] = wort[zufall];

wort[zufall] = temp;

}//for i

 

//Anzeige:

cout <<endl<< "-> ";

for (int j=0; j<WAHL; j++)

{

cout << " " << wort[j];

}

cout <<endl<< "Bitte merken und dann eine Taste tippen!";

getch();

system("cls");

int merker =0;

cout <<endl<< "Nun bitte alle " << WAHL << " aufschreiben (nach jedem Tier ENTER-Taste!):" <<endl;

for (int m=0; m<WAHL; m++)

{

cout << m+1 << "-> ";

cin >> eingabe;

if (eingabe == wort[m])

{

cout << " Gut."<<endl;

merker++;

}//if-then

else cout << " Nein, " << wort[m]<<endl;

}//for m

 

//Auswertung ankuendigen:

cout <<endl<<endl<<endl<< "Auswertung:";

cout <<endl<< "Taste bitte ...";

getch();

//Auswertung:

cout <<endl<<endl<< "-------------------------------------------" <<endl;

switch (merker)

{

case 0: cout << "Nicht traurig sein, bitte ..(0)....."; break;

case 1: cout << "Nur ein Tier war richtig."; break;

case 2: cout << "Immerhin 2 Richtige."; break;

case 3: cout << "Drei Tiere stimmten, das ist mittelgut."; break;

case 4: cout << "Vier Richtige; fast schon sehr gut !!!!!!!!"; break;

case 5: cout << "!!!!!! Hier ist die Sieger-Urkunde !!5!!!!!";

}

cout <<endl<< "-------------------------------------------";

cout <<endl<<endl<< "Bitte ein Tastendruck zum Beenden ...";

getch();

return 0;

}//main