Hallo,
ich weiß das ist nicht so das passende Forum, aber vieleicht kann mir trotzdem jemand auf die Schnelle helfen, der sich in Pascal auskennt.
Hab da 2 Aufgaben durch die ich nicht durchsteige. 
 
Ich bin mal so frech und poste Sie
Bin für jede Hilfe mehr als Dankbar
Snowman
1. Aufgabe:
Code
		
					
				In einem PASCAL-Programm soll eine 5×5 Matrix transponiert werden. Das heisst, die Zeilen und Spalten der Matrix sind zu vertauschen, wie im folgenden Beispiel gezeigt ist:
Wir geben folgende Typdefinition und Variablendeklaration an:
  const
  GROESSE = 5;
  type
  tIndex = 1..GROESSE;
  tMatrix = array [tIndex,tIndex] of integer;
  var
  A : tMatrix;
  hilf,
  i,
  j : integer;
Das Lesen der Matrixwerte in A wird folgendermaßen durchgeführt:
{ Lesen der Matrixwerte in A: }
  for i := 1 to GROESSE do
    for j := 1 to GROESSE do
      readln (A[i,j]);
Welche der fünf folgenden Programmstücke führen das Transponieren der Matrix A korrekt aus?
 
       
	A  	
begin
  for i := 1 to GROESSE-1 do
    for j := i+1 to GROESSE do
    begin
      hilf := A[i,j];
      A[i,j] := A[j,i];
      A[j,i] := hilf
    end
end;
	B  	
begin
  for i := 0 to GROESSE-1 do
    for j := 2 to GROESSE+1 do
      if (i+j) <= GROESSE then
      begin
        hilf := A[i+1,j+i];
        A[i+1,j+i] := A[j+i,i+1];
        A[j+i,i+1] := hilf
      end
end;
	C  	
begin
  for i := 1 to GROESSE-1 do
    for j := GROESSE downto i+1 do
    begin
      hilf :=A[i,j];
      A[j,i] := A[i,j];
      A[i,j] := hilf
    end
end;
	D  	
begin
  for i := 1 to GROESSE-1 do
  begin
    j := i+1;
    while j <= GROESSE do 
    begin
      hilf := A[i,j];
      A[i,j] := A[j,i];
      A[j,i] := hilf;
      j := j+2
    end;
  end;
  for i := 1 to GROESSE-1 do
  begin
    j := i+2;
    while j <= GROESSE do 
    begin
      hilf := A[i,j];
      A[i,j] := A[j,i];
      A[j,i] := hilf;
      j := j+2
    end
  end
end;
	E  	
begin
  for i := GROESSE-1 downto 1 do
  begin
    j := i+1;
    while j <= GROESSE do 
    begin
      hilf := A[i,j];
      A[i,j] := A[j,i];
      A[j,i] := hilf;
      j := j+2
    end;
    j := i+2;
    while j <= GROESSE do 
    begin
      hilf := A[i,j];
      A[i,j] := A[j,i];
      A[j,i] := hilf;
      j := j+2
    end
  end
end;
	
			Alles anzeigen
	2. Aufgabe :
Code
		
					
				Die Funktion max findet in einem Feld ParFeld von integer-Werten das Maximum der Feldelemente ParFeld[von], ..., ParFeld[bis].Wir geben folgende Deklaration an:
    function max (
               ParFeld: tFeld;
               von, bis: tIndex): integer;
    { bestimmt das Maximum im Teilfeld von ParFeld[von] 
      bis ParFeld[bis] }
    var
      Wert : integer;
      i : tIndex;
   begin
      Wert := ParFeld[von];
      for i := von + 1 to bis do
        if ParFeld[i] > Wert then
          Wert := ParFeld[i];
      max := Wert
    end; { max }
Für welche der folgenden Programmstücke verlassen die Werte der aktuellen Parameter bei dem Aufruf  bzw. den Aufrufen der  Funktion max nicht den durch die formalen Parameter definierten gültigen Wertebereich, egal welche integer-Werte im Feld vorkommen? Gehen Sie dabei von folgenden Konstanten-, Typ- und Variablenvereinbarungen aus:
    const
    GRENZE = 10;
    type      
    tIndex = 1..GRENZE;
    tFeld = array [tIndex] of integer;
    var
    Feld : tFeld;
    w,
    w1,
    w2 : integer;
 
       
	A  	
w := max (Feld, Feld[1], Feld[GRENZE]);
	B  	
w := max (Feld, (GRENZE-1) div 2,
            (GRENZE-1) div 2);
	C  	
if max (Feld, 1, (GRENZE-1) div 2) >
      max (Feld, (GRENZE+1) div 2, GRENZE)
then
  w := max (Feld, 1, (GRENZE-1) div 2)
else
  w := max (Feld, (GRENZE+1) div 2, GRENZE);
	D  	
w := max (Feld, 1, GRENZE);
if w <= GRENZE then
  write (max (Feld, w, w));
	E  	
w1 := max (Feld, 1, GRENZE);
w2 := max (Feld, 4, GRENZE-1);
if (0 < w2) and (w1 <= GRENZE) then
begin
  w := max (Feld, 2, GRENZE);
  w := max (Feld, 1, w)
end;
	
			Alles anzeigen
	![]()