Autor Beitrag
katzemageis
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 19:32 
Hallo ich gehe gerade in die 10. Klasse und wir haben als HAusaufgabe aufbekommen, dass wir für eine bestimmte Punktzahl die Note berechnen sollen.
ALso zb von 40-38 Punkten gibt es eine 1.
Jetzt könnte ich das einfach mit vielen If Anweisungen machen, aber wir sollen Arrays verwenden.
Kann mir vllt jemand erklären wie das geht, gegebenenfalls auch mti Quellecode? Verzweifle gerade echt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 19:38 
Moin und :welcome: in der EE!

Ist nicht persönlich gemeint, aber gleich zu Anfang, damit es keine Missverständnisse gibt: wir machen nicht deine Hausaufgaben. :nixweiss: Wir helfen dir gerne dabei, deine Hausaufgaben selbst zu machen. :zustimm:

Was hast du denn schon? Evtl. mal was ausprobiert, auch wenn der Code nicht läuft, stell ihn einfach mal hier rein. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 19:45 
Kann ich natürlich verstehen, weiß jedoch gar nicht wie ich da rangehen soll. Habe halt nur die Oberfläche und einen Array für die Noten 1-6 definiert (var Noten : array[1..6of String;), weiß jedoch nicht wie ich weitermachen soll.

Moderiert von user profile iconNarses: Komplettzitat des vorigen Beitrags entfernt.
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 19:55 
Moin!

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
weiß jedoch gar nicht wie ich da rangehen soll.
Euer Lehrer hat also einfach den Raum betreten, Zeitung gelesen und kurz vor Schluss eine Aufgabe rausgehauen, evtl. mit einem diabolischen Grinsen garniert, richtig? 8) Ja, so ähnlich war das damals auch, als ich noch in die Schule ging... :lol:

:suspect: Jetzt mal Spaß bei Seite: irgendwas müsst ihr doch besprochen haben. :les: :lupe:

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Jetzt könnte ich das einfach mit vielen If Anweisungen machen
Dann fangen wir doch einfach mal hier an. Wenn du das kannst, dann mach das doch einfach mal. Später...
user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
aber wir sollen Arrays verwenden.
...schauen wir dann mal, wie man das anders/einfacher machen könnte. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: katzemageis
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 20:23 
Quellcode:
ausblenden volle Höhe 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:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button_Berechne: TButton;
    Button_Close: TButton;
    Edit_Note: TEdit;
    Edit_Punkte: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button_BerechneClick(Sender: TObject);
    procedure Button_CloseClick(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button_CloseClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.Button_BerechneClick(Sender: TObject);
var punkte: Integer;
var Noten : array[1..6of Integer;

begin

  punkte:=StrToInt(Edit_Punkte.Text);

   Noten[1]:=1;
   Noten[2]:=2;
   Noten[3]:=3;
   Noten[4]:=4;
   Noten[5]:=5;
   Noten[6]:=6;

  if punkte = 10  then
  begin
  Edit_Note.Text:=IntToStr(Noten[1]);
  end

  else if(punkte<10AND (punkte>=8then
  begin
  Edit_Note.Text:=IntToStr(Noten[2]);
  end

  else if punkte>=6 then
  begin
  Edit_Note.Text:=IntToStr(Noten[3]);
  end

  else if punkte>=4 then
  begin
  Edit_Note.Text:=IntToStr(Noten[4]);
  end

  else if punkte>=2 then
  begin
  Edit_Note.Text:=IntToStr(Noten[5]);
  end

  else if punkte < 2 then
  begin
  Edit_Note.Text:=IntToStr(Noten[6]);
  end
             

end;

end.

Achso bei der 2. If Anweisung wird hier im Forum aus irgendeinem Grund ein Smiley angezeigt. Dort steht jedoch eine 8.
Ja ich habe die grundlegende Ansicht nicht sehr schön gestaltet, da ich es eig erstmal nur probieren wollte.
Ich könnte auch als ich die Noten definiert habe einfach eine for Schleife machen, was ich jetzt auch hinzugefügt habe.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Komplettzitat... entfernt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 21:16 
Moin!

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Achso bei der 2. If Anweisung wird hier im Forum aus irgendeinem Grund ein Smiley angezeigt. Dort steht jedoch eine 8.
Das liegt daran, dass du keine Delphi-Tags verwendest. :idea: Wenn du den Quelltext mit [delphi]..[/delphi] umschließt, wird er auch hübsch formatiert. ;)

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Ja ich habe die grundlegende Ansicht nicht sehr schön gestaltet, da ich es eig erstmal nur probieren wollte.
Wurst, das ist Optik. :nixweiss:

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Ich könnte auch als ich die Noten definiert habe einfach eine for Schleife machen, was ich jetzt auch hinzugefügt habe.
Ich seh keine for-Schleife... :lupe: :?:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 21:20 
hier nochmal die kleine for Schleife:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
  for i :=1 to 6 do
   begin
     Noten[i]:=i;
   end;


Dient halt ledeglich dazu den folgenden Ausdruck zu vereinfachen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  Noten[1]:=1;
  Noten[2]:=2;
  Noten[3]:=3;
  Noten[4]:=4;
  Noten[5]:=5;
  Noten[6]:=6;


An sich funktioniert das Programm zwar, aber die ganzen If Anweisungen gefallen mir da irwie nicht, das kann man bestimmt noch anders darstellen, oder?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 21:27 
Moin!

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
hier nochmal die kleine for Schleife:
[...]
Dient halt ledeglich dazu den folgenden Ausdruck zu vereinfachen.
Jup, schon klar. ;) Aber: die grundlegenden Sachen hast du doch schonmal drauf, das ist doch was. :zustimm:

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
An sich funktioniert das Programm zwar, aber die ganzen If Anweisungen gefallen mir da irwie nicht, das kann man bestimmt noch anders darstellen, oder?
Ja, ich würde das auch anders gestalten. :nixweiss: Allerdings kann ich noch nicht so richtig den Sinn in dem Array sehen, so wie du das konzeptionell verwendet hast. :gruebel: Schau doch mal genau hin, irgendwie wäre es ohne das Array ja sogar deutlich einfacher, du könntest auch direkt die Ziffer der Note als Textkonstante ausgeben, statt jedes mal die Verrenkung mit dem IntToStr usw. :?

Bist du sicher, dass der Lehrer das gemeint hat, als er sagte, "da soll ein Array rein"? :lupe:

Fällt dir vielleicht - rein konzeptionell gedacht, ohne dass du wissen müsstest, wie das geht - eine Variante ein, bei der das Array auch einen wirklichen Sinn hat? :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 21:31 
Ja ich weiß, dass mein Array eigentlich eher sinnlos ist, wollte jedoch halt wenigstens irgendwie ein Array einbringen.
Naja sonst wüsste ich um ehrlich zu sein keine Variante mit einem Array, welche ich umsetzen könnte. Bis jetzt hatten wir auch noch keine mehrdimensionalen Arrays, mit denen man vielleicht auch verwirklichen könnte. Weiß leider echt nicht mehr weiter, wie ich dies anders, vor allem besser schreiben könnte.

Moderiert von user profile iconNarses: Komplettzitat... entfernt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 21:36 
Moin!

Gebe ich Anlass zu der Vermutung, ich könnte mich an meinen letzten Beitrag nicht erinnern oder das mein Scrollrad an der Maus kaputt ist? :P

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Naja sonst wüsste ich um ehrlich zu sein keine Variante mit einem Array, welche ich umsetzen könnte.
Wären die Punkte-Grenzen nicht ein interessanter Ansatz? :idea: :zwinker:

user profile iconkatzemageis hat folgendes geschrieben Zum zitierten Posting springen:
Bis jetzt hatten wir auch noch keine mehrdimensionalen Arrays, mit denen man vielleicht auch verwirklichen könnte.
Holla :shock: erst gar keine Ahnung und dann gleich Klotzen... :lol: immer langsam. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.03.18 21:48 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 21:53 
Moin!

@user profile iconFrühlingsrolle:
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
schreib' die Noten einfach als Konstante an:
Wo ist der konzeptionelle "Fortschritt" ggü. der Array-Verwendung des TE? :nixweiss: Bist du sicher, dein Beitrag hat hilfreiche/aufklärende Wirkung? :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: Do 15.03.18 21:54 
Ich vermute mal. dass der Lehrer mit dem Array eher so etwas meint:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Noten[1]:=38;
Noten[2]:=32;
Noten[3]:=24;
Noten[4]:=16;
Noten[5]:=8;
Noten[6]:=0;

Also ab 38 Punkten eine 1, ab 32 eine 2 usw.
Das lässt sich dann mit einer Schleife abfragen.

ub60
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 22:01 
Also hiermit könnte ich ja dann die angesprochenen Punktegrenzen realisieren, aber ich weiß trotzdem nicht wie ich damit fortfahren kann. Wir haben bis jetzt erst eine Aufgabe mit Arrays gemacht, bei denen wir Zahlen sortieren mussten. Dabei hatte aber jeder Index einen speziellen Wert.

Wie genau kann ich denn jetzt damit abfragen, ob mein eingegebener Wert in dieser Punktegrenze ist, damit ich dann letztlich die Note ausgeben kann?

Moderiert von user profile iconNarses: Komplettzitat... entfernt.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 15.03.18 22:04 
Moin!

Da du den sachten Hinweis offensichtlich nicht verstanden hast: klick doch bitte einfach auf "Antworten", statt immer alles zu zitieren. Das macht deine Beiträge leichter zu lesen. :idea:

@Thema: Wie würdest du es denn als Mensch machen? Mal in Mauseschrittchen gedacht... :lupe:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 15.03.18 22:09 
- Nachträglich durch die Entwickler-Ecke gelöscht -
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 22:10 
Naja die Punktegrenzen haben wir ja jetzt schon. Jetzt müsste man ja nur schauen ob die eingegebene Punktzahl in einer diese Punktemenge liegt
katzemageis Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 15.03.18 22:19 
Also ich würde dieses andere Array mit den Punktegrenzen halt auch nur wieder mit einer If Anweisung abfragen lassen.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
  Noten[1]:=38;
  Noten[2]:=32;
  Noten[3]:=24;
  Noten[4]:=16;
  Noten[5]:=8;
  Noten[6]:=0;


 if punkte>=Noten[1then
 begin
 Edit_Note.Text:='1'
 end
 else if
 punkte>=Noten[2then
 begin
 Edit_Note.Text:='2'
 end ;


Naja diese If Anweisungen dienen übrigens nur als Beispiel, da man dies einfach mit einer Schleife abkürzen könnte.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: Do 15.03.18 23:10 
... und jetzt das if ... then ... in einer Schleife.
Pseudocode:

ausblenden Quelltext
1:
2:
3:
Für i gehe ich von 6 bis 1. (Schleife rückwärts)
Dann frage ich ab, ob die Punktzahl größer oder gleich Noten[i] ist.
Ist das der Fall, setze ich die Note auf den Wert i.

Bei guten Noten überschreibe ich den Wert Note zwar einige male, aber am Ende bleibt der richtige Wert übrig.

ub60
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.