Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!:)

Ich habe folgende Aufgabe bekommen:

Aufgabe:

Deklariere ein Array, das 20 Elemente vom Typ int enthält.

Fülle das Array so, dass die Elemente mit geradem Index

den Wert 1 enthalten und die mit ungeradem Index den

Wert 2.

Diese soll ich in Quellcode im C++ schreiben und ich weiß jetz nich genau, wie ich da vorgehen soll..

Ich hab schon mal angefangen:

int Elemente[20];

Elemente[index] =

Kann mir jemand sagen, ob das soweit richtig ist und wie ich weiter vorgehen müsste?

Danke!

Gruß

Carina

Geschrieben

das is schonmal ein kleiner Anfang, ja :D

Ich geb Dir mal ein paar Stichworte und Du schreibst dann den Rest.

Gerade/Ungerade kann man mittels Modulo herausfinden. Das ist einer der Operatoren bei einer Integer-Division.

Das ganze verpackst Du dann in einer kleinen if-Sequenz und die wiederum in einer Schleife zum Beispiel for...

Fertig. :D

Geschrieben

Wenn Du die fertige Lösung hier postest, dann schnipp ich Dir noch ein paar Specials rein, die Deinen Lehrer bestimmt gefallen werden. Vorausgesetzt Du hast es nicht bereits dann schon selbst drin. :D

Geschrieben

Also ich hab's jetzt mal probiert zu lösen,

ist aber gut möglich, dass ich bisschen Müll geschrieben hab^^

Hab mit dem Programmieren erst angefangen :rolleyes:

#include <iostream>

using namespace std;

int main()

{

/* Aufgabe:

Deklariere ein Array, das 20 Elemente vom Typ int enthält.

Fülle das Array so, dass die Elemente mit geradem Index

den Wert 1 enthalten und die mit ungeradem Index den

Wert 2.

*/

int Elemente[20];

for(int Index = 0, Index <=19; Index++)

if (Index % 2 == 0)

{

("1");

}

else

{

("2");

}

char c;

cin >> c;

}

Geschrieben
Also ich hab's jetzt mal probiert zu lösen,

ist aber gut möglich, dass ich bisschen Müll geschrieben hab

Schaut doch schon ganz brauchbar aus. Nur das hier:

Elemente[index] =

... sollte noch mit rein. ;)

Achja: int und char sollte man auch nicht unbedingt durcheinander würfeln. :D

Geschrieben

@knuffl:

Das ist absolut kein Müll, das is doch fast perfekt.

In der for-schleife ist ein Komma drin, das darf da nicht hin, das muss ein Semikolon sein.

Wie Hexagon schon sagte, musst Du noch die Zuweisung ergänzen, so dass dann tatsächlich auch im Array am Index was drin steht.

Ein Special für Deinen Lehrer wäre zum Beispiel:

Anstelle von:


if (Index % 2 == 0)

	Elemente[Index] = 1;

else

	Elemente[Index] = 2;

Kannst Du auch:

Elemente[Index] = (Index % 2 == 0) ? 1 : 2;

benutzen. Hier ist das if-else einfach inline. Ein weiteres Schmankerl wäre, wenn Du anstatt der for-Schleife eine while-Schleife nimmst:

int Index = 20;

while ( Index-- )

    ...

Bei heutigen Compilern macht das zwar wenig aus und es füllt das Array von hinten, dafür gehts nen Tick schneller :D

Aber bitte treibe solche inline und kryptischen "Codeverbesserungen" nicht zuweit, da es so im Team schwerer wird Code des Anderen zu lesen.

@Hexagone:

ich vermute der char ist nur fürs cin gedacht.

@T3D:

da der for-schleife nur eine if-else-sequenz folgt ist das absolut ok.

Die Eingabe ist dafür, dass die cmd-Nox sich nicht sofort schliesst.

Cleveres Mädel. Andere hätten jetzt schon wieder nen Thread aufgemacht:

"Programm schliesst sich von alleine, bitte helfen" :D

Geschrieben
@knuffl:

Das ist absolut kein Müll, das is doch fast perfekt.

In der for-schleife ist ein Komma drin, das darf da nicht hin, das muss ein Semikolon sein.

Wie Hexagon schon sagte, musst Du noch die Zuweisung ergänzen, so dass dann tatsächlich auch im Array am Index was drin steht.

Ein Special für Deinen Lehrer wäre zum Beispiel:

Anstelle von:


if (Index % 2 == 0)

	Elemente[Index] = 1;

else

	Elemente[Index] = 2;

Kannst Du auch:

Elemente[Index] = (Index % 2 == 0) ? 1 : 2;

benutzen. Hier ist das if-else einfach inline. Ein weiteres Schmankerl wäre, wenn Du anstatt der for-Schleife eine while-Schleife nimmst:

int Index = 20;

while ( Index-- )

    ...

Bei heutigen Compilern macht das zwar wenig aus und es füllt das Array von hinten, dafür gehts nen Tick schneller :D

Aber bitte treibe solche inline und kryptischen "Codeverbesserungen" nicht zuweit, da es so im Team schwerer wird Code des Anderen zu lesen.

@Hexagone:

ich vermute der char ist nur fürs cin gedacht.

@T3D:

da der for-schleife nur eine if-else-sequenz folgt ist das absolut ok.

Die Eingabe ist dafür, dass die cmd-Nox sich nicht sofort schliesst.

Cleveres Mädel. Andere hätten jetzt schon wieder nen Thread aufgemacht:

"Programm schliesst sich von alleine, bitte helfen" :D

vielen Dank für die Tipps!! :):)

Geschrieben

@T3D:

da der for-schleife nur eine if-else-sequenz folgt ist das absolut ok.

Die Eingabe ist dafür, dass die cmd-Nox sich nicht sofort schliesst.

Cleveres Mädel. Andere hätten jetzt schon wieder nen Thread aufgemacht:

"Programm schliesst sich von alleine, bitte helfen" :D

ahjo stimmt ;)

vielleicht hatte mich auch nur die eingabe verwirrt :D

Geschrieben

Gerade/Ungerade kann man mittels Modulo herausfinden.

Kann man. Man kann aber auch anders auf grade/ungrade testen.

Das Beste ist jedoch, dass solch ein Test, egal wie, bei der beschriebenen Aufgabenstellung völlig überflüssig ist.

Geschrieben
Ist die Syntax in c++ nicht auch " for() {} "? Wenn ja hast du Klammern vergessen.

Nein.

Ohne Klammern wird die erste nachfolgende Anweisung ausgeführt und das ist die If-Else-Struktur.

[Edit]

Ok, VaNaTiC hats schon erwähnt...

Ist noch früh am Morgen... :hells:

Geschrieben
Schreibs halt gleich dazu wie das konkret geht, denn ehrlich gesagt, ich hab das noch nie anders als mit mod gemacht.
Man kann das mit Bitoperationen machen.

Es gibt sehr viele Lösungen zu dieser Aufgabe. Man kommt auch komplett ohne Schleife aus.

Das dürfte die einfachste Lösung sein:

int Elemente[20] = {1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2};
Ein anderes Beispiel:
int Elemente[20];

Elemente[0]=Elemente[2]=Elemente[4]=Elemente[6]=
Elemente[8]=Elemente[10]=Elemente[12]=Elemente[14]=
Elemente[16]=Elemente[18]=1;

Elemente[1]=Elemente[3]=Elemente[5]=Elemente[7]=
Elemente[9]=Elemente[11]=Elemente[13]=Elemente[15]=
Elemente[17]=Elemente[19]=2;[/code] Und noch eins:
[code]#include <algorithm>

int generator()
{
static int x = 2;
x = 3-x;
return x;
}

int main()
{
int Elemente[20];
std::generate( Elemente, Elemente + 20, generator );
}

Vermutlich soll beim Lösen der Aufgabe aber eine bestimmte, vorher besprochene Technik benutzt werden.

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...