Zum Inhalt springen

Hoffe Auf Hilfe bei Pascal Aufgabe


Snowman6969

Empfohlene Beiträge

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, da mal wieder mächtig unter Zeitdruck

mit den Aufgaben

Snowman

1. Aufgabe:

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;

2. Aufgabe :

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 > Wert then

Wert := ParFeld;

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;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist nicht nur nicht so ganz das richtige Forum, sondern das komplett falsche. Das hier sit weder ein Pascal noch ein Hausaufgaben Forum ;)

Also entweder sagst du wo genau deine Probleme bei den Aufgaben liegen und wie deine Ansätze bisher aussehen oder du sagst wieviel dufür bezahlst damit einer deine Aufgaben erledigt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist nicht nur nicht so ganz das richtige Forum, sondern das komplett falsche. Das hier sit weder ein Pascal noch ein Hausaufgaben Forum ;)

Also entweder sagst du wo genau deine Probleme bei den Aufgaben liegen und wie deine Ansätze bisher aussehen oder du sagst wieviel dufür bezahlst damit einer deine Aufgaben erledigt.

Sorry hab den ganzen Nachmittag an etlichen Aufgabe gesessen, nur diese beiden krieg ich einfach nicht hin. Jetzt Panik morgen ist Abgabetermin.

Hab mich darauf verlassen das mein Studienmaterial was ich bearbeitet habe

(fernuni) ausreicht - wurde eines besseren belehrt. Wahrscheinlich typischer

Fehler eines Erst Semestlers.

Bitte nochmals um Hilfe

Snowman

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zur Aufgabe 1)

Am besten betrachtest Du eine Matrix der Art

0 + + + +

- 0 + + +

- - 0 + +

- - - 0 +

- - - - 0

und gehst anhand von ihr jede Funktion durch. Es muss dabei natürlich folgendes herauskommen:

0 - - - -

+ 0 - - -

+ + 0 - -

+ + + 0 -

+ + + + 0

Auf die Schnelle (ich kann mich durchaus auch mal irren, bitte überprüfe es):

Variante A) Tauscht zuerst die Eintrage [2...5], dann [3...5], dann [4..5] usw. Damit wird die Matrix also erfolgreich transponiert.

B) Geht auch.

C) Vertauschungsteil falsch, sonst würde es gehen.

D) Geht im Schachbrettmuster vor, braucht damit zwei Durchläufe, funktionier aber.

E) Geht zeilenweise von unten nach oben vor, verwendet zwei Durchläufe für jede Zeile, wobei jeweils nur jede 2. Spalte vertauscht wird. Funktioniert.

Zum Überprüfen der Varianten: Am besten bereitest Du Dir ein Pascal-Programm vor, bei dem Du in jede Zelle der Matrix eine andere Zahl schreibst und die die Ergebnisse ausgeben lässt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...