Forslag til løsninger er farvet rødt.
Deklarer variabler som skal inneholde:
3 | 11 | 14 | 23 |
49 | 31 | 77 | 17 |
a)
var tekst: String = "Å deklarere en variabel vil i praksis si å be datamaskinen\n" + "om å sette av plass til variabelens innhold i minnet og gi\n" + "denne plassen navnet til variabelen.\n";b)
var pi: Number = 3.14159;c)
var tabell: Array = [3,11,14,23,49,31];d)
var tabell2d: Array = [ [3,11,14,23], [49,31,77,17] ];
Skriv en for-sløyfe som finner det minste av tallene i tabellen i 1 c)
var min: Number = Number.MAX_VALUE; for (i = 0; i < tabell.length; i++) { if (tabell[i] < min) { min = tabell[i]; }//if }//for trace("Minimum var: "+min);
Fyll ut det som mangler i koden som følger, hvis hensikten er å finne gjennomsnittet av tallene i den todimensjonale tabellen i 1d:
var sum: Number = 0.0; // Sum som oppdateres etter hvert. (Beklager trykkfeil her!) for(var rad: int = 0; rad <2; rad++) { // For hver rad for(var kolonne: int = 0; kolonne < 4; kolonne++) { //for hver kolonne sum += tabell2d[rad][kolonne]; }//for hver kolonne }//for hver rad trace("Gjennomsnittet ble: "+sum/8);
Vi har deklarert variablene:
var a: Number = 3.22; var b: Number = 4.54; var c: String = "3.22"; var d: String = "4.54";Beskriv nøyaktig hva som blir tilordnet variabelen resultat hvis disse instruksjonene utføres:a) resultat = a + b; resultat blir 7.76b) resultat = int(b); resultat blir 4c) resultat = "" + a; resultat blir "3.22"d) resultat = c + d; resultat blir "3.224.54"e) resultat = a.toFixed(1); resultat blir "3.2"
Body Mass Index, BMI er definert som BMI = vekt/høyde2, der vekt regnes i kg. og høyde i meter.
Skriv
en instruksjon som regner ut BMI hvis høyden ligger i en
variabel hoyde og vekten i en
variabel vekt.
Resultatet skal legges i en variabel med navnet bmi.
var bmi: Number = vekt/(hoyde*hoyde);
I et program som brukes på et helsestudio blir utregningen av BMI (se 4) )gjort mange steder i programmet, så det ville være en fordel å legge den koden du laget i 4) i en egen funksjon.
(En funksjon/metode er et delprogram som tar imot en eller flere variabler, gjør noe med dem og returnerer et resultat.
La oss si at vi skulle finne ut hvilken av to tall-variabler som inneholder det største tallet. Da kunne vi laget denne funksjonen:
function maks( vartall1: Number, tall2: Number): Number { if( tall1>=tall2) { return tall1; }else { return tall2; }//if }//maks()
Skriv en funksjon, med navnet beregnBMI, som tar imot parameterne hoyde og vekt og returnerer BMI.
function beregnBMI(hoyde: Number, vekt: Number ): Number { return vekt/(hoyde*hoyde); }//beregnBMI
La oss si at vi har laget et program BMI med et brukergrensesnitt som ser omtrent slik ut:
Vi forutsetter at dette allerede er laget ferdig:
Inntastingsfeltene er av typen TextInput og har navnene vektTi og hoydeTi.
Resultatfeltet er av typen TextField og har navnet bmiTf.
Beregnknappen er av typen button og har navnet beregnBtn.
a) Skriv kode som henger lytterfunksjonen beregnKlikket på knappen beregnBtn.
beregnBtn.addEventListener(MouseEvent.CLICK,beregnKlikket);
b) Skriv koden for lytterfunksjonen beregnKlikket. Denne lytterfunksjonen skal hente vekt og høyde fra brukergrensesnittet, regne ut BMI ved hjelp av funksjonen beregnBMI (se 5) ) og legge en melding i bmiTf.
Denne meldingen skal være en av disse tre:
Hvis BMI er mindre enn 18.5, skal meldingen være "Undervektig".
Hvis BMI er større enn 25, skal meldingen være "Overvektig".
Hvis BMI er mellom 18.5 og 25, skal meldingen være "Normalvekt".function beregnKlikket(evt: Event): void { var vekt: Number = Number(vektTi.text); // Konverterer til tall var hoyde: Number = Number(hoydeTi.text); // Konverterer til tall var bmi: Number = beregnBMI(hoyde, vekt); // Bruker funksjonen beregnBMI(...) if(bmi < 18.5) { // Velger blandt tre muligheter bmiTf.text = "Undervektig"; // Setter resultatfeltet } else if(bmi >25) { bmiTf.text = "Overvektig"; } else { bmiTf.text = "Normalvekt"; }//if }//beregnKlikket()
Deklarer en assosiativ tabell med navnet varelager, som inneholder informasjonen i denne tabellen:
Hammer Skrutrekker Varenummer 1013 1014 Pris 97.50 47.50
var varelager: Object = { Hammer: { Varenummer: 1013, Pris: 97.50 }, Skrutrekker: { Varenummer: 1014, Pris: 47.50 } }//varelager
Innholdet i tabellen
Spidsbergseter Rondablikk RondaneSPA epost post@sgh.no post@rondablikk.no post@rondane.no tlf 61 28 40 00 61 29 49 40 61 20 90 90 temp [-5,-3,-5, -3, -2, 0] [-8, -5, -5, -3, -3, -3] [-10, -8, -8, -5, -5, -4]
kan legges i en xml-fil:
<data> <hotell navn="Spidsbergseter"> <epost>post@sgh.no</epost> <tlf>61 28 40 00</tlf> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-2</tmp> <tmp>-0</tmp> </hotell> <hotell navn="Rondablikk"> <epost>post@rondablikk.no</epost> <tlf>61 29 49 40</tlf> <tmp>-8</tmp> <tmp>-5</tmp> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-3</tmp> <tmp>-3</tmp> </hotell> ... //Her fortsetter det med flere hoteller </data>
eller direkte i en variabel på denne måten:
var hotellinfo: XML =<data> <hotell navn="Spidsbergseter"> <epost>post@sgh.no</epost> <tlf>61 28 40 00</tlf> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-2</tmp> <tmp>-0</tmp> </hotell> <hotell navn="Rondablikk"> <epost>post@rondablikk.no</epost> <tlf>61 29 49 40</tlf> <tmp>-8</tmp> <tmp>-5</tmp> <tmp>-5</tmp> <tmp>-3</tmp> <tmp>-3</tmp> <tmp>-3</tmp> </hotell> ... //Her fortsetter det med flere hoteller </data>Skriv kode som går inn i XML-strukturen og
a) skriver ut epost-adressen til hotellet med navn RondaneSPA
trace( "E-post: " + hotellinfo.hotell.(@navn=="RondaneSPA").epost );b) skriver ut telefon-nummeret til hotellet med navn RondaneSPA.
trace( "Telefon: " + hotellinfo.hotell.(@navn=="RondaneSPA").tlf );c) skriver ut gjennomsnittet av de seks oppgitte temperaturene (siste 6 dager) til hotellet med navn RondaneSPA.
var sum: Number = 0.0; for(var i: int = 0; i < 6; i++) { sum += hotellinfo.hotell.(@navn=="RondaneSPA").tmp[i]; }//for trace("Gj.sn. temperatur: " + (sum/6) );
Skriv en klasse Tabelloperasjoner som skal finne største, minste, sum, antall, gjennomsnitt av en oppgitt tabell slik dette UML diagrammet viser:
( Poenget er at når denne klassen er laget, så kan vi gjøre for eksempel dette:
var temperaturer: Array = [13,13,14,14,14,15,15,16,16,17,16,15];tabop: Tabelloperasjoner = new Tabelloperasjoner();trace( "Summen ble: "+tabop.getSum(temperaturer) ); trace( "Makstemperaturen er: "+tabop.getMaksimum(temperaturer) ); )package { /* Klasse med interface: getMaximum(tab:Array):Number getMinimum(tab:Array):Number getSum(tab:Array):Number getGjennomsnitt(tab:Array):Number */ public class Tabelloperasjoner { private var n:int = 0; private var i:int = 0; public function getMaximum(tab: Array):Number { n = tab.length; var maks:Number = Number.MIN_VALUE; for (i = 0; i < n; i++) { if (tab[i] > maks) { maks = tab[i]; }//if }//for return maks; }//getMaximum() public function getMinimum(tab: Array):Number { n = tab.length; var min:Number = Number.MAX_VALUE; for (i = 0; i < n; i++) { if (tab[i] < min) { min = tab[i]; }//if }//for return min; }//getMinimum() public function getSum(tab: Array):Number { n = tab.length; var sum: Number = 0.0; for (i = 0; i < n; i++) { sum += tab[i]; }//for return sum; }//getSum() public function getGjennomsnitt(tab: Array): Number { return getSum(tab)/n; }//getGjennomsnitt() }//class }//package