Instructie Programmeren Task 5

Slides:



Advertisements
Verwante presentaties
Spelling en Schrijven en formuleren hoofdstuk 1,2&3
Advertisements

Test computertermen: Deze test gaat over de vorige les. Je krijgt steeds een vraag te zien waarop je het juist antwoord moet aanklikken. Is je antwoord.
Inloggen in de VREG databank
Installatie instructie
LRP FONDSEN /ABONNEMENTEN/REKENINGEN release 2.1 Koos Willemse.
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World •Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Waar dienen al die toetsen eigenlijk voor?
Gestructureerd programmeren in C
Instructie Programmeren Task 8 5JJ70. PAGE 2 Task 8: Double Linked List Het doel van deze opdracht is: Het opbouwen van een tweetal klassen, die samen.
Practica Computerlinguistiek Tekst en uitleg:
PROS2 Les 11 Programmeren en Software Engineering 2.
Instructie Programmeren Task 1 5JJ70. Task 1.1: Hello World Klik naast de laatste accolade in de grijze kantlijn om een breakpoint neer te zetten, anders.
Instructie Programmeren Debuggen 5JJ70. Debuggen: Wat is het probleem Je programma compileert, maar werkt niet zoals verwacht, wat nu? Vraag je af: wat.
MICPRG Les 11 Microcontroller Programmeren in C. 112 Datastructuren in C Werkgeheugen (PC en microcontroller): Statische datastructuren (vaste grootte):
GESPRG Les 7 Gestructureerd programmeren in C. 92 Verwisselen Schrijf een functie waarmee twee int variabelen verwisseld kunnen worden. void wissel(int.
Tekenopdracht Voor en achter elkaar.
Idee Generatie Wit Papier, Warcraft 3, Thrall, Hoofdpijn, denken, rare les, Karel aan het ijsberen, Schrijven, Opdracht, Schaken, Stappen, Oplichten, Vooruit.
Les 2 groep 8 leerdoel: Je kunt werken met een verhoudingstabel.
Grammar Chapter 4 – G2 If + past simple. Je wist al dat je voor het woordje als in het Engels if kunt gebuiken. We gaan hier even mee verder. Het kan.
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
MET DANK AAN COLLEGA’S IN DEN LANDE ! vee 2012
Starten met PHP Dynamischer bouwen. PHP is een een scripttaal waarmee de server pagina’s in elkaar kunt laten zetten. Het verschil met HTML: Een php pagina.
Programmeren met If This Then That (IFTTT)
Starten met PHP Dynamischer bouwen.
Les 2: Interactie in je space door middel van klikbare objecten en actionscript. Wat is actionscript en programmeren?
Welkom bij Immersive space, de flashles Tijdens deze lessen, leren wij je werken met het programma adobe flash.
Beschouwing – De Laatste Tips
Samenvatting Havo 5.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 3 redirection,
Tekenopdracht Voor en achter elkaar.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag top-down decompositie Opdrachten:
De dag vóór het examen Schrijf de data en uren waarop je examen moet doen op een groot vel papier en hang het goed zichtbaar op! Leg alles wat je voor.
MINECRAFT PLAATJES TUTORIAL #4 EEN GRIEZELIG VOORBEELD.
Instructie Programmeren Task 4 5JJ70. Task 4.1: Iteratief proces Het doel van de opdracht is de uitgangsspanning van een transistor te bepalen met de.
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Instructie Programmeren Task 3 5JJ70. Task 3.1: MIPS Rating Volg de beschrijving in de opdracht om het aantal assembly instructies in de loop uit te vinden.
Instructie Programmeren Task 7
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Let’s go! ›Beginnerspresentatie ›Starten met prospero ›Verschil CMS en web navigator ›Nieuwe content > nieuwe folder aanmaken ›Bestanden uploaden ›Linkobject.
Opdracht 4 Video invoegen Gebruik deze presentatie om de opdracht te maken en zet hier je naam:.
Plan voor uitvoering. Gebruik je boek Begin bij 8.4 de innovatiecyclus Stap 1 is eigenlijk het onderzoek wat je al gedaan hebt Je begint je ontwerp met.
Wikimedia Les 1. Wat is Wikimedia? Weten we het nog?
Welkom! maandag 16 November 2015 Les B-2.
Hoe maak ik een PowerPoint presentatie?
Waarom? Je hebt ontdekt wat je interesses zijn. Behalve dat het van belang is dat je doet wat je leuk vindt, is het ook belangrijk om te doen waar.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Les 3 - Operators Workshop Php Basic. ICT Academy Php Basic Content Operators Wiskundig Toewijzing Vergelijking.
Woordjes leren.
Hoe maak je een werkstuk? Begin op tijd!!. Kies een leuk onderwerp  Denk aan een hobby, sport, beroep, stad of onderwerp uit een van de lesboeken van.
Na de praktijk, de theorie.. Zoals een gehaktmolen 1.Je stopt er iets in. 2.Je hoeft niet te weten wat er binnenin gebeurt. 3.Het resultaat verschijnt.
Inhoud Optellen en aftrekken. Vermenigvuldigen en delen.
Grammatica zinsdelen H1 t/m H6
Centraal Examen Nederlands
GUI & classes Een Gui in een class steken en het object gebruiken.
Uitleg bij de vragenlijst Veiligheidsbeleving
Training: Inloggen en Zoeken
De vraag is je beste vriend
1. Wat gaan we vandaag doen ?
Programmeren met Reeksen
Training: Inloggen en Zoeken
Gevorderde programmeer les
Hoofdstuk 9.2 Strings.
Training: Inloggen en Zoeken
Een instructie schrijven
Ik heb mijn boek uit… Wat nu?.
SQL Les February 2019.
Wat leer je allemaal op school?
Python – For loop + strings
Transcript van de presentatie:

Instructie Programmeren Task 5 5JJ70

Task 5: Spelling checker Het doel van deze opdracht is het schrijven van een kleine spelling checker Dit is de lastigste opdracht tot nu toe!

Task 5: Spelling checker - Hints De volgorde waarin je de verschillende correctie functies aanroept is van groot belang: Je gebruikt spaties om de grenzen van woorden te vinden, verwijder dus eerst dubbele spaties Je vergelijkt aangrenzende woorden bij het verwijderen van dubbele woorden, zorg dus dat je eerst de spelling van de woorden verbeterd Leestekens en hoofdletters toevoegen kan helemaal op het eind, dus: Spaces > spelling > double words > capital & punctuation Een zin inlezen met scanf(“ %s”, line) werkt niet! Gebruik getchar() of een variant hierop ( zie opdracht)

Task 5: Spelling checker – Spaties verwijderen Een functie die 1 karakter (of x karakters) vanaf een bepaalde locatie verwijdert is zeer nuttig bij deze opdracht! Realiseer je dat iedere keer dat je een karakter verwijdert, de stringlengte van je regel verandert Bedenk goed wat je doet nadat je een spatie hebt weggehaald: Waar staat het eerstvolgende karakter dat eventueel een spatie zou kunnen zijn? D i t s e D i t s e Gedetecteerde dubbele spatie Waar blijft deze pointer/index?

Task 5: Spelling checker – Spaties verwijderen 2 (of meer) spaties achter elkaar is fout Spaties aan het begin van de zin zijn fout Spaties voor leestekens ( :,;!?.) zijn fout Er zijn functies die detecteren of een karakter een leesteken, spatie, hoofdletter etc. is: Header: ctype.h Documentatie: http://www.cplusplus.com/reference/clibrary/cctype Voorbeeld: if(ispunct(line[i])){ // hier de acties als line[i] een leesteken is } else{ // geen leesteken op plek i in string line

Task 5: Spelling checker – Spellingsfouten Voor ieder fout woord (“teh”, “eb”, “si”, “ceratief”, etc) moet je dezelfde acties uitvoeren, gebruik dus een loopje waar je één voor één je foute woorden afgaat. Het is handig je foute en verbeterde woorden op te slaan in een array van strings: char* errors[3] = {"teh", "eb", "si"}; (Dit declareert een array van 3 poiners naar chars. Vervolgens worden deze pointers geïnitialiseerd met de adressen van de constantes "teh", "eb", en "si“) Je kunt een tijdelijke variabele gebruiken om het huidige ingelezen woord in op te slaan, of je kan de begin en eindindex van het woord opslaan Vergeet niet dat uit strcmp() nul komt wanneer de 2 strings gelijk zijn! Om zeker te weten dat je alle fouten vindt, kun je de ingelezen woorden naar lowercase of uppercase converteren voor je ze vergelijkt (tolower() en toupper(), of vergelijken met strcmpi() (die case insensitive is).

Task 5: Spelling checker – Spellingsfouten De procedure die je moet bouwen ziet er ongeveer zo uit: Detecteer het begin van een woord ( begin van de zin of een spatie) Detecteer het eind van een woord ( spatie, leesteken of eind van de zin) Vergelijk het woord met elk van de foute woorden Komt het woord overeen met een fout woord, kopieer dan het verbeterde woord naar de plaats van het foute woord Ga terug naar stap 1, tot het eind van de zin bereikt is

Task 5: Spelling checker – Dubbele woorden De dubbele-woorden-verwijder-routine komt erg overeen met de spelfouten routine ( kun je code hergebruiken? ): Detecteer het begin van een woord ( begin van de zin of een spatie) Detecteer het eind van een woord ( spatie, leesteken of eind van de zin) Vergelijk het woord met het vorige woord (indien aanwezig) Komt het woord overeen met het vorige woord, verwijder het dan uit de zin (of voeg het niet toe aan de output) Komt het woord niet overeen, dan wordt het “vorige woord” het “huidige woord” Ga terug naar stap 1, tot het eind van de zin bereikt is Na een leesteken mag een woord herhaald worden! Bijvoorbeeld: It took a very, very long time to program this.

Task 5: Spelling checker - Hints Een string van lengte L mag je maar tot L-1 adresseren! char str[10]; s[10] = ‘a‘; // FOUT! Gaat er iets mis, zet dan een breakpoint neer en stap door je programma heen Het is vaak handig en verhelderend op papier even uit te tekenen wat er gebeurt: Vergeet de ‘\0’ en de ruimte die dit karakter inneemt nooit! Access violations? Zie de hint slides over Debuggen Line: D i t s D i t s Prev_Word: i == 9 i – strlen(Prev_Word) i s \0

Task 5: Spelling checker - Hints Je spatie-verwijder functie 10x aanroepen “omdat dan pas alle spaties weg zijn” is niet toegestaan: schrijf degelijke functies die altijd werken! De output van je programma moet exact gelijk zijn als die bij de voorbeelden op het opdracht blad Daarnaast moet onderstaande zin goed worden verbeterd ( spaties worden ter illustratie weergegeven met -) ---eb---eb--eb---be-eb-a--a--good--,---good-good-program--and---work---!--- Corrected: Be a good, good program and work! Je programma mag niet crashen wanneer er geen input wordt ingegeven! Je programma is niet af voordat het aan de bovenstaande eisen voldoet. Proberen af te laten tekenen heeft geen zin, voordat alle voorbeelden en bovenstaande zin correct worden verbeterd. Tip: Laat je buur- man/vrouw je programma testen!