PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : =><c++>*



dEFcHILL
10.10.2006, 11:51
hallo,

muss bis in 2wochen die programmiersprache C++ lernen, da i da meine pruefung statt findet. jedoch habe i komplett keinen plan, weder von c++ noch von irgend eina anderen programmiersprache. da in der vorlesung die ganzen itkunden, softwareentwickler+co fuer mich eh die ganze zeit irgend ein blublub redeten sah i auch die vo als nicht besuchswuerdig an.

kennt ihr ein buch, dass programmieren wirklich fuer *bloede*-nichtinformatiker erklaeren kann?

thx

jbe
10.10.2006, 12:15
C++ für dummies (http://www.edv-buchversand.de/dummies/product.php?cnt=product&id=wl-70172)

Vinci
10.10.2006, 12:21
naja, mehr als die grundlegensten dinge kannst in 2 wochen aber nicht aufschnappen...
ganz egal mit welchem buch

chris
10.10.2006, 13:40
da stimme ich zu, bei 2 wochen zeit ist egal welches buch, es geht sowiso nur das notwendigste. im grunde kannst dich mit c++ auch jahrelang beschäftigen, daher solltest dir mal das vo-skript (bzw. besser eine vernünftige mitschrift) besorgen damitst weisst, was für die prüfung wichtig ist.
das notwendigste von c++ kannst dann auch online lernen, gibt einiges im netz.
z.b. http://ladedu.com
in was für einer umgebung sollst denn programmieren? gibt sicher auch einen dazu abgestimmten online kurs/tutorial

Jamaiko
10.10.2006, 13:55
Ich habe keine großen Vergleichsmöglichkeiten, aber das (und ein gutes Skript) fand ich doch recht gut. Hat für ne zwei in der Vorlesung gereicht und ich bin da wahrlich keine Leuchte ;D
Heißt C programmieren von Anfang an, ist ja doch ein wenig klein.

alohaSchwabe
10.10.2006, 14:10
haha viel spass!
ich lerns seit 3 jahren und kanns immer noch nicht. Aber die grundlegenden funktionen kannst wenn dich wirklich dahinterklemmt in 2 wochen packen. Ich empfehl dir die O´reilly bücher. Sind immer ganz gut eigentlich.

dEFcHILL
10.10.2006, 16:16
toll...muss ja nur bis ende dieses monats ein simples navigationssystem programmieren ::)

naja, dann fang i am besten mal mit http://ladedu.com

frag euch dann bestimmt mal was, denn die leute, die i so kenne aus meinem kurs, haben genau so wenig dunst.

danke!


edit: falls von euch aus zufaelligkeiten schon mal jmd ein navi programmiert hat oder was in etwa von der programmierung aehnelt...vll kann man sich ueber was kleines einigen+ihr koennt mir einen auszug schicken :)

das ziel ist es, wir muessen verschiedene orte, str. speichern (alles beidseitig befahrene str.). danach muss man die 2bestimmungsorte angeben+das sollte dann den weg beschreiben (ohne kreisfuehrungen). dazu das gegenstands- +zusatndsdiagramm (gut, das packen wir wahrscheinlich noch ;), dann das objekttypenmodell, schließlich die programmiercodes.

dEFcHILL
01.11.2006, 13:37
ôkay...habe mir gestern das program besorgt+dann gez los!!
mist nur, dass wir bis freitag zu pruefung fertig werden muessen!

werde mich bei fragen mit an euch wenden, vll kann mir jmd mit helfen..

Hendrik
01.11.2006, 16:22
mein beileid, das wird sicherlich kein spass für dich ;)

also, was du bauen sollst ist kein navigationssystem, sondern die simple implementierung eines algorithmus, der dir für einen knoten in einem ungerichteten graphensystem mit gewichteten kanten den abstand zu einem anderen knoten berechnet, nur das du dabei die verwendeten kanten in der richtigen reihenfolge ausgeben musst. (stadt=knoten, straße=kante, entfernung=gewicht). zu dem thema wirst du netz einiges finden.

also, als erstes suchst du dir eine datenstruktur für so einen ungerichteten graphen mit gewichteten kanten. wenn du das hast kannst du dich an den algorithmus machen. als kleine hilfe für den start:
- es ist für die schwierigkeit des problems total egal ob du die strecke zu einem knoten oder allen anderen knoten suchst
- das vorgehen ist eigentlich total simpel, so solltest du vorgehen:

1. am startknoten schaust du dir die kanten an die mit deinem knoten verbunden sind. du wählst jetzt die kante mit dem geringesten gewicht und ordnest dieses gewicht dem benachbarten knoten zu. diesen knoten kannst du jetzt zu der menge der bereits erreichten knoten hinzufügen (da ist natürlich auch der startknoten bei, nur mit dem gewicht 0, weil wir ja nicht hinfahren müssen).
2. aus der menge der bereits erreichten knoten schauen wir uns jetzt an welche weiteren knoten (also noch nicht erreichte) man über eine weitere kante erreichen kann. konkret: addiere jeweils das gewicht der kante zum gewicht des entsprechenden knoten. dann wählst du die kombination mit dem geringsten gewicht und fügst diese den bereits erreichten knoten hinzu.
3. bei 2. weitermachen bis du den knoten/ort gefunden hast

das ist im prinzip der algo für deine aufgabe, nur das du noch den weg speichern musst.

ich hoffe das war jetzt einigermaßen verständlich ;)

dEFcHILL
01.11.2006, 17:00
^^okay..danke. du beschreibst gerade das system fuer die kuerzeste strecke zw knoten. dies ist allerdings bei uns noch nicht gefordert, sondern 'nur', dass man keine kreise ziehen darf.

aufgabe des systems:
-user muss knoten + verbindenten strecken zw knoten definieren koennen
-enduser waehlt knoten a+n -> program verknuepft diese mit entsprechenden strecken + zwischenpunkten..
->objektorientiertes programmerstellung!

mit dem eigentlichen codieren wird es wohl noch paar stunden dauern. habe erstmal usecasediagramm erstellt+bin nun beim gegenstandsmodell.

poste dann mal das fertige gegenstandsmodell

Hendrik
01.11.2006, 17:49
^^okay..danke. du beschreibst gerade das system fuer die kuerzeste strecke zw knoten. dies ist allerdings bei uns noch nicht gefordert, sondern 'nur', dass man keine kreise ziehen darf.
Ja, schon, aber wenn du erst einen DFS oder BFS implementierst geht das auch nicht wirklich schneller. Dafür kannst du mit der anderen Lösung ein paar Extrapunkte sammeln und andere anpöbeln, die bei der Fahrt von München ins Kaunertal über Moskau fahren wollen ;D

dEFcHILL
01.11.2006, 22:48
^^hmm.. naja, irgendwie dauert das doch alles ein wenig laenger als geplant.

sind noch in der analysephase. also usecases+diagramm fertig, gegensatndsmodell fertig(?), objekttypenmodell (noch am basteln)..

muss ehrlich zugeben, habe gerade keine wirkliche ahnung, was dfs bzw. bfs ist..

koenntest du bitte mal schauen, ob bei unserem gegenst.modell die aggregationen-schwarze/weiße rauten richtig sind?


also unser plan:

-orts/weg definition (extra befehl)->navi guide: entscheidung, dass defintion -> ort/weg in memory
-ortssuche (befehl) -> navi guide: entscheidung, dass wegsuche -> search engine -> berechnen der route (infos aus memor) -> output

-fehlertypen:
~ungueltige eingabe (bsp: ?=)?Uda0(/7) -> erkennen des fehlers in navi guide
~bei weg/ortsdefinition (bsp: nur 1 ort + 1weg -2.ort fehlt) ->erkennung durch memory
~unbekannter ort im suchmodus -> erkennung in search engine

http://gegenstand.jpg


anfaenge des objekttypen-modells:

frage:
-wie verhaelt sich nun die fehlermeldung?
wird ein fehler (im navi manager, search engine, memory) jeweils als speziellen fehler erkannt+gelangt schließlich als jeweilige fehlermeldung ueber die search engine in den output? (siehe screenshot)
oder werden die fehler erkannt+gelangen dann von der *error*klasse direkt in den *output*

-moechte, dass die eingabe bei der definition bei der eingabe gleich im output erscheint. muss i dann einfach noch einen feil vom *input* zum *output* ziehen?

http://objekttyp.jpg
sind zwar sicherlich ziemliche noobfragen, aber die zeit draengt :-\

vielen dank!

Hendrik
02.11.2006, 06:45
morgen!

ehrlich gesagt habe ich keinen schimmer was ein gegenstandsmodell sein soll. das ist weder ein uml diagrammtyp, noch findet google irgendwelche eindeutigen synonyme oder beschreibungen, daher kann ich dir nichts dazu sagen :( irgenwie sieht mir das ganze auch etwas wirr aus.

dfs=tiefensuche
bfs=breitensuche

ich habe es gestern überlesen: meinst du mit a+n orten wirklich eine folge von orten und keine strecke darf dabei doppelt verwendet werden, oder ist n nur etwas ungünstig gewählt?

dEFcHILL
03.11.2006, 15:29
hallo,

so nun heute prufung gehabt. sogar mit 50% der pkt durch die praxis gekommen.. haben halt fast alles auf schleifen aufgabaut, was jedcoh nicht so ganz den vorstellungen entsprochen hat..


auf jeden fall, habe i mir nun mal ein buch *das einsteigerseminar C++, objektorientierte programmierung* von alexander niemann, stefan heitsiek gekauft. moechte nun den ganzen stofff von anfang an beibringen, ohne von ueberall nur gewisse fragmente anwenden zu koennen...

gibt es eine gute freeware, um c++ zu programmieren?..außer den editor?

dEFcHILL
03.11.2006, 18:23
..noch ne frage:

benutze nun ms visual 2005.

moechte verschiedene programme programmeiren+oeffne fuer jedes prog eine neue file.
jedoch weiß ich jetzt nicht, wie ich die alten daten (altes prog) aus dem speicher bekomme+mit meinem neuen prog so zu sagen bei "0" wieda anfange..

konnte noch keinen befehl finden..?


edit: sorry, sitze gerade allein auf uni+kann niemanden mehr fragen.
was muss ich fuer einen befehl eingeben, damit mein laufendes programm laenger als paar millisekunden angezeigt wird? haette gedacht einfach char() oder int char()?? scheint jedoch doch falsch zu sein. an welcher stelle muesste das stehen?

dEFcHILL
04.11.2006, 18:00
^^ geklaert!

problem mit zu kurza fenstaanzeig: *strg* + *f5*
problem mit speicher: meine mhmm..bloedheit ::)


neue wrklche frage:
mit *//* kann man ja ne zeile passivieren. gibt es einen trick, mehrere zeilen auszuschlalten, ohne vor jede einzeln diese *//* zu setzen?

dEFcHILL
04.11.2006, 18:29
...haette von euch jmd die geduld, mir seine skype oder icq name per pm zu verraten, dass i euch wirklich nur in ausnahmefaellen mal ne frage stellen koennte. auch nur am anfang, um ueberhpt erstmal mit dem program ein wenig klar zu kommen.
irgendwie gibt es keinen aus meinem studiengang, der mir helfen kann+die softwareentwickler sind immer zu hektisch+ungeduldig oder so redefaul..

Hendrik
04.11.2006, 18:40
hiho!
such dir vielleicht ein softwareforum, da ist das einfacher hilfe zu bekommen. bin derzeit leider schlecht erreichbar und total im stress, außerdem habe ich von c++ keinen wirklichen plan. habe hier noch einiges in java zu machen, und wenn das bis morgen nicht fertig ist kann nicht zum kitzsteinhorn :'(

das heißt im übrigen nicht passivieren, sondern auskommentieren.

// kommentar bis zu ende der zeile

/*
ein blockkommentar, aber das steht sicherlich auch in deinem buch ;)
*/

dEFcHILL
29.11.2006, 12:37
hey,

kann mir mal bitte jemand mit noemalen worten erklaeren, was ich unter dynamischen/statischen binden verstehen sollte?

eine message wird sttisch/dynamisch an eine methode gebunden, wenn diese methode von einer basisklasse in eine unter(spezalisierungs-) klasse abgeleitet wird. richtig?

falls nun ein klasse polymorph -sprich befhle (variablen usw) werden mit gleichen namen aber unterschiedlichen dateitypen verwendet (-> verwendet man hier das prinzip des overloadings ??? )- verwenden moechte, dann verwendet man das dynaische binden?

also im großen+ganzen: *binden* ist nur ein begriff fuer das uebertragen der methoden von einer basisklasse in die unterklasse?



kann sein, dass ich komplett wirr schreibe, da ich nur gerade versuche aus skript+unzaehligen hp's mir was zusammen zu reimen..


vielen dank, da i freitags pruefung habe!



edit:

also, der zusammenhang zw. klassen, ableiten, binden... ist soweit klar (theorie!)


In objektorientierten Programmiersprachen wie z. B. C++, Delphi oder Java ist es nun möglich, Klassen zu erzeugen, indem man sie von anderen Klassen ableitet. Abgeleitete Klassen besitzen alle Methoden und Datenfelder der ursprünglichen Klasse und können durch weitere Felder und Methoden erweitert werden. In einigen Fällen ist es allerdings wünschenswert, bereits existierende Methoden abzuändern, d.h. sie neu zu schreiben. In diesem Fall spricht man von Überschreiben (C++, Delphi, Java).

Durch das Ableiten von Klassen ergibt sich auch die so genannte Polymorphie (Vielgestaltigkeit). Jede Klasse repräsentiert einen eigenen Datentyp. Abgeleitete Klassen besitzen mindestens einen weiteren Datentyp, nämlich den der Originalklasse (man sagt zu dieser Basisklasse oder Oberklasse). Dadurch ist es zum Beispiel möglich, eine Liste von Objekten der Klasse A zu benutzen, obwohl in Wirklichkeit auch Objekte der Klasse B (die von A abgleitet wurde) in der Liste abgelegt sind.
[...]
Dieses sogenannte dynamische Binden ermöglicht es, Klassen von einer Oberklasse abzuleiten und dabei Funktionen zu überschreiben bzw. zu überlagern. Das Konzept der virtuellen Methoden wird von einem Compiler z. B. mittels virtueller Tabellen umgesetzt.



nun verstehe i aba immer noch nicht den unterschied zum statischen einbinden

alohaSchwabe
29.11.2006, 15:04
hey,

kann mir mal bitte jemand mit noemalen worten erklaeren, was ich unter dynamischen/statischen binden verstehen sollte?



okay ich versuchs mal.

Linker oder Binder oder auch Bindelader sind halt Programme von denen aus viele andere Unterprogramme aufgerufen werden...


Wenn du ein Programm schreibst ist es in der Regel so das das programm mehrere Dinge tut.
wenn du bestimmte Dinge im Programm an mehreren Stellen brauchst empfiehlt es sich diese Auszulagern und an der jeweiligen Stelle darauf zu verweisen bzw die jeweilige Funktion aufzurufen.

Wenn dein Programm irgendwann fertig ist gibt es zwei möglichkeiten...
statisch oder dynamisch

statisch = beim kompilieren werden die ganzen funktionen an die jeweiligen Stellen kopiert und du hast nachher eine große Datei
dynamisch = die funktionen bleiben ausgelagert und werden erst dann aufgerufen wenn sie wirklich vom Anwender benötigt werden

In der Regel benutzt man aber mischformenen...

hoffe das war jetzt nicht zu banal und allgemein...

dEFcHILL
29.11.2006, 15:38
^^okay..thx