Avatar billede oprah Nybegynder
15. juni 2005 - 21:53 Der er 3 kommentarer og
1 løsning

Hvordan taster man sin Lingo kode?

Hejsa

Jeg sidder med følgende 5 klasser:

--En ansat har et fornavn og efternavn. En ansat skal desuden have en metode der fortæller hvor meget han har tjent på en måned, kald metoden Tjent. Derudover skal en ansat have en toString metode der returnere navn og hvor meget der er tjent.

property fornavn, efternavn

on new me, fornavnP, efternavnP
  fornavn = fornavnP
  efternavn = efternavnP
  return me
end

on tjent me
  return 20000
end

on toString me
  return fornavn+" "+efternavn+" "+me.tjent()
end

Og

-- Firma, der har et antal ansatte. Et firma skal have een metode, udgifterTilLøn som fortæller hvor meget løn der skal udbetales til alle ansatte.

property ansatte

on new me
  ansatte = []
  return me
end

on addAnsat me, ansatP
  ansatte.add(ansatP)
end

on removeAnsat me, ansatP
  ansatte.deleteOne(ansatP)
end

on udgifterTilLon me
  sum = 0
  repeat with e in ansatte
    sum = sum + e.tjent()
  end repeat
  return sum
end

og

-- en fast-ansat. En fast-ansat får een bestemt løn lige meget hvor meget han arbejder.

property maanedslon, ancestor

on new me, fornavnP, efternavnP, maanedslonP
  ancestor = script("Ansat").new(fornavnP, efternavnP)
  maanedslon = maanedslonP
  return me
end

on tjent me
  return maanedslon
end
og
--en ansat på provision. Denne specielle ansatte skal have et antal ting han har solgt, en sats pr. ting der er solgt samt en basis-løn.

property antalTing, basisløn, ancestor

on new me, fornavnP, efternavnP, antalTingP, basislønP
  ancestor = script("Ansat").new(fornavnP, efternavnP)
  antalTing = antalTingP
  basisløn = basislønP
  return me
end

on tjent me
  return basisløn + antalTing*2
end

og

-- en time-lønnet. Dvs. lønnen afhænger af time-satsen samt antallet af timer han har arbejdet.


property timelon, antalTimer, ancestor

on new me, fornavnP, efternavnP, timelonP, antalTimerP
  ancestor = script("Ansat").new(fornavnP, efternavnP)
  timelon = timelonP
  antalTimer = antalTimerP
  return me
end

on tjent me
  return antalTimer*timelon
end

Jeg skal nu have alt det her ting testet, således at jeg får et output og kan se, at det jeg har lavet er korrekt.
Jeg bruger Director Mx.
Tak på forhånden
Oprah
Avatar billede kanding Nybegynder
16. juni 2005 - 09:09 #1
Du gemmer dine objekter i globale referencer. Den første f.eks. her antager jeg at dit script hedder "ansatte"

gAnsatManager = new(script "ansatte", "Oprah", "Winfrey")

Nu har vi initialiseret en ansat. Lad os kalde dens metoder og få et output.

Åben message window(ctrl + M)

Skriv: put gAnsatManager.tjent()
Der skulle gerne stå: -- 2000

Skriv: put gAnsatManager.toString()
Der skulle gerne stå: -- Oprah Winfrey 2000

Sådan kan du teste hvert objekt.
Avatar billede oprah Nybegynder
16. juni 2005 - 17:49 #2
Hvordan gemmer jeg mine objekter i globle referancer? Jeg er nybegynder.
Avatar billede oprah Nybegynder
16. juni 2005 - 17:51 #3
Og hvorfor gAnsatManager? den er vel ikke en metode jeg har i min klasse.
Avatar billede kanding Nybegynder
23. juni 2005 - 10:23 #4
Global reference er bare en global variabel. Ideen er at du kan få fat i din klasse efter at have skabt den.

Altså:
Du har dit klasse script.
I et andet script, et så kaldt movie script, laver du denne initialisering:

global gAnsatManager
on startMovie
gAnsatManager = new(script "ansatte", "Oprah", "Winfrey")
end

Her initialiserer vi din klasse og gemmer det i en glabal variabel ved navn gAnsatManager(det lille g er bare en vane fra min side)

Bemærk at den global variabel skal placeres i toppen af alle de scripts hvor du skal bruge den. Det vil sige IKKE i dit klasse script, da den referere til sig selv indefra med "me"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester