Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 15 von 627 Treffern Seiten (42): [1] 2 3 nächste » ... letzte »
Autor Beitrag
Thema: Big O Notation Exponentielles Wachstum
as_string

Antworten: 1
Hits: 94
13.09.2021 11:20 Forum: Theoretische Informatik


Meines Erachtens ist das beides O(exp(n)), also gleich. Aber ich bin da nicht mehr so drin...

Gruß
Marco
Thema: Objektorientierung vs. (z.B.) Prozeduale Programmierung
as_string

Antworten: 1
Hits: 329
20.08.2021 10:38 Forum: Praktische Informatik


Hi!

Mit platzsparend hat das nicht viel zu tun. Erstmal schreibt man ja auch viel mehr Code sogar. Ich hab da zwar noch keine Studien oder ähnliches dazu gesehen, aber ich würde gefühlt sagen, dass wenn man ein und dasselbe Programm einmal objektorientiert und einmal prozedural schreibt, meistens die OOP-Version länger sein wird.
Es geht auch nicht darum, dass man irgendetwas mehr machen könnte, was ohne OOP nicht oder nur schwer machbar wäre. Programmieren kann man an sich in jeder Programmiersprache alles. Der einzige Unterschied mag sein, wie stark man auf die Hardware zugreifen kann oder auch Teile des Betriebssystems und so. Aber das hat nichts mit der Art zu Programmieren zu tun.

Es geht (in meinen Augen zumindest...) nur um Wartbarkeit bei tendenziell größeren Projekten, die über einige Zeit weiter entwickelt und gepflegt werden müssen. Dabei hat man solche Effekt wie:
  1. Änderungen an einer Stelle können zu Fehlern an ganz anderen Stellen des Programms führen
  2. Wenn man Dinge erweitern will, braucht man Wissen darüber, wie Details im bisherigen Code implementiert wurden
  3. Wenn viele Leute an einem Projekt arbeiten muss man häufig an derselben Datei was ändern, was zu Konflikten kommt, wenn man am Ende die parallelen Weiterentwicklungen wieder zusammen bringen will.
  4. Gleiche Programmlogik sollte man nur einmal schreiben müssen. Wenn ich z. B. eine abstrakte Datenstruktur habe, wie z. B. eine Liste von Dingen, dann gibt es dafür ja verschiedene Implementierungsmöglichkeiten mit unterschiedlichen vor und Nachteilen. An vielen Stellen des Codes will man solche Listen verwenden. Da ist es günstig, wenn man die Logik der Verwaltung einer solchen Liste allgemein programmieren kann, egal welche Art von Objekten in dieser Liste drin sind.

Da gibt es sicherlich noch einige Punkte mehr, aber diese 4 fallen mir gerade so im Moment ein. Teilweise überschneiden sich die Punkte in mancher Hinsicht auch. Sicherlich gibt es solche Listen von Motivationen für OOP im Internet schon sehr viele, die vermutlich besser ausgearbeitet sind. Du kannst ja mal Google benutzen.
Um den ersten Punkt in den Griff zu bekommen (aber auch wichtig für die anderen beiden Punkte), hat man sich in der OOP die Kapselung einfallen lassen: Daten und der Programmcode, der mit diesen Daten arbeitet, soll in einer Klasse direkt miteinander zusammen "verpackt" werden. Es gibt also eine abgeschlossene Einheit mit Daten und Code, der nach außen (also "public") ein klares Interface definiert hat, alles andere aber "private" ist, also von außen nicht erreichbar. So kann man sich sicher sein, dass Änderungen an den privaten Daten nur Änderungen innerhalb der eigenen Klasse erzwingen. So lange man das öffentliche Interface unverändert lässt, müsste der Rest vom Programm davon nicht betroffen sein. Aber auch der zweite Punkt wird dadurch unterstützt, weil man bei Erweiterungen nur das öffentliche Interface und nicht die internen Implementierungs-Details kennen muss, wenn man die Klasse in der Erweiterung verwenden will. Und der dritte Punkt kann dadurch auch unterstützt werden, weil die Dateien häufig kleiner sind (wenn nur immer eine Klasse drin definiert ist) und Themenbereiche besser gegeneinander abgegrenzt sind, so dass Änderungen aufgrund Weiterentwicklung im einen Bereich selten dieselben Klassen betreffen, wie andere Weiterentwicklungen zu ganz anderen Themen.
Ein weiterer Punkt ist die Vererbung: Durch eine kluge Klassen-Hierarchie kann man erreichen, dass das Programm leicht erweiterbar ist. Das Ziel ist es, dass man für viele Erweiterungen am bestehenden Code nichts ändern muss und möglichst noch nicht mal den bestehenden Code anschauen muss, außer die öffentlichen Interfaces. So kann man erreichen, dass mehr allgemeinere Klassen (häufig abstrakte Klassen dann) unabhängig erstellt, gepflegt, optimiert, etc. werden können von den spezielleren Klassen, die auf den allgemeinen aufbauen. Beides kann unabhängig voneinander entwickelt und gewartet werden.
Vererbung und Generics (in Java) oder Templates (in C++) unterstützen den letzten Punkt, dass man allgemeine Datentypen definieren kann, in denen aber unterschiedliche Arten von Objekten verwaltet werden können.

Also es geht insgesamt eher darum, wie man Code verwaltet und, besonders bei größeren Projekten an denen mehrere Leute arbeiten, eine Wartbarkeit und Erweiterbarkeit ermöglichen kann, ohne dass jeder den kompletten Überblick über alle Details benötigt.

Gruß
Marco
Thema: VPN Verständnisfrage
as_string

Antworten: 1
Hits: 546
RE: VPN Verständnisfrage 06.08.2021 13:43 Forum: Theoretische Informatik


Nein, das Internet, alle lokalen Netze, etc. sind physische Netze (in diesem Zusammenhang zumindest.)
VPN funktioniert ja prinzipiell so, dass ein Rechner oder Router eine physische Netzwerkverbindung mit einem anderen Rechner/Router aufbaut und über diese physische Netzwerkverbindung dann verschlüsselt Daten überträgt. Diese verschlüsselte Datenverbindung wird dann behandelt, als ob es ein weiteres Netzwerkkabel wäre, das in diesen beiden Rechner/Routern an beiden Enden ein neues Netzwerk-Interface hätte.
Sobald die Verbindung aufgebaut ist, haben die beiden Endpunkte also eine weitere logische Netzwerkschnittstelle, die es physisch nicht gibt. Diese logische Netzwerkschnittstelle hat eine logische/virtuelle Direktverbindung mit der Gegenstelle, die es so physisch auch nicht gibt. Da die Daten verschlüsselt übertragen werden, können nicht unterwegs abgehört werden, gerade so, als ob sie tatsächlich direkt mit einem Kabel verbunden wären, ohne irgendwelche andere Internet-Teilnehmer zwischen drin.
z. B.: Wenn ein Notebook von einem externen Mitarbeiter, mit einem Router der Firma eine solche Verbindung aufbaut, dann kann im Anschluss der Rechner des externen Nutzers sicherheitstechnisch so behandelt werden, als ob er physisch tatsächlich in der Firma säße, obwohl er wo ganz anders ist. So kann er auf interne Systeme zugreifen, etc. Früher hätte man dafür eine teure Standleitung bei der Telekom buchen müssen.

Eine andere Anwendung sind diese Dienste im Internet, die einen solchen Service anbieten. Die werben damit, dass die Daten dann erstmal zu ihnen verschlüsselt geschickt werden und deshalb nicht abgehört werden können, wenn man z. B. in einem Cafe den WLan-Hotspot verwendet. Allerdings können die Betreiber des VPN dann ja die Daten abhören, insofern weiß ich nicht, ob das immer sooo empfehlenswert ist. Eher die Frage, ob man diesen VPN-Betreibern wirklich traut bzw. auch die Expertise zutraut, dass bei denen sich keiner ins Netz hackt und dann auch den kompletten Kunden-Traffic abhören können.
Allerdings haben die auch noch die Möglichkeit, in ihrem eigenen Netzwerk den Datenverkehr an ausländische Rechner ihres Netzwerks zu schicken (auch wieder über VPN-Kanäle eventuell) und so Netzwerkverbindungen z. B. mit Streaming-Diensten aufzubauen, die eine Länderbeschränkungen haben. Auf diese Art sieht es für die Gegenstelle so aus, als ob die Anfrage aus einem anderen Land käme, als sie das tatsächlich ursprünglich tat.

Gruß
Marco
Thema: Neuronales Netz
as_string

Antworten: 1
Hits: 448
03.08.2021 16:34 Forum: Theoretische Informatik


Sorry, klingt recht wirr in meinen Ohren...
Warum beschreibst Du nicht mal, was genau Dein Gedanke ist?
Andererseits glaub ich ehrlich gesagt nicht, dass Du da eine Antwort bekommen würdest, wenn ich ehrlich bin. In letzter Zeit ist es nicht so lebhaft hier, leider.

Gruß
Marco
Thema: Werbemails
as_string

Antworten: 3
Hits: 868
22.07.2021 11:30 Forum: Off-Topic


ARGH... Bitte keine Werbelinks posten! Ich gehe mal davon aus, dass Du das nicht wirklich als Werbung gedacht hast, deshalb lasse ich es mal stehen, aber bitte in Zukunft nicht machen, OK?

Zum rezeptpflichtigen: Bei chronischen Erkrankungen, bei denen Du permanent Medikamente einnehmen musst (z. B. gegen Bluthochdruck oder so), da lohnt es sich eventuell dann schon: Du weißt ja schon lange vorher, wann Du wieder eine neue Packung brauchst und da es regelmäßig ist, kann man da über die Zeit auch etwas sparen (ich meine mal gehört zu haben, dass Du dann die Rezeptgebühren zumindest zum Teil einsparen kannst oder so, keine Ahnung).

Gruß
Marco

Edit: Nachdem ich jetzt mehrere andere Posts von Sandy/Mariano/Elton gesehen habe, bin ich doch zu dem Schluss gekommen, dass es eine Masche ist, um Werbelinks in Foren zu verbreiten. Lass das bitte sein, Ihr macht mir damit nur mit dem Löschen Arbeit!
Thema: Werbemails
as_string

Antworten: 3
Hits: 868
19.07.2021 18:00 Forum: Off-Topic


Es gibt schon viele Versand-Apotheken. Da bekommst Du auch rezeptpflichtige Medis. Du schickst Deine Rezepte hin und ein paar Tage später bekommst Du die Meds. Normalerweise haben die etwas bessere Preise als normale Apotheken, was man in der einen oder anderen Form als Kunde dann auch weiter gegeben bekommt.
Diese Online-Apotheken haben aber nichts mit den Spam-Mails und den darin beworbenen Sachen zu tun. Da geht es ja eher darum, dass Du das Zeugs auch ohne Rezept zugeschickt bekommst, was (so weit ich weiß) dann halt illegal ist. Nicht nur das, es ist auch wirklich gefährlich. Da sollte schon ein Arzt erst ein paar Dinge abchecken vorher. Außerdem sollte man das nur verwenden, wenn man das aus medizinischen Gründen wirklich braucht.
Ich bestelle u. U. auch mal rezeptfreie Sachen wie Voltaren oder ACC oder sowas dort. Das mit den Rezepten hin und her schicken ist mir den Aufwand nicht wert...

Gruß
Marco
Thema: Annäherung der positiven Nullstelle von cos(x) im Intervall [0,2] mittels Python
as_string

Antworten: 4
Hits: 683
09.07.2021 12:13 Forum: Algorithmen


Vorweg: Ich habe keine Ahnung von Python!

Aber trotzdem hab ich mal gegooglet. Klar ist, dass die Präzision eines normalen double (ich schätze mal, dass Python double verwendet) nicht ausreicht. Die Verwendung von decimal bringt dabei aber auch nichts, weil die Rückgabe von math.cos() ja ein double ist. Also bist Du nach wie vor auf die Präzision des normalen double beschränkt.
Ich habe mal testweise einfach mpmath statt math verwendet. Außerdem überall dieses decimal-Zeug raus geschmissen. decimal bringt nur was (so wie ich das verstehe), wenn Du es komplett mit Dezimalbrüchen zu tun hast und dabei Rundungsfehler vermeiden willst. Z. B. in Finanz-Anwendungen, wo alles so wie so auf Dezimalstellen gerundet werden muss, würden Fehler rein kommen, wenn Du auf 2-er Potenz gerundete Werte verwendest. Aber bei Kosinus/Sinus, etc. ist eine dezimal-Rundung ja genau so richtig oder falsch, wie eine im Dual-System. Da gewinnst Du keine Präzision.
Deshalb brauchst Du eine Zahlen-Darstellung mit höherer Präzision und die liefert offenbar das mpmath Paket, das auch cos() mit der höheren Präzision mitbringt.

Dann noch was mit dem Dezimal-Bruch. Normalerweise ist ein Dezimalbruch einfach die Darstellung mit 1,57... etc. Dann halt mit 50 Stellen. Du versuchst aber einen echten Bruch, was in meinen Augen nicht darunter zu verstehen wäre.

Ich hab mich jetzt trotzdem mal damit probiert (wie gesagt: Ich kann kein Python!) und hab das so zum Laufen gebraucht:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
from fractions import Fraction
from mpmath import *

mp.dps = 51
def annäherung_Nullstelle_cos():

     a_n = pi 

     b_n = mpf(0)

     for i in range(0,60): 
         
          c = (a_n + b_n)/mpf(2) 

          print(i, a_n, b_n, c, cos(c))
          print() 

          if (cos(c)) < 0: 
      
             a_n = c 

          elif (cos(c)) > 0: 

               b_n = c 

     nprint(c, 50)
     nprint(pi/mpf(2), 50)

annäherung_Nullstelle_cos()


Dabei habe ich pi-Halbe noch einmal das in mpmath fest verdrahtete ausgegeben. Wenn man statt 60 einfach mal 100 Schleifen-Durchläufe macht, sieht man, dass noch deutlich mehr Dezimalstellen sich dem Wert nähern, als noch nach 60 Durchläufen.

Gruß
Marco
Thema: Implementierung der Cosinusfumktion
as_string

Antworten: 1
Hits: 483
08.07.2021 15:09 Forum: Algorithmen


Die Frage ist, nach welchem Prinzip Du das berechnen willst.

Gruß
Marco
Thema: Annäherung der positiven Nullstelle von cos(x) im Intervall [0,2] mittels Python
as_string

Antworten: 4
Hits: 683
08.07.2021 11:47 Forum: Algorithmen


Hey as_string, hier nochmal das Programm in sauber.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
from fractions import Fraction 
import math 
import decimal

decimal.getcontext().prec=50

def annäherung_Nullstelle_cos():

     a_n = math.pi 

     b_n = 0 

     for i in range(0,60): 
         
          c = (decimal.Decimal(a_n) + decimal.Decimal(b_n))/decimal.Decimal(2.0) 

          print(i, a_n, b_n, c, math.cos(c)) print() 

          if (math.cos(c)) < 0: 
      
             a_n = c 

          elif (math.cos(c)) > 0: 

               b_n = c 

     print(Fraction.from_decimal(decimal.Decimal(a_n)))


[as_string: ich hab noch die code-Tags außenrum gemacht, damit die Einrückungen auch erhalten bleiben.]
Thema: Annäherung der positiven Nullstelle von cos(x) im Intervall [0,2] mittels Python
as_string

Antworten: 4
Hits: 683
06.07.2021 13:46 Forum: Algorithmen


Ich glaube, ein Python Programm, bei dem die Formatierung verloren gegangen ist, ist ziemlich nutzlos. Probier mal, ob es besser wird, wenn Du den Text zwischen
[code]...[/code]
Tags packst.

Gruß
Marco
Thema: Kruskal Alogrithmus
as_string

Antworten: 1
Hits: 500
05.07.2021 14:03 Forum: Praktische Informatik


So wie ich die Aufgabe bis hierhin verstehe, geht es erstmal nicht um einen Graphen an sich, sondern um diesen einen Schritt, dass man zwei disjunkte Mengen zu einer vereinen soll.
Es geht also erstmal nur um die union() Methode.

Gruß
Marco
Thema: Satz Rückwärts ausgeben mit Rekursion
as_string

Antworten: 1
Hits: 577
02.07.2021 13:48 Forum: Praktische Informatik


Hallo!

Idee:
  1. Lese ein Zeichen ein.
  2. Rufe eine Funktion mit diesem Zeichen als Argument auf
  3. In der Funktion: Wenn das Zeichen dem Eingabe-Ende-Zeichen entspricht (also eventuell Zeilenumbruch?), kehre aus der Funktion direkt zurück
  4. Sonst: Lese ein weiteres Zeichen ein
  5. Rufe mit dem neuen Zeichen dieselbe Funktion rekursiv auf
  6. Gebe das Zeichen nach dem Funktionsaufruf aus.


Kannst Du das mal probieren? Wenn was nicht funktioniert: Einfach nochmal schreiben, was Du schon hast.

Gruß
Marco
Thema: Bachelorarbeit - ER-Diagramm für Anwendung zur Rechnungserstellung
as_string

Antworten: 2
Hits: 581
18.06.2021 10:35 Forum: Praktische Informatik


Also so direkt kann ich auch nicht sagen, was falsch ist. Allerdings ist ER-Diagramm auch etwas weit gefasst. Vielleicht will Deine Betreuerin irgendwie eine andere Art der Notation, da gibt es ja so viele unterschiedlich inzwischen, wie Sand am Meer...
Ansonsten: Kann man Deine Betreuerin nicht fragen, ob sie ein Beispiel nennen kann, was es genau ist, das ihr nicht so "gefällt"? Ist es die Representation im Diagram? Hat sie generell ein Problem mit der Datenbank-Struktur bzw. der Normalisierung? Ich meine, manche meinen z. B. dass man ja z. B. Ort und Postleitzahl als als eigene Entität sehen sollte, die dann den Adressen entsprechend zugeordnet ist, also man kann da mit der Normalisierung ja ziemlich übertreiben (finde ich... außer jedoch, man würde für einen Ort noch andere Informationen pflegen wollen, z. B. Latitude/Longitude, Einwohnerzahl oder solche Dinge...).

Ich meine, ich hatte für Datenbanken halt früher auch immer alle Spalten ins ERD geschrieben und die Relationen von den Feldern aus gemacht, also z. B. das Feld für den Foreign-Key in der einen Tabelle verweist auf einen Primary Key von einer anderen Tabelle oder sowas. Das war für mich halt wichtig, um auf der Basis dann in einem Rutsch die Datenbank-Tabellen anlegen zu können. Allerdings ist das nicht unbedingt zwingend Teil eines ERD. Vielleicht will aber Deine Betreuerin so was sehen, keine Ahnung...

Ansonsten kann ich keinen Fehler direkt sehen, allerdings kenne ich auch nicht alle Details. Die Entität "Konfiguration" scheint eine User-Einstellung bzw. ein User-Konto zu sein oder so was? Da hatte ich zuerst etwas Probleme das zu verstehen, aber das mag nur ein der Bezeichnung liegen.

Gruß
Marco
Thema: Mehr Power im Homeoffice
as_string

Antworten: 5
Hits: 1.490
10.06.2021 15:37 Forum: Off-Topic


Vielleicht noch eine Sache, die mir vor Kurzem auch mein Arzt mal empfohlen hat:
Es gibt so eine "Chrono-Diät" von einem Dr. Fauteck und einem Dr. Platzer. Da geht es zwar auch um abnehmen (ja, ich bin übergewichtig und man muss sich schon seine Gedanken machen, wenn einem sein Arzt ein Abnehm-Buch empfiehlt, ich weiß...), allerdings hauptsächlich um den Zusammenhang, wie der Körper welche Nährstoffe verarbeitet und dass es günstig sein sollte, diese zur richtigen Tageszeit aufzunehmen. Besonders dann Abends eher auf Kohlenhydrate zu verzichten (es gibt in die Richtung ja viele Diät-Ansätze).
Ich selbst bin da nicht sicher bei solchen Dingen, aber was ich gemerkt habe: Wenn ich mich mehr an so einen Rhythmus halte, dann schlafe ich abends besser/früher ein und fühle mich am Tag dann auch fitter und werde weniger müde nach dem Mittagessen. Vielleicht hilft das auch bei anderen, tagsüber dann fitter und wacher zu sein, keine Ahnung.

Gruß
Marco
Thema: Mehr Power im Homeoffice
as_string

Antworten: 5
Hits: 1.490
09.06.2021 09:56 Forum: Off-Topic


Ich glaube, wenn man genug Schlaf hätte, könnte man auch mit weniger Kaffee durch den Tag kommen...
Ja, ich kenne die Problematik auch, aber was soll man tun?

Gruß
Marco
Zeige Beiträge 1 bis 15 von 627 Treffern Seiten (42): [1] 2 3 nächste » ... letzte »