Begriffe in einem dynamischen Array, Vokale zählen
-
Moin
Ich habn Problem, ich komm einfach auf keine gute Idee die
Aufgabe zu lösen, habt ihr vorschläge?Aufgaben:
https://docs.google.com/Doc?id=dffgsmmj_40dzqvgtgrWär euch sehr Dankbar für unterstützung!

-
Wie das array deklariert wird, steht in der aufgabenstellung
Einlesen lässt sich über for-Schleife und std::cin
für die darstellung der strings benutze new std::string oder erstelle dynamisch über new und delete char arrays, auf die die zeiger zeigen.
zufällig ausgeben geht mit rand() % arraygröße und std::cout
Zum Vokale zählen gehst du das array über eine For schleife durch, erhöhst einen counter, wenn die entprechende if bedinung erfüllt ist ( if buchstabe == vokal, wobei du für vokal den entprechenden ascii zahlenwert verwenden kannst)Das sollte an informationen reichen
-
ALso zu Aufgabe 1 hab ich mir das so gedacht,
funktioniert nur leider net so olle
# include <iostream.h> // fuer cin und cout
# include <string.h> // fuer strlen() und strcpy()
# include <time.h> // fuer time()
# include <stdlib.h> // fuer srand() und rand()//=======================================================
void main()
{
char temp[30]; // temporaere Bedienereingabe
int anzahl = 0; // Zaehler fuer die eingegebenen Begriffecout<<"Bitte maximal 10 Begriffe eingeben."<<endl;
cout<<"Abbruch durch Eingabe von \"Return\": "<<endl;
do
{
cout<<anzahl+1<<". Begriff: "; // Ausgabedyn_array[anzahl]=new char [strlen(temp)+1]; //dyn. Speicher erstellen
strcpy(dyn_array[anzahl],temp); //Begriff in dyn. Speicher
//kopieren} while ( strlen(temp) && anzahl<10 ); // Schleife durchlaufen, solange
// etwas eingegeben wurde und noch
// keine 10 Begriffe vorhanden sindif (anzahl) // Falls mindestens ein Begriff eingegeben wurde
{
cout<<endl<<"Hier jetzt ein zufaellig ausgewaehlter Begriff: ";
cout<<dyn_array[rand()%anzahl]<<endl; // Einen der Begriffe zufaellig bestimmen
}
else // Falls keine Begriffe eingegeben wurden
cout<<endl<<"Es wurden keine Begriffe eingegeben."<<endl;}
AUFGABE2:
# include <iostream.h> // fuer cin und cout
# include <string.h>// =========================================================
int anzahl(char *, char); // Funktion zum Zählen eines Buchstabens
// in einem String
// uebergeben wird das kleingeschriebene Zeichen
// gesucht wird automatisch auch nach Großbuchstaben// =========================================================
void main()
{
char satz[100];
int i; // Zaehlvariable fuer Schleifen
int max_anzahl; // Anzahl des am haeufigsten vorkommenen Vokalsint anzahl_vokale[5]; // Array fuer die Anzahl der Vokale
char vokale[]={"aeiou"};// Array der Vokalecout<<"Bitte einen Satz eingeben:"<<endl;
cin.getline(satz,100); // Einen Satz einlesenfor (i=0; i<5 ; i++) // Aufruf der Zaehlfunktion mit allen Vokalen
anzahl_vokale[i] = anzahl(satz,vokale[i]);cout<<endl<<"In dem Satz befinden sich ";
for (i=0; i<4 ; i++) // Ausgabe der Haeufigkeiten
{ cout<<anzahl_vokale[i]<<" "<<vokale[i];
if (i<3)}
max_anzahl = anzahl_vokale[0];
max_buchstabe = vokale[0];for (i=1; i<5;i++)
if (anzahl_vokale[i]>max_anzahl)
{
max_anzahl = anzahl_vokale[i];
max_buchstabe = vokale[i];
}cout<<endl<<"Kein Vokal kam haeufiger als der Vokal "<<max_buchstabe<<" vor."<<endl;
}
// =========================================================
int anzahl(char *satz, char gesuchtes_zeichen) // Funktion zum Zählen eines Buchstabens
// in einem Satz{
int x = 0; // Zaehler auf Null setzenfor (int i=0; i<l ; i++) // Satz Zeichen fuer Zeichen durchlaufen
if (satz[i] == gesuchtes_zeichen || satz[i] ==gesuchtes_zeichen-32 )
}
-
neal5 schrieb:
ALso zu Aufgabe 1 hab ich mir das so gedacht,
funktioniert nur leider net so olle
Hallo neal5,
es wäre nett, wenn Du C++-Code mit den Tags [ cpp ] [ /cpp ] umschließt, damit der Code lesbarer wird.
Außerdem sage doch bitte, was "funktioniert net so olle" bedeutet. Was gefällt Dir nicht, was funktioniert nicht und welche Fehlermeldungen gibt es?
-
ein paar allgemeine tipps:
benutze std::vector und std::string. Dann fällt der Code um einiges kürzer, lesbarer und sicherer aus. Ich denke, hier liegt auch der Fehler, da niemand die ganzen C-Array funktionen überblicken kann und da schnell mal ein Fehler zwischen rutscht.
benutze die c++ header (also die versionen ohne .h).
es heißt int main() und nicht void main()!
-
Wenn er vector etc benutzt, dann ist das bestimmt schönerer, besserer und sicherer Code.
Nur die Aufgabe gibt da was anderes vor.