Forum: PC-Programmierung C# Einen Mehrdimensionalen Text in einen Mehrdimensionalen Text umwandeln


von Der Unwissende (Gast)


Lesenswert?

Hallo zusammen,

ich lerne erst seit kurzem in der Schule c#, jedoch gibt uns der Lehrer 
immer Aufgaben, ohne sie vorher richtig zu erklären. Momentan sind wir 
beim Thema Array. Ich verstehe so ein wenig worum es dabei geht, nur 
weiß ich nicht wie ich folgende Aufgabe lösen soll.

Aufgabe:
Ein mehrzeiliger Text soll in einem mehrdimensionalen Array 
abgespeichert werden können. In die nächste Zeile gelangt man durch 
Betätigung der return-Taste. Nach der Eingabe des Textes kann nach der 
Häufigkeit des Vorkommenseines Zeichens gesucht werden. Auch möglich 
wäre die Erstellung einer Statistik,wie viele Zeilen hat der Text, wie 
viele Zeichen insgesamt, usw.

Vorallem habe ich Probleme mit dem Ausgeben der Häufigkeit eines 
Zeichens.
Ich weiß, dass man dies wahrscheinlich auch mit einem normalen Array 
machen kann, aber der Lehrer will es so.

Am besten wäre es, wenn einer mir einen Codeausschnitt zeigen könnte und 
da dann jeden Schritt erklärt.

Vielen Dank im Vorraus

Mit freundlichen Grüßen

Der Unwissende

von Institutor (Gast)


Lesenswert?

> ... jedoch gibt uns der Lehrer immer Aufgaben, ohne sie vorher richtig
> zu erklären ...

Du hast zwar mein vollstes Verständnis und meine ungeteilte Sympathie, 
glaube jedoch, dass du einfach nicht aufgepasst hast.

von Der Unwissende (Gast)


Lesenswert?

Ich habe da einen Fehler bei der Fragestellung gemacht. Ich meinte nicht 
mehrdimensionaler Text sonder mehrzeiliger Text.

von Der Unwissende (Gast)


Lesenswert?

Aufgepasst habe ich schon, wie alle anderen auch nur kann niemand aus 
meiner Klasse diese Aufgabe lösen.

Er hat uns so einen Ansatz gegeben nur werde ich daraus nicht besonders 
Schlau:

string text;
string such;

int i = 0;
int j = 0;


for ( i = 0; i < 18; i++ )
{
     bool passt = false;
     for ( j = 0; j < 6; j++ )
     {
      if ( text[i + j] != such[j] ) { passt = false; }
     }
}

von c-hater (Gast)


Lesenswert?

Der Unwissende schrieb:

> Aufgepasst habe ich schon, wie alle anderen auch nur kann niemand aus
> meiner Klasse diese Aufgabe lösen.

Wundert mich nicht. Zu allen Zeiten gab es weit überwiegend Idioten. Es 
besteht deswegen halt eine hohe Wahrscheinlichkeit, dass eine 
Schulklasse nur solche enthält...

>
> Er hat uns so einen Ansatz gegeben
[...]

Da kommt überhaupt kein mehrdimensionales Array drin vor. Sprich: mit an 
Sicherheit grenzender Wahrscheinlichkeit lügst du irgendwie.

von h4x0r (Gast)


Lesenswert?

Der Unwissende schrieb:
> ich lerne erst seit kurzem in der Schule c#, jedoch gibt uns der Lehrer
> immer Aufgaben, ohne sie vorher richtig zu erklären.

Frag deinen Lehrer lieber mal, wieso er euch keine richtige 
Programmiersprache beibringt. Also eine die man auch wirklich nützlich 
einsetzen kann.

von grundschüler (Gast)


Lesenswert?

1
   bool passt = false;
2
     for ( j = 0; j < 6; j++ )
3
     {
4
      if ( text[i + j] != such[j] ) { passt = false; }
5
     }

denk mal darüber nach, wann passt == true wird.

von Johnny B. (johnnyb)


Lesenswert?

Der Unwissende schrieb:
> for ( i = 0; i < 18; i++ )
> {
>      bool passt = false;
>      for ( j = 0; j < 6; j++ )
>      {
>       if ( text[i + j] != such[j] ) { passt = false; }
>      }
> }

So hat man mit C# vor 10 Jahren programmiert. Heutzutage macht man sowas 
mit LINQ, ähnlich wie bei einer Datenbankabfrage.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries

Hier noch ein Link, mit dessen Hilfe Deine Aufgabenstellung mittels LINQ 
gelöst werden könnte:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/linq-and-strings

Zeichen zählen:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/how-to-query-for-characters-in-a-string-linq

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.