Hur kan problem lösas?

Här ska vi titta på hur man kan planera sitt program och sen koda det. Vi tittar på ett exempel som handlar om att köpa bostad.

Köpa bostad

För att veta vilka kostnader som ingår vid köp av bostad finns sidor på internet att titta på. Gå in på Hemnet , Booli eller annan  sida där bostäder till salu finns. Klicka in på en bostad och leta rätt på vilka kostnader som uppstår vid köp.
För en bostad finns följande kostnader:

  • Inköpspris
    det finns också en regel om att köparen måste ha en kontantinsats som är 15% av inköpspriser (det vill säga pengar som inte kan lånas till i bostadslånet)
  • Hyra per månad
  • Driftskostnad  per månad (hemförsäkring, el, vatten)
  • Amortering (avbetalning på lånen). Det finns krav på att man ska betala 2% av bostadslånen varje år
  • Ränta på bostadslånet

När alla kostnader/utgifter har listats kan man börja skapa variabler i programmet. Fundera också på om det finns variabler som användaren ska lägga in. Här väljer jag att ha pris och hyra per månad som variabler som användaren får ange med prompt().
Eftersom prompt() bara returnerar strängar (text) behövs en funktion som heter Number() framför. När användaren skriver in ett nummer så konverteras texten till siffror som går att räkna med.
Driftkostnaden är här satt till 500 kr. Räntan är satt till 2,5%

var pris = Number(prompt("Vad kostar bostaden?"));
var kontantinsats = 0.15 * pris;
var driftskostnad = 500;
var rantaPerManad = 0.025 * pris / 12;
var manadsHyra = Number(prompt("Vad är hyran per månad"));
var amorteringPerManad = 0.02 * pris /12;

Namnen på de skapade variablerna ska vara tydliga och beskriva vad de innehåller. Jag har inte använt å, ä, eller ö. Där variabelnamnet består av flera ord är det vanligt att man i JavaScript börjar varje nytt ord med STOR bokstav eftersom ett variabelnamn inte får bestå av flera särskrivna ord.

För att kontrollera att formler för varje variabel är rätt är det bra att testa dem genom att skriva ut dem i konsolen.

EX:
console.log(kontantinsats):

Kontrollera att det svar du får, för kontantinsatsen, i konsolen är 15% av det inköpspris du anger i prompten.
När alla variabler kontrollerats så vet du att koden kommer att räkna rätt.

Nu är det dags att planera vad variablerna ska användas till. I det här programmet ska det visas på canvasen vilken kontantinsats som behövs och vad totala kostnaden per månad blir för bostaden.

I setup() bestämmer man storlek på canvasen,bakgrundsfärg, storlek på text och textens färg.

function setup() {
  createCanvas(400, 400);
  background(186,218,85);
  textSize(24);
  fill(0,0,255);
}

En variabel för totala utgiften per månad skapas.

var manadsutgift = manadsHyra + rantaPerManad + amorteringPerManad + driftskostnad;

Nu kan text för kontantinsats och total utgift skrivas ut på canvasen

function setup() {
  createCanvas(400, 400);
  background(186,218,85);
  textSize(24);
  fill(0,0,255);
  text("Kontantinsatsen är: " + kontantinsats, 30,100);
  text("Utgiften per månad är: " + manadsutgift,30,200);
}

Nu ska programmet förbättras lite. Kanske användaren har en gräns för vilken utgift hen har råd med.  Om utgiften per månad överstiger gränsen (limiten) så ska texten för månadsutgift bli röd annars ska den vara turkos.

var limit = Number(prompt("Vad får det kosta per månad"));

i setup() före texten med månadsutgift skrivs en if—else-sats

if(limit < manadsutgift){
  fill(255,0,0);
}else{
  fill(0,255,255);
}

När programmet är klart är det bra att testa det flera gånger och se att det fungerar som tänkt.

Skapa ett program som frågar användaren hur många burkar läsk/energidryck som hen dricker per vecka.
Låt programmet räkna ut vilken kostnad det blir på en månad och på ett år.

Skapa ett program som hjälper till att beräkna kostnader för resor:
En elev som går i nian i Västerås planerar att börja på Teknikprogrammet på Ullvigymnasiet i Köping. För att ta sig till och från skolan kan hen ta buss eller tåg. Kolla priser på nätet och gör ett program som visar pris per dag och pris per månad för de olika resesätten.

Skapa ett program som räknar ut vilken kostnad det blir per månad och per år för en familj om de äter på MAX 8 gånger i månaden. Familjens storlek (antal familjemedlemmar)  ska användaren kunna ange i en prompt. Du bestämmer själv vilken meny de äter.