Solars C++ Kurs
Programmieren leicht erlernt
Das erste Programm

Lösungen

Hier ist jeweils ein Beispiel zu finden, wie die Aufgabe hätte gelöst werden können.

Wichtig ist, das auch ganz andere Lösungswege möglich sind. Diese Beispiele sollen nur als Hilfsmittel dienen, falls sie mit einer Aufgabe mal nicht weiterkommen.

Ein Rechenprogramm für die Kommandozeile

main.cpp
/**********************************
Programmname: WURZEL.EXE

Programmfunktion: 
Dieses Programm errechnet die Wurzel aus
einer Zahl welche entweder als Argument
uebergeben, oder spaeter eingegeben wird.

Programmierer: Christian Solar (02.05.2000)

Dieses Programm wurde im Rahmen von
'Solars C++ Kurs' nach dem Kapitel
'Das erste Programm' im Teil 'Grundlagen'
geschrieben.

Quelltext und Programm duerfen in 'Solars C++ Kurs'
sowohl im Netz als auch auf Datentraegern 
veroeffentlicht werden.
Der Quelltext darf von anderen Kursteilnehmern
erweitert und veraendert werden. Die Namen der
bisherigen Programmierer muessen im Quelltext
bestehen bleiben.
Das Programm selbst ist Freeware und darf
beliebig weitergegeben und genutzt werden.
Das betrifft jedoch nicht die Quelltexte, welche
ausserhalb von 'Solars C++ Kurs' nicht
ohne das Einverstaendnis aller beteiligten
Programmierer veroeffentlicht werden duerfen.

Die Autoren des Programms und der Webmaster
von 'Solars C++ Kurs' haften nicht fuer Schaeden 
welche durch dieses Programm entstehen.
**********************************/

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main( int argc, char * argv[], char * envp[] )
{
  double dZahl;
  double dErgebnis;

  if ( argc > 2 )
  {
    cout << "Bitte nur eine Zahl uebergeben.\n";
    cout << " (z.B. " << argv[0] << " 16)\n";
  }
  else
  {
    if ( argc < 2 )
    {
      cout << "Aus welcher Zahl soll die Wurzel ";
      cout << "gezogen werden? ";
      cin >> dZahl;
    }
    else
    {
      dZahl = atof( argv[1] );
    }

    if ( argc == 2 && ( strcmp(argv[1], "?" ) == 0
      || strcmp(argv[1], "/?" ) == 0 ) )
    {
      cout << "Dieses Programm errechnet die Wurzel ";
      cout << "aus einer Zahl.\n";
      cout << "Kommazahlen sind mit einem Punkt einzugeben.\n";
      cout << "Die Zahl kann direkt als Argument ";
      cout << "uebergeben werden. Beispiel:\n\n";
      cout << argv[ 0 ] << " 12.4\n\n";
      cout << "Programmierer:\n";
      cout << "Christian Solar\n";
      cout << "\nDas Programm wurde im Rahmen von ";
      cout << "'Solars C++ Kurs' erstellt.\n";
    }
    else
    {
      if ( dZahl < 0 )
      {
        cout << "\nEs ist nicht moeglich die Wurzel ";
        cout << "aus einer Zahl zu errechen,\n";
        cout << "welche kleiner ist als 0\n";
      }
      else
      {
        dErgebnis = sqrt( dZahl );
        cout << "Die Wurzel aus " << dZahl;
        cout << " ist " << dErgebnis;
      }
    }
  }
  return 0;
}


Ein Spaßprogramm

main.cpp
/**********************************
Programmname: HALLO.EXE

Programmfunktion: 
Dieses Programm gruesst mehr oder weniger
freundlich zurueck.

Programmierer: Christian Solar (02.05.2000)

Dieses Programm wurde im Rahmen von
'Solars C++ Kurs' nach dem Kapitel
'Das erste Programm' im Teil 'Grundlagen'
geschrieben.

Quelltext und Programm duerfen in 'Solars C++ Kurs'
sowohl im Netz als auch auf Datentraegern 
veroeffentlicht werden.
Der Quelltext darf von anderen Kursteilnehmern
erweitert und veraendert werden. Die Namen der
bisherigen Programmierer muessen im Quelltext
bestehen bleiben.
Das Programm selbst ist Freeware und darf
beliebig weitergegeben und genutzt werden.
Das betrifft jedoch nicht die Quelltexte, welche
ausserhalb von 'Solars C++ Kurs' nicht
ohne das Einverstaendnis aller beteiligten
Programmierer veroeffentlicht werden duerfen.

Die Autoren des Programms und der Webmaster
von 'Solars C++ Kurs' haften nicht fuer Schaeden 
welche durch dieses Programm entstehen.
**********************************/

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>


int main( int argc, char * argv[], char * envp[] )
{
  // Variablen
  double dRand;
  int nZufall;
  char szTmp[256];

  // Hilfe
  if ( argc == 2 && ( strcmp(argv[1], "?" ) == 0
    || strcmp(argv[1], "/?" ) == 0 ) )
  {
    cout << "Mit diesem Programm kann man den";
    cout << "Computer grüßen.\n";
    cout << "Vielleicht antwortet er ja sogar...\n\n";
    cout << "Programmierer:\n";
    cout << "Christian Solar\n";
    cout << "\nDas Programm wurde im Rahmen von ";
    cout << "'Solars C++ Kurs' erstellt.\n";
  }
  
  // Zufallszahl
  srand( (unsigned) time( NULL ) );
  rand();

  dRand = rand();
  dRand /= RAND_MAX;
  dRand = dRand * 7 + 1;
  nZufall = (int) dRand;

  // Antworten
  if ( nZufall == 1 )
  {
    cout << "Hallo!";
  }
  else if ( nZufall == 2 )
  {
    cout << "Jetzt nicht, ich bin beschaeftigt....";
  }
  else if ( nZufall == 3 )
  {
    if ( argc == 2 )
    {
      cout << "Was! Selber " << argv[1] << "!";
    }
    else
    {
      cout << "Hallo!\n Wie geht es dir?\n";
      cin >> szTmp;
      cout << "Mir geht es auch " << szTmp;
    }
  }
  else if ( nZufall == 4 )
  {
    cout << "Gruess Gott!";
  }
  else if ( nZufall == 5 )
  {
    cout << "Guten Tag!";
  }
  else if ( nZufall == 6 )
  {
    cout << "Selber Hallo!";
  }
  else
  {
    cout << "Gruezi!";
  }
  return 0;
}