Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 
  Antwoorden hoofdstuk 4 (JavaLogo)      


1a.
import logotekenap.*;

public class Opgave1a extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan();
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		penUit();
	}
}
1b.
import logotekenap.*;

public class Opgave1b extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan();
                links(45);
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		vooruit(40);rechts(90);
		penUit();
	}
}
1c.
import logotekenap.*;

public class Opgave1c extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan();rechts(90);
		vooruit(30);penUit();vooruit(30);penAan();
		vooruit(30);penUit();vooruit(30);penAan();
		vooruit(30);penUit();vooruit(30);penAan();
		vooruit(30);penUit();vooruit(30);penAan();
		vooruit(30);penUit();vooruit(30);penAan();
		vooruit(30);penUit();
	}
}
1d.
import logotekenap.*;

public class Opgave1d extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan();rechts(30);
		vooruit(30);rechts(120);
		vooruit(30);rechts(120);
		vooruit(30);rechts(120);
		penUit();
	}
}


2a.
import logotekenap.*;

public class Opgave2a extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan(0,255,0);
		vulAan(0,255,0);
		vooruit(30);rechts(90);
		vooruit(30);rechts(90);
		vooruit(30);rechts(90);
		vooruit(30);
		vulUit();
		penUit();
		
		rechts(180);vooruit(60);
		penAan(255,0,0);
		vulAan(255,0,0);
		links(60);vooruit(30);rechts(120);
		vooruit(30);rechts(120);
		vooruit(30);rechts(120);
		vulUit();
		penUit();
	}
}


3a.
import logotekenap.*;

public class Opgave3a extends TekenApplet
{
	public void tekenprogramma()
	{	
		penAan();rechts(90);
		for (int i=0;i<6;i++)
		{
			vooruit(30);penUit();vooruit(30);penAan();
		}
		penUit();
	}
}
3b.
import logotekenap.*;

public class Opgave3b extends TekenApplet
{

	public void tekenprogramma()
	{
		penAan();rechts(30);
		for (int i=0;i<3;i++)
		{
			vooruit(30);rechts(120);
		}
		penUit();
	}
}
3c.
import logotekenap.*;

public class Opgave3c extends TekenApplet
{

	public void tekenprogramma()
	{
		penAan();
		for (int i=0;i<8;i++)
		{
			vooruit(30);rechts(45);
		}
		penUit();
	}
}
3d.
import logotekenap.*;

public class Opgave3d extends TekenApplet
{

	public void tekenprogramma()
	{
		penAan();
		for (int i=0;i<5;i++)
		{
			vooruit(30);rechts(72);
		}
		penUit();
	}
}
3e.
import logotekenap.*;

public class Opgave3e extends TekenApplet
{

	public void tekenprogramma()
	{
		penAan();
		for (int i=0;i<8;i++)
		{
			vooruit(40);rechts(135);
		}
		penUit();
	}
}
3f.
import logotekenap.*;

public class Opgave3f extends TekenApplet
{

	public void tekenprogramma()
	{
		penAan();
		for (int i=0;i<36;i++)
		{
			vooruit(140);rechts(170);
		}
		penUit();
	}
}
4a.
import logotekenap.*;

public class Opgave4a extends TekenApplet
{

	public void tekenprogramma()
	{
		for (int i=0;i<4;i++)
		{
			vierkant();
			rechts(90);vooruit(100);links(90);
		}
	}
	
	public void vierkant()
	{
		penAan();
		for (int i=0;i<4;i++)
		{
			vooruit(50);rechts(90);
		}
		penUit();
	}
}
4b.
import logotekenap.*;

public class Opgave4b extends TekenApplet
{
	public void tekenprogramma()
	{
		for (int i=0;i<4;i++)
		{
			rij();
			rechts(180);vooruit(50);rechts(90);vooruit(250);rechts(90);
		}
	}
	
	public void vierkant()
	{
		penAan();
		for (int i=0;i<4;i++)
		{
			vooruit(50);rechts(90);
		}
		penUit();
	}

	public void rij()
	{
		for (int i=0;i<5;i++)
		{
			vierkant();
			rechts(90);vooruit(50);links(90);
		}
	}	
}
4c.
import logotekenap.*;

public class Opgave4c extends TekenApplet
{
	public void tekenprogramma()
	{
		for (int i=0;i<4;i++)
		{
			huis();
			rechts(180);vooruit(100);rechts(90);vooruit(30);rechts(180);
		}
	}
	
	public void onderkant()
	{
		{	
			penAan(0,255,0);
			vulAan(0,255,0);
			vooruit(30);rechts(90);
			vooruit(60);rechts(90);
			vooruit(30);rechts(90);
			vooruit(60);rechts(90);
			vulUit();
			penUit();
		}
	}

	public void dak()
	{
		{	
			penAan(255,0,0);
			vulAan(255,0,0);
			links(60);vooruit(60);rechts(120);
			vooruit(60);rechts(120);
			vooruit(60);
			vulUit();
			penUit();
		}
	}
	
	public void huis()
	{
			onderkant();vooruit(30);rechts(90);dak();
	}
		
}


5a.
import logotekenap.*;

public class Opgave5a extends TekenApplet
{
	public void tekenprogramma()
	{
		driehoek(300,"groen");
		driehoek(100,"blauw");
		rechts(90);vooruit(200);links(90);
		driehoek(100,"blauw");
		rechts(90);vooruit(300);rechts(90);
		driehoek(300,"groen");
		rechts(90);vooruit(500);links(90);
		driehoek(200,"rood");
	}
	

	public void driehoek(int z,String k)
	{
		{	
			penAan(k);
			vulAan(k);
			rechts(30);vooruit(z);rechts(120);
			vooruit(z);rechts(120);
			vooruit(z);rechts(90);
			vulUit();
			penUit();
		}
	}
		
}


6a.
import logotekenap.*;

public class Opgave6a extends TekenApplet
{
	public void tekenprogramma()
	{
		vierkant(10);
		rechts(90);vooruit(30);links(90);
		vierkant(20);
		rechts(90);vooruit(40);links(90);
		vierkant(30);
		rechts(90);vooruit(50);links(90);
		vierkant(40);
		rechts(90);vooruit(60);links(90);
		
	}
	

	public void vierkant(int z)
	{
		penAan();
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		penUit();
	}
}
6b.
import logotekenap.*;

public class Opgave6b extends TekenApplet
{
	int b;
	
	public void tekenprogramma()
	{
		b=10;
		for (int i=1;i<=10;i++)
		{
			b=10*i;vierkant(b);
			rechts(90);vooruit(b+10);links(90);
		}
	}
	

	public void vierkant(int z)
	{
		penAan();
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		vooruit(z);rechts(90);
		penUit();

	}
		
}


7a. Een Java-programma, dat je in een website op kunt nemen, wordt een applet genoemd.
b. Compileren is het vertalen van de programmaregels in machinetaal.
c. Omdat een applet voor websites bedoeld is, weet je niet op welke computer en met welk besturingssysteem het wordt bekeken. Dus je weet niet welke machinetaal er gebruikt moet worden.
d. JDK zorgt voor de eerste stap bij het compileren. Het programma wordt nog niet echt in machinetaal vertaald, maar in iets wat er dicht bij ligt, de zogenaamde bytecode.
JVM zorgt voor de tweede stap bij het compileren. Dat gebeurt als je een website oproept, waarin een applet voorkomt. Dan wordt het echt in machinetaal vertaald, zodat de processor het kan verwerken.
e. Commentaarregels worden overgeslagen als het programma wordt uitgevoerd. Ze dienen alleen om het programma te verduidelijken.
f. Als een regel begint met // dan wordt het als een commentaarregel opgevat
Als het commentaar uit meer dan één regel bestaat dan moet de eerste commentaarregel beginnen met /* en de laatste commentaarregel moet worden afgesloten met */ (of elke commentaarregel moet je laten beginnen met // )


8a. Als de variabele g wordt genoemd declareer je die m.b.v. de opdracht:
int g;
Je kunt hem bij de declaratie ook direkt een waarde geven, bijvoorbeeld als volgt:
int g=24;
b. int (dat zijn gehele getallen)
double (dat zijn ook gehele getallen, maar ze mogen groter zijn dan bij int)
float (dat zijn kommagetallen) String (dat zijn woorden)
c. public void test()
d. public void test(int t, String k,float m)
e. initialiseer
f. tekenprogramma
g. for (int i=1;i<=10;i++)
h. import logotekenap.*;

public class programmanaam extends TekenApplet
j. Als eerste opdracht toevoegen rechts(20);
k. Als eerste opdracht toevoegen stap(-200,0);


9a. Maak eerst een methode binnenblok voor het binnenste opgavenblok:
Herhaal 4 keer: Ga 50 eenheden vooruit
                Draai de pen 90 graden naar rechts
Maak dan een methode middenblok voor het middelste opgavenblok:
Herhaal 45 keer: Eerst het binnenblok
                      Draai dan de pen 8 graden naar rechts
Tenslotte het uiteindelijke programma:
Draai dan de pen 90 graden naar rechts
Herhaal dan 9 keer: Het middenblok
                    Ga 100 eenheden vooruit
                    Draai de pen 40 graden naar links
Daarna kan de pen uit
Het programma in JavaLogo ziet er dan als volgt uit:
import logotekenap.*;

public class Opgave1 extends TekenApplet
{
	public void tekenprogramma()
	{
		penAan();
		rechts(90);
		for (int i=1;i<=9;i++)
		{
			middenblok();
			vooruit(200);links(40);
		}
		penUit();
	}
	
	public void middenblok()
	{
		for (int i=1;i<=45;i++)
		{
			binnenblok();
			rechts(8);
		}
	}
	
	public void binnenblok()
	{
		for (int i=1;i<=4;i++)
		{
			vooruit(100);rechts(90);
		}
	}
}
b. Een algoritme is een gedetailleerde beschrijving van de opdrachten die een computer moet uitvoeren om iets voor elkaar te krijgen.
c. In een PSD geef je een keuzeblok op de volgende manier aan:

d. In een PSD geef je een herhalingsblok op de volgende manier aan: