![]() |
![]() |
|||||
![]() |
![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
|||
|
![]() |
Dit topic is 40 pagina's lang: 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 32 33 34 35 36 37 38 39 40 |
||||
Auteur: |
|
|
Das toch super simpel gast. MSN ![]() ![]() |
|
Argh N00b! ![]() |
|
KOSOVO JE SRBIJA! SVETA SRPSKA ZEMLJA ! ![]() |
|
![]() ![]() ![]() ![]() ![]() |
|
Japanners zijn gestoord ![]() ![]() |
|
quote: Hahaha, wat een held ![]() Dat stukje dat ie "heifht" voor "height" moet vervangen, ghehe. Deze account is precies 8 jaar gebruikt, om precies 20.000 posts te maken en (uiteindelijk) precies 1 ban te krijgen. ![]() |
|
Godsamme, ik blijf mijn hoofd breken over het volgende: In een C++ applicatie moet er middels een functie een element toegevoegd worden aan een gesorteerde lijst. Element stelt weinig voor: het is een klasse bestaande uit enkel een int-waarde en een pointer naar het volgende Element, ook van het type Element. De lijst eindigt zodra de pointer naar een leeg element verwijst (de NULL-pointer dus) en lijst is gesoteerd op de int-waardes. So far so good maar ik krijg het dus niet voor elkaar er een nieuw element ergens halverwege aan de lijst toe te voegen. Ik heb onderstaande functie inmiddels praktisch werkend echter in de laatste else-sectie gaat het mis: edit: er zijn ook een paar hulpfuncties zoals: - getVolgende(): returned pointer naar volgende element - getWaarde(): geeft int-waarde element terug - setVolgende(): volgende van <Element> = e maar die werken allemaal naar behoren void TformMain::voegToeGesorteerd(int w, Element * &pe) Het zal vast wel iets heel stoms zijn ![]() Iemand (Zenial? ![]() [Dit bericht is gewijzigd door Judge M. op 28-06-2007 12:40] ![]() |
|
quote: ![]() ![]() ![]() ![]() ![]() Sorry, zodra ik uitgelachen ben zal ik eens naar je functie kijken Zenial ![]() |
|
Wat doet je voegToe() functie? Zenial ![]() |
|
Verder gebeuren er een hooooop rare dingen in je functie Wat doet bijvoorbeeld "tempElement2->setVolgende(tempElement->getVolgende());"?? Het invoegen van een element op de juiste plek in een gelinkte lijst is een eenvoudige operatie, en kan heel wat korter dan dat hier gebeurt. Zenial ![]() |
|
quote: Waarom is dat grappig? ![]() |
|
quote: AddDezeItemAanThatListToe() vind je zeker ook normaal? ![]() Zenial ![]() |
|
quote:Die voegt een (nieuw) element toe achteraan de lijst. Dat is oersimpel en die functie heb ik al naar behoren werkend gekregen. quote:Die regel die je nu aanhaalt is dus 1 van de dingen waar ik niet zeker van ben. Ik ben er dus niet uit hoe ik dat het beste voor elkaar kan krijgen. Ik heb dus wat tijdelijke variabelen gemaakt en die probeer ik dus uit elkaar te trekken, nieuw element toe te voegen en dan weer aan elkaar te plakken.. of zoiets ![]() O ja, en die namen heb ik ook niet zelf bedacht ![]() [Dit bericht is gewijzigd door Judge M. op 28-06-2007 13:17] ![]() |
|
Dit is toch het schoolvoorbeeld van een enkel gelinkte lijst of heb ik het nu mis? (Wees blij dat je geen dubbel gelinkte lijst hoeft te maken... ![]() In een lusje het element opzoeken waar de nieuwe ge-insert moet worden. (Behalve als de lijst nog leeg was, dan ben je helemaal snel klaar.) Vanuit het nieuwe element een pointer naar dit element in de lijst (behalve als het nieuwe element helemaal achteraan de lijst komt). En vanuit het vorige element in de lijst (als er meer dan 1 element in de lijst zat) de pointer in plaats van naar het element in de lijst waar hij naar wees, naar het nieuwe element zetten. (Tijdens het zoeken in de lijst zul je waarschijnlijk even bij moeten houden wat het huidige element èn wat het vorige element is.) Dan ben je er toch? Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you! ![]() |
|
quote: Ghehehe als ik opdrachten moest nakijken en studenten konden niet verklaren wat een programmaregel deed of waarom ie er stond, dan begon ik er ernstig over te twijfelen of ze hun opdracht wel zelf gemaakt hadden. Maargoed, laten we er eens doorheen lopen: - Eerste if: uitzonderings situatie voor een lege lijst, prima. In plaats van de else kan je gewoon een return doen, scheelt weer een indentatie. - Tweede if: uitzonderings situatie voor het geval je nieuwe element aan het begin van de lijst moet worden toegevoegd. Dit is overbodig, maargoed. - Je maakt een nieuw element aan, prima. Noemt hem tempElement2, vreselijk. Geef het eens een fatsoenlijke naam. - Vervolgens voeg je alle elementen uit de oorspronkelijke lijst toe aan de lijst die begint met je nieuwe element. Waarom??? Je hoeft alleen te zorgen dat de 'volgende' pointer van je nieuwe element naar het begin van je bestaande lijst wijst. Ik neem aan dat er in je "voegToe" functie ook een mooie "new" commando staat, terwijl er nergens een "delete" commando voorkomt. In andere woorden je creert memory leaks door de complete lijst te kopieren naar een nieuwe lijst en je oorspronkelijke lijst blijft zonder een pointer ernaartoe in het geheugen staan. - Je tweede else, hier voeg je een element ergens in je lijst toe, prima - Met de while zoek je de goede plek om hem in te voegen, ook prima - Dan doe je dit: "tempElement2->setVolgende(tempElement->getVolgende());" Niet alleen is dit onbegrijpbaar vanwege de nikszeggende namen die je gebruikt, het is ook nog eens erg fout omdat je hier je oorspronkelijke lijst aan het aanpassen bent terwijl je alleen maar de correctie postitie in de lijst moet zoeken. Even vertalen: Element *tempElement = pe : tempElement is een pointer naar het begin van je lijst. Element *tempElement2 = tempElement : tempElement2 is ook een pointer naar het begin van je lijst Vervolgens ga je in de 'while' lus de 'volgende' eigenschap van tempElement2 telkens weer setten naar de 'volgende' eigenschap van tempElement, waar tempElement over de lijst heen loopt maar tempElement2 naar het begin van de lijst blijft wijzen. Effectief ben je dus je lijst aan het leeggooien. - Dan voeg je je nieuwe element in de lijst toe, prima initiatief, maar tempElement2 wijst helaas niet naar de goede plek. - Vervolgens ga je alle komende waardes uit je lijst nog even wissen. Ik zou zeggen, wis de hele functie en probeer het nog eens ![]() Zenial ![]() |
|
quote:Ja alleen kreeg ik dat niet vertaald naar code ![]() ![]() |
|
Zeg judge laat je opnieuw geprogrammeerde functie eens zien. Zoveel tijd krijg je niet voor de opdracht ![]() Zenial ![]() |
|
Lijsten zijn simpel en een tip, ga eens google'n. Je hoeft het wiel niet 2 keer uit te vinden. Als je het toch zelf wilt doen, dan moet je eerst eens op papier hebben welke uitzonderingen er zijn mbt het invoegen van een item in een lijst. Vervolgens dat vertalen, dat maakt het al een stuk makkelijker "This one is older than shit, heavier than time!" ![]() |
|
of je doet een #include <list> ![]() Zenial ![]() |
|
quote: Even zo'n enkele (of dubbele) lijst opnieuw uitvinden duurt toch niet veel langer dan het typen van bovenstaande regel? ![]() Bij het practicum Programmeren (1 of 2, dat weet ik uit mijn hoofd ff niet meer, is alweer 10 jaar geleden) toentertijd was het een paar minuten werk in ieder geval. Dat was dan Modula-2, maar het idee is hetzelfde. Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you! ![]() |
|
Wat is het verschil tussen: <script language="JavaScript"> <jsp:include page="Javascript_jsfunctions.js"> <jsp:param name="bla" value="bla"></jsp:param> </jsp:include> </script> & <script language="JavaScript" src="/Javascript/_js/functions.js"> </script> ? Die eerste doet het prima, die tweede geeft een error (Object wordt verwacht). Zie ik iets heel stoms over het hoofd? In een PHP-bestand deed die tweede het wel, by the way. Edit: in die eerste staan wel slashes, maar die worden automatisch weggehaald. [Dit bericht is gewijzigd door WhiteRider op 02-07-2007 11:47] ![]() |
|
quote:dat zal met deze te maken hebben: <jsp:param name="bla" value="bla"></jsp:param> Werkt het zo niet: <script language="JavaScript"> var bla = "bla"; </script> <script language="JavaScript" src="/Javascript/_js/functions.js"> </script> ? edithoer: ik prefereer zelf deze notatie: <script type="text/javascript"></script> [Dit bericht is gewijzigd door Judge M. op 02-07-2007 11:50] ![]() |
|
quote: Nee, dat met var heeft met de include-method van JSP te maken. Je moet er param-attributen bij hebben, maar die hebben vooral bij de forward-method een functie, bij include niet echt. Hij geeft echter een missing-attribute-error als je ze weg laat. Dit staat ook in m'n code: <jsp:include page="header.jsp"> <jsp:param name="header" value="header" /></jsp:param> </jsp:include> Die params doen niks, maar moeten er wel bij. Maar die eerste werkt juist wel, maar de tweede (gangbare) manier niet. [Dit bericht is gewijzigd door WhiteRider op 02-07-2007 11:51] ![]() |
|
Van JSP ben ik niet geheel (lees: geheel niet) op de hoogte maar wat ik hieruit opmaak is dat je zaken serverside (met een JSP-script) wilt afhandelen en een deel client-side (met javascript). Leg eens uit. ![]() |
![]() |
Dit topic is 40 pagina's lang: 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 32 33 34 35 36 37 38 39 40 |
![]() |
Index / Algemeen | ![]() |
![]() |
![]() |
![]() |