Zum Inhalt springen

Semesteraufgabe Threads Picturebox


anu221208

Empfohlene Beiträge

Hallo,

Es geht um folgendes ich habe in diesem eine Semesteraufgabe aufbekommen ich habe mich für die Themen "multithreading" und "Timer" entschieden.

Aufgabenstellung: ich soll beide Themen in einem kleinen Progamm darstellen und eine entsprechende Ausarbeitung erstelle.

Nun bin ich auf einige Probleme gestossen.

Programmiert soll das ganze in C++ und in Visual Studio 2008

mein Gedanke:

- mittels der tick Methode des timers die aktuelle systemzeit und datum im label darstellen.

- 2ter timer (der genauer ist) zeitmessung der threads.

- 2 threads starten nach button click

- bubblesort und quicksort.

also realisiert habe ich bisher folgendes.

2 pictureboxen 200px x 200px

2 arrays mit je 200 zufallszahlen

auf button klick werden beide felder sortiert und dann die picturebox neu gezeichnet

ich habe meine sortieralgorithem,zufallszahlen generation stehen in einer von mir erstellten cpp in einer eigenen klasse.

jetzt kommen meine 2 probleme.

1. will ich natürlich mehr als 200 zufallszahlen erstellen und auch darstellen.

das erstellen ist da eher weniger das problem mehr das darstellen. aus visual basic zeiten bin ich gewohnt das mit der size() methode der picture box zu machen. das funktioniert aber hier nicht da er dann die picturebox größer macht also zb 20000px x 200000px was natürlich nicht sein soll ^^. ich will ja nur den wertebereich auf der x und y achse einstellen so das ich da mehr als 200zahlen darstellen kann.

2. problem: damit man nicht nur ein bild vor dem sortieren und danach hat würde ich gerne jeden einzelschritt neu zeichnen, sprich nach jedem tauschvorgang. da man aber bei visual studio 2008 aus seiner eigenen cpp bzw klasse nicht auf die form1.h zugreiffen kann, kann ich auch nicht auf die methoden bzw die elemente zb die picturebox zugreiffen und somit das neuzeichnen erzwingen. meine frage ist kann ich an meine sortieralgos einen pointer auf meine picturebox übergeben um dann in den algos die methode neuzeichnen aufzurufen ? oder gibt es da andere schöne möglichkeiten ?

und ganz allgemein zu threads: bisher werden meine sortieralgos ja nacheinander ausgeführt. natürlich sollen die in threads ausgelaggert werden wie kann ich das programmiertechnisch realisieren ich hab mich zwar schon eingelesen aber meine leküre verstehe ich nicht so richtig

ich hoffe ich habe alles genau genug beschrieben und freue mich auf eure hilfe xD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was hat die Visualisierung verschiedener Sortieralgorithmen mit Multithreading und Timern zu tun?

Ein Timer ist nicht genau genug, wenn es Dir um die Laufzeit diverser Algorithmen geht, außerdem beachtest Du dabei dann nicht, dass ein Thread auch "schlafen kann", Deine Zeit läuft aber weiter, wenn der Thread untätig ist

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich weiß das ein timer zu ungenau ist aber da gibt es ja noch genauere also so im nanosekunden bereich.

Du kannst aber keine Aussage über die wirkliche Zeit Deines Algorithmus treffen, wenn der OS z.B. aus irgendwelchen Gründen den Thread pausiert, läuft Dein Timer weiter, der Thread arbeitet aber nicht, d.h. die spätere Zeitangabe zur wirklichen Rechenzeit Deines Algorithmus stimmt nicht

die visualisierung mehrerer sortieralgorithmen soll nur ein einfaches beispiel sein damit man einfach sieht das beide algos (threads) gleichzeitig ausgeführt werden.

Dafür kannst Du auch zwei Programme starten und diese parallel arbeiten lassen. Ist letztendlich das gleiche. Auch wenn ich hier via MPI die Algorithmen auf 2 CPUs laufen lassen, wäre das Ergebnis das gleiche. Außerdem hast Du bei so einer Aufgabe nichts über Mutex oder Dead-Locks ausgesagt.

Sorry, aber für eine Semesterarbeit über Multithreading würde ich mehr erwarten

Link zu diesem Kommentar
Auf anderen Seiten teilen

mh ok das timer problem verstehe ich ^^

ja der dozent hat mir das so beschrieben das er das gerne so hätte, deswegen versuche ich das jetzt umzusetzten.

mit 'semesteraufgabe' habe ich mich wahrscheinlich etwas falsch ausgedrückt. ich meine damit das ich das ganze semester zeit habe. dem dozenten geht es aber weniger um das programmiertechnische (das soll nur als kleines beispiel zur visualisierung dienen) mehr um eine präsentation und eine schriftliche ausarbeitung über das thema ...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...