Du hast was davon gesagt dein Programm würde y als 0 werten oder dergleichen.
Daraus schließe ich, dass du versuchst mit Zahlen und unbekannten Variablen zu rechnen.
Vielleicht fällt dir die Aufgabe leichter wenn du stattdessen die komplette Funktion in einem String speicherst, den man dann auch viel besser auf seine Bestandteile überprüfen kann.
Der erste Schritt wäre dann erst einmall alles auf die "richtige" Seite zu bringen, so dass letztendes alle Funktionen des Gleichungssystems wie folgt aussehen :
U11 X1 + U12 X2 + U1n Xn = V
U21 X1 + U22 X2 + U2n Xn = V2 usw...
Sobald du in der Lage bist in deinem String dich so gut zu recht zu finden sowas hinzubekommen, ist der Rest einfach nur noch pures recherschieren nach Mathematischen Regeln.
Dafür solltest du dich mit dem Thema Matrizen auseinandersetzen, speziell könntest du auch Begriffen wie "Koeffizientenmatrix" oder "Dreiecksmatrix" suchen.
Schlussendlich läuft das dann auch auf diese Gausssche Elimination hinaus auf den Pankes link auch verweist.
Da du meine Frage leider immer noch nicht beantwortet hast geh ich davon aus das du Windows benutzt.
Diese Funktion könnte dir nützlich sein:
int gotoxy(short x,short y)
{
HANDLE hConsoleOutput;
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD Cursor_an_Pos = { x,y};
BOOL bSuccess;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOutput, &csbi);
bSuccess = SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
Pos( bSuccess, "SetConsoleCursorPosition" );
return 0;
}
Damit kannst die Cursor Position in der Konsole ändern.
Vergiss nicht die windows.h zu includieren(PSDK vorausgesetzt)
mfg tobZel
Dann ist es aber imho nicht von Marcus, würde mich wundern, wenn der noch weitere solcher Libraries geschrieben hat *g*
Fakt ist aber, dass damit sicher nicht die Schriftart geändert werden kann. Siehe wie gesagt auch http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/setcurrentconsolefontex.asp
BTW: Da fällt mir auf, in meinem alten Posting ist der Link falsch
MfG SideWinder
alpha7 schrieb:
Hallo, meine Frage ist (an sich) einfach:
Gibt es ein Makro, dass anzeigt, auf welcher Maschine ich bin (das z.b. __WIN_DOOF_ auf WIndows-Maschinen existiert, auf Linux __LIN_UX__ oder so)
hintergrund ist, dass ich meine PRogramme so schreiben will, dass sie auf jedem Rechner funktionieren - und manchmal brauche ich eben doch spezifische Infos...
Solche Defines wenn sie denn exisitieren sind compilerabhängig. Darum gibt es dafür z.B. die Autotools.
Google: GNU Autotools
joa. cout ist aber ein objekt.
objekte gibts in c aber nicht.
Das heist für mich sind sie gut.
wenn ich mein prog abgebe aber trotzdem ein fehler.
Denn objekte dürfen wir nicht benutzen...
sonst hätte cih das gemacht.
allerdings kann ich an die stelle ja auch printf() setzen.
muss die schrift danach halt nur wieder auf den standart setzen sonst wird alles bund.
Meinen code werde icha ber auch noch mal im c++ bereich posten.
Da kann man mir vieleicht helfen ihn objekt orientiert zu machen.
Habe sowas nämlich noch nie gemacht. und kaum ahnung.
nur gelesen ahbe ich davon mal.
Da kann mir bestimmt dann nochmal einer bei helfen.
Gehört dann nur nicht mehr in den C bereich...
Wie lange arbeitest du denn mit C/C++?
Wenn nicht versuchst du dich vieleicht erstmal an was leichtem.
Ich weis nicht ob ich richtig liege weil ich selber anfänger bin aber für das was du vor hast braucht man glaube ich WinAPI functionen.
Bin mir (mal wieder) nicht sicher, aber ... fehlt vielleicht eine Datei namens:"MSVCR80.dll" (oder so ähnlich) Bei mir war es auch so!
Windows
-> sucht vergeblich nach "MSVCR80.dll" - vergeblich
-> fragt Manifest, such nach Problem dort - vergeblich ,vorhanden und in ordnung aber Problem immer noch nicht gelößt
-> denkt Programm = murks Fehlermeldung (möglicher Ablauf)
Beweis: Entferne das Manifest / leg ein in dem selben Ordner wie das Programm an. Dann erhälst du eine genauere Nachricht!
Mit freundlichen Grüßen
Rhombicosidodecahedron
Das hat nichts mit dem Code zu tun, sondern mit dem Projekttyp Wenn du ein neues Projekt anlegst, wirst du irgendwo gefragt, ob du eine Konsolen-Anwendung, Windows-Anwendung, DLL ... anlegen willst. Dort wählst du einfach aus, daß du eine Windows-Anwendung haben willst.
(der Typ bestimmt auch den Einstiegspunkt für das Programm: Konsolenprogramme beginnen mit "int main()", Windows-Programme mit der WinMain())
PS: Was macht dein Programm eigentlich für einen Sinn, wenn du kein Konsolenfenster hast, in dem die Ausgaben zu sehen sind?
Wie jetzt? Geht es um ein selbstgebautes Programm, das auf den COM-Port zugreift, oder um ein selbstgebautes und -programmiertes Gerät, das mit dem Rechner kommunizieren soll?
In C hängt es normalerweise nicht vom Namen ab, wie die Datei geöffnet wird, sondern vom angegebenen Dateimodus (fopen() und iostreams öffnen die Dateien standardmäßig im Textmodus, mit "..b" bzw. ios::binary kannst du auf Binärmodus umstellen). Wo man das bei deiner Bibliothek umstellen kann, mußt du mal nachschlagen - vermutlich beim OpenFileMode()-Aufruf.
(PS: Eventuell würde es schon weiterhelfen, wenn du dazusagst, WELCHE Fehlermeldung kommt)
Was sie dir sagen wollten ist das du deinen code so ändern sollst:
void get_words(hangman &wort){ // read an ASCII file and look for words
FILE * fp;
char * buf; //Alternativ ohne allozieren char buf[1024]
buf = (char *)malloc(1024*sizeof(char)); //Speicher für deine Zeile holen
fp=fopen("hangman.config","r");
if(fp == NULL) // Prüfen ob das öffnen geklappt hat
{
//error
}
else
{
fscanf(fp,"%s",buf);
chose_word(buf,wort);
fclose(fp);
}
}
mfg tobZel