myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Compiler Proton (https://mygully.com/showthread.php?t=1961483)

Shuyin 24.12.09 16:59

Compiler Proton
 
Hi Leute..

Also wir müssen ein Pflichtprogramm schreiben (an der Uni) damit wir zu den Prüfungen zugelassen werden.
Wollte es also daheim machen und hab aber jetzt schwierigkeiten den Compiler zu installieren.

an der Uni klappt das wunderbar.

wir gehen auf "ausführen" "cmd" und dann folgenden code

g++ -ansi -o test.exe test.cc

und in der Datei cc steht noch "#include<iostream>"

was mach ich falsch??

ich benutze das programm "proton" aber im prinzip könnte ich ja auch mit dem editor ein programm schreiben.

kann mir jemand schritt für schritt erklären, wie ich ein compiler installiere und
ob "#include<iostream>" ausreicht? oder muss ich noch was dazuschreiben?

gosha16 24.12.09 17:01

Wie wärs wenn du uns erklärst WAS denn nicht funktioniert? Ich kann grade nicht hellsehen.

Shuyin 24.12.09 17:05

ja sry^^ habs wohl vergessen

wenn ich also folgenden code im eingabefenster (ausführen, cmd) eingebe:

g++ -ansi -o test.exe test.cc

kommt folgende fehlermeldung:

c:\user\xx\AppData\Local\Temp/ccltdaaa.o(.text+0x1d9):test.cc:
undefined reference to "tausch(int*, int)
collect2: ld returned 1 exit status

ich denke mal mein compiler funktioniert nicht so richtig...


mein ziel ist im endeffekt die quelldatei (also test.cc) zu einer exe datei (test.exe) zu machen...

gosha16 24.12.09 17:29

der compiler funktioniert. poste den code den du kompilieren willst.

Shuyin 24.12.09 17:38

#include<iostream>

using namespace std;

int main(void)
{
int n,i=0;
int array[10];

void tausch(int[],int);

while(i<10)
{
array[i]=(i+1);
i++;
}

i=0;
while(i<10)
{
cout << array[i] << '\t' << flush;
i++;

}
cout << " n: " << flush; cin >> n;

tausch(array,n);


i=0;
while(i<10)
{
cout << array[i] << '\t' << flush;
i++;

}


// system("PAUSE");

}

gosha16 24.12.09 17:44

void tausch(int[],int); <-- Wozu soll das gut sein? lösch die zeile raus.

Shuyin 24.12.09 18:06

ahhh

warte mal^^ mein compiler klappt doch!!

also dieses programm funktioniert zwar nicht aber ich hab mal was anderes ausprobiert und es hat geklappt..

ich danke dir =)

gosha16 24.12.09 18:07

woran lag es denn?

Shuyin 24.12.09 18:29

keine ahnung.. das erste programm geht nicht zu konvertieren. anscheinend ist da irgendwas falsch. aber das ist auch nicht weiter schlimm. ich hab mal was anderes ausprobiert und das hat geklappt.

stan1986 24.12.09 18:31

du hattest ja auch nur den methodenkopf von tausch(int, int).. aber keinen Rumpf dazu..

Shuyin 24.12.09 18:44

hmm also unsere aufgabe besteht darin:

Entwickeln Sie eine Funktion tausch(...), der ein int-Feld mit 10 Komponenten und eine
positive int-Zahl n übergeben werden. Die Funktion soll die Feldelemente um n Stellen nach
rechts zyklisch durchtauschen.

Beispiele:
1. Feld a vor Funktionsaufruf:
1 2 3 4 5 6 7 8 9 10

Feld nach Aufruf tausch(a,1):
10 1 2 3 4 5 6 7 8 9

2. Feld a vor Funktionsaufruf:
1 2 3 4 5 6 7 8 9 10

Feld nach Aufruf tausch(a,2):
9 10 1 2 3 4 5 6 7 8

3. Feld a vor Funktionsaufruf:
1 2 3 4 5 6 7 8 9 10

Feld nach Aufruf tausch(a,3):
8 9 10 1 2 3 4 5 6 7

im prinzip muss ich ja mit feldern arbeiten.

aber mein problem besteht darin, dass ich mich mit array nicht so gut auskenne^^
wenn ihr wollt könnt ihr mir ja helfen^^ ihr müsst mir ja nicht die lösung sagen, sondern vielmehr wie ich an die aufgabe drangehe.

lösungsidee:

Bei Eingabe von n den zyklischen Tausch um eine Stelle mit Hilfe einer
Schleife n mal wiederholen.

urga 24.12.09 20:56

1. welche sprache ?
2.
Zitat:

Entwickeln Sie eine Funktion tausch(...), der ein int-Feld mit 10 Komponenten und eine
positive int-Zahl n übergeben werden.
ok.
Zitat:

Die Funktion soll die Feldelemente um n Stellen nach
rechts zyklisch durchtauschen.
was ist mit zyklisch durchtauschen _genau_ gemeint?

immer diese lehrer die informatik nicht studiert haben, und dann auf arme schüler losgelassen werden... :P

gosha16 24.12.09 20:59

sieht nach C++ aus.

urga 24.12.09 21:12

ok, ich habs denke ich mal verstanden.

das erste was mir einfällt ist, was soll passieren, wenn parameter eine
positive int-Zahl n übergeben
nicht im array existiert ?

Shuyin 24.12.09 21:17

es soll C sein^^ (oder c++?? weiß net so genau)

also was wir alles gemacht haben bis jetzt sind so while schleifen, if, array, etc.. nicht allzu kompliziert.

mit zyklisch siehst ja in den beispielen =)

also mal angenommen ich geb 2 ein dann soll sich alles um 2 nach rechts verschieben.

und es fängt dann halt mit 9 10 1 2 3 4 5 6 7 8
an

im array existieren im prinzip ja nur die zahlen 1-10

ich denke mal ich muss jedes feld um 1 erhöhen.. aber ich weiß noch net, wie ich es schaffe, dass die erste zahl die letzte wird.

vll eine zwischenvariable??

gosha16 24.12.09 21:21

Code:

cout << " n: " << flush; cin >> n;
Eindeutig C++.
Das mit dem um 1 erhöhen hört sich eher nach einer schlechten Lösung an...

urga 24.12.09 21:24

ach je, das ist eigentlich trivial.
und ich hab schon 12 biere drinne :) *PROST* !!!!
schick mir ne pm, und ich schicke dir lösungsansätze. ok?!

urga 24.12.09 21:27

und auf den 7.ten blick, du benötigst den '%' operator.

gosha16 24.12.09 21:28

Urga, du könntest ihm wenigstens den Algorithmus selber suchen lassen. Er soll ja auch was lernen :P

urga 24.12.09 21:34

aber hallo!

den alg. wird er bei google nicht finden. dafür ist der zu trivial.
jahrelang selbst algorithmus gewesen. ich weiß wovon ich spreche!
:)

Shuyin 24.12.09 21:57

achso.. den mod operator??? aber % war glaube ich mit rest.. wie soll mir das denn helfen?? XD


wisst ihr was^^ ich hab bis zum 7.1. zeit die lösung herauszufinden! ich werde euch als freunde adden und es mal selbst versuchen.. wenn ich es nichts schaffe könntet ihr mir ja so "richtig" helfen XDD wäre echt nett

ich meld mich bei euch wenn ich am verzweifeln bin oder die lösung hab =)


schonmal im voraus danke für die einsatzbereitschaft.

urga 25.12.09 11:37

es geht auch ohne mod, aber dann hast du mind. 2 if (bzw. ? : operatoren) in deiner kopier-schleife.
mit % ist es eleganter ;)

Shuyin 16.02.10 17:00

Der Thread ist zwar alt aber vll benötigt jemand anderes die Lösung... Hier meine Funktion:

void tausch(int a[10],int n)
{
for (int i = 0; i < n; i++)
{
int tmp = a[0];
a[0] = a[9];

for (int j = 9; j > 1; j--)
a[j] = a[j-1];

a[1] = tmp;
}

}


damit hat es geklappt =)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.