AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionen und Prozeduren

Ein Thema von Slashmob · begonnen am 5. Jan 2012 · letzter Beitrag vom 8. Jan 2012
Antwort Antwort
Seite 1 von 3  1 23      
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#1

Funktionen und Prozeduren

  Alt 5. Jan 2012, 20:34
Moin zusammen,

zurzeit bearbeite ich wiedermal eine Projektaufgabe, die viele Prozeduren und Funktionen beinhaltet. Die Aufgabenstellung bereitet mir schon Schwierigkeiten. Bin noch Anfänger und die gesamte Aufgabe erscheint mir ziemlich schwer und unübersichtlich. Ich weiß gar nicht wo ich anfangen soll...


Kann mir wer bei diesem Abschnitt behilflich sein?

1. Eine Funktion, die eine Kommentarzeile verwirft, d.h. überspringt.
Delphi-Quellcode:
function Verwerfe_Kommentarzeile(s:string):boolean; // überspringt die Kommentarzeile
    var return_wert:boolean;
       position:integer;
       begin
            If (s[1]='/') and (s[2]='/') then // Ist der Ansatz richtig??
               result=true;
            else
            result=false;
    end;
2. Eine Prozedur, die Groß- und Kleinschreibung ignoriert.
Delphi-Quellcode:
procedure erlaube_gross_Kleinschreibung(var s:string);
       begin
            s:=uppercase(s); // Großschreibung
    end;
3. Eine Prozedur, die Kommentare an bestimmten Positionen verwirft, d.h löscht.
Delphi-Quellcode:
 procedure bereinige_Datensatz_von_Kommentaren(var s:string);
    // löscht im Datensatz den folgenden Kommentar
    var
       position:integer;
       begin
    end;
4. Eine Prozedur, die führende Leerzeichen löscht.
Delphi-Quellcode:
 procedure loesche_fuehrende_Leerzeichen(var s:string);
       begin
            while s[1]= 'do // Passt das so?
            delete (s,1,1);
       end;
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 21:03
hi,

so richtig versteh ich nicht, aber schau mal in der Hilfe nach unter:
Aufgabe 1: POS (geht aber auch so)
Aufgabe 2: ???
Aufgabe 3: POS und COPY
Aufgabe 4: TRIM

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 21:46
Ich weiß ja nicht wer die Funktions-/Prozedur-Namen vergeben hat, aber die Funktionen passen nicht zur Benennung.

Diese Funktion verwirft oder überspringt keine Kommentarzeile, sondern prüft, ob es sich um eine Kommentarzeile handelt.
Der Name ist also verwirrend und sollte daher auf function Ist_Kommentarzeile( const s : string ) : Boolean; geändert werden - oder die Funktion macht nicht das, was sie eigentlich machen soll
1. Eine Funktion, die eine Kommentarzeile verwirft, d.h. überspringt.
Delphi-Quellcode:
function Verwerfe_Kommentarzeile(s:string):boolean; // überspringt die Kommentarzeile
    var return_wert:boolean;
       position:integer;
       begin
            If (s[1]='/') and (s[2]='/') then // Ist der Ansatz richtig??
               result=true;
            else
            result=false;
    end;
Was soll diese Prozedur denn nun? Groß- und Kleinschreibung ignorieren? erlauben?
Aktuell macht diese Prozedur nichts von alledem, sondern wandelt alle Zeichen in Großbuchstaben um.
2. Eine Prozedur, die Groß- und Kleinschreibung ignoriert.
Delphi-Quellcode:
procedure erlaube_gross_Kleinschreibung(var s:string);
       begin
            s:=uppercase(s); // Großschreibung
    end;
ok, die ist wohl noch nicht fertig
3. Eine Prozedur, die Kommentare an bestimmten Positionen verwirft, d.h löscht.
Delphi-Quellcode:
 procedure bereinige_Datensatz_von_Kommentaren(var s:string);
    // löscht im Datensatz den folgenden Kommentar
    var
       position:integer;
       begin
    end;
Diese Prozedur macht tatsächlich genau das, was der Name vermuten lässt
4. Eine Prozedur, die führende Leerzeichen löscht.
Delphi-Quellcode:
 procedure loesche_fuehrende_Leerzeichen(var s:string);
       begin
            while s[1]= 'do // Passt das so?
            delete (s,1,1);
       end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#4

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 21:54
Ich weiß ja nicht wer die Funktions-/Prozedur-Namen vergeben hat, aber die Funktionen passen nicht zur Benennung.

Diese Funktion verwirft oder überspringt keine Kommentarzeile, sondern prüft, ob es sich um eine Kommentarzeile handelt.
Der Name ist also verwirrend und sollte daher auf function Ist_Kommentarzeile( const s : string ) : Boolean; geändert werden - oder die Funktion macht nicht das, was sie eigentlich machen soll
1. Eine Funktion, die eine Kommentarzeile verwirft, d.h. überspringt.
Delphi-Quellcode:
function Verwerfe_Kommentarzeile(s:string):boolean; // überspringt die Kommentarzeile
    var return_wert:boolean;
       position:integer;
       begin
            If (s[1]='/') and (s[2]='/') then // Ist der Ansatz richtig??
               result=true;
            else
            result=false;
    end;
Was soll diese Prozedur denn nun? Groß- und Kleinschreibung ignorieren? erlauben?
Aktuell macht diese Prozedur nichts von alledem, sondern wandelt alle Zeichen in Großbuchstaben um.
2. Eine Prozedur, die Groß- und Kleinschreibung ignoriert.
Delphi-Quellcode:
procedure erlaube_gross_Kleinschreibung(var s:string);
       begin
            s:=uppercase(s); // Großschreibung
    end;
ok, die ist wohl noch nicht fertig
3. Eine Prozedur, die Kommentare an bestimmten Positionen verwirft, d.h löscht.
Delphi-Quellcode:
 procedure bereinige_Datensatz_von_Kommentaren(var s:string);
    // löscht im Datensatz den folgenden Kommentar
    var
       position:integer;
       begin
    end;
Diese Prozedur macht tatsächlich genau das, was der Name vermuten lässt
4. Eine Prozedur, die führende Leerzeichen löscht.
Delphi-Quellcode:
 procedure loesche_fuehrende_Leerzeichen(var s:string);
       begin
            while s[1]= 'do // Passt das so?
            delete (s,1,1);
       end;
also zu 1. den Inhalt der Prozedur hab ich geschrieben und scheint wohl falsch zu sein. Ja die Funktion soll die Kommentarzeile verwerfen, überspringen. Wie sieht sie dann richtig aus?
zu 2. Die Prozedur soll Groß-und Kleinschreibung ignorieren bzw. erlauben! Wie mach ich das??
zu 3. Auch hier weiß ich nicht wirklich was dort stehen muss.
zu 4. JUHU!

Geändert von Slashmob ( 5. Jan 2012 um 21:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 22:17
Nein kann ich nicht - und auch niemand sonst hier ...

denn es fehlen noch ein paar wichtige Informationen.
Das was du bislang hier an Informationen gegeben hast, scheint mir nur das linke Ohr vom Eisbären zu sein
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 22:24
also zu 1. den Inhalt der Prozedur hab ich geschrieben und scheint wohl falsch zu sein. Ja die Funktion soll die Kommentarzeile verwerfen, überspringen. Wie sieht sie dann richtig aus?
zu 2. Die Prozedur soll Groß-und Kleinschreibung ignorieren bzw. erlauben! Wie mach ich das??
zu 3. Auch hier weiß ich nicht wirklich was dort stehen muss.
zu 4. JUHU!
Entschuldige aber da gibt es wohl ein Verständnisproblem.
Nehmen wir die 2 Groß/Kleinschreibung
Soll Groß/Kleinschreibung ignoriert werden dann tu nichts,
oder
soll Groß- und Kleinschreibung zu Groß- oder (excl.) Klein-Schreibung übersetzt werden?
Dann solltest du Großbuchstaben zu Kleinbuchstaben übersetzen. Bei Klein zu Groß fällt das ß unter den Tisch.

3)
position:=pos('//',satz); und wie geht's mit dieser Zeile weiter? (Leerzeile, Blanks...)

Und in 4 frag Dich mal was passiert wenn Du eine Leerzeile übergibst (length()=0)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#7

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 23:02
Ok, danke soweit!
Ich werde morgen dann die Aufgabe mit den Infos reinstellen und mehr Quelltext, damit auch ersichtlich ist, was gemeint ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#8

AW: Funktionen und Prozeduren

  Alt 5. Jan 2012, 23:05
Zitat:
Delphi-Quellcode:
procedure loesche_fuehrende_Leerzeichen(var s:string);
       begin
            while s[1]= 'do // Passt das so?
            delete (s,1,1);
       end;
Und jetzt übergib dieser Prozedur mal einen Leerstring, oder Einen nur aus Leerzeichen.
*peng*
Wo es kein erstes Zeichen gibt, da kann man nicht darauf zugreifen.


Aber was ich dir dringend empfehlen würde:
Eine "ordentlichere" Codeformatierung, vorallem bezüglich deiner grauenhaften Einrückung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#9

AW: Funktionen und Prozeduren

  Alt 6. Jan 2012, 03:57
Diese Prozedur macht tatsächlich genau das, was der Name vermuten lässt
4. Eine Prozedur, die führende Leerzeichen löscht.
Delphi-Quellcode:
 procedure loesche_fuehrende_Leerzeichen(var s:string);
       begin
            while s[1]= 'do // Passt das so?
            delete (s,1,1);
       end;
Entschuldige, aber bist Du Dir da sicher?
Er schreibt doch s[1] = '' und nicht s[1] = ' ' oder mache ich hier aufgrund der späten Stunde (und eines Glases Noilly Prat) einen Denkfehler?

Ansonsten aber, wie schon erwähnt, der Hinweis auf Trim(Left) , wenn auch Steuerzeichen entfernt werden sollen/dürfen
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Funktionen und Prozeduren

  Alt 6. Jan 2012, 05:25
1. Eine Funktion, die eine Kommentarzeile verwirft, d.h. überspringt.
Delphi-Quellcode:
function Verwerfe_Kommentarzeile(s:string):boolean; // überspringt die Kommentarzeile
    var return_wert:boolean;
       position:integer;
       begin
            If (s[1]='/') and (s[2]='/') then // Ist der Ansatz richtig??
               result=true;
            else
            result=false;
    end;
Da ist Einiges im Argen...
*) wie schon gesagt wurde, passt der Name nicht zur Verwendung; wenn ich es richtig verstehe, dann sollte die Funktion *Soll_die_Zeile_verworfen_werden* heissen.
*) die Variablen sind unnotwendig
*) der übergebene String wird nicht auf seine Größe geprüft
*) die Logik kann man kürzer formulieren.
*) die Parameterübergabe mit string kann man optimieren
*) den Parameter kann man ebenso sprechend benamsen wie eine Variable

z.B.
Delphi-Quellcode:
function Soll_die_Zeile_verworfen_werden(const AZeile: string): Boolean;
begin
  Result := ((2 <= Length(AZeile)) and ('/' = AZeile[1]) and ('/' = AZeile[2]));
// oder
  Result := (1 = Pos('//', AZeile));
end;
HTH
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz