Hallo!

In deinem Programm sind ein paar Fehler vorhanden, die ich versuchen werde zu erläutern.

Erstmal ist in deinem Bild gar kein Fehler vorhanden, klingt kurios, aber ist so.
"Process finished with exit code 0"
Dies bedeutet das dein Programm einwandfrei funktioniert. Einwandfrei heißt in diesem Fall aber nur, dass deine Datei einmal durchlaufen wurde und der Compiler kein Fehler entdeckt hat.

Vorwort:

Mein Code basiert auf der Version Python 3.6.0. Dies ist für die Programmierung und Erläuterung in Python leider relevant, da die Versionen nicht unbedingt kompatibel sind.

Mainloop fehlt:
Dennoch funktioniert dein Code nicht, da du zwar den Button und dein Label in den Hauptcontainer geladen wurden, aber Klicker.mainloop() fehlt. Resultierend wird deine GUI nicht aufgerufen.

Der Button und die KlickKnopf Methode:

In deinem Button hast du als command "KlickKnopf()" angegeben. Dies führt zur einmaligen Ausführung beim eintreten des Mainloops. Ein erneuter Klick hat keine Auswirkungen!
Richtig muss es heißen: "command=KlickKnopf". Hierdurch wird bei jedem klicken auf den Button die Methode KlickKnopf aufgerufen.

Bitcoins als globale Variable:

Einerseits hast du Bitcoins in deinem Hauptprogramm definiert, indess es als lokale Variable des Hauptprogramms läuft und zusätzlich definierst du Bitcoins nochmals lokal in deiner KlickKnopf Methode.
Um deinem Programm verständlich zu machen das du Bitcoins der Hauptmethode meinst, müsstest du die Variable als global definieren. Nun wäre eine Inkrementierung möglich. Globale Variablen zu verwenden birgt allerdings Sicherheitsrisiken. Aus diesem Grund würde ich eher mit Klassenobjekten arbeiten, aber dies war nicht deine Frage.

Aktualisierung deines Labels:

Dein Knopf selbst kann zwar bislang gedrückt werden, aber ohne das dein Label in der Methode KlickKnopf aktualisiert wird, wirst du kein Ergebnis sehen. Innerhalb meines Bildes, habe ich nochmals eine Aktualisierungsfunktion geschrieben, die das Label über die configure Methode aktualisiert.

Fazit:

In deinem Code waren einige Fehler, die jetzt hoffentlich etwas klarer sind.
Zusammenfassend kann man folgendes sagen:

  • Setze immer ein Mainloop
  • Beschäftige dich mal mit dem OOP Ansatz in Python, da dort dein globales Problem gelöst wird.

Falls noch Fragen sein sollten, helfe ich dir gerne weiter! Dennoch hoffe ich, dass all deine Fragen geklärt werden konnten!

Liebe Grüße
Norman

...zur Antwort

Hallo GrimGoal!

Gänzlich kommt es erstmal auf deinen Wissensstand an.

C++ selbst stammt aus dem Jahr 1979 und ist somit wie vieles in der Informatik schon "uralt".

Deine Frage beantwortend haben sich Dinge wie Schleifen oder Verzweigungen nicht verändert, so dass diese Grundlagen selbst aus einem C++ Buch aus dem Jahr 2000 erlernbar sind.

Weiterführund wurde z.B. die STL ( Standard Template Library) bereits in den 80er Jahren eingeführt. Jedoch kommt hier immer mal wieder was hinzu oder wird entfernt.
Ebenso bin ich mir nicht sicher ob du in diesem Buch etwas über Lambda-Expressions finden wirst.

Insgesamt sind dies aber nur ein paar kleine Anmerkungen zu Unterschieden.
Fazitär lässt sich so ein Buch als Einstieg nutzen!
Sollte der Compiler jedoch meckern, ist es gut eine aktuelle Dokumentation zur Hand zu haben.

Hoffe ich konnte dir damit helfen!

Liebe Grüße
Norman

...zur Antwort

Hallo CrazyQandA!

Im Anhang habe ich dir die Formel dafür angehängt.
Grundsätzlich wird die Zahl x gesucht, die in folglich in deine Formel eingebaut werden muss.
Da man unter einer Summe die Addition von n-Elementen versteht, kann dies so in der Formel umgesetzt werden. Das Summenzeichen selbst habe ich hier weggelassen und die Formel über eine einfach Addition geschrieben.
Weil das 1,5 fache von x um 6 kleiner ist als die Summe obiger Elemente, wird die Summe abgezogen.

Auf eine Lösungsangabe habe ich explizit verzichtet, aber ich kann dir sagen das die Zahl kleiner als 100 ist ;).

Hoffe ich konnte dir mit der Formel und der Erklärung helfen!

Liebe Grüße
Norman

...zur Antwort

Hallo!

Für die Berechnung eines "Mittelwertes" gibt es mehrere Möglichkeiten.

Als Grundlage zur Erläuterung nehmen wir die Altersliste p={15,17,63}

Arithmetisches Mittel:

Hierzu musst du aus deiner Liste die Alterszahlen summieren und anschließend durch die Anzahl der Personen teilen.

Problematisch ist hier allerdings die Anfälligkeit auf Ausreißer.
D.h. in unserem Beispiel also das Sum(p)=95 ist und Sum(p) / 3 = 31,6 ist.
Excel bietet hierfür die Funktion Mittelwert().

Median:

Hierzu wird die Liste der Alterszahlen als erstes geordnet.
Bei einer ungeraden Zahl an Elementen in der Altersliste wird das Element in der Mitte als Mittelwert genommen, also Median(p)=17.
Bei einer geraden Zahl von Elementen ist es das Arithmetische Mittel der zwei Werte links und rechts der Mitte.
Excel bietet hier die Funktion Median().

Fazit:

Für deinen Altersmittelwert, würde ich wahrscheinlich eher die Funktion Mittelwert() nutzen, da es halt in diesem Fall die Ausreißer mit einschließt und nicht ignoriert.
Dennoch sollte man sich den Median immer im Hinterkopf behalten, da er in Bezug auf das arithmetische Mittel die Abweichungen durch die Ausreißer anzeigen kann. Wobei es hierfür noch weitere statistische Methoden gibt, aber damit will ich dich jetzt nicht nerven!

Hoffe das dir meine umfangreiche Antwort helfen konnte!

Liebe Grüße
Norman

...zur Antwort

Hallo!

Als Feuerwehrmann muss ich sagen, dass du ein komisches Bild auf uns wirfst.
Einerseits solltest du wissen das Ausdauertraining nicht innerhalb eines Tages zu einem guten Ergebnis führen kann.
Andererseits sprichst du auch von utopischen Gewichten.
Je nach PSA und Atemschutzgerät liegt das zusätzliche Gewicht bei ungefähr 30kg und nicht bei 69 (selbst Elite Einheiten der Bundeswehr tragen nicht mehr als 50kg mit sich rum).
In der Strecke selber muss man halt als Team agieren, allerdings benötigt man auch nicht gerade Unmengen an Kraft...

Wie gesagt, mit deinem Post habe ich fast Zweifel ob du tatsächlich Feuerwehrmann bist, allerdings kenne ich dich nicht und kann mich auch täuschen.

Liebe Grüße
Norman

...zur Antwort

Hallo vb2010user!

Die Fragestellung ist etwas irreführend.

Statistisch betrachtet sind Wahrscheinlichkeiten bereits Näherungswerte.
Denn die Wahrscheinlichkeit gibt den prozentualen Anteil des Auftretens an und sagt damit wie nah ein gegebenes Ereignis an dem gewünschten liegt.

Folglich hast du dir oben genannte Frage eigentlich schon selbst beantwortet.

Liebe Grüße
Norman

...zur Antwort

Hallo chiller!

Bei dem Heron-Verfahren handelt es sich um einen Approximationsalgorithmus zur Wurzelberechnung, wie du ja schon weißt.

Gänzlich benötigt man erst mal einen Startwert, dieser die Zahl der benötigten Wurzel darstellt. In deinem Fall ist es somit die 7, die als "a" definiert wird und konstant bleibt.

a=7

Nun gilt es x0, also das erste Glied der Approximationskette zu berechnen.

x0=(a+1)/2 = 4

Im Anschluss wird die Iterationskette für xn = 0,5 * (xn + (a/xn) rekursiv aufgerufen, wodurch letztlich die Approximation entsteht.

Im Anhang habe ich dir eine kleine Exceltabelle hingelegt, die allerdings ebenfalls ab etwa der 13 Kommastelle Probleme macht. Hier kommen leider die Rundungsfehler zum tragen!

In deinem Fall fällt mir auf Anhieb dein x0=13/2 auf, dass ich bei
(Wurzel 7) = (7+1)/2 = 4 nicht nachvollziehen kann. Zudem scheint sich dein a auch zu verändern, obgleich es konstant ist.

Mit den Erläuterungen konnte ich dir hoffentlich helfen!

Liebe Grüße
Norman

...zur Antwort

Hallo Hopeless!

Leider kann ich mich dem letzten Kommentar der "Bindestrich-Informatik" nicht anschließen. Selber habe ich angewandte Informatik studiert.

Angewandte Informatik, theoretische Informatik und technische Informatik bilden die drei Kerndisziplinen der Informatik.
Wie die Bezeichnungen selbst schon teils sagen, ist das eine theoretischer, praktischer oder technischer!

Darüber hinaus gibt es aber noch weitere Informatik-Bereiche, diese sich jedoch interdisziplinär mit anderen Bereichen überschneiden.
In der Wirtschaftsinformatik liegt beispielsweise der Schwerpunkt auf BWL, in der Medieninformatik hingegen eher auf den Medienwissenschaften und Design.

Informatik als spezifisches Fach gibt es so nicht, da es zumindest aus einem der obigen drei Kerndisziplinen resultiert.

Hoffentlich konnte ich dir helfen!

Liebe Grüße
Norman

...zur Antwort

Hallo!

Auch wenn die Frage bereits beantwortet ist, möchte ich die Lösung für andere Nutzer mit einem ähnlichen Problem nochmals kurz ausführen.

Der Methode Start wird als Parameter ein String (Zeichenkette) übergeben, dieser aus jeglichen, vorkommenden Zeichen bestehen kann. Ergo besteht jeder String aus n Zeichen.
Innerhalb der Strings gibt es jedoch sogenannte "Escape Sequenzen", mit dessen Hilfe beispielsweise Zeilenumbrüche oder Tabulatoren innerhalb des Strings realisiert werden können. Um nun dem Compiler zu sagen, dass es sich bei dem String nicht nur um reinen Text (grob gefasst) handelt, werden die Escape Sequenzen durch den Backslash ( \ ) eingeleitet.

Als Beispiel können wir hier den String: "Emma geht es gut!" nehmen.
Wenn wir nun einen Zeilenumbruch nach jedem Wort einsetzen wollen, könnte dies wie folgt aussehen.

"Emma\ngeht\nes\ngut".

Hier steht der Backslash für die Initialisierung der Escapesequenz und das "n" für den Zeilenumbruch.

Auf obigen String, als Pfadangabe, bezogen sind hier mehrere Backslash innerhalb des Pfades angegeben. Diese werden aber nicht als Zeichen, sondern als Initialisierung der Escape Sequenz interpretiert("C:\Users\beispiel\beispiel\beispiel.exe"). In der Folge kommt es zu dem Compilerfehler CS1009, indess die eingeleitete Escapesequenz nicht erkannt wird.
Als Lösung, um weiterhin einen Backslash als Zeichen in einem String verwenden zu können, wurde der "Doppelbackslash" eingeführt. Hierbei wurde der Backslash als Escapezeichen definiert, woraus dann zwei Backslash hintereinander resultierten. Durch den ersten wird die Escapesequenz eingeleitet und durch den zweiten das Zeichen gesetzt.

Dies ist die ausführliche Antwort auf eine leichte Frage ;).

Wie gesagt, wurde die Frage bereits einfach beantwortet. Dennoch hoffe ich mit der ausführlichen Antwort noch ein wenig mehr zur Lösung ( auch für andere ) beitragen zu können.

Liebe Grüße,
Norman

...zur Antwort

Hallo Calgia!

Selbst kenne ich dieses Plugin nicht, habe aber gerade mal kurz etwas recherchiert.

Grundsätzlich stehen dir per CSS mehrere Möglichkeiten des Setzens von Elementen zur Verfügung!

Innerhalb von SiteOrigin hast du die Möglichkeit im Visual Editor das Element aufzugreifen. Auf der rechten Seite hast du dann unter dem Reiter Layout die Möglichkeit die Position zu setzen.

Hierzu solltest du dir allerdings Gedanken über die Positions-Parameter machen. In CSS steht dir dazu static, relative und absolute zur Verfügung!
In den Layouteinstellungen selbst, findest du z.B. unter "Position" oder unter "absolute Position" (welches dir helfen könnte) eine Möglichkeit die Elemente zu positionieren.
Im Weiteren steht dir dann aber auch noch Margin zur Verfügung, welches die äußeren Abstände zu den einzelnen Containern angibt.

So, dass waren erst mal ein paar Hinweise, mit denen ich dir hoffentlich schon helfen konnte!

MfG
Norman Fober

...zur Antwort

Hallo!
Auch wenn es nun schon bereits 2 Tage her ist, dass diese Frage gestellt wurde, werde ich versuchen diese zu beantworten.

Anbei habe ich dir zwei Excel Bilder gelegt, diese die Berechnungen zeigen.
Der Boxplot selbst ist händisch gezeichnet, da Excel in Bezug auf Boxplots etwas eigen ist. Ebenso habe ich die Berechnungsschritte mit angegeben.

Zudem wird dir auffallen, dass die Berechnungen der Quartile mit den Excelfunktionen abweichen und ungenau sind.
Per Hand sind die Quartile jedoch genauer berechnet.

Die Quartile selbst, vom Namen abgeleitet, zeigen dir die Viertelbereiche.
Genauer zeigt dir das 1.Quartil die 25% Grenze, unter dieser die Werte kleiner sind als die Grenze selbst.
In der Quartilsberechnung per Excel ist dies sehr schön zu erkennen, da dort das 1.Quartil den Wert 10 erhält. Dieser Wert ist genau der Median der unteren Hälfte der Datenmenge.
Obiges ist ebenso für das 3.Quartil anwendbar, wohingegen das 2.Quartil den Median zeigt (50%-Grenze).

Im Boxplot selbst hast du eine Box, diese die Weite 3.Quartil - 1.Quartil besitzt, auch Inter Quartil Range (IQR) genannt. Hier zeigen sich alle Werte im Bereich 25%<=n<=75%. Der Strich innerhalb der Box gibt den Median an, der logischer Weise zwischen dem 01.Quartil und 3.Quartil liegen muss.

Zudem zeigen sich noch zwei "Antennen" als Striche rechts und links der Box. Hier wird der Abstand Min -> 1.Quartil und 3.Quartil -> Max angegeben. Die Enden selbst zeigen die Minima und Maxima der Wertetabelle.

Gänzlich zeigt ein Boxplot somit die Lageverteilung der Daten. Innerhalb meines Beispiels ist z.B. sehr gut die links Verteilung und die 300 als Ausreißer zu erkennen.

Insgesamt zeigt mein Beispiel nur einzelne skalierte Werte an, die aber keine Vergleiche zulassen. Erst durch die Gruppierung von Daten (z.B. Wachstumszahlen für verschiedene Jahre), lässt sich mit dem Boxplot eine effiziente Aussage treffen, da wie gesagt verschiedeneste Lagemaße zusammen kommen.

Ich hoffe dir mit meinen Erläuterungen helfen zu können!
LG
Norman

...zur Antwort

Hallo!
Gute Arbeit!
In der Tabelle Noten fehlt jedoch ein Notenfeld, zum Eintragen der Note. Die Id's würde ich eher ID_[TABELLENNAME] nennen, aber das ist Geschmackssache.
LG
Norman

...zur Antwort

Hi!
Vermutlich ist etwas in der Installation schief gelaufen.
Hast du denn eine Fehlermeldung? Wie versuchst du IDLE zu öffnen?

Wenn es sich im Installationsordner von Python nicht öffnen lässt, würde ich dir empfehlen Python zu deinstallieren, den Rechner neu zu starten und dann Python nach erneutem Download nochmal zu installieren.

LG
Norman

...zur Antwort

Hallo Issei,

das Programmieren selbst ist nicht unbedingt eine Frage der Festplattengröße. Innerhalb des Studiums wirst du eh nur kleinere Programme haben, die von ein paar kb bis hin zu vllt. 100MB gehen. Dies ist also nicht unebdingt das Problem.
Bezüglich des Arbeitsspeichers und Prozessors ist es ebenfalls nicht unbedingt eine Frage, da es z.B. in Algorithmen um die Algorithmen selbst und dessen Verständnis geht. Dabei ist es somit egal ob du 1 Million oder 100Millionen Datensätze verarbeiten kannst.

Wichtig wäre für dich, dass gängige IDE (Integrated Development Environments) funktionieren und du ein aktuelles Betriebssystem nutzen kannst. Virtulaisierungsmöglichkeiten wären dabei ebenfalls nützlich.
Solange es nicht gerade die dicken CAD Programme sind, genügt also ein normaler Computer und wie mein Vorredner schon sagte eine externe Festplatte!

Ich hoffe, ich konnte helfen!

MfG
Norman Fober

...zur Antwort

Hallo SynnedW!

Du möchtest wissen welche Programmiersprache zum Hacken geeignet ist?

Nun, die Frage ist nicht einfach zu beantworten...

Meistens sind Hacker wie Schlangen, schlängeln sich durch die Tiefen der Netzwerke, erkunden Rechner- oder Softwarearchitekturen und schlüpfen ggf. durch die kleinsten Löcher im Code.
Ein gutes Auge,ein scharfer Blick und Geschick dürfen dabei natürlich, neben all dem Fachwissen nicht fehlen. Denn oftmals ist es nahe eines chirurgischen Eingriffes, der präzise geplant und durchgeführt werden muss.

Die Medizin is hier im Übrigen ein gutes Beispiel!
Ein Chirurg kennt die Anatomie des Menschen bis ins Detail, vielleicht sogar die Nullen und Einsen des humanen Systems. Kennt die einzelnen Schichten des Körpers, führt präzise Schnitte durch, tauscht und injiziert Organe. Für Ihn ist der Körper ein Kataster. Durch seine Sprache, die Chirurgie, kennt er die Stellschrauben des Katasters und weiß genaustens welcher Handgriff im besten Fall zum Erfolg führt.

Nun, ich denke das du damit erstmal eine Weile zu tun hast, auch wenn es nur eine oberflächliche Grundlage sein kann.

MfG
Norman Fober

...zur Antwort

Hallo nochmal!
Im ersten Posting habe ich wahrscheinlich dein Problem falsch verstanden, lasse aber dennoch das Posting mal stehen.

Den Vergleich der zwei Arrays habe ich dir mal ausprogrammiert.

Dabei werden die Worte der Datei2 als Array Values durchlaufen Dabei wird geschaut ob dieser Wert in dem Datei1 Array bereits vorhanden ist, falls nicht wird das Wort aus Datei2 in dem Array der Datei1 ergänzt. Hierdurch vergrößert sich das Array der Datei1 um ein zu prüfendes Wort, welches nicht nochmals hineingeschrieben wird.

import array

Datei1Worte = ["apfel", "birne", "banane"];
Datei2Worte = ["apfel", "banane","erdbeere", "erdbeere", "pflaume"];

for elem in Datei2Worte:
existElem = False;
for el in Datei1Worte:
print("Elem: "+ elem + " vergleicht " + el);
if(elem == el):
print("\t"+ el +" bereits vorhanden");
#Element bereits vorhanden
existElem = True;
break;
if(existElem == False):
Datei1Worte.append(elem);
print(Datei1Worte);
print("-----");
print(Datei2Worte);

Löst dies dein Problem?

MfG

Norman Fober

...zur Antwort

Hallo Roman Miller!

Ohne es jetzt direkt auszuprogrammieren, abstrahiere ich dein Problem mal ein wenig.

Gegeben:

  • 2 verschiedene Textdateien
  • wobei die AnzWorte(Datei1) <= AnzWorte(Datei2) ist
  • wobei Worte(Datei1) eine geordnete Teilmenge von Worte(Datei2) sind.

Algorithmus

  1. lese per split() die Worte aus Datei1 und Datei2
  2. speichere die Worte in einzelne Arrays (Dat1[Worte], Dat2[Worte])
  3. Durchlaufe die Arrays und vergleiche Dat1[i] == Dat2[j]
  4. Wenn 3 wahr ist, schreibe Dat1[i] in die neue Datei
  5. Wenn 3 falsch ist, solange Dat2[j] != Dat1[i] schreibe Dat2[j] in die neue Datei
  6. Wenn Dat1[i] EOF erreicht hat, füge den Rest von Dat2[j] an

Fazit:

Möglicher Weise hört es sich so abstrahiert etwas kompliziert an, aber wenn obige Vorraussetzungen (ich also dein Problem richtig verstanden habe) erfüllt sind, müsste es so gehen!

Ich hoffe, das ich dir helfen konnte!

MfG

Norman Fober

...zur Antwort

Guten Morgen!

Es handelt sich dabei um von dir deinstallierte Apps, die vorher den genannten Speicher benötigten.

Braucht dich also nicht beunruhigen ;-).

Gruß
Noha

...zur Antwort

Guten Morgen!

Es gibt, wie du selbst schreibst, zwei Arten die Länge des Kreisbogens auszudrücken, Radians uns Grad.

Radians beschreibt die Länge des Kreisbogens über Pi und Grad über den Winkel.

Ein Kreis besteht aus 360° Grad, dass entspricht 2 Pi Rad, woraus folgt, dass 1 Rad = 360° / 2 Pi darstellt.

D.h. Wenn du nun 1 Rad berechnest, erhältst du den Winkel in Grad. Multiplizierst du das Ergebnis mit deinem Faktor 3,89 (in dem Fall ca. 57° * 3,89 rad, erhältst du den geforderten Winkel (221,73°).

Bezüglich des Wertes von 1,32 verstehe ich nicht wie du darauf kommst, allerdings vermute ich eine falsche Klammer oder falsche Werteingabe.

(5*sin(50)) / sin(80) = 5*sin(50)/sin(80) = ~3,89

Ich hoffe das ich dir ein wenig helfen konnte!

Liebe Grüße

Noha

...zur Antwort

Hi!

Beides sind unregelmäßige Verben und beide stehen im Zusammenhang mit einem (bevorstehenden) Ereignis.

Einen Unterschied macht es m.E.n. nur in der Nutzung.

Wenn ich einer Gruppe vorangehe, dann bin ich wahrscheinlich in dessen Nähe oder führe diese Gruppe an. Wenn ich dieser Gruppe allerdings vorausgehe, so muss ich nicht in Ihrer Nähe sein. Vielmehr könnte ich dann auch schon eine Zeit x vorher losgegangen sein.

So könnte zum Beispiel auch ein Konzern mit einer Entwicklung vorausgehen, in diesem Sinne Vorreiter sein. VoRWEg ist hier ein gutes Beispiel!

Ich hoffe ich konnte dir helfen!

Liebe Grüße

Noha

...zur Antwort