myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Programmieren spanneder gestalten? (https://mygully.com/showthread.php?t=1925982)

Dennka 20.10.09 11:34

Programmieren spanneder gestalten?
 
Hallo zusammen,

ich hab mal mit C++ angefangen und in der Schule schon länger mit C. Grundkenntisse besitze ich eigentlich, jedoch nicht viel.

Um es weiter zu lernen fehlt mir da irgendwie die nötige motivation und auch die hilfe bei problemen.

manta656 20.10.09 13:52

die Hilde bei Problemen , findest du am besten in einem c++ forum. Programmiere nützliche Tools , auch wenn es sie bereits giebt , um Erfahrung zu sammeln und shcicke sie deinen Freunden , sie können dir dan ein Feedback geben , und du kannst ihnen alles Individuell anpassen , so bekommst du Erfahrung und glückliche Freunde :D

Driftking3 20.10.09 13:52

War bei mir genauso.....halt mit VB08.....am meisten motivation hat man in dem moment in dem man etwas vertigstellt und es seinen Freunden zeigen kann, weil man was erreicht hat ^^ Ist eigentlich im ganzen leben mit allem so ^^

Ist kein wirklich guter Tipp, aber vllt hilft er ja ^^

mfg Driftking

Dennka 21.10.09 14:44

Naja, das wenn man etwas geschafft hat motivation ist, glaub ich. Nur muss man das doch erstmal schaffen^^.

Vielleicht hat jemand von euch Sourcecodes wo sehr viele Kommentare als Erklärung da sind

manta656 21.10.09 16:16

ich hab sourcecodes allerdings nur für vb8 -.- sry

Iljaassassin 21.10.09 16:27

Ich beschäftige mich mit der Spieleprogrammierung und zur Motivation habe ich mir immer ein Spiel angemacht und bisschen gezockt und immer dabei daran gedacht wie toll es doch wäre, wenn cih es auch selber hinkriegen würde:D
Immerhin hat es dann immer fast ne Woche gehalten ;)
Was auch gut motiviert ist tatsächlich etwas machen und Feedback bekommen ;)

urga 21.10.09 16:29

sourcecodes + kommentare findest du per google zuhauf.
musst nur nicht nach "sourcecode c++" suchen, sondern problembezogen z.b. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

soll es denn wirklich c++ sein? c# ist sehr schick.
c++ unter windows brauchst du nur, wenn es auf teufel komm' raus hochperformant sein muss, oder du hardwaretreiber programmieren willst.

Dennka 21.10.09 17:47

Muss nicht unbedingt C++ sein, kann auch in C geschwreiben sein.

Aber ich woltle keine Spiele programmieren, sondern mehr Programme

manta656 21.10.09 18:57

io C# ist auch nicht die schwerste ;) Ich finde , man kann leichter C# und VB lernen als c++ ;) . Allerdings haben diese beiden Sprachen (wenn ich mich nicht Irre) einen Nachteil zu c++ , da sie .NET Framework 2.X oder höher abhängig sind.

Dennka 21.10.09 22:14

Na an .NET Framework 2.X oder höher soll es nicht scheitern^^

Ist VB leicht bzw erzeilt man dort schneller erfolge?

Driftking3 21.10.09 22:51

Du schaffst in 5min einen einfach Webbrowser nach 2Stunden hast du lesezeichen und anderen crap raus ^^

Spammer is auch 5min ding.....halt so die anfangstools gehen schnell und einfach ^^

Falls du eine Seite brauchst:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
hat mir auch sehr geholfen ^^

mfg Driftking

urga 22.10.09 06:35

wenn du C kannst ist c# einfacher für dich wegen der recht ähnlichen syntax.

Dennka 23.10.09 10:01

Nun ich versuch es einfach mal wieder^^

Doch welche Entwicklungumgebung ist zu empfehlen? Hab nur mit DevC++ und Borland gearbeitet.

DevC++ ist eigentlich sehr gut. Borland ist dagegen der totale scheiß.

Hab auch mal in VC++ reingeschnuppert, das ist aber kein bisschen Anfängerfreundlich und mehr Drag&Drop

urga 23.10.09 10:36

visual studio 2008 (c# oder VB)
gibts kostenlos als express hier: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
und irgendwo im board auch als professional. die professional hat auf jeden fall die umfangreichere hilfe.

Iljaassassin 23.10.09 11:33

Code::Blocks ist da das richtige für dich, wenn du nicht auf VS stehst ;)

Dennka 23.10.09 15:41

Mit Code Blocks hab ich da so meine problem schon ohne bevor ich anfangen kann den Code zu schreiben xD

Dennka 24.10.09 17:02

Zitat:

Zitat von urga (Beitrag 20075412)
visual studio 2008 (c# oder VB)
gibts kostenlos als express hier: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
und irgendwo im board auch als professional. die professional hat auf jeden fall die umfangreichere hilfe.

Ich hab mir mal VS bei youtube angeschaut. Wo liegt da der unterschied zu VC++?

Beide sind per Drag&drop was ich eigentlich nicht wollte

Durch Vc++ war mein PC total lahm. verbraucht da VS auch so viele resourcen?

urga 24.10.09 18:12

c# ist nicht c++. das ist der hauptunterschied.
c# ist moderner und hat m.e. die bessere syntax als c++.
es gibt allerdings sachen, wo c++ besser geeignet ist. treiberprogrammierung z.b.

das drag&drop ist doch nur dazu da, um sich oberflächen zusammenzuklicken.glaub' mir, das willst du haben :)
wenn du unter VS eine consolenanwendung schreibst, gibts auch kein drag&drop...

zur performance: ich entwickele unter vmware win-xp(1.5G ram zugewiesen)
das hauptsystem ist win7-64 mit einen athlon64 X2 5400+ und 4GB ram.
läuft ziemlich flüssig.

Dennka 28.10.09 20:54

Ich hab mich für Dev C++ (auf dem Laptop) und Code::Blocks (auf dem PC) entschieden,

Aber Dev C++ erkennt gotoxy nicht. Ich hab auch schon conio.o und windows.h eingebunden, trotzdem nix

Dennka 01.11.09 11:54

Ich hab wieder interesse daran gefunden :). Bis jetzt hab ich aber nur Quelltexte verbesser/geändert

Was könnte man denn programmieren? (in der Console, GUI kann ich nicht)

Was für eine alternative gibt es zu Borlands gotoxy, ausser \t und \n dauert einzutippen?

energy107 01.11.09 16:26

Die gotoxy Header musst du dir im Netz suchen. Da hatte ich sie auch her ... ich glaub bei cplusplus.de gibts die.

urga 01.11.09 18:39

Code:

#include "windows.h"
bool checkConsoleBounds (int x, int y) {
        if  (x < 0 || y < 0) {
                return false;
        }
        CONSOLE_SCREEN_BUFFER_INFO p;
        GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &p);
    SMALL_RECT r = p.srWindow;
        return (x <= r.Right && y <= r.Bottom);
}
void gotoXY(int x, int y) {
        if (checkConsoleBounds (x, y)) {
                HANDLE hStdout;
               
                hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
                COORD coordScreen = { x, y };
                SetConsoleCursorPosition( hStdout, coordScreen );
        }
}


Dennka 01.11.09 19:00

Kann ich das irgendwie in die windows.h oder conio.h einbinden, sodass ich es nicht jedesmal aufs neue eingeben muss?

Und wie kann ich die Schriftfarbe eines Satzes ändern?

urga 01.11.09 19:22

mach doch dein eigenes bla.h:
#include "windows.h"
bool checkBounds(....
....

und include das dann.

zur farbe: fang mal hier an: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

dann kommst du irgendwann zu
Code:

SetConsoleTextAttribute(hStdout, FOREGROUND_RED |
            FOREGROUND_INTENSITY))

google mal selbst ein bisschen. ich hab von dem kram nämlich auch keine ahnung.
das mit dem xy wollte ich aber auch wissen ;)

Dennka 01.11.09 19:30

Den Inhalt des Links kenn ich schon, nur leider werde ich daraus nicht schlau

Ich hab versucht das
Code:

#include "windows.h"
bool checkConsoleBounds (int x, int y) {
        if  (x < 0 || y < 0) {
                return false;
        }
        CONSOLE_SCREEN_BUFFER_INFO p;
        GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &p);
    SMALL_RECT r = p.srWindow;
        return (x <= r.Right && y <= r.Bottom);
}
void gotoXY(int x, int y) {
        if (checkConsoleBounds (x, y)) {
                HANDLE hStdout;
               
                hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
                COORD coordScreen = { x, y };
                SetConsoleCursorPosition( hStdout, coordScreen );
        }
}

ind eine eigene Header Datei zu machen, der nimmt dann gotoxy nicht an

urga 01.11.09 19:45

tja ... da kann ich auch nicht helfen.
immerhin: in wincon.h findet sich:
Code:


#define FOREGROUND_BLUE      0x0001 // text color contains blue.
#define FOREGROUND_GREEN    0x0002 // text color contains green.
#define FOREGROUND_RED      0x0004 // text color contains red.
#define FOREGROUND_INTENSITY 0x0008 // text color is intensified.
#define BACKGROUND_BLUE      0x0010 // background color contains blue.
#define BACKGROUND_GREEN    0x0020 // background color contains green.
#define BACKGROUND_RED      0x0040 // background color contains red.
#define BACKGROUND_INTENSITY 0x0080 // background color is intensified.
#define COMMON_LVB_LEADING_BYTE    0x0100 // Leading Byte of DBCS
#define COMMON_LVB_TRAILING_BYTE  0x0200 // Trailing Byte of DBCS
#define COMMON_LVB_GRID_HORIZONTAL 0x0400 // DBCS: Grid attribute: top horizontal.
#define COMMON_LVB_GRID_LVERTICAL  0x0800 // DBCS: Grid attribute: left vertical.
#define COMMON_LVB_GRID_RVERTICAL  0x1000 // DBCS: Grid attribute: right vertical.
#define COMMON_LVB_REVERSE_VIDEO  0x4000 // DBCS: Reverse fore/back ground attribute.
#define COMMON_LVB_UNDERSCORE      0x8000 // DBCS: Underscore.

sieht so aus, als wenn man mit SetConsoleTextAttribute() sich die farben selbst mischen muss.

zb. gelb auf lila per
Code:

SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | BACKGROUND_BLUE | BACKGROUND_RED);

Dennka 01.11.09 19:47

Ohh man.... Ich glaub ich bleib bei weiß auf schwarz^^

urga 01.11.09 20:21

hehe, alles so schön bunt hier
Code:

int random (int max) {
        return (int) ((double)rand() / (RAND_MAX + 1) * max);
}
int random (int max, int ignore) {
        int i = random (max);
        return i == ignore ? random (max, ignore) : i;
}

int _tmain(int argc, _TCHAR* argv[])
{
        srand( (unsigned)time( NULL ) );
        gotoXY (6, 4);
        // SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED | BACKGROUND_BLUE | BACKGROUND_RED);
        cout << "X " << sizeof (WORD)<< " " << sizeof ((WORD)rand());
    //cout << r.Bottom << " " << r.Right;
        CONSOLE_SCREEN_BUFFER_INFO p;
        GetConsoleScreenBufferInfo (GetStdHandle(STD_OUTPUT_HANDLE), &p);
    SMALL_RECT r = p.srWindow;
        for (;;) {
                // cout << " " << random (10);
                int x = random (r.Right);
                int y = random (r.Bottom);
                gotoXY (x, y);
                SetConsoleTextAttribute (GetStdHandle(STD_OUTPUT_HANDLE), (WORD)rand());
                cout << (char)random(255, 7); // um piepsen zu verhindern
        }
        getchar();
        return 0;
}


Dennka 05.11.09 14:45

Danke urga, hast mir geholfen :D. Doch ein neues problem ist aufgetaucht.

Ich möchte nur einzelne Codeabschnitte Farbich machen oder die anderen abschnitte in einer anderen Farbe. Wenn ich den Befehl jetzt über den abschnitt einfüge, nimmt er es nicht an.

Hab versucht mal mit fflush den speicher zu löschen (macht man doch damit?^^) Brachte aber nix

gosha16 05.11.09 15:31

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

falls du weißt wie man sowas benutzt...

Dennka 05.11.09 17:25

Nein eigentlich nicht so

urga 05.11.09 19:12

bitte bitte.
ich versteh' kein wort, von deinem problem.
mit fflush leert man eigentlich io-puffer.

Zitat:

Zitat von Dennka (Beitrag 20112644)
Danke urga, hast mir geholfen :D. Doch ein neues problem ist aufgetaucht.

Ich möchte nur einzelne Codeabschnitte Farbich machen oder die anderen abschnitte in einer anderen Farbe. Wenn ich den Befehl jetzt über den abschnitt einfüge, nimmt er es nicht an.

Hab versucht mal mit fflush den speicher zu löschen (macht man doch damit?^^) Brachte aber nix


Dennka 05.11.09 21:10

Na dann war es falsch^^

Nehmen wir mal an ich möchte einen Rechner programmieren.

Dabei sollen die Zahlen + Operatoren die man eingegeben hat in blau und das ergebnis in grün. So in der art will ich es machen, bloß keinen rechner

urga 05.11.09 21:32

ach so :)
ok. wenn ich dich richtig verstanden habe, dann ist es recht einfach.

du musst die eingabe des benutzers abfangen und selbst die ausgabe der eingegeben zeichen steuern.
bsp:
Code:

#include "windows.h"
#include <iostream>
#include <time.h>
#include <conio.h>
#include <string>

void setColor(char c) {
        switch (c) {
                case '+' :
                case '-' :
                case '*' :
                case '/' :
                        // hier deine farbe für operatoren setzen
                        return;
        }
        if (c >= '0' || c <= '9') {
                // hier deine farbe für zahlen setzen
        }
        // ect ect.
} // setColor()
string blubb() {
        const char ENTER = 13;
        const char BS = 8; // backspace
        char c;
        string input;
        while((c = _getch()) != ENTER) {
                if (c == BS) {
                        if (input.length() > 0) {
                                input = input.substr (0, input.length() -1);
                                cout << BS << " " << BS;
                        }
                        continue;
                }
        input += c;
        setColor (c);
        cout << c;
    }
    return input;
} // blubb()


Dennka 22.11.09 18:58

Hallo,

ich wollte eine Textdatei erstellen und das da der ausgegebene Inhalt darein geschrieben wird.

Ich hab diesen in C geschriebenen Code gefunden.
Code:

FILE* test;
test = fopen("test.txt","w"); *** hier soll noch der Ordner eingestellt werden.
fprintf(test,"hallo\n");
fclose(test);

Wie kann ich den Jedoch in C++ umschreiben, hab es nicht hinbekommen.

Das rote w steht dafür, das eine neue Datei erstellt werden soll oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.

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