Lord Nikon
2003-07-12, 16:39:24
Hi ,
ich möchte mit diesem Programm die Häufigkeit der eingegeben Buchstaben überprüfen und diese dann sortiert ausgeben.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "HuffmannU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void TForm1::haufig()
{
char a='a';
zeichen="";
AnsiString test;
if (txtwort->Text!="")
{
Wort=txtwort->Text;
Wort=Wort.LowerCase();
for (int i=0;i<26;i++)
{
gefunden[i]=0;
}
for (int i=0;i<26;i++)
{
buchstaben[i]=a;
a++;
}
// Bestimmung der Häufigkeit
for (int i=0;i<Wort.Length();i++)
{
zeichen=Wort.SubString(i,1);
for (int o=0;o<26;o++)
{
if (zeichen==buchstaben[o])
{
gefunden[o]=gefunden[o]+1;
}
}
}
sort();
}
}
//---------------------------------------------------------------------------
void TForm1::sort()
{
for (int i=0;i<26;i++)
{
sortiert[i]=gefunden[i];
}
for (int i=0;i<26;i++)
for (int r=i+1;r<26;r++)
{
if (gefunden[i]<sortiert[r])
{
sortiert[r]=gefunden[i];
help=buchstaben[r];
buchstaben[r]=buchstaben[i];
buchstaben[i]=help;
}
}
for (int i=0;i<26;i++)
{
if (sortiert[i]!=0)
{
memaus->Lines->Add("Buchstabe " +AnsiString(buchstaben[i])+"kommt" + AnsiString(sortiert[i])+ " "+ "vor");
}
}
}
void __fastcall TForm1::btnstartClick(TObject *Sender)
{
haufig();
}
//---------------------------------------------------------------------------
Mein Problem liegt einmal darin , das der erste Buchstabe immer anscheinend 2 mal gezählt wird und deshalb der letzte eingegebene Buchstabe nicht ausgewertet wird.
ich möchte mit diesem Programm die Häufigkeit der eingegeben Buchstaben überprüfen und diese dann sortiert ausgeben.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "HuffmannU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void TForm1::haufig()
{
char a='a';
zeichen="";
AnsiString test;
if (txtwort->Text!="")
{
Wort=txtwort->Text;
Wort=Wort.LowerCase();
for (int i=0;i<26;i++)
{
gefunden[i]=0;
}
for (int i=0;i<26;i++)
{
buchstaben[i]=a;
a++;
}
// Bestimmung der Häufigkeit
for (int i=0;i<Wort.Length();i++)
{
zeichen=Wort.SubString(i,1);
for (int o=0;o<26;o++)
{
if (zeichen==buchstaben[o])
{
gefunden[o]=gefunden[o]+1;
}
}
}
sort();
}
}
//---------------------------------------------------------------------------
void TForm1::sort()
{
for (int i=0;i<26;i++)
{
sortiert[i]=gefunden[i];
}
for (int i=0;i<26;i++)
for (int r=i+1;r<26;r++)
{
if (gefunden[i]<sortiert[r])
{
sortiert[r]=gefunden[i];
help=buchstaben[r];
buchstaben[r]=buchstaben[i];
buchstaben[i]=help;
}
}
for (int i=0;i<26;i++)
{
if (sortiert[i]!=0)
{
memaus->Lines->Add("Buchstabe " +AnsiString(buchstaben[i])+"kommt" + AnsiString(sortiert[i])+ " "+ "vor");
}
}
}
void __fastcall TForm1::btnstartClick(TObject *Sender)
{
haufig();
}
//---------------------------------------------------------------------------
Mein Problem liegt einmal darin , das der erste Buchstabe immer anscheinend 2 mal gezählt wird und deshalb der letzte eingegebene Buchstabe nicht ausgewertet wird.