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

Eerste homebrew programma

Pagina: 1
Acties:
  • 1.950 views

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Als het goed gaat ben ik binnen een maand afgestudeerd uit het middelbaar onderwijs (A2 diploma, België).
Nu wil ik volgend jaar starten aan een bachelor opleiding ict-consultant (HBO in Nederland denk ik).
Om me daarop voor te bereiden ben ik begonnen met wat simpel programmeerwerk.
Ik heb reeds wat kennis opgedaan met het programmeren van een arduino (leunt aan bij c dacht ik).
Ondertussen ben ik al goed weg met variabelen, integers, if else,....

Maar nu wil ik graag zelf eens m'n eerste homebrew programmatje maken, niks moeilijks maar leerzaam.
Het idee is om een brandstofcalculator te maken waarvan de kosten per persoon worden uitgerekend.
Dit is wat ik heb in kladwerk:

in vullen door gebruiker:
variabel 1: gemiddeld verbruik auto (l/100km)
variabel 2: prijs brandstof
variabel 3: te rijden / gereden km's
variabel 4: aantal personen

tussen uitkomst:
variabel 5: prijs/100km
variabel 6: prijs/km
variabel 7: totaal bedrag
variabel 8: prijs / persoon

formule:

variabel 1 x variabel 2 = variabel 5
variabel 5 / 100 = variabel 6
variabel 6 x variabel 3 = variabel 7
variabel 7 : variabel 4 = variabel 8

Het resultaat: prijs / persoon

De beredenering zit volgens mij wel goed, maar ik vraag me af hoe ik dit nu het best aanpak op vlak van programmeertaal. Ik weet dat in de opleiding dat ik wil volgen het eerste jaar de nadruk ligt op c sharp.
Is het dan de beste keuze om het in c# te ontwikkelen of is visual basics beter?
Zelf weet ik niet echt direct het grote verschil tussen de twee vandaar mijn vraag.

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 23:10
Een basaal dingetje als dit is in zoveel talen wel te bouwen. Je zou bijvoorbeeld kunnen beginnen met een Excel sheetje dat precies dit doet, al referentiekader.
Daarna kun je in een taal als inderdaad C#, VB of Java (zijn een hoop opleidingen ook fan van!) hetzelfde doen. Gezien de beperkte omvang van dit programma zou je zelfs meerdere talen kunnen proberen.

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Ben aan de slag gegaan met c#, tot aan het design loopt alles goed.
Nu alleen even wat dingen te weten komen over het opslaan van invoer in een variabele.
Heeft iemand een idee waar een goede cursus c# te vinden is, of iemand die zelf wat tijd heeft voor wat uitleg te geven?

  • ShitHappens
  • Registratie: Juli 2008
  • Laatst online: 23:10
Er zijn genoeg tutorials online te vinden, of anders met een boekje zoals http://bookboon.com/nl/c-...-and-the-c-language-ebook

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Geef wel je variabelen wat duidelijkere namen. Nu kan je niet begrijpen wat je formule doet.

Neem zoiets:
litersPer100km, costsPerLiter, distanceInkm, persons, costsPer100km, costsPerkm, costsForTrip, costsForTripPerPerson

edit:
Voor C#: Lees met Console.Readline regel van console en parse die daarna met int.Parse of double.Parse

[ Voor 20% gewijzigd door Daos op 02-05-2014 21:19 ]


  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Daos schreef op vrijdag 02 mei 2014 @ 21:15:
Geef wel je variabelen wat duidelijkere namen. Nu kan je niet begrijpen wat je formule doet.

Neem zoiets:
litersPer100km, costsPerLiter, distanceInkm, persons, costsPer100km, costsPerkm, costsForTrip, costsForTripPerPerson

edit:
Voor C#: Lees met Console.Readline regel van console en parse die daarna met int.Parse of double.Parse
Ik heb m'n variabelen al wat aangepast in naam (ik heb ze nog niet allemaal ingevoerd).
Nu heb ik eens geprobeerd wat jij zei , maar het lukt me niet goed.
C#: brandstofkosten
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int GemVer, PrijsLiter, AantalKm, Personen, Resultaat;
            string Invoer;

            Console.WriteLine("Wat is het gemiddeld verbruik van uw auto? (l / 100km)");
            Invoer = Console.ReadLine();
            GemVer = double.Parse(Invoer);
            
            /*
            Console.WriteLine("Prijs / Liter brandstof?");
            Invoer = Console.ReadLine();
            PrijsLiter = double.Parse(Invoer);
            

            Console.WriteLine("Aantal gereden Km's ?");
            Invoer = Console.ReadLine();
            AantalKm = double.Parse(Invoer);
            

            Console.WriteLine("Aantal personen ?");
            Invoer = Console.ReadLine();
            Personen = double.Parse(Invoer);
            
            */
        }
    }
}


Voor de bovenstaande code krijg ik volgende error :
Cannot implicitly convert type 'double' to 'int'. An explicit conversion exists (are you missing a cast?)


Ik heb ook al geprobeerd om
C#: brandstofkosten
1
Convert.ToInt32(Invoer);
te gebruiken maar dan heb ik problemen wanneer ik een komma getal gebruik of een getal met een punt tussen.

Heb je enig idee waar het misloopt?
Want ik versta het niet zo goed.

  • bwerg
  • Registratie: Januari 2009
  • Niet online

bwerg

Internettrol

Ik neem aan dat hij ook het regelnummer van de fout geeft? Dat zal wijzen naar
C#:
1
GemVer = double.Parse(Invoer);

GemVer is namelijk een int (zoals een paar regels eerder gedeclareerd) en je probeert er nu een double in te stoppen.

In het algemeen betekent een dergelijke foutmelding "ik verwacht hier iets van type A maar je geeft me iets van type B".

[ Voor 20% gewijzigd door bwerg op 03-05-2014 14:20 ]

Heeft geen speciale krachten en is daar erg boos over.


  • azerty
  • Registratie: Maart 2009
  • Laatst online: 07:43
Misschien ietwat off-topic, maar waar wil je die opleiding volgen?

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 20-11 12:14

diondokter

Dum spiro, spero

C# is een type-safe language. Dit houdt in dat .Net geen getallen omzet zonder dat jij hebt gezegd dat dat moet. Dit heeft als voordeel dat het programma precies doet (qua variabelen) zoals jij het hem heb gezegd.

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
wsitedesign schreef op zaterdag 03 mei 2014 @ 14:05:
Misschien ietwat off-topic, maar waar wil je die opleiding volgen?
In Howest Brugge, België.
Maar ik neem aan dat 90% op GoT niet van België is dus dacht ik dat dat niet relevant zou zijn.

OT: Hoe zit dat dan in mijn geval?
Ik wil eigenlijk gewoon dat het ingevoerde getal (kommagetal) in een variabele terechtkomt en daarna wil ik met de verschillende variabelen een bewerking uitvoeren om zo tot het resultaat te komen.

  • kutagh
  • Registratie: Augustus 2009
  • Laatst online: 21-11 19:52
Dan moet je ook geen int (integer oftewel geheel) getal van proberen te maken. Zoals eerder gezegd declareer je namelijk GemVer als een integer getal en C# staat het niet toe om zomaar een ander soort getal toe te wijzen aan een integer variabele. Maar jij wilt helemaal geen integer getal maar in dit geval een float of double.

Zie ook Microsoft Development Network (MSDN): MSDN: int (C# Reference)

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Het is gelukt tot op een zekere hoogte.
Nu is het mogelijk om alles juist uit te rekenen maar niet wanneer iemand een punt gebruikt i.p.v. een komma.

C#:
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
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double GemVer, PrijsLiter, AantalKm, Personen, Resultaat , Prijs100Km, PrijsKm, Totaal;
            string Invoer;

            Console.WriteLine("Wat is het gemiddeld verbruik van uw auto (l / 100km) :");
            Invoer = Console.ReadLine();
            GemVer = double.Parse(Invoer);
            
            
            
            Console.WriteLine("Prijs / Liter brandstof :");
            Invoer = Console.ReadLine();
            PrijsLiter = double.Parse(Invoer);
            

            Console.WriteLine("Aantal gereden Km's :");
            Invoer = Console.ReadLine();
            AantalKm = double.Parse(Invoer);
            

            Console.WriteLine("Aantal personen :");
            Invoer = Console.ReadLine();
            Personen = double.Parse(Invoer);

            Prijs100Km = GemVer * PrijsLiter;
            PrijsKm = Prijs100Km / 100;
            Totaal = PrijsKm * AantalKm;
            Resultaat = Totaal / Personen;

            Console.WriteLine("Prijs / Persoon :");
            Console.WriteLine(Resultaat);
            Console.WriteLine("Druk op ENTER om het programma te verlaten.");
            Console.ReadLine();
        }
    }
}


Hoe zorg ik ervoor dat zowel komma als punt gebruikt kunnen worden in de berekening?

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 07:43
darkvortex schreef op zaterdag 03 mei 2014 @ 15:28:
[...]

In Howest Brugge, België.
Maar ik neem aan dat 90% op GoT niet van België is dus dacht ik dat dat niet relevant zou zijn.

OT: Hoe zit dat dan in mijn geval?
Ik wil eigenlijk gewoon dat het ingevoerde getal (kommagetal) in een variabele terechtkomt en daarna wil ik met de verschillende variabelen een bewerking uitvoeren om zo tot het resultaat te komen.
Verder off-topic: er zitten hier wel Belgen hoor, maar we zijn inderdaad in de minderheid ;)

Nu wil het toeval dat ik in mijn 3e jaar Toegepaste Informatica (wel geen IT consultant, want dat begint pas volgend jaar :+, maar wel CCCP) zit aan de Howest in Brugge...

Het is in elk geval goed dat je je er al in interesseert, maar het zal wel nog uitgebreid uitgelegd worden... Ze beginnen ongeveer vanaf 0 in het eerste jaar TI. Mocht je nog vragen hebben, mag je altijd een DM sturen, geen garantie op een goed antwoord (er wijzigen een aantal vakken t.o.v. wat ik gekregen heb 2 jaar terug), maar ik heb toch wel enige ervaring :)

On topic: als je die waardes correct wilt laten parsen, zul je Culture en CultureInfo moeten gebruiken... ffe een linkje opzoeken kijk bijv. eens hier: MSDN: Double.Parse Method (String, IFormatProvider) (System)

[ Voor 10% gewijzigd door azerty op 03-05-2014 16:15 ]


  • Xatom
  • Registratie: Augustus 2011
  • Laatst online: 04:21

Xatom

Je moet inderdaad CultureInfo gebruiken hiervoor.

Ik zou CultureInfo.InvariantCulture gebruiken omdat je dan een komma en een punt kan gebruiken als delimiter. Als je CultureInfo.CurrentCulture gebruikt moet je een komma of een punt gebruiken, afhankelijk van de instellingen van je computer.

Dit gaat in het laatste geval veel problemen opleveren als de instellingen van een gebruiker verkeerd staan of als een gebruiker uit gemak maar een punt gebruikt waar de regel is dat je een komma moet gebruiken als delimiter.

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
wsitedesign schreef op zaterdag 03 mei 2014 @ 16:13:
[...]


Verder off-topic: er zitten hier wel Belgen hoor, maar we zijn inderdaad in de minderheid ;)

Nu wil het toeval dat ik in mijn 3e jaar Toegepaste Informatica (wel geen IT consultant, want dat begint pas volgend jaar :+, maar wel CCCP) zit aan de Howest in Brugge...

Het is in elk geval goed dat je je er al in interesseert, maar het zal wel nog uitgebreid uitgelegd worden... Ze beginnen ongeveer vanaf 0 in het eerste jaar TI. Mocht je nog vragen hebben, mag je altijd een DM sturen, geen garantie op een goed antwoord (er wijzigen een aantal vakken t.o.v. wat ik gekregen heb 2 jaar terug), maar ik heb toch wel enige ervaring :)

On topic: als je die waardes correct wilt laten parsen, zul je Culture en CultureInfo moeten gebruiken... ffe een linkje opzoeken kijk bijv. eens hier: MSDN: Double.Parse Method (String, IFormatProvider) (System)
De wereld is dan toch kleiner dan ik dacht, ik ken ondertussen al een paar (ex-) studenten aan het Howest die daar ook toegepaste informatica doen en het spreekt mij wel enorm aan.

Verder OT: Ik had inderdaad al iets gezien op het web over die Culture en CultureInfo, ik zal eens kijken wat ik er verder mee kan.
Nog iets waar ik mee zit is dat het nu allemaal nog in cmd gemaakt is.
Is het gemakkelijk om dit dan weer te implementeren in een bruikbaar programma?
Voorbeeld:
Afbeeldingslocatie: https://dl.dropboxusercontent.com/u/19741138/brandstofdelen.png

Dit heb ik al gemaakt, maar dit is maar het ontwerp.
Maar de code die ik nu geschreven heb zou dan ergens anders geplaatst moeten worden om vat te hebben op de textbox'en.
Is dit nog te moeilijk of is dit mogelijk?

  • Xatom
  • Registratie: Augustus 2011
  • Laatst online: 04:21

Xatom

Het maken van een GUI is opzich heel makkelijk. In Visual Studio kan je de componenten zo op je form slepen.

Daarna kan je een Click event handler toevoegen aan een button (dit kan heel makkelijk door te dubbelklikken op je button). Zodra je dan op de button klikt wordt de code in deze event handler uitgevoerd.

Het opvragen van de inhoud van textboxen kan gewoon met TextBox1.Text (waar TextBox1 de naam van de textbox is waarvan je de waarde wil hebben). Dit is een string dus je zou het meteen kunnen gebruiken, je hoeft het niet eerst in een variable te stoppen.

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 07:43
Het is mogelijk, op verschillende (sommige beter dan andere ;) ) manieren...

De eenvoudigste manier voor een beginner is natuurlijk om de GUI te bouwen, een knop toe te voegen die aangeklikt moet worden, en waar je dan je huidige code copy/paste in de methode die het klik-event van je knop afhandelt. Dan moet je enkel nog wat aanpassen om ipv een console.readline de text uit een textbox te halen (dat is niet moeilijk), en dan het resultaat in een andere textbox te stoppen.

^^ -> spuit 11, mooi uitgelegd door Naxiz :)

Natuurlijk, als je bijv. beide wilt, dan is gewoon copy-paste slecht, en dan ga je richting een klasse ontwerp... Maar dat ga je volgend jaar uitgebreid zien :p

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:25

Creepy

Tactical Espionage Splatterer

darkvortex schreef op zaterdag 03 mei 2014 @ 16:07:
Hoe zorg ik ervoor dat zowel komma als punt gebruikt kunnen worden in de berekening?
Door eerst zelf wat te proberen voordat je een vraag stelt hier ;) En mocht je dat dan al hebben gedaan, geef dan aan wat je al hebt geprobeerd.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • basst85
  • Registratie: Juni 2009
  • Laatst online: 09-10 09:12
darkvortex schreef op zaterdag 03 mei 2014 @ 16:07:

Hoe zorg ik ervoor dat zowel komma als punt gebruikt kunnen worden in de berekening?
Niet zo.. leg het uit of zeg niks

[ Voor 14% gewijzigd door Creepy op 03-05-2014 23:29 ]


  • Marco1994
  • Registratie: Juli 2012
  • Laatst online: 21-11 08:31
Wellicht is het een leuk idee om een aantal video's van Thenewboston te volgen Linkje. Hij heeft verschillende talen waarin hij vanaf niveau 0.0 begint en redelijk gecompliceerd eindigt. Ik het zelf veel gehad aan zijn serie over C#.

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Marco1994 schreef op zondag 04 mei 2014 @ 01:04:
Wellicht is het een leuk idee om een aantal video's van Thenewboston te volgen Linkje. Hij heeft verschillende talen waarin hij vanaf niveau 0.0 begint en redelijk gecompliceerd eindigt. Ik het zelf veel gehad aan zijn serie over C#.
Bedankt voor de website, ik zal me er de komende dagen eens in verdiepen :)

  • kutagh
  • Registratie: Augustus 2009
  • Laatst online: 21-11 19:52
En kijk ook maar naar de gratis beschikbaar materiaal: https://github.com/vhf/fr...#professional-development (scrollen naar .NET).

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
Na mijn eerste instapcursus javascript heb ik het programmaatje afgewerkt in html met javascript.
Dit is het resultaat:
HTML: brandstofkosten
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html>
<head>
<style>
table,th,td
{
border:0px ;
border-color:
}
</style>
</head>
<body align="center">

<h1>Brandstof delen calculator:</h1>
<h3>Enkel gebruik maken van punten (geen komma's)</h3>
<table align="center">

<tr>
 <td align ="right">Gemiddeld verbruik auto (l/100km):</td>
 <td><input type="text" id="gemver"></td>
</tr>
<tr>
 <td align="right">Prijs brandstof:</td>
 <td><input type="text" id="prijsl"><br></td>
</tr>
<tr>
 <td align="right">Aantal gereden km's:</td>
 <td><input type="text" id="kms"><br></td>
</tr>
<tr>
 <td align="right">Aantal personen:</td>
 <td><input type="text" id="pers"><br></td>
</tr>
<tr>
<td align="right">resultaat:</td>
<td id="uitkomst"></td>
</table>

<p align="center"><button onclick="myFunction()">Bereken</button></p>


<script>

function myFunction() {
var a = document.getElementById("gemver").value;
var b = document.getElementById("prijsl").value;
var c = document.getElementById("kms").value;
var d = document.getElementById("pers").value;
document.getElementById("uitkomst").innerHTML = a*b/100*c/d ;
}
</script>

</body>
</html>

[ Voor 0% gewijzigd door darkvortex op 16-09-2014 13:09 . Reden: aanpassen insprong ]


  • ObiTewodros
  • Registratie: April 2011
  • Laatst online: 05-04 22:22
Hoeveel C# skills heb je opgebouwd in de afgelopen maanden?

  • darkvortex
  • Registratie: Augustus 2010
  • Laatst online: 28-08-2022
ObiTewodros schreef op dinsdag 16 september 2014 @ 15:34:
Hoeveel C# skills heb je opgebouwd in de afgelopen maanden?
Geen enkel, buiten wat simpele tutorials.
Maar binnen een week start mijn academisch schooljaar in toegepaste informatica.
Ondertussen heb ik vorige week wat instapcursussen gevolgd waarin o.a. javascript in voor kwam.
Dus vervolgens heb ik mijn eerste "home brew programmaatje" geschreven in javascript.

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Op zich is het voor een eerste probeersel niet gek :)

Ik wil je wel wijzen op het al eerder gegeven advies om je variabelen fatsoenlijke namen te geven. Uiteraard is dit programma veel te simpel om er last van te hebben, maar variabelen als a, b en c wil je niet. Je wilt regel 49 ook nog kunnen begrijpen zonder terug te hoeven lezen naar regel 45-48.

In dit geval zou ik de IDs gebruiken als variabele-namen.

"Any sufficiently advanced technology is indistinguishable from magic."


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:25

Creepy

Tactical Espionage Splatterer

Maar echt een topic met concrete vragen is het nu niet meer. Leuk dat je wilt laten zien wat je gemaakt hebt, maar daar hebben we een apart topic voor: [Alg] Welke tools heb jij gemaakt? - deel IV . Dit topic sluit ik dan ook.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.