Forum

> > Off Topic > Geeignete Programmiersprachen
Forums overviewOff Topic overviewLog in to reply

German Geeignete Programmiersprachen

86 replies
Page
To the start Previous 1 2 3 4 5 Next To the start

old Re: Geeignete Programmiersprachen

Pommes die Fritte
User Off Offline

Quote
-1%

EDIT: Juhuu!! der entwicklungsstand schreitet voran!! ich hab ein problem behoben. glaub des lag daran, dass ich die header -datei pet.hpp falsch eingebunden hab! oder wie mach ich des? hab jetzt klasse "pet" in der Programmdatei pet.cpp reingeschrieben. probier mal nommal aus, ob ich des net einbinden kann...
2.EDIT: hoi. jetzt macht der´s doch. soll ich die bisherige version reinschreiben(quellcode, programm hochladen kann ich nämlich net;) )? die Version gibt jetzt erst zwei bestimmte werte aus, das gefühl des haustiers. ich glaub, ich mach erst mal weiter
Entwicklungsstand: 2%
(kann ich hier eigntl. balken oser so einfügen?)
edited 2×, last 16.04.07 07:29:27 pm

old Re: Geeignete Programmiersprachen

bizzl
User Off Offline

Quote
Balken sind nicht einfügbar.
Wenn du etwas hochladen willst brauchste einen webhost, zbsp funpic.
Denn kann ich empfehlen.
Reiner Filehost ist zwar nicht erlaubt, aber vllt machste ja auch noch eine kleine seite über dich selbst oder sowat

old Re: Geeignete Programmiersprachen

Pommes die Fritte
User Off Offline

Quote
das mit der seite rentiert sich net. ich will keine eigene haben . kann ich des einem von euch schicken und der lädts dann irgendwo hoch? wäare einfacher.
ich mach grad das AUSWAHLMENÜ (hoffentlich gehts!!! *hoff*)
EDIT: es wird viel mehr als 50 Zeilen!! bin schon bei Zeile 31!

old Re: Geeignete Programmiersprachen

bizzl
User Off Offline

Quote
wenn es unter 1.5MB bleibt kann ich es für dich hosten. Ich wollte aber eigentlich mal meinen host sauber machen...
naja, egal, schick rüber wenn es fertig ist, ich hau es dann bei mir auf den host.

old Re: Geeignete Programmiersprachen

Pommes die Fritte
User Off Offline

Quote
ich hab ein problem und zwar:
ich deklariere eine funktion. danach im hauptprogramm greif ich darauf zu und am ende des quellcodes definiere ich sie. => mein compiler sagt, das ich sie "redefine", nochmal definiere, obwohl ich das no net gemacht hab. warum??
@bizzle: keine Ahnung, wie groß des wird. bestimmt RIIIIEEESSSIIIGGG

old Re: Geeignete Programmiersprachen

bizzl
User Off Offline

Quote
hau die funktion vor die main, fertig ist.
normalerweise solltest du im hauptcode eines C/C++Programms keine funktionen einbauen, bzw du musst sie dann nicht deklarieren.
Ist zumindest meine erfahrung damit.

old Re: Geeignete Programmiersprachen

Pommes die Fritte
User Off Offline

Quote
Hallo, hab des problem, dass ich ne klasse definiere und ne funktion die ein Objekt dieser klasse verwendet. im main()-Prog mach ich ein objekt besagter klasse, setzte sie werte des obj. und rufe dann die funktion auf, die das obj verwendet. wenn ich das aber kompiliere, sagt der comp.:
"petall.cpp: In function ‘void chosenAction(int)’:
petall.cpp:73: error: ‘PetName’ was not declared in this scope"

wie kann ich machen, das es geht? das obj. als parameter übergeben und wenn ja, wie? (würd ja meinen bruder fragen, aber der kennt sich mit klassen net aus )

JUHUU!! jetzt funktioniet´s!!
musste des doch als parameter machen.

wer will, dem kann ich den ganzen quellcode per e-mail schicken! aber seid gewarnt! ich hab da ein kopierrecht
Ebtwicklungsstand: 3% (das Programm lässt sich schon beenden!!)

und noch ein problem: ich mach des so, dass man des tier streicheln kann und dessen gefühle mit jedem streichler steigen (+10). wenn ich jetzt aber das einmal mach (angfangsgefühl = 100) dann hat es wie zu erwarten 110. wenn ich das jetzt aber noch mal streichle, bleibt das gefühl bei 110. warum? ich poste mal die entsprechenden Textstellen... *imquellcodedurcheinanderrumkram*:

CODE has written
void Pet::Stroke()          // Funktion fuer Bestrafung
{
     int temp = GetFeeling();
     int newFeeling = temp + 10;
     SetFeeling(newFeeling);
     cout << GetFeeling();
}
edited 2×, last 17.04.07 03:09:12 pm

old Re: Geeignete Programmiersprachen

stealth
User Off Offline

Quote
Ich glaub du musst die Funktion in die Klasse schreiben... das solltest du auf jeden Fall.
Also in etwa
1
2
3
4
5
class Pet {
	void Stroke() {
		...
	}
}
Und dann rufst du die Funktion mit Objektname.Stroke() auf.

Warscheinlich wird mit dem Doppeldoppelpunkt auch immer ein neues Objekt erstellt und deswegen geht das immer wieder auf 100 zurück.

old Re: Geeignete Programmiersprachen

HW
User Off Offline

Quote
@Pommes: Am Code, den du gepostet hast, lässt sich nicht wirklich was erkennen, der hat keine Fehler (bloß warum redest du von Streicheln, wenn im Code/Kommentar was von Bestrafung steht? o_O).
Nur eine kleine Unschönheit: Du solltest grundsätzlich std::cout schreiben und nicht cout sowie alle using und using namespace Deklarationen wenn möglich vermeiden. Ist einfach sauberer so.
Besser du postest noch die Methoden GetFeeling und SetFeeling und ggf. die Definition der Petklasse.

BTW wäre es bei diesem Beispiel wohl eleganter, den feeling-Wert direkt zu manipulieren, da man so nur eine Zeile statt drei braucht. Du könntest das Zeug auch mit den Methoden auf zwei oder gar eine Zeile kürzen.
Außerdem sollte man für solche Debugausgaben (ich nehme mal an, die letzte Zeile dient zu Debugzwecken) nach cerr oder clog statt nach cout schicken. Man merkt zwar auf den ersten Blick keinen Unterschied, aber dahinter steckt durchaus etwas sinnvolles und es ist besserer Stil, da man auf die Weise im Code signalisiert dass es sich um Debugausgaben handelt.

Musst dich natürlich nicht daran halten, sind nur paar Ratschläge, deinen Code eleganter zu machen. Bin etwas kleinlich was Codeeleganz angeht.

old Re: Geeignete Programmiersprachen

born2die
User Off Offline

Quote
Hätte jetzt auch noch etwas unfeines wenn deine Funktion includet wird machst du eine globale Variable (nur wenn du von nem include aus zugreifst ansonsten mach eine variable und
mach das so z.B.
1
2
3
4
5
6
7
int variable = 100;

void Pet::Stroke()          // Funktion fuer Bestrafung
{
    variable + 10;
    cout << variable;
}
So würde ich es jetzt machen und einfach die Funktion aufrufen wenn du sie brauchst.

EDIT: Code kannst mir mal per pm schicken wenn du willst

old Re: Geeignete Programmiersprachen

Pommes die Fritte
User Off Offline

Quote
ich habs jetzt! einfach Objekt Petname auserhalb von main() definieren und TADDAAAA! (eigentl. sollte man das ja net auserhalbb machen, aber is mir wurscht! hauptsache es geht jetzt )
@born2die: noch ein wenig reinproggen, dann kriegst du´s!!

Entwicklungsstand: Zeilen: headerdatei: 21; maindatei: 91 (BOA!! )
ca. 5%
edited 1×, last 17.04.07 06:03:15 pm

old Re: Geeignete Programmiersprachen

HW
User Off Offline

Quote
@born2die: Ich nehme an, Pommes geht es dabei eher darum, OOP zu lernen. Deine Lösung hat leider nicht mal ansatzweise was mit OOP zu tun.

old Re: Geeignete Programmiersprachen

stealth
User Off Offline

Quote
Ist das normal dass man in C++ Funktionen von Klassen ausserhalb von der Klasse schreibt?

Edit
Kennt sich jemand mit D aus?
Irgendwie funzt mir readln() da nämlich nicht
edited 1×, last 17.04.07 06:04:36 pm

old Re: Geeignete Programmiersprachen

born2die
User Off Offline

Quote
Ja schon klar aber stand ja niergends ausdrücklich und ich hasse umständliche methoden ^^" und Fehlerquellen bittet es auch net also warum dann OOP?

old Re: Geeignete Programmiersprachen

bizzl
User Off Offline

Quote
Dieses "Lösung" lässt sich auch nehmen wenn "variable" als Feld von Pet deklariert wird.

Zwei Fragen zu C++:
Warum nimmt alle Welt "std::cout << irgendwas" statt printf?
printf ist imho die wesentlich sauberere und portablere Lösung.

Und wie ist es möglich/"gut" Klassen innerhalb von Funktionen zu deklarieren? (oder versteh ich main() falsch?)
In Object Pascal ist sowas zwar theoretisch auch möglich, gilt aber als absolut falsch, und bis auf einige feinheiten sind sich die regeln und NoNos für Pascal und C-Artige nicht unähnlich (Java erlaubt solche Späße übrigens gar net).

old Re: Geeignete Programmiersprachen

HW
User Off Offline

Quote
born2die: Weil OOP Hauptvorteil von C++ (gegenüber C) ist? Wenn man kein OOP will, kann man es auch bei C belassen; da ist es nicht mehr nötig, C++ zu lernen.

stealth has written
Ist das normal dass man in C++ Funktionen von Klassen ausserhalb von der Klasse schreibt?

Man muss die Methoden lediglich in der Klassendefinition deklarieren. Ansonsten steht es einem frei, die Funktionen innerhalb der Klassen oder außerhalb zu deklarieren.
Insbesondere wenn man mit mehreren Modulen arbeitet, bietet es sich an, Klassen lediglich in einem gemeinsamen Headerfile zu deklarieren und das nähere in einem Modul zu programmieren. So vermeidet man es, Code unnötig mehrmals zu kompilieren.
Auch bei Libraries wird das Oberflächliche in Headerfiles deklariert und der eigentliche Code steht dann im kompilierten Binärteil der Lib.
Das sind die Hauptgründe, warum das in C/C++ geht.

Edit@bizzl: Zu cout: Weil es eben eine objektorientierte Variante ist
Jedenfalls weiß ich nicht, was an printf portabler und sauberer sein soll. Da könntest du mich durchaus etwas näher aufklären.
Zu Klassen in Funktionen: Auf jeden Fall verstößt das gegen die Standards (genau wie Funktionen innerhalb von Funktionen). Einige Compiler scheinen sowas zu unterstützen, allerdings ist das natürlich alles andere als portabel. Außerdem: wer braucht so einen Kack?
edited 2×, last 17.04.07 06:15:35 pm
To the start Previous 1 2 3 4 5 Next To the start
Log in to replyOff Topic overviewForums overview