Vreemde taal leren d.m.v. applicatie geschreven in C#

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • fezza1976
  • Registratie: November 2016
  • Laatst online: 03-09 12:06
Ik ben een beginnend programmeur in C# en daarnaast probeer ik momenteel de Turkse taal te leren. Ik heb het idee om een applicatie in C# te schrijven om mij hierbij te helpen.

Wat ik precies wil:
Ik wil dat mijn applicatie een Nederlands woord toont met daarachter een textbox waar je dus de Turkse vertaling kan typen. Als het woord goed is krijg je dan de melding dat je antwoord juist is en bij een fout antwoord dus dat je aan onjuist antwoord hebt gegeven dan dat je het nog een moet proberen.

Nu begrijp ik dat het bovenstaande d.m.v. een if - else statement gemaakt kan worden maar deze oplossing lijkt mij erg omslachtig omdat het natuurlijk om veel woordjes zal gaan die vertaald kunnen worden.

Mijn vraag:
Is het mogelijk om deze applicatie bijvoorbeeld te koppelen aan een tabel (v.b. in access of excel) waarin ik dan in kolom A het Nederlandse woord weergeef en in kolom B het Turkse woord weergeef. Kun je dan bijvoorbeeld zeggen dat als A1 en B1 = gelijk dat er dus een goed antwoord is gegeven? En natuurlijk dan een onjuist antwoord als er geen match is tussen die twee kolommen?

Ik ben benieuwd of zoiets mogelijk is. Uiteraard ben ik ook benieuwd of er wellicht andere oplossing zijn voor mijn vraag.
...

Relevante software en hardware die ik gebruik
Visual Studio / Access /Excel

Wat ik al gevonden of geprobeerd heb
...

Beste antwoord (via fezza1976 op 20-01-2017 11:31)


  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:53

Rannasha

Does not compute.

Waar je naar op zoek bent is een Dictionary. Dit is een klasse waarvan je objecten kunt maken die bestaan uit een lijst van key-value-pairs.

Zo kun je paren (NL woord, Turks woord) opslaan met het NL woord als de key. Hiermee kun je gemakkelijk de vertaling ophalen. Voorbeeld:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Creer dictionary en voeg woord-paren toe. Ik ken geen Turks, dus mijn "vertalingen" bestaan uit
// willekeurig op het toetsenbord meppen.
Dictionary<string, string> wordPairs = new Dictionary<string, string>();
wordPairs.Add("woord", "sneinsj");
wordPairs.Add("tafel", "qdhUHL");
wordPairs.Add("hond", "er9anf");

...

// Initialiseer random-nummer-generator.
Random rng = new Random();

...

// Selecteer random woord. Met de RNG kies je een getal tussen 0 en het aantal elementen van de dictionary.
// Vervolgens selecteer je het element met die index, en pak je de key (NL woord) en de value (Turks woord)
string word = wordPairs.ElementAt( rng.Next(0, wordPairs.Count) ).Key;
string answer = wordPairs[word];

|| Vierkant voor Wiskunde ||

Alle reacties


Acties:
  • 0 Henk 'm!

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 31-08 12:02

Afvalzak

Zet jij mij even buiten?

Uiteraard is dit mogelijk. Koppel het met een MS SQL of MySQL database en je bent er al.
Heb je uberhaupt al eens iets met c# gedaan?
Een simpele string compare lijkt me vrij basic. ;)

Last.fm | Code Talks


Acties:
  • +1 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 22:45

Cyphax

Moderator LNX
Afvalzak schreef op donderdag 19 januari 2017 @ 14:59:
Uiteraard is dit mogelijk. Koppel het met een MS SQL of MySQL database en je bent er al.
Heb je uberhaupt al eens iets met c# gedaan?
Een simpele string compare lijkt me vrij basic. ;)
Eigenlijk al overkill voor wat uiteindelijk niet meer is dan een dictionary. Ik zou eigenlijk niet al te moeilijk doen en een tekstfile (xml, json, plain text) gebruiken om de woorden in op te slaan. Dan kan je die gewoon bewerken met elke teksteditor. :)

Saved by the buoyancy of citrus


Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 19:53

Rannasha

Does not compute.

Waar je naar op zoek bent is een Dictionary. Dit is een klasse waarvan je objecten kunt maken die bestaan uit een lijst van key-value-pairs.

Zo kun je paren (NL woord, Turks woord) opslaan met het NL woord als de key. Hiermee kun je gemakkelijk de vertaling ophalen. Voorbeeld:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Creer dictionary en voeg woord-paren toe. Ik ken geen Turks, dus mijn "vertalingen" bestaan uit
// willekeurig op het toetsenbord meppen.
Dictionary<string, string> wordPairs = new Dictionary<string, string>();
wordPairs.Add("woord", "sneinsj");
wordPairs.Add("tafel", "qdhUHL");
wordPairs.Add("hond", "er9anf");

...

// Initialiseer random-nummer-generator.
Random rng = new Random();

...

// Selecteer random woord. Met de RNG kies je een getal tussen 0 en het aantal elementen van de dictionary.
// Vervolgens selecteer je het element met die index, en pak je de key (NL woord) en de value (Turks woord)
string word = wordPairs.ElementAt( rng.Next(0, wordPairs.Count) ).Key;
string answer = wordPairs[word];

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • fezza1976
  • Registratie: November 2016
  • Laatst online: 03-09 12:06
Dank je voor jullie antwoorden!
@Afvalzak: Inderdaad, zoals ik al had gezegd, ik ben een beginner.

@Rannasha: Super! Dat is precies waar ik naar op zoek was. Dank je!

Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Koppelen met excel of access is ook geen probleem in c#. Kun je daar je lijsten bijhouden en met C# doe je het zoeken en tonen .

[ Voor 39% gewijzigd door HansvDr op 21-01-2017 20:04 ]


Acties:
  • 0 Henk 'm!

  • Marco1994
  • Registratie: Juli 2012
  • Laatst online: 19:16
Wellicht een leuke uitbreiding voor als je dit draaiend hebt. Probeer het valideren d.m.v. een online api. Dus je krijgt een Nederlands woord die je via een woordenboek api ophaalt, vervolgens display je die in een textbox. Daarna haal je de vertaling op via bovenstaande api en valideer je die met de tekst die je invult in de tweede tekstbox.

Acties:
  • 0 Henk 'm!

  • mitchdc
  • Registratie: December 2004
  • Laatst online: 09-07 11:47
Hoe wil je omgaan met synoniemen?
Als er meer dan 1 antwoord juist is is een Dictionary niet de juiste oplossing in mijn ogen.

De Google Translate API ondersteund dit volgens mij wel, maar als je zelf de lijst wil gaan maken moet je hier wel rekening meehouden in je data model.
Pagina: 1