Nada

^ Upp till kursens hemsida.

fovgrund02, Datalogi I, gk med Javaprogrammering för PVT

Program som jag planerar att gå igenom på lektionerna andra kursveckan (vecka 39) och som inte finns i läroboken.

Klassen Cirkel

Ett första exempel på en klass med konstruktor, instansvariabler och instansmetoder. Klassen Cirkel representerar cirklar men position i x- och y-koordinater, radie och färg. Cirkeln kan vara fylld med färg eller ofylld, alltså en ring.
Cirkel.java
I appleten nedan skapas fyra instanser av klassen Cirkel, med olika storlek och färg. En är ofylld. Ändra-knappen ändrar storlek på tre av cirklarna.
Javakoden för CirkelDemo.java
Kör appleten

Klassen Tärning

En enkel klass för representation av tärningar. För att slå med tärningen används metoden Math.random som ger ett slumpmässigt tal mellan 0 och 1. Detta räknas om till ett heltal mellan 1 och 6.
Tarning.java
I den här appleten skapar vi två tärningar, en röd och en blå. Man slår med båda genom att trycka på knappen "Slå".
Javakoden för TärningDemo.java
Kör appleten

Statistik över tärningsslagen

I följande applet testas tärningarnas funktion genom att vi för vardera tärningen räknar hur många 1:o, 2:or o.s.v. den ger. Vi räknar också totala antalet slag samt antal gånger vi slagit två sexor. Man bör får två sexor ungefär en gång på 36 slag. Statistiken skrivs ut efter varje slag i två textfält.
Här appletklassen lite för stor. En bättre uppdelning av programmet visas i nästa exempel. Javakoden för appleten TestaTarningStat1.java
Kör appleten

Statistik över tärningsslagen, bättre variant

Allt som rör statistiken, dvs att räkna antalet slag, antalet gånger det blir två sexor samt frekvenserna för 1:or, 2:or osv. kan läggas i en egen klass, Statistik. Den ser ut så här:
Statistik.java
Appleten blir kommer då att använda sig av båda klasserna Tärning och Statistik och ser ut så här:
Javakoden för appleten TestaTarningStat2.java
Kör appleten

Bubbelsortering

Bubbelsortering är en enkel metod för sortering av en vektor eller lista. Man går igenom listan och jämför närliggande element parvis, om två element bredvid varandra står fel ordning så byter man plats på dem. En genomgång av listan (inkl. platsbyten) kallas ett svep. Listan kommer att vara sorterad senast efter n-1 st svep om listan har n st element. I programmet här demonstreras bubbelsortering genom att data till en heltalsvektor slumpas fram, skrivs ut i första textfältet, sorteras och sedan skrivs den sorterade vektorn ut i det andra textfältet. Man får även information om hur många svep som behövdes. I programmeringsuppgiften Telefonregister rekommenderas bubbelsortering för sorteringen. Antal svep behöver man inte bry sig om där!
Javakoden
Kör appleten

PieChart

I det här programmet testas en metod för att från en heltalsvektor rita ett tårtdiagram, en PieChart. Varje värde i vektorn motsvaras av en tårtbit så stor som värdets andel av summan av alla värden i vektorn.
De tal som presenteras i diagrammet beräknas slumpmässigt m.h.a. Math.random, även antalet tal i vektorn slumpas fram.
Kör programmet flera gånger och se att det blir olika utseende på tårtan varje gång.
Programmet har ett litet fel. Det kan inträffa att den sista tårtbiten som ritas får samma färg som den första. Då ser de ju tillsammans ut som en bit. Det är inte så svårt att åtgärda. Försök själv !!!
Javakoden
Kör appleten

Kodning

Följande är en övning på strängar och teckenvektorer samt exempel på variabler och metoder som är static. I klassen kodning finns en String ALFABETET samt två metoder för skapande av nyckel samt för kodning av ett meddelande med hjälp av en nyckel.

Meddelandet som ska kodas får bestå av en godtyckligt text konstruerad av tecken från ALFABETET. Tar man med andra tecken så får man felavbrott. Alfabetet kan dock utökas som man vill utan att något mer i programmet behöver ändras.

Kodningen (metoden koda i klassen Kodning) går till så att varje bokstav i meddelandet byts ut mot en annan med hjälp av nyckeln. Nyckeln är en text som är exakt lika lång som alfabetet och utbytet sker genom att varje bokstav i alfabetet byts mot den bokstav som står i motsvarande position i nyckeln.

Nyckeln skapas (metoden slumpaNyckel i klassen Kodning) genom att alfabetets bokstäver blandas slumpmässigt.

Båda metoderna slumpaNyckel och kodning jobbar med teckenvektorer men får indata och ger resultat av typ String. I båda metoderna läggs indata över till en teckenvektor, resultatet beräknas i teckenvektorn och görs om till en String i samband med att resultatet returneras.

Appleten testar kodningsmetoderna. Man skall mata in en text och trycka enter. Då får man se den beräknade nyckeln, det kodade meddelandet och som kontroll, även det avkodade meddelandet som förstås bör vara detsamma som det meddelande man matat in.

Javakoden för Kodning.java
Javakoden för appleten
Kör appleten

Magiska kvadrater

Detta är en övning på variabler med index, speciellt variabler med två index, matriser. En magisk kvadrat är en kvadratisk (n*n) matris där elementen utgörs av talen 1, 2, 3, .... n*n och där följande gäller där S = n*(n*n+1)/2. Det går också bra att sätta S till någon av rad-, kolumn- eller diagonalsummorna och kolla att alla andra summor är lika med S. Här visas ett fristående program (application) med statiska metoder som kollar om en kvadratisk matris är en magisk kvadrat. Som testindata till programmet har vi skrivit in 4 stycken kvadratiska matriser i form av en vektor av matriser. Variabeln kvadrat i programmet är en vektor där varje element är en matris, kvadrat[0] är en 3*3 - matris, kvadrat[1] är en 3*3- matris, kvadrat[2] är en 3*3 - matris och kvadrat[3] är en 4*4 - matris.

Javakoden för Magisk.java