Autor |
Beitrag |
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: 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
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.03.18 19:38
Moin und in der EE!
Ist nicht persönlich gemeint, aber gleich zu Anfang, damit es keine Missverständnisse gibt: wir machen nicht deine Hausaufgaben. Wir helfen dir gerne dabei, deine Hausaufgaben selbst zu machen.
Was hast du denn schon? Evtl. mal was ausprobiert, auch wenn der Code nicht läuft, stell ihn einfach mal hier rein.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: 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..6] of String;), weiß jedoch nicht wie ich weitermachen soll.
Moderiert von Narses: Komplettzitat des vorigen Beitrags entfernt.
Moderiert von Narses: Delphi-Tags hinzugefügt
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.03.18 19:55
_________________ There are 10 types of people - those who understand binary and those who don´t.
Für diesen Beitrag haben gedankt: katzemageis
|
|
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 15.03.18 20:23
Quellcode:
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 = 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}
procedure TForm1.Button_CloseClick(Sender: TObject); begin close; end;
procedure TForm1.Button_BerechneClick(Sender: TObject); var punkte: Integer; var Noten : array[1..6] of 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<10) AND (punkte>=8) then 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 Narses: Delphi-Tags hinzugefügt
Moderiert von Narses: Komplettzitat... entfernt.
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.03.18 21:16
Moin!
katzemageis hat folgendes geschrieben : | 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. Wenn du den Quelltext mit [ delphi]..[/delphi] umschließt, wird er auch hübsch formatiert.
katzemageis hat folgendes geschrieben : | Ja ich habe die grundlegende Ansicht nicht sehr schön gestaltet, da ich es eig erstmal nur probieren wollte. |
Wurst, das ist Optik.
katzemageis hat folgendes geschrieben : | 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...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 15.03.18 21:20
hier nochmal die kleine for Schleife:
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.
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
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.03.18 21:27
Moin!
katzemageis hat folgendes geschrieben : | 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.
katzemageis hat folgendes geschrieben : | 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. Allerdings kann ich noch nicht so richtig den Sinn in dem Array sehen, so wie du das konzeptionell verwendet hast. 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"?
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?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: 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 Narses: Komplettzitat... entfernt.
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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?
katzemageis hat folgendes geschrieben : | 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?
katzemageis hat folgendes geschrieben : | Bis jetzt hatten wir auch noch keine mehrdimensionalen Arrays, mit denen man vielleicht auch verwirklichen könnte. |
Holla erst gar keine Ahnung und dann gleich Klotzen... 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
|
Verfasst: Do 15.03.18 21:48
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 15.03.18 21:53
Moin!
@ Frühlingsrolle:
Frühlingsrolle hat folgendes geschrieben : | schreib' die Noten einfach als Konstante an: |
Wo ist der konzeptionelle "Fortschritt" ggü. der Array-Verwendung des TE? 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
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Do 15.03.18 21:54
Ich vermute mal. dass der Lehrer mit dem Array eher so etwas meint:
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
Hält's aus hier
Beiträge: 8
|
Verfasst: 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 Narses: Komplettzitat... entfernt.
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: 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.
@Thema: Wie würdest du es denn als Mensch machen? Mal in Mauseschrittchen gedacht...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 15.03.18 22:09
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
katzemageis
Hält's aus hier
Beiträge: 8
|
Verfasst: 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
Hält's aus hier
Beiträge: 8
|
Verfasst: 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.
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[1] then begin Edit_Note.Text:='1' end else if punkte>=Noten[2] then 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
Beiträge: 762
Erhaltene Danke: 127
|
Verfasst: Do 15.03.18 23:10
... und jetzt das if ... then ... in einer Schleife.
Pseudocode:
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
|
|