www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmen und DatenstrukturenFormatieren von Text
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Algorithmen und Datenstrukturen" - Formatieren von Text
Formatieren von Text < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Formatieren von Text: Guter Pseudocode
Status: (Frage) überfällig Status 
Datum: 10:49 Sa 23.10.2010
Autor: BarneyS

Aufgabe
Erstellen Sie ein Struktogramm zu folgender Aufgabe:
Ein Programm soll einen Text von der Standard-Eingabe lesen. Formatieren und auf die Standard-
Ausgabe schreiben.
Die Formatierung soll folgende Aspekte berucksichtigen:
 Blanks am Anfang einer Zeile werden nicht ausgegeben (Ausgabe linksbüundig)
 Mehrfach aufeinander folgende Blanks werden in der Ausgabe durch ein einzelnes Blank
ersetzt
 Großgeschriebene Vokale werden durch die entsprechenden kleinen Buchstaben ersetzt




Hallo,

meine Frage bezieht sich darauf, wie ich am besten den Pseudocode schreibe, der ja teil des Struktogramms ist.

Für meine Geschmack ist das noch zu viel Java drin. Der Code sollte ja so geschrieben werden, dass man ihn in einer beliebigen Sprache programmieren könnte. Ich möchte hier aber spezielle Methoden von Java benutzen, wie z.B. substring(), charAt() und replace(). Wie kann man das darstellen, ohne tatsächlich Java Code zu schreiben?

Hier der Pseudocode:

Hauptprogramm

Eingabe <- String Einlesen von Console
Eingabe <- remSpace(Eingabe)
for i <- 0 ; i < Eingabe.length() ; i++
    if (Eingabe.charAt(i) == 32) AND (i < (Eingabe.length() - 1))
        Eingabe = Eingabe.substring(0, i + 1) + remSpace(Eingabe.substring(i + 1))
    end if
// Editiert:-----------------------------
    b <- Eingabe.charAt(i)
    if (b == 'A' OR 'E' OR 'I' OR 'O' OR 'U')
                // Die Methode ist nicht besonders effizient
                // aber dafür ist der Code kompakter (ansonsten müsste man mit char Array arbeiten)

                Eingabe = Eingabe.replace(b, b + 32 )
    end if
//----------------------------
Print: Eingabe

Unterprogramm: public static String remSpace(String text)

if text.charAt(0) == 32
    if text.length() == 1
        return ""
    end if
    return remSpace(text.subsequence(1))
else
    return text
end if

Wenn jemand natürlich einen Vorschlag zur Verbesserung des Algorithmus ansich hat, bin ich auch ganz Ohr. Ich habe absichtlich einen rekursiven Algorithmus benutzt, da wir das gerade in der Vorlesung haben. Man kann es aber sicherlich auch iterativ lösen.

Danke!

Barney

Hier noch die Grafiken:
[Dateianhang nicht öffentlich]

[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Anhang Nr. 2 (Typ: png) [nicht öffentlich]
        
Bezug
Formatieren von Text: Antwort
Status: (Antwort) fertig Status 
Datum: 11:57 Sa 23.10.2010
Autor: Event_Horizon

Hallo!

Ich kann nix zum Pseudocode sagen, weil ich deinen Code zwar verstehe, aber nicht weiß, welche Regeln es für Pseudocode gibt.

Aber so ein paar Dinge:


    if (Eingabe.charAt(i) > 64) AND (Eingabe.charAt(i) < 91)
          b <- Eingabe.charAt(i)
          Eingabe = Eingabe.replace(b, b + 32 )
    end if

Zunächst willst du hier ALLE Großbuchstaben durch Kleinbuchstaben ersetzen. Laut Aufgabe sollst du das aber nur für die Vokale AEIOU machen. Und anschließend durchsuchst du den kompletten String nach diesem Großbuchstaben, und ersetzt ihn überall. Das funktioniert, aber ich weiß nicht, ob du dir das auch so gedacht hast.


Was ich ganz nett fände, wäre nicht auf ==32 zu testen, sondern auf ==' ' . Denn ' ' ist die Zahl, deren ASCII-zeichen das Leerzeichen ist. Dagehen ist " " ein String. Du könntest dann z.b. auch sowas wie
if(x>='A' and x<='Z')
machen. Find ich eingängiger, als immer mit den Zahlen rumzuhantieren.


Bezug
                
Bezug
Formatieren von Text: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:05 Sa 23.10.2010
Autor: BarneyS

Hallo Sebastian,

danke für die Antwort.
Da hab ich wohl die Aufgabenstellung nicht richtig gelesen.^^

Mit deinen Anmerkungen hast du recht.

if (Eingabe.charAt(i) > 64) AND (Eingabe.charAt(i) < 91)
          b <- Eingabe.charAt(i)
          Eingabe = Eingabe.replace(b, b + 32 )
end if

Dies ist nicht sehr effizient. Allerdings wollte ich den Code so kompakt wie möglich halten. Aber ich werde versuchen es noch zu verbessern.
Man müsste hier ansonsten den String in einem char Array speichern....

Es bleibt immer noch meine eigentliche Fragen nach dem Pseudocode offen. Würde mich über eine Antwort freuen!

VG Barney

Bezug
        
Bezug
Formatieren von Text: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:20 Mo 25.10.2010
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]