Brauche hilfe bei einer Praktikums Aufgabe

janosch

Erfahrenes Mitglied
HI !

Ich habe eine Praktikumsaufgabe bekommen bei der ich nicht weiß wie ich anfangen soll :B Wäre es möglich das ihr mir ein paar Lösungansätze gibt bzw. wie würdet ihr an die Aufgabe rangehen ??

Also hier ist die Aufgabe:
2. Praktikumsaufgabe : Prüfung einer Zeichenkette auf korrektes RealZahl-Format
Erstellen Sie ein Programm mit folgenden Eigenschaften:
1. Verarbeitung aller Zeichenketten ohne Programmabsturz
2. Nur korrekte Zeichenketten sollen in Zahlen umgewandelt werden.
3.Bei Auftreten eines Fehlers a) Angabe des Fehlerortes b) Angabe der Fehlerursache Beispiele: Eingabe von - 1.75 E -1 wird als korrekt erkannt. Eingabe von - 1..75 führt zu einer Fehlermeldung.
Entwickeln Sie
a) das Zustandsdiagramm
b) die Zustandstafel
c) Ein C oder C++-Programm, dass diesen Automaten simuliert.
Alle hier nicht spezifierten Details können selbständig definiert werden.

Was mir auch nicht ganz klar ist sient die Aufgaben 1+2

Würde mich für ein paar vorschläge freuen :) :) :)

BIG THX schonmal

mfg janosch
 
-

Moin!
Als erstes würde ich einen String Datentypen für deine Zeichenkette benutzen, da du dann erstmal sämtliche Eingaben abfangen kannst. Somit ist die erste Aufgabe schon mal abgehakt. Danach überprüfst du, ob sich Buchstaben oder andere Sonderzeichen, die nichts in einer Real Zahl zu suchen haben, vorhanden sind. Wenn das nicht der Fall ist, überprüfst du die Zahl auf die syntaktische Richtigkeit einer Nachkomma-Zahl.

Viel Spaß beim weiteren nachdenken
 
Also im Grunde würde ich mich an das halten was Caminus geschrieben hat.
Als Lösungsweg würde ich mich da an die Aufgabenstellung halten:
Entwickeln Sie
.
.
c) Ein C oder C++-Programm, dass diesen Automaten simuliert.
Ich würde tatsächlich einen Automaten Programmieren. Der Automat macht in diesem Falle nichts anderes, als den eingegebenen String Zeichen für Zeichen zu verarbeiten und reagiert dann entsprechend mit Fehlermeldungen z.B. bei Eingabe von Buchstaben.
Und damit hast du auch das Problem mit dem Fehlerort gleich im Griff.
Da es ja eine Praktikums Aufgabe ist, hast du auch bestimmt jemand, der dir da in deinem Praktikum mit Rat zur Seite steht.

Gruss Homer
 
hier noch n bissi beispielcode:
Code:
switch(zeichenkette[i])
{
case '0':
zahl[i]=0;
break;
case '1':
zahl[i]=1;
break;
...
...
case '.':
//10 tritt nich auf... also kannst du zehner später wieder durch punkte ersetzen
zahl[i]=10;
//per funktion prüfst du einfach mit derselben methode ob zeichenkette[i+1] und zeichenkette[i-1] zahlen sind
CheckLastAndNextNumber(i);
break;
default:
cout<<"Fehlerhafte Eingabe an Stelle"<<i;
break;
}


is nur zur veranschaulichung... ich hoffe du verstehst was ich meine
 

Neue Beiträge

Zurück