Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Belegung eines Feldes auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
25.12.2003, 19:41 Uhr
~Neuling
Gast


Hallo, ich bin noch ein ziemlicher C - Neuling und habe deshalb mal ein paar kleinere Fragen. Vielleicht kann mir ja jemand helfen.

Ich habe folgendes Programm

C++:
int f (int x, int *y)
{
int z;

z= (x + *y) % 5;
*y=x:
return (z);
}

void main ()
[
int i,j a[5] = {2,1,4,0,3};

for (i=0; i<5; i++)
{
j=a [i];
a[i] = f (a [i], &a [j];
}
}


Wer kann mir erklären, wie ich zum Beispiel für i=3 auf die Belegung des Feldes am Ende der Schleife komme?


Bearbeitung von Pablo:


VERDAMMT! ICH WERDE POST LÖSCHE, WENN IHR EUCH WEIGERT CPP TAGS ZU BENUTZEN. BITTE CPP TAGS BENUTZEN



Dieser Post wurde am 25.12.2003 um 19:46 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.12.2003, 19:55 Uhr
Pablo
Supertux
(Operator)


1. BENUTZE CPP TAGS
2. main soll int sein
3. Nach main hast du eine falsche Klammer. ich verstehe deine Frage nicht ganz, kannst du sie anders erklären?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.12.2003, 20:08 Uhr
~Neuling
Gast


das mit den CPP Tags ist ja ok. Bin halt zum ersten Mail hier.

Schreibe demnächst Klausur und in einer Übung soll man die Belegung am Ende des Feldes angeben. Die Lösung ist a[0]= 0, a[1]= 2, a[2]= 4, a[3]= 3, a[4]= 4. Nur habe ich große Probleme darauf zu kommen. Deswegen habe vorhin einfach mal nach der Belegung des Feldes nach der Schleife i=3 gefragt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.12.2003, 20:21 Uhr
Pablo
Supertux
(Operator)


Ich verstehe nicht ganz, was du mit mir mit der Belegung meinst. Und wenn du schon eine gefunden hast, a[ i ] = i, dann verstehe ich nicht wozu die for-schleife? Wie lautet die Aufgabe?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.12.2003, 20:31 Uhr
~Neuling
Gast


Gegeben ist folgendes C- Programm

C++:
int f (int x, int *y)
{
int z;

z = (x + *y) % 5;
*y = x;
return (z);
}

void main ()
{
int i, j a [5] = {2,1,4,0,3};

for (i=0; i < 5; i++)
{
j=a [ i ];
a[ i ] = f (a [ i ], &a [j];
}
}


Aufgabestellung: Geben Sie die Belegung des Feldes am Ende der main - Funktion an
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.12.2003, 20:45 Uhr
Pablo
Supertux
(Operator)


Da gibt es einen Fehler. Du vergisst beim aufruf von f die ) Klammer. Und main soll int sein.

Schreib dir auf einem Papier die Werte der Variablen und rufe selber (in deinem Kopf natürlich) die Funktion auf und schreibe uaf dem Blatt Papier die neue Werte der Variable. Usw.... wenn ich die die Belegun verrate, dann wirst du nicht lernen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.12.2003, 21:02 Uhr
~Neuling
Gast


die Belegung weiß ich selbst, da ich die Lösung habe. Wie ich oben geschrieben habe wollte ich eine "Erklärung"! haben, wie man darauf kommt. Naja, ich wander mal in ein anderes Forum.
Trotzdem danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.12.2003, 21:13 Uhr
Pablo
Supertux
(Operator)


Wenn du die Beleung findest, dann wird das wohl auch die Erklärung sein. Nur dann, wenn du die richtige Erklärung hast, wirst du selber merken, dass du die Erklärung dazu gefunden hast.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
25.12.2003, 21:17 Uhr
kronos
Quotenfisch
(Operator)


vielleicht hilft dir das:


C++:
int f (int x, int *y) // x und y sind die übergebenen werte a[i] & a[j]
{
int z;

z = (x + *y) % 5; // der term x%5 ergibt den rest, der bleibt wenn man x durch 5 teilt. also 13%5 wäre 3.
*y = x; // irrelevant
return (z); // z wird zurückgegeben und wird unten a[i] zugewiesen
}

void main ()
{
int i, j;
// a [5] = {2,1,4,0,3}; ist gleichbedeutend mit:
int a[5];
a[0]=2; a[1]=1; a[2]=4; a[3]=0; a[4]=3;


for (i=0; i < 5; i++)
/* das bedeutet:
- i ist am anfang 0
- solange i<5 wahr ist wird der folgende code ausgeführt
- nach jedem durchgang des codes wird i++ (i=i+1) ausgeführt. */

{
j=a [ i ]; // j wird also erst 2, dann 1, dann 4...
a[ i ] = f (a [ i ], &a [j];  // a[i] bekommt eine neue belegung die aus a[i] und a[j] mittels f errechnet wird (s.o.)
}
}



lass dich von den * und & nicht stören.
&x bedeutet, die speicheraddresse der variable x.
*px bedeutet der inhalt der addresse px.
in diesem falls sind sie unbedeutend, weil sie sich "aufheben"
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
25.12.2003, 21:20 Uhr
kronos
Quotenfisch
(Operator)


hoppla, das hier stimmt natürlich nich unbedingt:

Zitat:
kronos postete

C++:
j=a [ i ]; // j wird also erst 2, dann 1, dann 4...




da ja die belegung der felder geändert wird.

_____
self_quote_count++;
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>

Dieser Post wurde am 25.12.2003 um 21:21 Uhr von kronos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: