www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de