Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[C#] Listboxes vergelijken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, ik wil graag een windows application in c# schrijven waarbij ik 3 listboxes heb: de eerste bevat 5 random getallen (deze voer je zelf in, dus niet random maar goed), de tweede ook. De derde moet deze getallen samenvoegen en sorteren van klein naar groot. Ik heb geen idee hoe ik dit in C# doe. :'( Strings kan ik niet met strings vergelijken en ik loop een beetje vast.

Ik vraag nu niet om mij een code voor te schotelen, maar ik ben wel benieuwd naar het vergelijken van inhoud van de textboxes. 't Lijkt me nu echt onmogelijk namelijk. Alvast bedankt!

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 17-11 00:33

HMS

Probeer de strings naar ints te parsen

edit: Daarnaast is dit gewoon een huiswerk opdracht lijkt me, dus wat staat er in je lesmateriaal?

[ Voor 57% gewijzigd door HMS op 02-04-2013 23:08 ]


  • GBCHEATER
  • Registratie: Juni 2003
  • Laatst online: 17-09-2024
Hoezo kan je geen strings vergelijken?

In een for loop de getallen optellen en daarna in een list stoppen -> sorteren via the .Sort() van de list. Daarna toevoegen in de 3e listbox.

Verwijderd

Topicstarter
HMS schreef op dinsdag 02 april 2013 @ 23:06:
Probeer de strings naar ints te parsen

edit: Daarnaast is dit gewoon een huiswerk opdracht lijkt me, dus wat staat er in je lesmateriaal?
Dat klopt. Ik heb deze psd methode als voorbeeld gekregen:

Afbeeldingslocatie: http://i.imgur.com/e0vhaJs.png

Met verder deze uitleg:
lst3.Items.AddRange(lst1.Items);
lst3.Items.AddRange(lst2.Items);
bubblesort(lst3);


if (string.Compare(lst.Items[teller].ToString(), lst.Items[teller+1].ToString())==1)


• levert de Compare-methode de waarde -1 op, dan is de eerste parameter kleiner dan de tweede.
• levert de Compare-methode de waarde 0 op, dan is de eerste parameter gelijk aan de tweede.
• levert de Compare-methode de waarde 1 op, dan is de eerste parameter groter dan de tweede.
Ik zal het nu proberen met integers.

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 17-11 00:33

HMS

offtopic:
Mijn god, wat is dat ook voor sorteeralgoritme. O(n^2) ? Bubblesort :'(


Ah, dan zou je inderdaad ook Compare() kunnen gebruiken. Wat je dus kan gebruiken om de 'groter dan' operator (>) uit het plaatje te maken.

Verwijderd

Don't fuck with bubble sort. Ik heb wel eens een algoritme 3x zo snel gemaakt door stl sort te vervangen door bubblesort. Deze presteerde best-cast veel beter. En de data was nu eenmaal vaak bijna gesorteerd.


En ik ken geen C#, maar in C++ gebruik je altijd de < operator om te sorteren.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Is het echt de bedoeling van de opdracht dat je zelf een sorteer algorithme maakt? Of mag je ook gewoon gebruik maken van het framework om te sorteren?

Anders kan je natuurlijk gewoon gebruik maken van de standaard sorteer functionaliteit.

Als het de bedoeling is om zelf een sorteer algorithme te implementeren ( en het waarschijnlijk over een kleine set data gaat ) zou ik eens naar Insertion Sort kijken aangezien je toch al twee lijsten samen moet voegen ;)

[ Voor 31% gewijzigd door Woy op 03-04-2013 09:05 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Woy schreef op woensdag 03 april 2013 @ 08:57:
Is het echt de bedoeling van de opdracht dat je zelf een sorteer algorithme maakt?
Aangezien het hoogstwaarschijnlijk een huiswerkopdracht is, is het waarschijnlijk niet toegestaan de ingebouwde sort methoden te gebruiken. Lijkt me ook nogal logisch :)

https://niels.nu


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Hydra schreef op woensdag 03 april 2013 @ 13:28:
[...]


Aangezien het hoogstwaarschijnlijk een huiswerkopdracht is, is het waarschijnlijk niet toegestaan de ingebouwde sort methoden te gebruiken. Lijkt me ook nogal logisch :)
Niet alle huiswerkopdrachten gaan over het leren sorteren natuurlijk ;)

[ Voor 19% gewijzigd door Woy op 03-04-2013 13:34 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Woy schreef op woensdag 03 april 2013 @ 13:32:
[...]

Niet alle huiswerkopdrachten gaan over het leren sorteren natuurlijk ;)
Nee, maar ik weet nog dat onze docenten nogal allergisch waren voor het gebruik van alles behalve arrays en eigen gemaakte sorteer / insert / etc. methodes. Na een jaar heb je ongeveer het hele collections framework van Java nagebouwd :P

https://niels.nu


Verwijderd

Hydra schreef op woensdag 03 april 2013 @ 13:41:
[...]


Nee, maar ik weet nog dat onze docenten nogal allergisch waren voor het gebruik van alles behalve arrays en eigen gemaakte sorteer / insert / etc. methodes. Na een jaar heb je ongeveer het hele collections framework van Java nagebouwd :P
Dat klinkt herkenbaar.
Wij moesten ook al onze sort methods zelf sorteren. Daarnaast waren ArrayLists niet toegestaan en moest alles met Arrays :)

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Verwijderd schreef op woensdag 03 april 2013 @ 13:45:
Dat klinkt herkenbaar.
Wij moesten ook al onze sort methods zelf sorteren. Daarnaast waren ArrayLists niet toegestaan en moest alles met Arrays :)
Ach, wel leerzaam. Je weet in ieder geval dat sorts e.d. dure operaties zijn. I.t.t. het meeste spul dat tegenwoordig afstudeert.

https://niels.nu


  • Candanz
  • Registratie: Februari 2013
  • Laatst online: 19-08-2024

Candanz

Geflipt

Heej die opdracht ken ik nog. Heel toevallig de C# cursus voor HBO van Jan de Deurwaarde ofzo? Bij mij op school 3 sorts moeten doen, bubble, quick en doubly linked lists, vervolgens huffman zipper maken. Was best leuk.

Maar goed

Je hebt listBox1.Items en listBox2.Items, daarin zitten je items.
Vervolgens stop je in listBox3 de items uit listBox1 en listBox2

Vervolgens, een while loop die draait zolang een flag false is,

nu zet je alvast de flag op true, omdat je er van uit gaat dat hij gesorteerd is. Dat ga je nu checken

Door middel van een for loopje door de items heen lopen, is waarde in listbox3.items index i groter dan listBox3.Items index i + 1, dan is hij niet gesorteerd, dus de flag op false, zet een waarde in een temp variable, vervolgens vervang je de waarde die je net in je temp heb gezet met de nieuwe, en vervang je de nieuwe met de temp.

Strings kun je met strings vergelijken, plus er is ook nog zoiets als int.Parse(string ingeven).

[ Voor 63% gewijzigd door Candanz op 03-04-2013 21:42 ]


Verwijderd

Topicstarter
Woy schreef op woensdag 03 april 2013 @ 08:57:
Is het echt de bedoeling van de opdracht dat je zelf een sorteer algorithme maakt? Of mag je ook gewoon gebruik maken van het framework om te sorteren?

Anders kan je natuurlijk gewoon gebruik maken van de standaard sorteer functionaliteit.

Als het de bedoeling is om zelf een sorteer algorithme te implementeren ( en het waarschijnlijk over een kleine set data gaat ) zou ik eens naar Insertion Sort kijken aangezien je toch al twee lijsten samen moet voegen ;)
Nee, ik hoef geen eigen algoritme te maken. Het enige wat ik hoef te doen is zorgen dat het correct werkt en dat ik kan uitleggen hoe het te werk gaat. Ik heb het ondertussen al werkend gekregen door int.parse. Bedankt voor de hulp allemaal :P

  • epic007
  • Registratie: Februari 2004
  • Laatst online: 17-11 15:31
Kan je niet zoiets doen? :P

C#:
1
2
3
listBox3.Items.AddRange(
    listBox1.Items.Cast<object>().Select(obj => int.Parse(obj.ToString())).Concat(listBox2.Items.Cast<object>().Select(obj => int.Parse(obj.ToString()))).OrderBy(i => i).Select<int, object>(i => i.ToString()).ToArray()
);

Verwijderd

epic007 schreef op vrijdag 05 april 2013 @ 11:16:
Kan je niet zoiets doen? :P

C#:
1
2
3
listBox3.Items.AddRange(
    listBox1.Items.Cast<object>().Select(obj => int.Parse(obj.ToString())).Concat(listBox2.Items.Cast<object>().Select(obj => int.Parse(obj.ToString()))).OrderBy(i => i).Select<int, object>(i => i.ToString()).ToArray()
);
wat een brok code om 2 listboxen samen te voegen 8)7

En neen dat werkt niet, de derde listbox past zijn eigen sortering toe.
listbox.Items.SortDescriptions is wat je nodighebt ;)
Pagina: 1