[Dringend]Array und Texte in Pascal

  • [Dringend]Array und Texte in Pascal

    Hi ich hab ein dringendes Problem.
    Ich versuche gerade ein Programm zu schreiben aber es klappt nciht wie es sollte :(

    Die Fragestellung ist:

    a) Schreiben Sie ein Programm, das einen maximal 80 Zeichen langen Text einliest.
    ZulÄassige Eingabezeichen sollen hierbei Kleinbuchstaben, Gro¼buchstaben, Zahlen und
    Leerzeichen sein, wÄahrend alle anderen Zeichen ignoriert werden sollen.
    b) Einen solchen Text kÄonnen wir als Folge von WÄortern interpretieren, wobei die ein-
    zelnen WÄorter durch eines oder mehrere Leerzeichen voneinander getrennt sind. Dabei
    unterscheiden wir drei Arten von WÄortern:
    { Ein korrektes Wort beginnt mit einem Gro¼buchstaben.
    { Ein korrigierbares Wort beginnt mit einem Kleinbuchstaben und kann in ein kor-
    rektes Wort transformiert werden, indem der Anfangsbuchstabe durch den korre-
    spondierenden Gro¼buchstaben ersetzt wird.
    { Ein inkorrektes Wort beginnt mit einer Zahl.
    ErgÄanzen Sie das Programm, so dass es den eingegebenen Text analysiert und alle
    korrigierbaren WÄorter korrigiert. Zudem sollen drei Listen berechnet und ausgegeben
    werden, die sÄamtliche korrekten bzw. korrigierten bzw. inkorrekten WÄorter enthalten.



    Die Aufgabe a habe ich hinbekommen:

    Quellcode

    1. program Aufgabe3;
    2. Const n=80;
    3. TYPE zeichenfolge=PACKED ARRAY [1..n] OF CHAR;
    4. TYPE testarray=PACKED ARRAY [1..n] OF CHAR;
    5. VAR i,g,asciizahl,f:integer; unerlaubteszeichen:boolean; text:zeichenfolge; hilfsarray:testarray;
    6. BEGIN
    7. f:=1;
    8. i:=1;
    9. Writeln('Bitte geben sie Ihren Text ein und achten sie darauf das es nicht mehr als 80 Zeichen hat');
    10. Writeln('Achten Sie bei der Eingabe drauf das Sie nur Buchstaben und Zahlen eingeben');
    11. WHILE NOT eoln DO
    12. BEGIN
    13. i := i + 1;
    14. read(hilfsarray[i]);
    15. // Afang schreib vorgang
    16. asciizahl:=ord(hilfsarray[i]);
    17. unerlaubteszeichen:=true;
    18. IF asciizahl = 32 then unerlaubteszeichen:=false; //Pruefe ob Leerzeichen
    19. IF (asciizahl > 47) AND (asciizahl<58) then //Pruefe ob eine Zahl
    20. Begin
    21. unerlaubteszeichen:=false
    22. End;
    23. IF (asciizahl > 64) AND (asciizahl < 91) then //Pruefe ob Grossbuchstabe
    24. Begin
    25. unerlaubteszeichen:=false;
    26. End;
    27. IF (asciizahl > 86) AND (asciizahl < 123) then //Pruefe ob Kleinbuchstabe
    28. Begin
    29. unerlaubteszeichen:=false
    30. End;
    31. IF unerlaubteszeichen=false then
    32. BEGIN
    33. text[f]:=hilfsarray[i];
    34. f:=f+1;
    35. END;
    36. End;
    37. // AUSGABE
    38. For g:=1 TO f DO Begin write(text[g]) End;
    39. readln;readln;
    40. end.
    Alles anzeigen



    Nur bei der b habe ich gar keine Idee :(

    Und zu alle dem muss ich das Programm in 1std. vorstellen...

    Bin für jede Hilfe dankbar

    MFG Night-Walker