10. Mijn eerste programma Een korte handleiding voor het invoeren en editten van programmatekst voor een pseudotaal programma. In dit hoofdstuk wordt beschreven hoe je je allereerste pseudotaal programma kunt maken, en hoe je dit programma kunt verbeteren en uitbreiden. We gebruiken de mogelijkheden die Windows biedt voor het invoeren en editten van (programma) teksten, om die vervolgens naar DOS, en dus ook pseudotaal, over te zetten. De tekstverwerkings mogelijkheden vinden we in NotePad, een programma wat bij iedere Windows installatie aanwezig is. We gebruiken NotePad en niet een veel geavanceerdere tekstverwerker zoals bijvoorbeeld Word omdat de tekst als zogenaamde platte tekst (ASCII code) opgeslagen moet worden. NotePad doet dat automatisch en Word alleen via een lastige omweg. Bovendien hebben we alle uitgebreide mogelijkheden die Word biedt in dit geval helemaal niet nodig. We zullen hier stapsgewijs laten zien hoe alles in zijn werk gaat. 1. Zoek op je C:\ drive naar de folder Pseutaal. De pseudotaal omgeving moet in deze folder zijn geinstalleerd. Als de folder om de een of andere reden een andere naam heeft (gekregen) zal de speudotaal omgeving niet goed werken. 2. Open de folder Pseutaal. 3. Zoek in de folder Pseutaal naar de file pseutaal.bat en dubbel-klik die file. De speudotaal omgeving zal starten. Hoofdstuk 10 pagina 1
4. Zoek onder Start Programs Accessories naar NotePad en klik. 5. Als NotePad is gestart en een blank scherm aanbiedt, type dan je programma tekst in: a:=1 b:=2 Als a IS_GELIJK b Dan SCHRIJF 'a is gelijk aan b' Anders SCHRIJF 'a is groter dan b' Eindals 6. Het is handig om deze programma tekst te bewaren, zodat je straks als er bugs blijken te zitten in je programma, niet alles opnieuw hoeft in te typen maar kunt volstaan met de foute tekstdelen te verbeteren (en opnieuw te saven): 7. Ga naar het File menu, en kies de optie Save As Pagina 2 Hoofdstuk 10
8. Ga naar het pop-up menu op de Save-in regel in de Savedialoog en kies daar een plaats op een van je harde schijven en folders om deze file te bewaren. 9. Geef de file met je programma tekst een naam, bijvoorbeeld TEST_AisB.txt, op de daarvoor bestemde regel in de Save-dialoog. In dit voorbeeld is een nieuwe folder met de naam PseutaalProgs aangemaakt op de file TEST_AisB.txt in op te slaan 10. Klik op de Save button om je file op te slaan. In de titelbalk van het NotePad venster zal nu de naam van je file komen te staan. Hoofdstuk 10 Pagina 3
11. Nu je programma tekst gereed is en veilig opgeslagen, zijn we klaar om de programma tekst over te brengen naar de pseudotaal omgeving. Om dat voor elkaar te krijgen kunnen we kunnen kiezen uit twee mogelijkheden. o In de pseudotaal omgeving de inhoud van de notepad file in zijn geheel inlezen met behulp van de module LEES_FILE. o In de pseudotaal omgeving de programma editor EDIT openen, en met knip en plak de inhoud van de notepad file overnemen. 12. Beide opties zijn eenvoudig uit te voeren maar de eerste heeft de grootste kans op succes (je vermijd het risico dat de EDITor in pseudotaal crasht) en daarom bespreken we die het eerst. Wil je de knip en plak methode gebruiken ga dan verder naar stap 20! 13. Klik op het DOS venster met daarin de pseudotaal omgeving, zodat dit venster op de voorgrond verschijnt (en NotePad naar de achtergrond verdwijnt). 14. Type de regel: TXT WORDT LEES_FILE C:\Progs\Test_AisB 15. en druk daarna op de Enter toets. Als je je NotePad tekst op een andere plaats dan op schijf C:\ en directory Progs\ hebt opgeborgen, moet je natuurlijk de correcte schijf (D:\ of P:\) en directories (bijv Documenten\Pseu\) vermelden. 16. Vervolgens gaan we gebruik maken van de module PROG om een pseudotaal programma te definieren. De aanroep van PROG is als volgt: TXT PROG 'NAAM' als je een programma met de naam NAAM wilt maken zonder parameter overdracht, of TXT PROG 'NAAM PARAM OUTPUT' Pagina 4 Hoofdstuk 10
als je een programma met de naam NAAM wilt maken met expliciete output en input via parameter overdracht. TXT is de naam van een variabele waarin de pseudotaal code van jouw programma staat, en die je net met behulp van de module WORDT hebt gevuld met de inhoud van de NotePad file Test_AisB. De naam die we in dit geval aan ons pseudotaal programma willen geven is TestAB, dus we typen de regel: TXT PROG TestAB 17. en drukken daarna op de Enter toets. 18. Je hebt nu een pseudotaal programma gemaakt met de naam TestAB en met de inhoud van de NotePad file Test_AisB als programmacode. 19. Je kunt nu verdergaan met stap 34! 20. Kies de optie Select All uit het Edit menu. 21. Alle regels programma tekst die door jou zijn ingetypt in het NotePad venster zijn nu geselecteerd. Hoofdstuk 10 Pagina 5
22. Vervolgens gaan we weer naar het Edit menu en kiezen de optie Copy. 23. De programma regels zijn nu gekopieerd naar het clipboard. We kunnen ze nu gaan overbrengen naar de pseudotaal omgeving. 24. Klik op het DOS venster met daarin de pseudotaal omgeving, zodat dit venster op de voorgrond verschijnt (en NotePad naar de achtergrond verdwijnt). 25. Type de regel: PROGRAM TestAB 26. en druk daarna op de Enter toets. 27. We hebben hiermee de programma definitie modus van de pseudotaal omgeving gestart. De naam van het programma wat we gaan maken is TestAB. 28. Er is een blanko scherm verschenen waarin we de programma tekst uit het clipboard over kunnen brengen naar de pseudotaal omgeving. 29. Ga naar de menu-balk en houdt even je muis stil boven het icoon waarop een clipboard staat afgebeeld. Je zult dan de tekst Paste in een klein pop-up venstertje zien verschijnen. Pagina 6 Hoofdstuk 10
30. Klik nu op het icoon om de tekst die op het clipboard is opgeslagen over te brengen naar de programma-editor van de pseudotaal omgeving. 31. De programma tekst die je eerst in NotePad hebt ingetypt zie je nu regel voor regel in de programma editor van de pseudotaal omgeving verschijnen. 32. Het kan zijn dat hoofd- en kleine letters omgewisseld in beeld verschijnen. Houdt er rekening mee dat de pseudotaal omgeving standaard alle tekst met hoofdletters schrijft. Wil je standaard met kleine letters typen dan moet de Shift-Lock toets ingedrukt staan! 33. Gebruik de toetscombinatie Ctrl-E om deze tekst als programma te saven. 34. Je bent weer terug in de pseudotaal commando omgeving. Je kunt je programma draaien door het intypen van de naam: TestAB en op de Enter toets te drukken. Als de tekst A is groter dan B Hoofdstuk 10 Pagina 7
echter niet verschijnt, dan kunnen er een aantal dingen aan de hand zijn. 1. Er is echt niets gebeurd en er komt ook helemaal niets op het scherm te staan. Dat komt omdat: Er een fout zit in de pseudo-taal omgeving, waardoor jouw op zich goede algoritme wordt verprutst. Je een typfout hebt gemaakt, bijvoorbeeld door niet goed op het belangrijke onderscheid te letten tussen hoofd- en kleine letters in het aanroepen van controlestructuren, of in de naam van de modules KLEINER en DAN. We nemen even aan dat de eerste mogelijkheid is uitgesloten (daar is het algoritme iets te simpel voor, en is het testen van de pseudo-taal omgeving uitvoerig genoeg geweest). Dan moet er dus iets fout zijn gegaan bij het intoetsen van het algoritme en moeten we dit euvel herstellen. We komen daar zo aan toe. 2. Er gebeurt wel iets. Er verschijnt namelijk een zogenaamde foutboodschap op het scherm. Een van de aangeroepen modules is op een fout gestuit en maakt daar melding van. We weten dus nu waar we onze fout moeten zoeken. Of nu mogelijkheid 1 dan wel 2 het geval is, we moeten gebruik gaan maken van NotePad en Pseudotaal om onze fouten in de programmatekst te verbeteren. In dit voorbeeld is de tekst A is groter dan B op het scherm verschenen. Dat klopt niet, want a=1 en b=2 volgens de eerste 2 regels code, en we verwachten dat het programma ons zal vertellen dat a kleiner is dan b. Zoals we in de syllabus in paragraaf 3.3.3 kunnen nalezen wordt de misleidende output veroorzaakt doordat er in dit algoritme een logische fout zit. Er is namelijk geen voorziening getroffen voor het geval dat a kleiner is dan b. De Als... Dan... Anders... sekwentie wordt wel goed doorlopen, maar de enige aktie waaruit dat blijkt is een onverwachte output Om de mogelijkheid dat a kleiner is dan b goed op te vangen moeten er een paar stappen in het algoritme worden ingevoegd. Die invoeging moet komen tussen de eerste SCHRIJF opdracht en de daarop volgende regel die begint met de Anders opdracht. We gaan terug naar NotePad en onze oorspronkelijke pseudotaal code. Pagina 8 Hoofdstuk 10
We gaan met de pijltjestoets naar de regel die begint met Anders. Daar aangekomen toetsen we en op de nieuwe regel gaan we verder met: Als a KLEINER DAN b Dan SCHRIJF 'a is kleiner aan b' en na de laatste Eindals typen we nog een Eindals. Het komplete algoritme ziet er nu als volgt uit: a:=1 b:=2 Als a IS_GELIJK b Dan SCHRIJF 'a is gelijk aan b' Anders Als a KLEINER DAN B Dan SCHRIJF 'A is kleiner dan B' Anders SCHRIJF 'A is groter dan B' Eindals Eindals Let op de _ in de opdracht IS_GELIJK. Daar moet dus geen - staan, maar _. Nu is ons algoritme aangepast aan de mogelijkheid dat a ook kleiner dan b kan zijn, en dat daar dan ook melding van wordt gemaakt. Herhaal de stappen tot aan 8 om de verbeterde programma tekst te saven als tekstfile onder Windows. Doe ook stap 9 maar verzin een nieuwe naam voor je verbeterde programma, bijvoorbeeld: Test_AisB_vs2 Herhaal vervolgens de stappen 13 tot en met 18 (voor methode 1) of 20 tot en met 31 (voor methode 2) om je nieuwe programma versie ook in de pseudotaal omgeving te saven. Als je in de pseudotaalomgeving dezelfde naam wil blijven gebruiken voor je programma, verwijder dan eerst de foute versie door VERWIJDER 'TestAB' te typen, en maak daarna pas de nieuwe versie. We zijn weer terug in de pseudo-taal omgeving. Van hier uit kunnen we het aangepaste algoritme laten draaien. We doen dat door TestABvs2 in te toetsen. Als alles goed is verschijnt nu de tekst Hoofdstuk 10 Pagina 9
'A is gelijk aan B' op het scherm. Vervolgens Als we ons eerste algoritme, bewaard als module met de naam TestAB, willen verwijderen uit de pseudo-taal omgeving, dan toetsen we VERWIJDER 'TestAB' Let weer op de enkelvoudige aanhalingstekens die de naam moeten insluiten. We kunnen de pseudo-taal omgeving verlaten door het intoetsen van de opdracht STOP Deze module vraagt ons dan of we de omgeving in zijn huidige gewijzigde vorm willen bewaren. Het kan zijn dat je veel algoritmes hebt opgeslagen in nieuwe modules die je ook weer wilt aantreffen als je een volgende sessie van de pseudo-taal omgeving begint. In dat geval moet je de vraag met JA beantwoorden. De volgende vraag is er een naar de naam van je nieuwe pseudotaal omgeving. Je mag hier een willekeurige naam van maximaal 8 letters opgeven. Vervolgens komt er een vraag of deze omgeving op een floppydisk moet worden weggeschreven of naar de harde schijf. Dat laatste is de zogenaamde verstek mogelijkheid. Dat wil zeggen dat als de deze vraag onbeantwoord laat door gewoon op te drukken, je omgeving op de hard-disk wordt bewaard. Wanneer je een volgende sessie van de pseudo-taal omgeving start, zal die oorspronkelijk hetzelfde zijn als toen je de allereerste keer er mee begon. Indien je verder wilt gaan met een door jou zelf gewijzigde en met modules aangevulde omgeving moet je gebruik maken van de LAAD opdracht. Dat doe je door LAAD 'omgevingsnaam' in te toetsen. Tussen de enkelvoudige aanhalingstekens moet de naam staan die je bij het afsluiten van je vorige sessie hebt gebruikt om je omgeving onder te laten bewaren. Pagina 10 Hoofdstuk 10