![]() |
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? |
Wie wärs wenn du uns erklärst WAS denn nicht funktioniert? Ich kann grade nicht hellsehen.
|
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... |
der compiler funktioniert. poste den code den du kompilieren willst.
|
#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"); } |
void tausch(int[],int); <-- Wozu soll das gut sein? lösch die zeile raus.
|
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 =) |
woran lag es denn?
|
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.
|
du hattest ja auch nur den methodenkopf von tausch(int, int).. aber keinen Rumpf dazu..
|
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. |
1. welche sprache ?
2. Zitat:
Zitat:
immer diese lehrer die informatik nicht studiert haben, und dann auf arme schüler losgelassen werden... :P |
sieht nach C++ aus.
|
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 ? |
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?? |
Code:
cout << " n: " << flush; cin >> n; Das mit dem um 1 erhöhen hört sich eher nach einer schlechten Lösung an... |
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?! |
und auf den 7.ten blick, du benötigst den '%' operator.
|
Urga, du könntest ihm wenigstens den Algorithmus selber suchen lassen. Er soll ja auch was lernen :P
|
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! :) |
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. |
es geht auch ohne mod, aber dann hast du mind. 2 if (bzw. ? : operatoren) in deiner kopier-schleife.
mit % ist es eleganter ;) |
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.