Zum Inhalt springen

Orffi

Mitglieder
  • Gesamte Inhalte

    252
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Orffi

  1. Orffi

    java lernen

    Wie immer bei solchen Fragen verweise ich auf Bruce Eckel. In diesem Fall auf sein Buch: "Thinking In Java". Ich mag seine Art zu erklären. Man kann seine Bücher kaufen, oder im Internet als HTML-Version herunterladen. Seine Bücher gibt es, soweit ich weiß, nur im Englischen. Wenn dies kein Hindernis ist, sollte man auf jeden Fall mal einen Blick riskieren. Hier noch der Link http://www.mindview.net/Books HTH Jan
  2. Orffi

    Reversi in C++

    Ich weiß nicht so recht, was das hier alles noch bringen soll? Wir befinden uns hier ja nicht in einem Forum, wo es um Lerntechniken und sonstige pädagogischen/philosophischen Ansichten über das Lernen geht. Außerdem finde ich hier einige Antworten eher fragwürdig. Um es vorweg zu nehmen: Ich stimme mit Euch überein, daß es nichts bringt hier eine fertige Lösung zu posten. Außerdem bin ich, wie auch Ihr, nicht hier um Hausaufgaben von anderen zu machen. So weit sind wir einer Meinung. Wenn ich Probleme mit dem Programmieren hätte, würde ich auch zuerst meine Kommilitonen fragen. Dort läßt sich das im Allgemeinen viel besser klären. Was mich stört, sind Aussagen wie folgende: Ich hoffe doch, daß wir alle der gleichen Meinung sind, daß die Welt nicht so ganz einfach aussieht. Mir ist es zwar rätselhaft, wie man nur 2 Tage Einführung haben kann, aber ich kenne die Uni nicht. Auf jeden Fall möchte ich sehen, wie jemand, der 2 Tage lang eine Einführung in seine (vielleicht) erste Programmiersprache in bekommen hat, nebenbei ein Reversi-Programm zusammenkloppt. "Nebenbei" habe ich absichtlich geschrieben, weil man an der Uni auch noch andere Fächer hat, die vielleicht auch Aufmerksamkeit bedürfen. Natürlich steht da nicht, wie lange man Zeit für die Lösung hatte, schließlich läuft das Semester ja schon eine Weile. Nicht ohne weiteres, aber es kann mir keiner erzählen, daß kein Lerneffekt vorhanden ist, wenn ich mich mit einem Kommilitonen zusammensetze und sein Programm durchgehe. Ich will dabei nicht gegen das Sprichwort "Nur wer selber denkt wird schlau." argumentieren. Es wäre natürlich sinnvoll, wenn man sich danach nochmal hinsetzt und das ganze selber Programmiert. Ich will damit sagen, daß man doch normallerweise anhand von Beispielen lernt. Ich kenne jedenfalls niemand persönlich, der sich C++ nur anhand der Grammatik beigebracht hat. Keine Sorge, Studenten, die Ihr Studium ernst nehmen, beantworten für sich die Frage. Dabei muß nicht immer herauskommen, daß man die Aufgabe jetzt löst. Es durchaus legitim und nötig Prioritäten zu setzen. Im Studium ist es extrem sinnvoll, Lernteams zu bilden. So kann es sein, daß der eine eher die Matheaufgaben löst und der andere die Programmieraufgaben. Es muß selbstverständlich ein Austausch finden und der Mathe-Mensch muß auch beim Programmieren mitdenken und der Programmier-Mensch muß bei der Mathematik mitdenken, sonst fallen beide früher oder später auf den Bauch. Das ist ganz klar. Man hat als Student aber nur begrenzt viel Zeit (das liegt nicht daran, daß er ständig nur Parties feiert und bis sechs Uhr abends schläft) und diese Zeit muß er möglichst effizient nutzen. Zusammenfassend möchte ich sagen, daß hier sicherlich der falsche Ort war diese Frage so zu stellen. Hier ist, wie schon oben erwähnt wurde der richtige Ort, wenn man Hilfe bei Teilproblemen sucht, nachdem man sich schon eine Weile selber den Kopf zerbrochen hat. Ich finde es nur befremdlich, wenn sich hier Leute äußern, die vom Studium wenig Ahnung haben. Und einige Aussagen in ihrer Allgeinheit nicht gelten. Bis denn dann Jan
  3. Mir ist nicht ganz klar, was mit allgemeiner Informatik gemeint ist. Was soll das sein? Ich glaube das Gebiet der Informatik ist zu groß, um es in seiner Gesamtheit vernünftig abhandeln zu können. Auch wenn man an der Uni "normal" Informatik studiert, kann man ja im Hauptstudium seinen Schwerpunkt da setzen, wo man möchte. So kenne ich es zumindestens. Ich habe mir zum Beispiel den Bereich Intelligente Systeme ausgesucht. Innerhalb dieses Bereichs muß ich jetzt noch meinen Schwerpunkt setzen. Es gibt also auf jeden Fall eine Spezialisierung. Auch wenn man technische Informatik studiert, wird man sicherlich einen grundlegenden Teil durchlaufen, der vielleicht nicht sofort etwas mit technischer Informatik zu tun hat. Wenn dem nicht so sein würde, würde man wohl so etwas sein, was man gemeinhin als Fachidiot bezeichnet. Bis denn dann Jan
  4. Orffi

    Wofür sind Zeiger !?

    Es gibt viele sinnvolle Aufgaben, wo man sich das Leben mit Zeigern vereinfachen kann. Ob der Satz des Pythagoras nun dazu zählt, lasse ich jetzt mal dahin gestellt. Aber Du könntest Dir ja mal überlegen, wie Du das folgende Problem lösen würdest: Schreibe eine Funktion, die zwei Variablen vertauscht. Ok, das ist das Standard-Beispiel, aber es zeigt zumindestens einen Aspekt, worum es geht. Wenn man einen Zeiger übergibt, dann kann man das Objekt direkt manipulieren, weil für die Funktion keine Kopie angelegt wurde. Das ist schonmal eine Sache. Die nächste Geschichte wäre, wenn man "optimieren" will. Bei großen Objekten stopft man den Stack, auf dem die Kopie für die Funktion abgelegt wird, ganz schön voll. Das kann man verhindern, in dem man den Zeiger übergibt. Auch muß nicht extra der Copy-Konstruktor aufgerufen werden. Als letztes möchte ich noch dynamische Datenstrukturen anführen: Wenn man zur Compilierzeit nicht weiß, wie viel Speicher belegt wird, dann benutzt man auch Zeiger, die erst zur Laufzeit auf (hoffentlich) korrekt angeforderten Speicher zeigen. Ich bin mir sicher, daß es noch viele, viele weitere Anwendungsmöglichkeiten gibt, aber hier habe ich zumindestens ein paar aufgezählt. HTH Jan
  5. Du wirst von mir vielleicht nicht gesteinigt, aber darauf hingewiesen, daß man, wie ich schon weiter oben vorgeschlagen habe, dies auch mit ISO-C++ erreichen kann. Allerdings weiß ich nicht, wie daß __finally bei MS zu deuten ist. Ein finally wie in Java gibt es in C++ ja nicht. Wenn es also um Resourcenfreigabe geht, dann müßte man mit einem auto_ptr<> arbeiten. Schön, daß mein Lösungsvorschläge doch ernst genommen werden. Ich habe ja auch noch keine Antwort bekommen, wer sagt, daß man Exceptions nur bei Fehlern verwenden darf. Stroustrup selbst sagt, daß es auch Exceptions ohne Fehler geben darf. Wenn man mir schon nicht traut, vielleicht dem guten Herrn Stroustrup... Bis dann Jan
  6. Wer sagt denn, daß man Exceptions nur bei der Fehlerbehandlung nutzen darf??? Jan
  7. Ich will mich jetzt bestimmt nicht in die Diskussion einmischen, ob break nun gut oder böse ist, ob man hier goto nutzen kann oder ob die Flag-Lösung die allein seelig machende ist. Aber wie wäre es mit einer Exception? Ihr könnt goto verhindern, ihr könnt break verhindern und ein Flag braucht ihr auch nicht. (Leider wurde nicht dazugeschrieben ob in C oder C++ programmiert wird. In C gibt es natürlich keine Exceptions...) Das continue hier nicht hilft wurde ja zum Glück schon geklärt. HTH Jan
  8. Ich möchte fmarx2000s Aussage unterstreichen. Es ist nicht notwendig, MatheLK in der Schule gehabt zu haben, um erfolgreich Informatik studieren zu können. Neben der Vorlesung gibt es noch Übungen und Tutorien. Der entscheidene Punkt ist, daß keiner kontrolliert, ob man zu Vorlesungen geht oder nicht. Es interessiert wirklich niemanden, es ist Deine eigene Verantwortung. Ähnlich verhält es sich mit dem Tutorien. Dies ist ein Angebot und man sollte es nutzen. (Ok, ich habe es nicht genutzt, aber wenn man merkt, daß man Probleme hat, sollte man schnellstens das Tutorium aufsuchen.) Bei den Übungen ist es unterschiedlich, aber auch dort gibt es Übungen, bei denen man nicht anwesend sein muß. Die Übungen sind aber das Wichtigste. Dort wird der Stoff aus der Vorlesung angewendet und man merkt sofort, was man verstanden hat und was nicht. Hoffentlich wird der Stoff auch klarer. Du merkst also, es ist nicht so schlimm, wenn man keinen MatheLK in der Schule hatte. Außerdem gibt es ja noch Kommilitonen, mit denen man eine Lerngruppe gründen kann. Was aber wichtig ist, daß man bereit ist, selbstständig zu arbeiten. Außerdem sollte man sich auf den ganzen Formulismus einlassen. Wer diese ganze Theorie nicht mag und bei den Beweisen sagt: "Das sieht man doch!", der wird vielleicht mit einem Studium nicht glücklich. Wie schon gesagt wurde, nur Du selbst kannst entscheiden, ob Du studieren willst oder nicht. Man sollte nach seinen eigenen Vorlieben schauen. Es nützt ja nichts, wenn man ein Studium anfängt, weil man denkt, später könne man viel Geld verdienen, aber im Studium total unglücklich ist. Vielleicht gibt es an den Unis in Deiner Nähe Schülertage, wo Du Dich schlau machen kannst. Man ist ja auch kein schlechterer Mensch, weil man nicht studiert hat und ebenso ist man kein besserer Mensch, weil man studiert hat. Bis denn dann Jan
  9. Aber es wird hier ja schon wieder nur vom Programmieren gesprochen. Ein wenig überspitzt ausgedrückt, kann meine Mutter seit Java auch programmieren. Dafür braucht man sicherlich kein Studium. Zum Programmieren im allgemeinen braucht man kein Studium, aber wie soll ich mir einen einen Soziologen vorstellen, der Komplexitätsbeweise durchführen soll. Weiß ein Soziologe eigentlich irgendetwas von mü-rekursiven Funktionen? Kurz gesagt: irgendwann kommt man immer in der Informatik (und ich rede jetzt von richtiger Informatik und nicht vom Programmieren) an einen Punkt, wo es ganz praktsich ist, eben doch Ahnung von der Theorie zu haben. Jan
  10. Na, ich will mal hoffen, daß der Unterschied so groß ist. Im Allgemeinen sollte man Bedenken, daß Informatik viel mehr als programmieren ist. Außerdem würde ich nie einen Programmierer mit einem Informatiker gleichsetzen. Ein Dipl. Informatiker hat in seinem Studium einen nicht unerheblichen Teil mit der theoretischen Informatik und Mathematik verbracht. In einem solchen Umfang wird sich ein Fachinformatiker wohl nicht mit der Materie beschäftigt haben. Jan
  11. Es kommt immer daruf an, was man als trocken ansieht. Aber natürlich spielt Mathematik ein sehr große Rolle in der Informatik. Informatik ohne Mathematik zu betreiben halte ich auch für ein wenig sinnlos. Wenn man etwas formalisieren möchte, dann ist die Sprache der Mathematik die erste Wahl. Hier noch ein kleines Zitat: "Theoretische Informatik ist das Suchen von Mathematik in der Informatik." Und Theorie muß bei einem Studium dabei sein. Physik im Informatik-Studium ist auch nicht ganz unwichtig, wenn es in den Bereich der technischen Informatik geht, Stichwort Elektrotechnik. HTH Jan
  12. Orffi

    Algorithmik

    Ich verzichte jetzt darauf, eine mathematische Definition des Begriffs Algorithmus zu geben. Es wird nicht immer gefordert, daß ein Algorithmus nach endlich vielen Schritten terminiert. Es wird aber gefordert, daß man den Algorithmus durch einen endlichen Text beschreiben können muß. Ein weiterer wichtiger Punkt ist, daß nach jedem Schritt klar sein muß, was als nächstes zu tun ist. Es muß als determiniertheit vorliegen. Außerdem müssen die einzelnen Schritte hinreichend elementar sein. HTh Jan
  13. Als ich erwähnte, daß der gcc die Größenangabe als Variable erlaubt, wollte ich damit nicht sagen, daß ich es gut finde. Ich persönlich mag es auch nicht und würde es auch nie benutzen. Auch nicht, wenn ich speziell für gcc entwickeln würde. Auch finde ich es nicht gut, daß dieses Verhalten Einzug in den C99 Standard gehalten hat. Es ist aber definitiv kein Standard von C++. Wie schon weiter oben erwähnt wurde ist die schönste und sauberste Methode, wenn man mit new und delete arbeitet. Jan
  14. Es gibt da ein viel generelleres Problem: Du kannst vorher nicht wissen, wie lange Du brauchst, um Deine Zahlen zu sortieren. Das hat einen ganz einfachen Grund. Heutige Betriebssysteme sind Multitasking-Betriebssysteme. Das bedeutet, daß immer mehrere Prozesse/Threads laufen. Je nach dem, wie die CPU ausgelastet ist, wird Dein Programm schneller oder langsamer sein. Und: Was machst Du, wenn das Programm auf einem langsameren Rechner läuft? Das sind alles Probleme, die dagegen sprechen, es über die Zeit zu lösen. Man könnte sich vielleicht überlegen, ob man entscheiden kann ob, eine Zahl schon am richtigen Platz ist oder nicht und dann kann man einfach sagen: Zahlen, die am richtigen Platz sind geteilt durch Zahlen insgesamt. HTH Jan
  15. Es ist kein Standard, wenn man die Größe eines Arrays nicht mit einem konstantem Ausdruck angibt. Der gcc erlaubt dies, aber wie gesagt es ist kein Standard und Dein Compiler erlaubt es, wie Du gemerkt hast auch nicht. Dies tut er zurecht. Trotzdem gibt es eine Lösung für Dich. In C++ gibt es das Schlüsselwort new. Mit diesem kannst Du dynamisch Arrays anlegen. int *array = new int[deineGewuenschteGroesse] Was ich fast vergessen hätte: Natürlich muß der Speicher auch wieder freigegeben werden. dies tut man am besten mit delete[] array. HTH Jan
  16. Orffi

    Meinung: 3-2+1?

    Die Frage war aber, welches Ergebnis richtig ist und da verweise ich gerne nochmals auf mein erstes Posting hier in diesem Thread. Aus der Sicht der Mathematik gibt es nur eine Lösung. Es ist auch völlig unwichtig was ein Compiler als Ergebnis herauswirft, denn die Mathematik ist viel entscheidener. Etwas anderes wäre es gewesen, wenn gefragt worden wäre, warum nun ein spezieller Compiler nicht das mathematisch korrekte Ergebnis liefert. Jan
  17. Orffi

    Meinung: 3-2+1?

    Das Problem aus der Sicht der diskreten Mathematik: Der Ausdruck a - b ist eine Abkürzung für a + -b, wobei -b das additiv Inverse zu b ist. Die natürlichen Zahlen reichen also nicht aus, da bei den natürlichen Zahlen nicht für alle Elemente ein additiv Inverses in der Menge der natürlichen Zahlen existiert. Die Menge der ganzen Zahlen leistet dies. Die ganzen Zahlen bilden die algebraische Struktur eines Ringes (die natürlichen Zahlen sind eine Gruppe). Es gibt ein paar Axiome, die ein Ring erfüllen muß. Das hier entscheidene ist, daß ein Ring R (in diesem Fall Z für die ganzen Zahlen mit der Operation + eine kommutative Gruppe ist. Das bedeutet für uns: (a++c = a+(b+c) a+0 = 0+a a+(-a) = (-a)+a = 0 a+b = b+a Für uns sieht die Sache nun folgendermaßen aus: a-b+c = a+(-+c. Da Z mit + eine kommutative Gruppe ist, kann ich es beliebig umsortieren. Auf jeden Fall ist für a=3, b=2 und c=1 das Ergebnis immer 2! Zum Thema UPN: a-b+c ist kein gültiger Ausdruck für UPN. Die Aussage a-(b+c) = a-b+c ist in der Tat falsch, da diese Aussage für alle Bellegungen a,b,c element Z gelten muß. Um zu zeigen, daß die Aussage nicht gilt, brauche ich nur ein Gegenbeispiel: a=2,b=5,c=5: 2-(5+5) = 2 - (10) = -8 2-5+5 = 2-0 = 2 2 != -8, damit ist die Aussage falsch! HTH Jan
  18. Ich wollte niemals sagen, daß hier irgendeiner verloren hat. Ich wollte es nicht sagen und es ist auch nicht meine Meinung. Jan
  19. Ehrlich gesagt wollte ich keinen direkt ansprechen. Ich hatte nur ein paar Zitate im Kopf weiß aber schon gar nicht mehr wer das geschrieben hat. Ich wolllte Fachinformatiker auch nicht zu Fließbandarbeiter herabsetzen und ich denke jede Firma freut sich über mitdenkende Mitarbeiter. Bis denn dann Jan
  20. Ich habe mal eine Frage an die hier versammelte Runde. Wer von Euch würde einen gelernten Maschinenbauer ein Flugzeug entwickeln lassen? Ich vermute mal keiner von Euch. Ebenso würde keiner von Euch sich in ein Flugzeug setzen, das von einem studierten Flugzeugbauer zusammengeschweißt wurde. Ich denke so ähnlich ist es in der Informatik auch. Warum sollte ich studieren, wenn ich Programmierer werden will. Dafür brauche ich kein Studium. An der Uni wird auch erwartet, daß man programmieren kann oder sich dies im Selbststudium beibringt. Informatik ist doch viel, veil mehr als auf der Tastatur 'rumzuhacken. Ein Informatiker konstruiert so wie ein Ingenieur, denn er hat das nötige Hintergrundwissen. Ein Fachinformatiker, schweißt das ganze zusammen. Ihr könnt mich jetzt steinigen, weil ihr alle Systeme entwickelt, aber Informatik-Studenten gehen doch nicht zur Uni, weil ihnen langweilig ist oder weil im Westen das Studieren "dazugehört". Es hat auch einen Grund, warum Das Informatik-Studium länger ist eine Fachinformatikerausbildung. Und in den sog, Semesterferien schläft ein Student auch nicht den ganzen Tag und feiert wilde Parties. Er übt für Klausuren oder belegt Praktika oder arbeit in einer Firma, oder, oder, oder... Ich habe keine Ahnung, was Green-Cardler alles können und was sie nicht können, aber mir geht es ein wenig auf den Senkel, daß Fachinformatiker ein wenig an Selbstüberschätzung leiden. Bitte, dies soll nicht falsch verstanden werden. Ich will den Beruf des Fachinformatiker nicht schlecht machen. Ich denke, er ist ein sinnvoller Beruf, aber meiner Meinung nach eignet er sich nicht zum Forschen und Entwickeln. Bis denn dann Jan
  21. Orffi

    Zahlenlänge

    Wie wäre es mit cout.precision ( 20 ); wenn Dum im Namespace std bist? HTH Jan
  22. Damit Dir geholfen werden kann mußt Du uns ein paar Informationen geben. 1. Was ist eine Strukturansicht? Meinst Du einen "Treeview"? Ein Treeview wäre zum Beispiel im Explorer die linke Seite mit den Laufwerken und den Ordnern. 2. Für welches Betriebssystem entwickelst Du? 3. Welche Entwicklungsumgebung benutzt Du. 4. Was meinst Du genau mit ansprechen/abfragen? Jan
  23. Du solltest hinter jeder for-Zeile das Semikolon wegnehmen. Dann laufen zumindestens die for-Schleifen an. HTH Jan [wasweißich war schneller...]
  24. C würde man nicht zur Familie der objektorientierten Programmiersprachen zählen. Das liegt daran, daß C wichtige Eigenschaften fehlen, die man für objektorientiertes Programmieren braucht. Objektorientiert bedeutet, wie der Name schon sagt, daß man sich sein Problem ansieht und versucht Objekte ausfindig zu machen. Diese Objekte haben natürlich Eigenschaften und stehen untereinander in Verbindung. Ein Eßtisch ist zum Beipiel erstmal ein Tisch. Und so weiter und so fort. OOP hier komplett zu erklären wird ein bißchen schwer. Aber C fehlt einmal Vererbung. In C kann man nicht so programmieren, daß ein Eßtisch bestimmte Eigenschaften von einem Tisch erbt. Auch kann man keine Kapselung realisieren in dem Sinne, daß es Unmöglich gemacht werden kann, auf innere Eigenschaften zuzugreifen. Man kann sich vielleicht beherrschen, aber wenn man nicht selber drauf achtet, klopft der Compiler einem auch nicht auf die Finger. Bei C++ ist es anders. C++ unterstützt das objektorientierte Paradigma (u.a. Objekte, Klassen, Vererbung, Kapselung). Wenn man also möchte, dann kann man mit C++ objektorientiert programmieren. Muß man aber nicht, man könnte auch funktional programmieren, aber dieser Programmierstil wird nicht so unterstützt wie bei der Lisp-Familie (z.B Lisp, Scheme und Haskel). Kurz gesagt, C++ ist objektorientiert. Auf jedenfall sind beide Defintionen aus Deinem Ursprungspost falsch. Die zweite Defintion geht ansatzweise ind die richtige Richtung, aber das war es dann auch. HTH Jan
  25. Ich habe keine Ahnung von Arbeitszeugnissen, aber ich denke, daß man darauf achten sollte, daß es auch grammatikalisch korrekt ist. Du kannst zwar nichts dafür, aber es wird halt mir Dir in Verbindung gebracht. Ich habe zuerst gelacht. Nicht über Dich oder Deine Bewertung, sondern, daß Du im 16. Monat geboren wurdest. Muß es nicht eher 16.01.1978 heißen? Bis denn dann Jan

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...