Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Alters Kommentator


ridom - Fr 13.03.09 12:14
Titel: Alters Kommentator
Hi leute(hoffe das ich im richtigen bereich bin) wir haben als Hausaufgabe in der Schule ein Programm auf bekommen
das zu einem gewissen alter zwischen 0 und 100 einen Kommentar abgeben soll
doch wir sollten verschiedenen blöcke machen also zum BSP von 0-6 das ganze soll in einer if/else geschichte passieren ich denke es gibt zwar bestimmt was leichteres aber ich kann nur mit den mitteln arbeiten die ich kenne :D :roll: bin halt noch Anfänger


Hier mal noch wie ich dachte das es geht :roll:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
var alter, satz: integer;
begin
  alter:= StrToint(LabelEdEdit1.Text);
  satz:= StrToInt(Label1.Caption);
    If alter = 0..5 then
    label1.Caption:='Kommentar'
    else
      if alter = 6..15 then
      label1.Caption:='Kommentar'
      else
        if alter = 16 then
        label1.Caption:='Kommentar'
        else
          if alter = 17 then
          label1.Caption:='Kommentar'
          else
            if alter = 18..27 then
            label1.Caption:='Kommentar'
            else
              if alter = 28..66 then
              label1.Caption:='Kommentar'
              else
                if alter = 67..85 then
                label1.Caption:='Kommentar'
                else
                  if alter = 85..100 then
                  label1.Caption:='Kommentar';
  Label1.Caption:= IntToStr(satz);
end;

:D aber so gehts anscheind nicht also pls help


Nersgatt - Fr 13.03.09 12:16

Packe bitte Deinen Code in die Delphi-Tags, damit er besser lesbar ist.

Du solltest mit größer (>) und kleiner (<) arbeiten:


Delphi-Quelltext
1:
2:
IF (alter >= 0and (alter <= 6Then
  {machwas}


Beachte, dass Du dann die Klammern setzen musst!


ridom - Fr 13.03.09 12:21

Wie geht das mit den Delphi-Tags???

werde es gleich mal probieren mit dem größer kleiner


freak4fun - Fr 13.03.09 12:25

Versuch es mal mit Case.


Marc. - Fr 13.03.09 12:27

user profile iconfreak4fun hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal mit Case.

user profile iconridom hat folgendes geschrieben Zum zitierten Posting springen:
das ganze soll in einer if/else geschichte passieren ich denke es gibt zwar bestimmt was leichteres aber ich kann nur mit den mitteln arbeiten die ich kenne


Zu den Delphi-Tags: [delphi] Code [/delphi]


ene - Fr 13.03.09 12:28

Bei mehreren Anweisungen wäre Case besser. Du kannst deinen Code in Tags setzten [delphi] und am Ende ein /delphi ebenfalls in [].


ridom - Fr 13.03.09 12:30

Habs jetzt mal mit dem größer und kleiner bereich gemacht dort beschwert er sich wenigstens nicht beim compilieren wenn ich aber dann zum bsp 23 einegebe dann kommt der Fehler>>Meldung: '''ist keine Integer wert hab ich das irgendwas beim IntToStr falsch gemacht?


Nersgatt - Fr 13.03.09 12:33

An welcher Zeile tritt der Fehler denn auf? Was steht in Label1.Caption? Und warum Konvertierst Du erst Die Caption in einen Integer um es ganz am Schluss wieder zurück zu konvertieren?


jfheins - Fr 13.03.09 12:34

Du könntest auch sowas machen:

Delphi-Quelltext
1:
 If alter in [0..5then                    

:mrgreen:

Viele Wege führen nach Rom 8)


freak4fun - Fr 13.03.09 12:38

user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconfreak4fun hat folgendes geschrieben Zum zitierten Posting springen:
Versuch es mal mit Case.

user profile iconridom hat folgendes geschrieben Zum zitierten Posting springen:
das ganze soll in einer if/else geschichte passieren ich denke es gibt zwar bestimmt was leichteres aber ich kann nur mit den mitteln arbeiten die ich kenne

Dann bringt er sich das bei! So schwer ist das nicht. Du nimmst ja auch keine Holzräder für dein Auto, nur weil du keine nurmalen Reifen hast. xD


ridom - Fr 13.03.09 12:40

Er zeigt mir nicht an in welcher Zeile er zeigt mir nur die Fehldermldung wenn ich das Programm ausprobieren möchte und wenn ich dann 12 als Zahl eingebe dann kommt die oben genannte Fehlermeldung im Label1.Caption soll nachher der satz drin stehen zu dem jeweiligen alter


Nersgatt - Fr 13.03.09 12:42

Dann sehe ich den Sinn in Deiner Zeile 4 und Zeile 28 oben nicht. Nimm beide Zeilen mal raus.


ridom - Fr 13.03.09 12:49

@ Nersgatt genau das war der Fehler dankeschön weiss eigentlich selbst nicht so recht warum ich die dort hin gemacht habe

und danke @ all ^^ :D hier bekommt man schnell geholfen


Nersgatt - Fr 13.03.09 12:57

Wenn Du jetzt noch in der Schule glänzen willst, dann gib mal 101 oder -1 ein und überlege, wie Du das sinnvoll abfangen willst ;-)


ridom - Fr 13.03.09 13:34

^^auf 101 und -1 reagiert das programm garnicht


wazap - Fr 13.03.09 13:45


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
case Alter of
  0..5{ mach was };
  6..12{ mach was };
  15{ mach was };
  else {mach was };
end;


Dude566 - Fr 13.03.09 13:53

So z.B. kannst du es machen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
var
   alter : integer;
begin
alter := StrToInt(Edit1.Text);
      case Alter of
           0..6: ShowMessage('0-6');
           7..15: ShowMessage('7-15');
           16..23: ShowMessage('16..23');
           {...}
      else ShowMessage('Net da.');
      end;
end;


Edit: Oh wazap hatte ja auch schon den Lösungsweg.


ridom - Fr 13.03.09 14:04

:wink: danke an euch beide aber der Vorschlag mit der größer gleich variante funktioniert
auch wenn ich denke das euer Lösungs weg der elgantere ist sollte ich "noch" bei den sachen bleiben wo ich überhaupt verstehe was ich da mache :wink: und nicht einfach abschreiben