myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Frage c# (https://mygully.com/showthread.php?t=2119467)

XxeragonxX 15.09.10 18:42

Frage c#
 
Hi
bin eigentlich ein anfänger in visual C#. mein größtes Projekt war ein Taschenrechner^^

Meine Frage: Ich möchte ein Programm schreiben das mir , z.B bei einem Dreieck die länge AB (Trigonometrie) ausrechnet. Für das Auge will ich jetzt ein festes rechtewinkliges Dreieck einfügen. Wie kann ich das machen? das programm müsste doch theoretisch auf diese Zeichnung zugreifen?? oder gibt es eine möglichkeit das mit visual Studio direkt zu machen?

meine 2 Fragen gibt es eine bessere Speichermethode als den Stack? (hab ich für den Taschenrechner verwendet) das wars erstmal. Natürlich könnt ihr Vörschläge posten.:)

danke schonmal

mfg eragon

urga 15.09.10 18:53

1. z.b. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
2. .net (also auch c#) nimmt dir doch die speicherverwaltung ab.
wie kommst du darauf, daß dein taschenrechner den stack verwendet?

XxeragonxX 15.09.10 18:57

äh lol wo soll ich den die ergebniss speichern wenn jemand z.B 1+1 und dann mal 2 rechnen will?^^

sonst könnte ich doch nur ein ergebnis nach dem anderen rechnen, so kann ich mit dem ergebnis weiter rechnen kleine anmerkung der rechner basiert auf eine unpolnische notation

urga 15.09.10 19:14

hmpf, wenn dir die begriffe speicher allokation, pointer, heap, stack und garbage collection wirklich bekannt wären, würdest du diese frage nicht stellen.
vielleicht klären dich hier andere auf. ansonsten hilft wikipedia weiter.

XxeragonxX 15.09.10 19:24

wow danke ich habe geschrieben das ich keine erfahrung habe und bis jetzt nur mit einem stack gearbeitet habe...

urga 15.09.10 19:30

naja, aber .net hat für dich während der laufzeit
a) stack und heap verwaltet
b) speicher (auf dem heap) bei bedarf alloziert, und die enstprechende addresse (pointer) objekten zugewiesen
c) diesen speicher per garbage collection bei bedarf aufgeräumt

ODER meinst du den datentyp Stack<T> ???
lol, wenn ja: objekte vom typ Stack<T> (und System.Collections.Stack) werden im heap verwaltet ;)
nur um dich zu verwirren :P

wie dem auch sei, Stack<T> für deinen upolnischen taschenrechner ist das mittel der wahl! da gibts nix besseres.

XxeragonxX 15.09.10 19:40

ja ich meine Stack<T>^^

ein Zahlenspeicher wurde mir jedenfalls so erklärt. Ich wollte einfach wissen ob villeicht ein anderer speicher besser für das ist. Da mich push() und get() etwas verwirrt haben. Zu not nehme ich es natürlich wieder.
mit heap kann ich nix anfagen da es wahrscheinlich noch geschätzte 20 Kapitel weiter ist:D

Bin imoment in der 10 Klasse, etwas Zeit um dies zu lernen habe ich dann doch noch

urga 15.09.10 19:55

solange du dich in der "kuschligen ecke" von managed code befindest wirst du mit dem stack/heap vom betriebssystem nie in berührung kommen.
das kommt dann, falls du c, c++ oder sogar mit assembler anfängst.

XxeragonxX 15.09.10 20:05

ja das dauert denke ich noch eine ganze weile:D
hat visual c++ nicht ähnlichkeiten mit C# auser dem fehlenden .net framework?
die variablen sind die selben, das weiß ich aus einer consolen programmieren von c++

urga 15.09.10 20:24

Zitat:

hat visual c++ nicht ähnlichkeiten mit C# auser dem fehlenden .net framework?
visual c++ fehlt das .net framework nicht. alle visual produkte von m$ bedienen sich dessen.

allerdings kannst du in vc++ - im gegesatz zu c# oder vb - auch "unmanaged code" erzeugen.

germgerm 17.09.10 21:29

Zitat:

Zitat von urga (Beitrag 21267267)
visual c++ fehlt das .net framework nicht. alle visual produkte von m$ bedienen sich dessen.

allerdings kannst du in vc++ - im gegesatz zu c# oder vb - auch "unmanaged code" erzeugen.

das visual heißt nicht, dass es sich dabei um .net handelt. visual 6.0 c++ weiss zb nix davon. ab 7.0 war das framework dabei.

kramido 19.09.10 09:11

Ich verstehe dein Problem nicht ganz.

Du möchtest immer von EINEM Rechtwinkligen Dreieck die Länge bestimmen. Hierfür benötigst du immer die Koordinaten von 3 Eckpunkten bzw. die Seitenlängen oder was auch ein du für einen Kongruenzsatz verwendest, um das Dreieck zu konstriueren.

Wieso ändert sich somit dein Speicherbedarf?
Du hast maximal 3 Winkel und 3 Längen sowie ein Ergebnis.

Dynamischen Speicher verwendest du nur, wenn zum Zeitpunkt der Programmerstellung unbekannt ist, wieviel Speicher du zur Laufzeit brauchst. Du kennst aber den benötigten Speicher oder täusche ich mich?!


Zitat:

äh lol wo soll ich den die ergebniss speichern wenn jemand z.B 1+1 und dann mal 2 rechnen will?^^
Wie wäre es mit drei Variablen: Ergebnis, Operand, Eingabe:
Ergebnis = f(Ergebnis, Operand, Eingabe), (Operand ist die Art der Rechenoperation)

Somit kannst du solche Spielereien wie Punkt vor Strichrechnung zwar nicht berücksichtigen, aber es gibt immer einen Speicher für das Ergebnis der letzten Rechenoperation.

Grüße,
kramido.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.