Funktion MAX

@Nase Gute Frage....

also ich habe bis ParFeld[5] gemacht und da ist die if-Bedingung nicht erfüllt. Bleibt dann max := 37 ? Stimmt alles überhaupt?

Code:
w := max(Feld, 1, 10)
 { Funktionsausführung }
 begin
      Wert := ParFeld[von] = ParFeld[1]= -20;
      for i := von + 1= 1+1= 2 to bis = 10 do
        if ParFeld[2] = 0 > -20 then
          Wert := ParFeld[2] = 0;
      max := 0;
      for i := von +1 = 1+1= 2 to bis = 10 do
        if ParFeld[3] = 1 > 0 then
          Wert := ParFeld [3] = 1;
      max := 1;
      for i := von +1 = 1+1= 2 to bis = 10 do
        if ParFeld[4] = 37 > 1 then
          Wert := ParFeld [4] = 37;
      max := 37;
      for i := von +1 = 1+1= 2 to bis = 10 do
        if ParFeld[5] = 4 > 37 then
          Wert := ParFeld [5] = 4;
      max := 37;
  end;
 
Genau. Es wird das Feld Eintrag für Eintrag durchgegangen und nach dem größten Wert geschaut.
Um es vielleicht nochmal in Worten zusammezufassen und wiede eine Stufe abstrakter zu werden:
Die Funktion max(ParFeld, von, bis) liefert das Maximum der ganzzahligen Einträge eines Feldes ParFeld zurück, wobei nur Werte mit einem Index zwischen einschließlich von und bis berücksichtigt werden.
Entsprechend wird in Antwort D in der ersten Zeile w auf das Maximum von {Feld[1], Feld[2], ..., Feld[10]} gesetzt.
Und jetzt musst du dir überlegen, welche Folgen das dann für die zweite und dritte Zeile von D haben kann. Beziehungsweise musst du dir dazu überlegen, welche Werte w nach der ersten Zeile zunächst annehmen kann.
 
was genau ist denn die Beziehung zwischen ParFeld[von] und von ?

also von liegt sozusagen im Definitionsbereich und ParFeld[von] im Wertebereich?

von=1 wird der Wert ParFeld[1] zugewiesen?
 
Zuletzt bearbeitet:
Du hast ein Feld von Ganzzahlen. Das Feld habe zehn Einträge. Dann hat jeder Eintrag einen Index (der Einfachheit halber hier von 1 bis 10), der den Eintrag eindeutig benennt. Also hat der erste Eintrag des Feldes den Index 1, der zweite Eintrag den Index 2.

Um jetzt auf die Einträge des Feldes zuzugreifen, schreibt man Feldname[Index] um den jeweiligen Eintrag zu erhalten. Im Beispiel für den ersten Eintrag Feld[1], für den zweiten Feld[2] usw. Allgemein für den a-ten Eintrag von Feld schreibt man Feld[a].
von ist nun also der Index für den von-ten Eintrag von ParFeld, konkret z.B. für den dritten Eintrag, falls von=3.

Und der Definitonsbereich einer Funktion ist der Bereich an Parameterwerten, für die die Funktion definiert ist, während der Wertebereich einer Funktion der Bereich ist, den die Funktionswerte/Rückgabewerte der Funktion annehmen können.

Ich bin jetzt für heute aber erst mal weg. Schau es dir in Ruhe noch mal an, dann wird es verständlicher.
 
Ok, danke dir für die Hilfe soweit :)

Hoffe, ich finde die richtigen Lösungen bis 12 Uhr morgen früh.

Mein Tipp wäre, B, C, E lol

Gruß
BB
 
Nein es ist eine von 5, die wir bis morgen lösen müssen. Insgesamt sind es immer mehrere, für die wir 2 Wochen Zeit haben. Davon insgesamt 50% zur Klausurzulassung.
Deswegen denke ich, Lösung eingeben, dann verstehen. Was bringt mir das Verständnis, wenn ich am Ende nicht genug Punkte habe ;)
Ergänzung ()

Die Einsende-Aufgaben sind am 11.12. vorbei und die Klausur ist Ende Februar. In der Zeit hat man noch genug Zeit für ein tieferes Verständnis.
 
Dann wäre es ja nicht so schlimm, wenn du diese Aufgabe nicht hinbekommst. Solange die anderen vier Aufgaben dann richtig sind ;).
 
Das weiß ich dann erst am Ende, ob es schlimm war, wenn ich die nicht habe :D
Ergänzung ()

@Nase

Hast du Zeit und Lust, nochmal D und E durchzugehen?
 
Kommt drauf an, wie lange du dafür brauchst :D.

Versuch dich ruhig daran und poste, was du als Lösung hast und wie du zu der Lösung gekommen bist.
 
Zum Glück studiere ich nicht Informatik, soviel kann ich schon mal sagen :D

Also, in D) steht nicht wie in A) w := max(Feld , Feld[1], Feld[GRENZE]) sondern w := max(Feld, 1, GRENZE).

Das heißt in A) können die Variablen von = Feld[1] und bis =Feld[GRENZE] beliebige Werte annehmen und können auch außerhalb der Funktionsparameter liegen.

In D) ist von =1 und bis = GRENZE.

Jetzt muss ich herausfinden, was der Unterschied ist richtig?
 
Bizepsbenny schrieb:
Zum Glück studiere ich nicht Informatik, soviel kann ich schon mal sagen :D
Keine Sorge, mach ich auch nicht.


Im Gegensatz zu A geht die Aufgabe D ja noch weiter. Das w := bedeutet, dass der Rückgabewert der Funktion max (das ist der Maximalwert des Feldes) in die Variable w geschrieben wird. Die Variable w wird dann eventuell für einen erneuten Funktionsaufruf verwendet.
 
Was machst du, wenn ich fragen darf?

Ok, wenn das Maximum nicht auf Feld[Grenze] liegt, dann bedeuted das, dass w <= GRENZE ist oder sein kann, also auf irgendeinem kleineren Index liegt richtig?
 
Man könnte es so zusammenfassen: Ich habe keine Informatik studiert, arbeite aber in dem Bereich.

Deiner Aussage kann ich nicht ganz folgen, aber du hast offenbar noch nicht den Unterschied zwischen dem Index und dem Wert eines Feldes raus.

Schau dir nochmal das Feld aus Beitrag #12 an. Da ist der Maximalwert des Feldes 37 und dieser Wert steht an 4. Position (Index) im Feld. w wäre in diesem Beispiel also 37. Jetzt kommt der Vergleich, ob 37 kleiner gleich GRENZE ist. Wenn ja, dann rufe erneut die Funktion max auf und übergib als Parameter für von und bis die 37. Und jetzt müsstest du wieder entscheiden, ob das überhaupt funktioniert oder ob es die Möglichkeit gibt, dass das Feld Werte beinhalten kann, so dass der zweite Funktionsaufruf (max(Feld, w, w)) gültig/ungültig wird.
 
Ok, ich denke man sollte wissen, wann man es gut sein lassen sollte ;)

Ich werde erstmal ne Runde schlafen und dann nochmal darüber nachdenken.

Ich hoffe, ich kann künftig noch öfters auf deine/eure Hilfe zurück kommen :)

Gruß
BB
Ergänzung ()

Moin,

kurze Rückmeldung: Ich hatte B und C angekreuzt und somit 12 von 20 Punkten für die Aufgabe erhalten ;)

@simpsonsfan @Nase

Danke euch für die tolle Hilfe, ich werde die Aufgabe anhand der freigestellten Musterlösung nachvollziehen.

Die folgenden Aufgaben (Lösung bis 13.11.) werde ich frühzeitiger hier rein stellen und hoffe nach wie vor auf eure Hilfe :)

Besten Gruß
BB
 
Zuletzt bearbeitet:
Zurück
Oben