Es ist in der Linuxwelt ein gängiges Verfahren, Programme im Quellcode und mit einem Compilierungsskript bereitzustellen. Die für die Compilierung bereitgestellten Hilfsmittel können je nach Sprache unterschiedlich sein und sind nicht immer völlig unproblematisch zu verwenden.

Die Compilierung von C, C++ und Objective C gelingt mir auf Linuxrechnern meist problemlos. Das liegt auch daran, dass das benötigte Hilfsprogram make auf den meisten Linuxsystemen vorinstalliert ist. Wenn das zu compilierende Programm nicht irgendwelche sehr speziellen Programmbibliotheken erfordert, gelingt die Compilierung mit make oft auf Anhieb. Andernfalls müssen vorbereitend die erforderlichen Bibliotheken installiert werden.

Wenn an Stelle von make das Hilfsprogramm CMake verwendet wird, ist die Situation geringfügig anders: CMake muss auf vielen Systemen zunächst installiert werden. Unter Umständen müssen auch die Skriptdateien angepasst werden.

Das Compilieren mit selten verwendeten oder mit sehr neuen Hilfsprogrammen (z.B. Meson) kann problematischer sein; diese Hilfspogramme müssen meist zunächst installiert werden und ändern sich oft auch noch ziemlich häufig.

Die Compilierung von Java mit dem Hilfsprogramm ant funktioniert oft recht gut; die Compilierung sehr neuer Java-Programme mit einem alten SDK wird aber in der Regel fehlschlagen, weil Java gegenwärtig einen Modernisierungsprozess durchläuft, der gelegentlich Versionsprobleme verursacht.

Die Compilierung von C# mit dem Entwicklungssystem mono hat in der Vergangenheit immer wieder mal Probleme verursacht, die auf Änderungen in der Programmiersprache und ihren Bibliotheken zurückzuführen waren. Außerdem vernachlässigen die Entwickler von mono bekanntermaßen die Tests und die Qualitätssicherung.

Die Compilierung alter Ada-Programme mit einer neuen Version des GNAT Ada Compilers kann Fehlermeldungen verursachen, die bei den älteren Compilern nicht aufttraten; in dieser Situation hilft nur entweder die sachverständige Überarbeitung des Programms oder das Zurückgehen auf eine ältere Compilerversion.

Die Compilierung sehr alter Programme ist öfter mal schwierig, wenn Programmbibliotheken vorausgesetzt werden, die auf neueren Linuxsystemen garnicht mehr oder nur noch in einer neueren, inkompatiblen Version bereitgestellt werden oder wenn der aktuelle Compiler strenger prüft als dies ältere Compiler taten.

Wenn du selbst compilieren musst, ist der augenblickliche Erfolg also nicht garantiert; mit einiger Erfahrung und dem erforderlichen Know-How ist es aber oft möglich, auftretende Fehler zu beheben.

...zur Antwort

Bei den Aufgaben 1 bis 5 geht es darum, die Fläche eines Kreisrings zu berechnen. Der Ansatz ist immer der gleiche: Du berechnest die Fläche des größeren Kreises und ziehst die Fläche des kleineren Kreises ab. Die Aufgaben unterscheiden sich aber hinsichtlich ihrer Zahlenangaben: Gelegentlich sind Radiuswerte angegeben, gelegentlich Durchmesser. Bei den Aufgaben 2, 3, 4 ist die Differenz zwischen dem größeren und dem kleineren Radius angegeben. Du musst hier eine kleine Nebenrechnung ausführen, um auf den fehlenden Radius zu kommen.

Bei den Aufgaben 6 bis 8 geht es um Kreissektoren. Der Zentralwinkel des Kreissektors ist immer angegeben und den brauchst du auch immer für deine Rechnung.

Für die Fläche eines Kreissektors musst du eine Verhältnisrechnung ausführen: Der ganze Kreis hat einen Zentralwikel von 360°; der Kreissektor in Aufgabe 6 hat einen Zentralwinkel von 41°. Folglich hat der Kreissektor nur 41/360 der Fläche des ganzen Kreises. Du berechnest also zunächst die Fläche des ganzen Kreises und sodann davon 41/360.

Bei der Länge eines Kreisbogens funktioniert die gleiche Überlegung. In Aufgabe 7 hat der Kreissektor einen Zentralwinkel von 66° Du berechnest also den Kreisumfang des ganzen Kreises (mit Radius 71,8 cm) und davon sodann 66/360.

...zur Antwort

Setze den ganzen Ausdruck gleich 0, multipliziere die Klammer aus und löse die erhaltene quadratische Gleichung mit der großen Lösungsformel. Du musst die Lösungen gar nicht ausrechnen, aber du musst auf den Wert der Diskriminante achten: Untersuche, für welche Werte des Parameters e die Diskriminante negativ, Null oder positiv wird. Das sind genau die Werte, für die du keine Lösung, eine Lösung oder zwei verschiedene Lösungen erhältst.

...zur Antwort
Wie funktionieren Klassen in C#?

Hallo, ich habe große Verständniss Schwierigkeiten mit meinen momentanigen Thema in meinem IT Kurs. Wir machen aktuell C# und antscheind habe ich das Prinzip einer Klasse noch nicht ganz verstanden. Ich werde meinen Code unten rein packen, um Fragen geklärt zu bekommen.

Kontext zum Code

Ich soll im allgemeinen ein Programm schreiben, indem man 4 oder mehr Wiederstände miteinander verrechnet. Dazu soll eine Klasse Wiederstand erstellt werden. Eine Instanz der Klasse kann nur mit der Angabe des Widerstandswerts gebildet werden. Der Wert kann gelesen, aber nicht verändert werden. Instanzen der Klasse Widerstand können mit + addiert werden. Dann ergibt sich der Widerstand, als Gesamtwiderstand einer Reihenschaltung. Der Operator / berechnet den Gesamtwiderstand einer Parallelschaltung. Die Methode ToString() liefert den Widerstandswert als Text mit Einheit zurück. Dazu sollen wir zudem ein User Interface anlegen.

Meine Fragen in Bezug auf den Code:

  1. Wieso kann ich in Operatoren nur 2 Operatoren gleichzeitig überschreiben? Dazu soll ich ja mehrere Wiederstände beispielsweise in eine Reihenschaltung schalten. Den + operator überschreibe ich ja so, dass ich: R1 + R2 zusammen addieren kann. Das geht ja jedoch nur mit max: R1 + R2 + R3 und dann ist schluss. Die einziege Lösung, die mir da einfällt ist ein Array und eine Schleife zu benutzen.
  2. Als zusätzliche Lösung für mein 1 Problem, habe ich überlegt statt einen Operator zu überschreiben eine einfache Funktion anzulegen, die dies berechnet. Jedoch ist das nicht die Aufgabenstellung. Dazu meine Frage: Wieso keine Funktion benutzen sondern einen Operator überschreiben, wo liegt da der Sinn?
  3. Die Frage bezieht sich auf den Code hinter dem User Interface. Wie kann ich generell auf meine Klasse zugreifen und vom User eingebende Werte in meine Klassen Vabriable Wert schreiben? Muss ich dazu immer eine neue Klasse erstellen?
  4. Wie hängt der Operator mit der Vabriable Wert meiner Klasse zusammen? In den Operatoren habe ich ja Vabriablen wie R1 und R2. Wie werden also dort die verschiedenen Werte herrein geschrieben?

Hier mein Code: (ich kann den leider nur als Foto beilegen, da es sonst die Zeichengrenze überschreitet)

Vielen Dank an jeden, der sich die Geduld und Zeit nimmt mir zu helfen, da ich bald eine Klausur schreibe und schon ein bisschen Verzweifelt bin!

...zur Frage

zu Punkt 3:

Um aus einem Zahlenwert, der von User eingegeben wurde, einen Widerstand zu machen, musst du tatsächlich eine neue Instanz der Klasse aufrufen. Das geht mit einer Anweisung der Art:

Wiederstand w = new Wiederstand (<Zahlenwert hier>);

So wie du den Konstruktur definiert hast, sollte der Zahlenwert in einer Variablen vom Typ double stehen. In deinen Operatordefinitionen machst du das ja auch, und zwar in den Zeilen 34 und 40 (In Datei Wiederand.cs).

Zu Punkt 4:

In der Datei MainWindow.xaml.cs ist der Code unvollständig und es stehen in den Kommentaren einige Fragen. Hier meine Vorschläge zur Vervollständigung deines Codes:

Nachdem du die Zahlenwerte Box1, Box2 auf den Textfeldern ausgelesen hast, kannst du Widerstände erzeugen. Füge nach Zeile 34 ein:

Wiederstand r1 = new Wiederstand(Box1);
Wiederstand r2 = new Wiederstand(Box2);

Jetzt hast du alles, was du brauchst, um mit deinen Operatoren zu rechnen. Den Code von Zeile 41 bis 50 würde ich durch den folgenden Programmtext ersetzen:

Wiederstand gesamtwiderstand;
if (this.RadioButton_Rreihe.IsChecked.Value)
{
   gesamtwiderstand = r1 + r2;
}
else if (this.RadioButton_Parallel.IsChecked.Value)
{
   gesamtwiderstand = r1 / r2;
}  

Du trägst also die erhaltenen Zahlenwerte in neu erzeugten Instanzen der Klasse Wiederstand ein, um anschließend mit den Operatoren, die für Instanzen dieser Klasse definiert sind, rechnen zu können.

Anmerkung: In den Programmfragmenten habe ich den Klassennamen "Wiederstand" übernommen, damit cut & paste funktioniert, ohne dass der Compiler Fehlermeldungen ausgibt. Natürlich ist der Klassenname mißraten, und falls du dein Programm irgendwo herzeigen musst, solltest du "Wiederstand" systematisch durch "Widerstand" ersetzen.

...zur Antwort

Für die Teilaufgabe c brauchst du das Ergebnis der Teilaufgabe b. Je nach dem von dir verfolgten Ansatz ist das im wesentlichen eine Sinusfunktion oder eine Cosinusfunktion. Nennen wir den in Teilaufgabe b) erhaltenen Funktionsausdruck f(t). Dabei ist der ganzzahlige Teil von t die laufende Nummer des Tages im Jahr.

Die Tage mit mindestens 14 Stunden Tageslicht erfüllen die Ungleichung

Gehe über zu der Gleichung

und löse diese Gleichung. Du solltest zwei verschiedene Werte für t erhalten. Diese Werte geben den ersten und den letzten Tag des Jahres an, an dem die Tageslänge mindestens 14 Std. beträgt. Bilde nun die positive Differenz dieser Wert und zähle 1 hinzu, um die Zahl der Tage mit einer Tagesdauer von mindestens 14 Std. zu erhalten.

Tipp: Eine Skizze macht die Aufgabe verständlicher. In der Skizze sollten eingezeichnet sein:

  • Die Funktion f(t), also im wesentlichen eine skalierte und verschobene Sinusfunktion.
  • Die parallel zur x-Achse verlaufende Gerade, die die y-Achse bei dem Wert 14 schneidet.

Die beiden durch Rechnung bestimmten t-Werte sind gerade die x-Werte der beiden Schnittpunkte von Sinuskurve und Gerade. Die über der Gerade verlaufende Teil der Sinuskurve stellt den Teil des jahres mit Tagenslängen über 14 Std. dar.

...zur Antwort

Im rechts vorgerechneten Beispiel wird der Punkt A für die Konstruktion des Stützvektors verwendet; als Richtungsvektor wird der Vektor von A nach B verwendet.

Die Geradengleichung der Teilaufgabe b) erhältst du, wenn du den Punkt B für die Konstruktion des Stützvektors hernimmst und als Richtungsvektor den Vektor von B nach A verwendest. (von A nach B ginge natürlich auch; das ist der Gegenvektor).

...zur Antwort

Bei der Bearbeitung derartiger Aufgaben folgst du zwei Grundregeln:

  • Der Umfang einer Figur wird druch Addition der verschiedenen Randkurven der Fläche berechnet.
  • Die Fläche einer Figur wird entweder durch Addition der Flächen ihrer Teilfiguren oder durch geschickte Subtraktion von Flächen bestimmt. Es gilt: Flächen, die aus einer Figur herausgeschnitten wirden. müssen abgezogen werden. Flächen, die an eine Fläche angefügt werden, müssen addiert werden.

Bei der Aufgabe a) musst du die Länge des halben Kreisbogens und den Durchmesser addieren, um den Umfang zu erhalten. Die Fläche der Figur ist natürlich die Fläche des halben Kreises.

Bei Aufgabe b) erhältst duden Umfang, indem die die Länge des halben Kreisbogen zu den drei Seiten des unter dem Halbkreis liegenden Rechteck addierst. Die Fläche der Figur berechnest du, indem du die Fläche des Rechtsecks und die Fläche des Halbkreises addierst.

Bei Aufgabe c) erhältst du den Umfang der Figur, indem du den Umfang des Quadrats und den Umfang des aus dem Kreis gerausgeschnitten Kreises addierst. Bei der Berechnung der Fläche musst du aufpassen: Du musst von der Fläche des Quadrats die Fläche des Kreises abziehen, da der Kreis ja aus dem Quadrat herausgeschnitten wurde.

Die Aufgabe a) hast du bereits bearbeitet. Kontrolliere deine Rechnung bitte nochmals und bessere eventuelle Fehler aus. Verwende die folgenden Formeln:

Die Länge des halben Kreisbogens ist davon die Hälfte.

Die Fläche des Halbkreises ist davon die Hälfte.

Beachte, dass du beim Umfang den Durchmesser in die Formel einsetzt und bei der Fläche den Radius. Wenn du da nicht aufpasst, kannst du leicht Fehler machen.

Tipp: Rechne immer zunächst auf einem Schmierblatt. Der knappe Platz auf dem Arbeitsblatt reicht gerade einmal für die Niederschrift einer fehlerfreien Rechnung und auch das nur, wenn du dir den Platz gut einteilst.

...zur Antwort

Vor einigen Monaten hast du dich mit einem Z80-Emulator beschäftigt. Hast du dabei so viele Erkenntnisse zusammentragen können, dass es für einen Vortrag über einen 48 Jahre alten 8-nit-Mikroprozessor ausreicht? Das Thema ist jedenfalls groß genug für mehrere Vorträge, du könntest also einen Schwerpunkt auswählen, z.B. den Aufbau eines Mikroprozessors oder seine Programmierung.

...zur Antwort

Es ist beides möglich und richtig. Wenn die Stammfunktion an den Integrationsgrenzen ausgewertet und die Differenz gebildet wird, fällt die Integrationskonstante sowieso weg.

...zur Antwort

Wie segler1968 bereits ausführte, spielen Noten in vielen Firmen keine große Rolle mehr. Dort, wo sie noch beachtet werden, schaut man vor allem auf die Fächer Englisch und Mathematik, und natürlich ein bißchen auch auf Informatik, falls dieses Fach in einem Zeugnis erwähnt wird. Natürlich macht sich in der IT-Branche niemand Illusionen über den Wert des schulischen Informatikunterrichts, aber wenn ein Bewerber mit einer 5 in diesem Fach daherkommt, könnte er schon danach gefragt werden, warum er ausgerechnet in die Informatik strebt.

Zu Englisch und Mathematik:

Auf die Englischnote zu schauen, macht durchaus Sinn. Spätestens am Ende seiner Ausbildung muss ein Informatiker in der Lage sein, Fachtexte zu Informatikthemen mit gutem Verständnis zu lesen - idealerweise ohne Verwendung von Google Translate. Da kann ich schon verstehen, dass Bewerber, die in Englisch nicht mindestens eine 3 haben, gelegentlich beargwöhnt werden. Wenn eine 2 in Englisch für dich nicht erreichbar ist, solltest du vielleicht überlegen, woran das liegt. Wenn dir das Verständnis technischer Texte leichter fällt als das Verständnis schulüblicher literarischer Texte, kannst du ohne weiteres auch in die Informatik gehen. Wenn du in einem Bewerbungsgespräch sagst, dass du mit Technik besser klarkommst als mit Literatur, kann es aber geschehen, dass man dir sogleich einen technischen Text zur Durchsicht vorlegt. Tipp: Im Internet findest du zu allen technischen Wissenschaften Texte in englischer Sprache. Durch die Lektüre solcher Texte kannst du dein technisches Englisch ohne großen Aufwand verbessern.

Dass gelegentlich auch auf die Mathematiknote geschaut wird, liegt einfach daran, dass eine gute Mathematiknote vielfach als Nachweis des logischen Denkvermögens angesehen wird. Persönlich bin ich mit dieser Meinung nicht glücklich. Es gibt viele Indikatoren für Denkvermögen und für Intelligenz, aber Mathematik ist eben der, der auf dem Zeugnis angegeben ist. Tatsächlich gibt es in der Informatik Tätigkeiten, bei denen man mit sehr wenig Mathematik durch das Berufsleben kommt: Kontoauszüge und Kindergeldbescheide verlangen nur einmal keine höhere Mathematik. Wo wirklich anspruchsvolle Mathematik in Computerprogramme umgesetzt wird, werden in der Regel Physiker, Ingenieure verschiedener Fachrichtungen und gelegentlich auch Mathematiker hinzugezogen, die dann den Mathematikteil eines Softwareprojekts übernehmen. Von daher denke ich, dass man der Mathematiknote keine allzu große Aufmerksamkeit schenken sollte. Es gibt aber Leute, die das anders sehen und bei denen hast du mit einer 2 in Mathe natürlich bessere Karten als mit einer 4.

...zur Antwort

Du wirst deinen Partner mit dem Ergebnis deiner Untersuchung konfrontieren müssen. Verlange, dass er die Dokumentation überarbeitet oder sich zu seinem Regelverstoß bekennt.

Wenn er weder das eine noch das andere tun will, ist es leider deine Obliegenheit, den festgestellten Regelverstroß zu melden.

Zur Gruppenarbeit gehört, dass ihr euch gegenseitig kontrolliert. Vielleicht wurde das nicht ausdrücklich gesagt, aber es ist so - übrigens nicht nur in der Schule, sondern auch in der Industrie überall dort, wo im Team gearbeitet werden muss. Wenn du den Verstoß nicht meldest, machst du ihn dir zu eigen (so würde es ein Jurist sagen) und wirst deshalb auch zu Recht mitbestraft.

Der Bemerkung eines anderen Foristen, dass es gute Gründe gibt, Gruppenarbeit zu hassen, kann ich zustimmen. Aus meinem Berufsleben weiß ich aber auch, dass Gruppenarbeit in fast allen Branchen unvermeidlich ist - auch wenn es dabei gelegentlich zu ernsten Konflikten kommt.

...zur Antwort

Du schreibst hier völlig richtig, wie diese Fortsetzungspunkte zu verstehen sind:

zunächst in der Mitte 2(h_1 + h_2) und dann das nächste ist 2(h_2 + h_3) bis hin zum letzten, welches dann anders ist mit (2h_(n-2) + h_(n-1))
...zur Antwort

Die Anleitung zu diesem Rechner sagt auf Seite 4:

Ergebnisse werden in der Stadardeinstellung wenn möglich exakt angegeben.
Zum Umwandeln des Ergebnisses drücken Sie S<->D
Um sofort die Dezimalzahl zu erhalten: SHIFT = statt =
Ergebnis als gemischten Bruch darstellen: = S<->D

Die Anleitung findest du hier als PDF-Datei: https://www.casio-schulrechner.de/materialdatenbanken/data/Kurzanleitung_FX-991DE%20X.pdf Das sind nur 16 Seiten, war wirklich angenehm ist. Es gibt Taschenrechner, die mit einer 260 Seiten umfangreichen Anleitung daherkommen: Das ist dann aber nur noch für die Freaks zumutbar.

...zur Antwort
Ja

Mathematik und Programmieren haben mich schon während meiner Schulzeit interessiert und die ist seit fast 50 jahren vorbei. Es lief dann darauf hinaus, dass ich nach einem Studium der Mathematik in der Softwareentwicklung tätig war - das war, von gelegentlichem Ärger abgesehen, eine ganz gute Zeit. Jetzt bin in Rentner und programmiere nicht mehr, was meine Kunden haben wollen, sondern was mich selbst interessiert. Das ist noch viel besser.

...zur Antwort

Der rote Ring heißt in der Mathematik ein Kreisring. Dessen Fläche berechnest du recht einfach, indem du zunächst die Fläche des außeren Kreises und sodann die Fläche des inneren (im Verkehrszeichen weißen) Kreises berechnest und zum Schluss von der Fläche des größeren Kreises die Fläche des kleineren Kreises abziehst.

Überlege dir genau die Radien der Kreise:

  1. Das Verkehrszeichen hat einen Durchmesser von 600 mm, also einen Radius von 300 mm.
  2. Von den 300 mm sind 15 mm abzuziehen, um zum Rand des roten Rings zu gelangen.
  3. Von dem berechneten äußeren Radius des roten Rings sind nochmals 80 mm abzuziehen, um zum Radius des inneren weißen Kreises zu gelangen.

Wenn du die errechneten Radien in Millimeter belässt, erhältst du die Flächen in Quadratmillimetern. Wenn du willst, kannst die die Radien in Zentimeter umrechnen und erhältst dann die Flächen in Quadratzentimetern.

...zur Antwort

Der Gleichung der Tangete kannst du mit der Punkt-Richtungsform aufstellen. Du verwendest den Punkt (u; v) und die Steigung der Exponentialfunktion für den x-Wert u. Da die Ableitung dder natürlichen Exponetialfunktion wieder die Exponetialfunktion ist, kannst du für die Tangentensteigung direkt exp(u) verwenden.

Um den Schnittpunkt er Tangete mit der x-Achse zu bestimmen, setzt du in die erhaltene Geradengleichung für y den Wert 0 ein und löst nach x auf.

...zur Antwort