T
Fertiges Programm:
#include <iostream>
using namespace std;
//Funktionsprototype sortieren
namespace sortieren {
void sort (int x[], int y);
void sort (double x[],int y);
void sort (char x[],int y);
}
//Funktionsprototype sortieren_und_rechnen
namespace sortieren_und_rechnen {
void sort (int x[], int y);
void sort (double x[],int y);
void sort (char x[],int y);
}
template <typename T> void sort(T x[], int y, bool b = false)
{
if (b)
sortieren_und_rechnen::sort(x,y);
else
sortieren::sort(x,y);
}
int main() {
int a[] = {5,2,3,1,4};
double b[] = {0.4, 0.5, 0.3, 0.2, 0.1};
char c[] = {'x','b','a','r','t'};
cout << "Datentyp int:" << endl;
cout << "Original: " << a[0] <<" " <<a[1] << " " <<a[2] <<" " <<a[3] <<" " <<a[4] << endl;
sort (a,5);
cout << "\n" << "Datentyp double: " <<endl;
cout << "Original: " << b[0] <<" " <<b[1] << " " <<b[2] <<" " <<b[3] <<" " <<b[4] << endl;
sort (b,5, true);
cout << "\n" << "Datentype char: " <<endl;
cout << "Original: " << c[0] <<" " <<c[1] << " " <<c[2] <<" " <<c[3] <<" " <<c[4] << endl;
sort (c,5, true);
return 0;
}
namespace sortieren {
void sort(int num[], int end) {
int i,j,akt,start=0;
for(j=start ; j<=end ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
}
void sort(double num[], int end) {
int i,j,start=0;
double akt;
for(j=start ; j<=end ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
}
void sort(char num[], int end) {
int i,j,start=0;
char akt;
for(j=start ; j<=end-1 ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
}
}
namespace sortieren_und_rechnen {
void sort(int num[], int end) {
int i,j,akt,start=0,summe=0;
for(j=start ; j<=end ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
summe = num[0] + num[1] + num[2] + num[3] + num[4];
cout << "Summe: " << summe << endl;
}
void sort(double num[], int end) {
int i,j,start=0;
double akt, produkt=0;
for(j=start ; j<=end ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
produkt = num[0] * num[1] * num[2] * num[3] * num[4];
cout << "Produkt: " << produkt << endl;
}
void sort(char num[], int end) {
int i,j,start=0,summe=0;
char akt;
for(j=start ; j<=end-1 ; j++) {
akt = num[j];
i = j-1;
while(i>=start && num[i]>akt) {
num[i+1] = num[i];
i--;
}
num[i+1] = akt;
}
cout << "Sortiert: " << num[0] <<" " <<num[1] << " " <<num[2] <<" " <<num[3] <<" " <<num[4] << endl;
summe = num[0] + num[1] + num[2] + num[3] + num[4];
cout << "Summe ASCII-Zeichen: " << summe << endl;
}
}