görs med fördel genom att dela upp
problemet i delproblem - "divide and
conquer
STRUKTURDIAGRAM
Algoritmer
Egentliga problemlösningsfasen. En sekvens av instruktioner som löser problemet. Varje steg
utgör en instruktion. För samma indata genereras samma utdata - som ett matrecept att
maträtten måste innehålla de ingridienser man hade i.
Det finns olika sätt att uttrycka algoritmer
Flödesschema
Detaljerad beskrivning av programmets logik
Pseudokod
Beskrivning av programmets kod i naturligt språk eller mer abstrakt språk än programmerings spårket
Objekt enkapsulerar logik och data. Ett
objekt är ansvarigt för sitt eget beteende
Underlättar återanvändning
Samma klassdefinitioner kan användas i många
tillämpningar. En subklass ärver automatisk alla
medlemmar från superklassen, Polymorfi
möjliggör för samma metod(namn) att anta olika
beteenden.
Objektorienteradprogrammering
speglar hur vi tänker i vardagslivet
med klasser och objekt
Deklarativa språk
Beskriver relationen mellan input och
output: vad ska gälla mellan input och
output
Variabler: blir lättare
om alla använder
samma begrepp
Deklaration och tilldelning: ger något ett värde.
Primitiva datatyper
En datatyp
definierar ett kontrakt
som data ska
uppfylla
Definierar hur värden kan lagras binärt i
minnesceller så att givna krav på precision,
effektivitet eller utrymmeskrav uppfylles
Object, String och Array är fördefinierade
datatyper men INTE primitiva
Typomvandling och
konvertering
Typomvandling
Kan enbart göras mellan datatyper som vi vet är väldigt lika: ex int och double.
Relationerna är implementerade i datatyperna och om en implicit eller explicit
typomvandling är möjlig kan avgöras redan vid kompileringen
Implicita typomvandlingar kommer alltid att lyckas!
Explicita typomvandlingar kan kasta exceptions
Konvertering
Är processen att försöka omvandla ett objekt av en
datatyp som inte har en relation till måldatatypen. Ex
string --> int