Problem bei der for-Schleife

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
teisi
Beiträge: 2
Registriert: Mi 6. Dez 2006, 18:29

Problem bei der for-Schleife

Beitrag von teisi »

ich muss für meinen informatik kurs ein programm schreiben das e-mail adressen zerlegt:
Schreibe ein Programm, welches eine eMail-Adresse einliest und anschließend in die einzelnen Bestandteile zerlegt, also in den Benutzernamen(alle vor dem Zeichen @) und in die Domainnamensteile(die Teile zwischen den Punkten hinter dem Zeichen @). Bevor jedoch die eMail-Adresse in die einzelnen Bestandteile zerlegt wird, soll zunächst getestet werden, ob die angegebene eMail-Adresse genau einmal das Zeichen @ enthält. Falls das Zeichen @ nicht oder mehr als einmal vorkommt, soll die entsprechende Fehlermeldung ausgegeben werden, da sie Syntax der eMail-Adresse offensichtlich falsch ist.
Bsp. Eingabe: otto.bender@aol.com
Ausgabe: Benutzername: otto.bender
Domainnamensteile: aol com

kann mir da irgendjemand helfen? ich hab überhaupt keine ahnung wie ich das anstellen soll

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Ich nehme an, es läuft bei euch unter der Rubrik for-Schleife und ihr müsste es über for regeln?

Ansonsten hätte ich die üblichen Stringroutinen genutzt. >Pos< und >Copy< wären da eigentlich deine Freunde ;)

Mit ner for-Schleife müsstest du es sonst zeichen für zeichen durchgehen und prüfen, ob das aktuelle Zeichen ein @ ist, wenn nicht, kopierst du das zeichen in einen neuen String, der dann den Namen enthält. Nach dem @ kannst du dann die restlichen Zeichen in einen zweiten String kopieren, der die Domain enthält.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Hallo teisi!

Wo steckt genau dein Problem, kannst du das vielleicht präzisieren?
An welcher Stelle hakt es, wo möchtest du was wissen?


(Aber bitte berücksichtige, dass die (Frei)Zeit derer, die dir hier antworten, beschränkt ist und das deshalb nur selten Komplettlösungen gegeben werden können.)

Viele Grüße, Euklid

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Euklid hat geschrieben:(Aber bitte berücksichtige, dass die (Frei)Zeit derer, die dir hier antworten, beschränkt ist und das deshalb nur selten Komplettlösungen gegeben werden können.)

Und das ist auch gar nicht unbedingt das Ziel, sondern du sollst schon verstehen, was dann da eigentlich passiert, und da hilft eine fertige Lösung wohl kaum ;)

teisi
Beiträge: 2
Registriert: Mi 6. Dez 2006, 18:29

Beitrag von teisi »

ich kann leider nur eine for-schleife mit zahlen.mit buchstaben habe ich das noch nie gemacht.ich brauch das bis morgen aber trotzdem danke für die tips

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Variablen, die Zahlen beinhalten, definiert man z.B. durch:

var i : integer;

Variablen, die "Buchstaben" beinhalten, durch beispielsweise:

var s : string;

Nun kannst du aus diesem String einzelne Zeichen ("Buchstaben") rausschneiden. Am Einfachsten geht das mit einer rechteckigen Klammer hinter dem String. Hierfür sei mal s='Test'. Dann ist s[1]='T' und s[2]='e' und s[3]='s' und s[4]='t'.

Bei deiner Aufgabe kannst du so mit einer for-Schleife rausfinden, von dein @ steckt.

Strings lassen sich auch addieren. So ist z.B.: s[1]+s[3] = 'Ts' und s[2] + s[1] = 'eT'.

Auf diese Weise kannst du dann die untersuchten Zeichen bis zum @ zu dem String hinzufügen, in dem der Benutzername stehen soll. Der Domainnamensteil geht genauso.

Welche Funktionen habe ihr denn zum Umgang mit Strings schon kennen gelernt?

Wenn du noch Fragen hast, nur zu. Aber bitte möglichst präzise stellen.

Viele Grüße, Euklid

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Tja Euklit ich bedank mich dann mal stellvertretend oder ?! ;)
Ist doch schön wenn man in der schule nicht aufpassen muss und auch keine suchmaschiene benutzen muss :)

@teisi benutzt ihr in der schule lazarus ?

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Najaa, ich will ja Lehrer werden, da konnte ich schonmal üben ;)

Wäre ja schön, wenn es Schulen gäbe, auf denen FPC/Lazarus "gelernt" wird ...

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

kannst du ja dann machen ich fänds auf jeden fall sinvoll pascal ist ja ne lehrsprache.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Aber Hallo Christian,

der Nicolaus Wirth hat da damals mal ne Maschine namens Lillith gebastelt, da war das Betriebsystem Pascal. Weshalb mich immer wundert warum immer noch Leute behaupten mit PASCAL könnte man kein BS programmieren.

Ich hab da damals an der FH mal gelernt, das man dafür nur den passenden Linker braucht, der den Code in den Bereich des geschützen Speichers verschieben kann und gut dem Dinge.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Antworten