Thread: [C#] probleempje ?
-
08-01-2012, 19:01 #1Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
[C#] probleempje ?
Iemand die mij verder kan helpen ?
Het is de bedoeling van in de ene void een getal in te lezen en via een andere void dat getal om te keren .
Ik zit momenteel al zo , redelijk dicht denk'k (?) , iemand met een idee ?
Bij het aangeduide gedeelte zit ik met een fout , iemand raad mee ?
Bedankt !Code:private void GGD() { Console.Title = "Grootste gemene deler "; Console.Write("Geef een van nul verschillend getal in a.u.b. ..."); int GGDGetal = int.Parse(Console.ReadLine()); Console.Write("De grootste gemene deler van {0} en zijn cijferomkering {1} is {2}", GGDGetal, CijferOmkering(GGDGetal)); } public void CijferOmkering(int GGDGetal) { GGDGetal = int.Parse(Console.ReadLine()); int LaatsteCijfer; while (GGDGetal > 0) { LaatsteCijfer = GGDGetal % 10; Console.Write(LaatsteCijfer); GGDGetal = (GGDGetal - LaatsteCijfer) / 10; }Last edited by Gprb_; 08-01-2012 at 19:10.
why the hell you use imageshack
no votes
-
-
08-01-2012, 19:13 #2Member
- Registered
- 23/11/03
- Location
- Landeurp
- Posts
- 1,791
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 10/17
Omdat CijferOmkering(GGDGetal) een void is en die kun je nogal moeilijk weergeven. Je moet iets teruggeven uit die functie he vriend.
no votes
-
08-01-2012, 19:16 #3Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
no votes
-
08-01-2012, 19:26 #4Member
- Registered
- 18/07/03
- Location
- Limburg
- Posts
- 3,733
- iTrader
- 27 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/13
Volgens mij is het de bedoeling da ge als volgt tewerk gaat:
-declareer uw integer in main-scope
-geef dan een REFERENTIE door naar beide functies; in de ene leest ge de geheugenplaats voor die referentie in, in de tweede past ge de inhoud wat aan
-die aanpassingen zijn dan op main-scope evengoed "zichtbaar", en dan print ge ze maar uit
heel het doel van "void" functies te gebruiken volgens de opgave is immers dat ge gebruik maakt van referenties (pointers)!no votes
-
08-01-2012, 19:32 #5Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
no votes
-
08-01-2012, 19:59 #6Member
- Registered
- 18/07/03
- Location
- Limburg
- Posts
- 3,733
- iTrader
- 27 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/13
Ik gaf u alle conceptuele ingrediënten om der zelf aan te beginnen. Het zijn exact zo'n dingen zelf uitzoeken en zelf tot inzicht komen wa u een goede programmeur gaat maken
Ik heb in principe al teveel gezegd
no votes
-
08-01-2012, 20:23 #7Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
no votes
-
08-01-2012, 20:28 #8Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
Ik dacht het wel zo ging lukken , door een aparte class te maken en dan te linken . Maar bij me menukeuze loopt het programma nog niet , nog even zoeken dan , maar volgens mij klopt het nu wel een beetje zeker ?
Er staat nog andere code boven hoor.
GGD Method
Cijferomkering classCode:private void GGD() { Cijferomkering CO = new Cijferomkering(); Console.Title = "Grootste gemene deler "; Console.Write("Geef een van nul verschillend getal in a.u.b. ..."); int GGDGetal = int.Parse(Console.ReadLine()); Console.Write("De grootste gemene deler van {0} en zijn cijferomkering {1} is {2}", GGDGetal,CO.CijferOmkering(GGDGetal)); }
Code:namespace VbExamen { class Cijferomkering { public int CijferOmkering(int GGDGetal) { int LaatsteCijfer=0; while (GGDGetal > 0) { LaatsteCijfer = GGDGetal % 10; Console.Write(LaatsteCijfer); GGDGetal = (GGDGetal - LaatsteCijfer) / 10; } return LaatsteCijfer; } } }
Maar krijg nu nog een Error 2 'CO' is a 'variable' but is used like a 'method'
Last edited by Gprb_; 08-01-2012 at 20:41. Reason: Misschien gevonden
why the hell you use imageshack
no votes
-
08-01-2012, 20:40 #9Approved 9-lifer
- Registered
- 23/05/03
- Location
- Stavanger
- Posts
- 1,837
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/4
Een duidelijke error boodschap dan dat kunt ge niet krijgen he...
Dit is de lijn waar ge CO declareert en ineens ook een waarde aan toekent:
Cijferomkering CO = new Cijferomkering();
Wat is de inhoud van CO? wat type is dat?
Het type is "Cijferomkering", een Klasse. De inhoud van CO is een instantie van die klasse.
Klassen zelf kunnen niet uitgevoerd worden als een functie, maar ze hebben wel methoden die ge kunt uitvoeren.
Het lijkt mij precies alsof ge geen goed begin hebt gehad in programmeren, precies alsof er stukken ontbreken.
Bvb, die dingen dat ge omschrijft als voids.. dat zijn functies met als return type void (die returnen dus niets).
Dan instanties proberen te gebruiken als functies..
'T is precies alsof ge random wat aant rondspringen zijt in een boek.
Pak eens een programmeer boek en lees dat van begin tot einde zonder te veel sprongen te maken.
no votes
-
08-01-2012, 20:49 #10Approved 9-lifer
- Registered
- 06/08/09
- Location
- Brugge
- Posts
- 396
- iTrader
- 6 (88%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
Ik heb daar een duidelijke reden voor .
Ik ben afgestudeerd in informaticabeheer , met een leerkracht die we 12 à 15uur per week hadden. Zie je hem al komen ? Die leerkracht ziet ook liever eens iemand anders en ipv dat we zijn 'lievelingetjes' werden , zag hij ons liever niet.
Naar behoren van les geven , zat hij liever te surfen op het net en youtube filmpjes te bekijken. We 'programmeerden' in vb.net bijna altijd op ons zelf , want zelf kon hij er ook maar amper iets van.
Met momenten kon hij zelf geen openstaande programma's in de taakbalk vinden (!?)
Met als gevolg dat we maar van alles kleine beetjes gezien hebben , als het hem uitkwam gaf hij ons bv sorteren(50 min waarvan 10min echte uitleg , die dan nog op niets trok , de les daarna array's , dan weer sorteren en daarna begon hij over iets anders .
Nuja dit jaar in de hogeschool begonnen aan toegepaste informatica en ik probeer mee te geraken met de kleine beetjes die ik snap en ken van op forums of van in zijn 'lessen'. De lessen in de hogeschool begonnen redelijk snel voor sommige onder ons ( programmeren in c# ) en dat was al ietsje aanpassen want wij kwamen van vb.
Ik blijf zoeken en voort doen tot ik slaag in TI , want ik wil dat diploma
Groetenwhy the hell you use imageshack
no votes
-
08-01-2012, 21:25 #11Approved 9-lifer
- Registered
- 23/05/03
- Location
- Stavanger
- Posts
- 1,837
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/4
Daarom dat ik een boek aanraad, dan hebt ge een goede scructuur dat ge kunt volgen.
Tzijn echt basisdingen die ge nog niet helemaal kent.
Als ge zelfs de eerset paar hoofdstukken leest van een basis boek gaan er al veel van de antwoorden van deze therad duidelijker zijn.
Ik denk dan vooral aan de comment van forloRn_ en u vraag die daarop volgde.
Er kan u hier na veel uitleggen een oplossing gegeven worden op de vraag die ge had in u beginpost maar ik denk dat ge meer nut gaat hebben aan u basiskennis bij te vullen.
Ik ben u niet aant uitlachen of ik weet ni wat he, dit is echt het geen waarvan ik denk dat ge het meeste door geholpen gaat worden int algemeen, niet enkel voor deze specifieke vraag.
no votes
-
08-01-2012, 21:26 #12Approved 9-lifer
- Registered
- 08/01/05
- Location
- Turnhout
- Posts
- 1,182
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 9/9
Pffff, na een semester C# nog met zo'n vragen afkomen?
Probeer in een methode nooit iets te printen of iets dergelijke. Probeer te werken met een return statement.
Hoe ik het zou doen is een methode aanmaken bv:
In deze methode gaan we het getal omdraaien. Dit doen kan je doen door eerst het getal om te zetten naar een string. Als het in een string staat kun je makkelijk via substring de waarde omkeren via een for-loop.Code:private static int DraaiOm(int g) { }
Het enige wat je nu nog moet doen is het omgedraaide getal returnen als een integer. Dit doe je dan weer door de string te casten naar een int.Code:string getalString = g.ToString(); string getalOmgedraaid =""; for (int i = getalString.Length - 1; i >= 0; i--) { getalOmgedraaid += getalString.Substring(i,1); }
In je main blok kan je nu die methode aanroepen en de returnwaarde in een integer stoppen..Code:return int.Parse(getalOmgedraaid);
Code:int omgedraaidGetal = DraaiOm(getal); Console.WriteLine("Getal {0} omgedraaid is: {1}", getal, omgedraaidGetal);-no votes
-
09-01-2012, 16:18 #13Member
- Registered
- 18/07/03
- Location
- Limburg
- Posts
- 3,733
- iTrader
- 27 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 2/13
no votes
-
09-01-2012, 16:47 #14Member
- Registered
- 06/11/02
- Location
- Waarmaarde
- Posts
- 8,996
- iTrader
- 71 (100%)
- Mentioned
- 7 Post(s)
- Reputation
- 1/415
zoek es op:
out variableno votes

