Hoofdstuk 6, opdracht 1

Opdracht

Deze opdracht vereiste een aantal tekstvelden (wij hebben gekozen voor drie) en een knop. Nadat er op de knop is gedrukt, moet het grootste en het kleinste van de ingevoerde getallen op het scherm worden weergegeven. Wij hebben gekozen om hier twee aparte functies voor te schrijven: bepaalGrootste( ); en bepaalKleinste( );

Deze functies verwachten een array (verzameling) van cijfers. Het voordeel hiervan is dat de applicatie uitgebreid kan worden, zonder dat er kennis nodig is van de exacte werking van deze functies. Dit heeft veel weg van het OOP (object geörienteerd programmeren) principe.

Applet

Code

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Appletje extends Applet implements ActionListener {

	// Defineer tekstveld & knop
	TextField invoerVak1, invoerVak2, invoerVak3;
	Button berekenKnop;

	// Defineer globale variabelen
	Boolean gevonden;
	double grootste;
	double kleinste;

	public void init() {

		// Initialiseer textvelden & knop
		invoerVak1 = new TextField( 5 );
		invoerVak2 = new TextField( 5 );
		invoerVak3 = new TextField( 5 );

		berekenKnop = new Button( "Bereken" );
		berekenKnop.addActionListener( this );

		// Voeg textveld toe aan GUI
		add( invoerVak1 );
		add( invoerVak2 );
		add( invoerVak3 );
		add( berekenKnop );

	}

	public void paint( Graphics g ) {

		if ( this.gevonden ) {

			g.drawString("Grootste is: " + this.grootste, 50, 60 );
			g.drawString("Kleinste is: " + this.kleinste, 50, 80 );

		}

	}

	public void actionPerformed( ActionEvent e ) {

		// Is er op de 'Bereken'-knop gedrukt?
		if ( e.getSource( ) == berekenKnop ) {

			// Haal de waardes op
			String waardeVak1 = invoerVak1.getText( );
			String waardeVak2 = invoerVak2.getText( );
			String waardeVak3 = invoerVak3.getText( );

			// Maak er doubles van, gooi ze in array
			double getallen[] = {
				Double.parseDouble( waardeVak1 ),
				Double.parseDouble( waardeVak2 ),
				Double.parseDouble( waardeVak3 )
			};

			// Roep de 'echte' functies aan
			this.grootste = this.bepaalGrootste( getallen );
			this.kleinste = this.bepaalKleinste( getallen );

			// Geef aan dat er resultaten gevonden zijn
			this.gevonden = true;

			// Teken de output opnieuw op het scherm
			repaint();

		}

	}

	// Functie om grootste waarde uit array te bepalen
	private double bepaalGrootste( double[] getallen ) {

		// Defineer een variabele met waarde '0'
		double getal = 0;

		// Loop door de array heen
		for( int i = 0; i < getallen.length; i++ ) {

			// Als dit getal groter is
			if ( getallen[ i ] > getal ) {

				// Defineer het als grootste
				getal = getallen[ i ];

			}

		}

		// Geef het gevonden getal terug
		return getal;

	}

	// Functie om kleinste waarde uit array te bepalen
	private double bepaalKleinste( double[] getallen ) {

		// Variabele met eerste array-waarde
		double getal = getallen[0];

		// Loop door de array heen
		for( int i = 0; i < getallen.length; i++ ) {

			// Als dit getal kleiner is
			if ( getallen[ i ] < getal ) {

				// Defineer het als kleinste
				getal = getallen[ i ];

			}

		}

		// Geef het gevonden getal terug
		return getal;

	}
	
}

Selecteer code

Screenshot

Hoofdstuk 6, opdracht 1