Avatar billede JavaScriptBegynderen Juniormester
15. september 2021 - 23:14 Der er 4 kommentarer

Hjælp til JavaScript på begynder niveau

Hej :)
På min uddannelse er jeg blevet stillet til opgave, at kode ud fra følgende beskrivelse:

- Pepita is a bird that basically does two things: eats birdseeds and fly around.
- After eating X grams of birdseed, Pepita's energy increases by the following amount: X*4
- After flying N kilometers, Pepita’s energy decreases by the following amount: N*2.
- Pepita’s starting energy is zero.

Jeg skal lave en kodning der beregner dette. Jeg forgæves forsøgt med følgende to koder, uden de virkede. Kan I hjælpe så det virker??? Tusind tak!

1.
class bird {
let pepita = 0;
let kilometer = n;
let gram = x;
let x = 10;
let fly = n*(-2);
let eat = x*4;
let pepita.fly (x);
console.log(pepita);

2.
class bird {
let pepita = 0;
let gram = x;
let x = 10;
let eat = x*4;
let pepita.eat(x);

console.log(pepita);
Avatar billede bvirk Guru
16. september 2021 - 08:34 #1
Det er udmærket tænkt at pepita er er et objekt af klassen fugl. Hvis man endnu har lært hvad class er i javascript kan man starte simplere og lave en funktion der retunere flyvelængde som funktion af kornindtag. Hvis man så endnu ikke har lært hvad en funktion er i javascript kan man starte med et par kodelinier hvor input er tildeling af værdier til variabeler

Når pepita æder x gram korn, hvor langt flyver den så? Det kunne være opgaven. eller det første start forståelsesmæssigt. Hvor langt flyver pepita på 4x når det er det samme som 2n kilometer

De 4 og de 2 er noget der gælder for pepita.

p_eg = 4  // energi pr gram indtag
p_ke = 2  // kilometer pr energimægde

pepita æder 23 gram korn, hvor langt flyver den så?

e=23*p_eg
km=e/p_ke

eller blot

km=23*p_eg/p_ke

Når man har forstået det kan man gå videre med javascript variabler, funktioner og klasser. Der findes mange kilder til at lære javascript - en kunne være:
 
  https://developer.mozilla.org/en-US/docs/Web/javascript

Det er også nyttigt at lære browserens development faciliteter at kende.
Avatar billede JavaScriptBegynderen Juniormester
16. september 2021 - 10:36 #2
hej igen.

Tak for svaret. Jeg er kommet frem til følgende, men consolen siger stadig Error i Scrimba.

Kan nogle sige mig, hvor det går galt?

let pepita = new Bird();
class Bird {
    energy = 0;
    eat(amountOfBirdSeedInGrams) {
          this.energy = this.energy + amountOfBirdSeedInGrams * 4;
    fly(quantityFlownInKilometers){
          this.energy = this.energy + quantityFlownInKilometers * (-2);       
    }
}
pepita.eat(20);
pepita.fly(10);
console.log(pepita);
Avatar billede bvirk Guru
16. september 2021 - 14:44 #3
<!DOCTYPE html>
<html>
    <head>
    <script>
        let Pepita = {energy:0};
        Pepita.eat = function(amountOfPepitaSeedInGrams) {
          this.energy += amountOfPepitaSeedInGrams * 4;
        }
        Pepita.fly = function(quantityFlownInKilometers) {
          this.energy -= 2*quantityFlownInKilometers;     
        }
       
        Pepita.eat(20);
        console.log(Pepita);
        console.log(Pepita.energy);
        Pepita.fly(10);
        console.log(Pepita.energy);
    </script>
        <meta charset="utf-8">
        <title>test</title>
    </head>
    <body><h1>testcase</h1>
    </body>
</html>

<!--
Javascript er mere prototype agtigt, altså ikke med klasser hvis fields og method skal være 'hugget i sten' compile time - det hedder også properties, objects og functions i javascript.

#2 ligner mere java, men jeg skal ikke kunne sige om man ikke kan noget i den retning.
-->
Avatar billede bvirk Guru
17. september 2021 - 09:28 #4
Om anvendelse af keyword class i java script:

https://stackoverflow.com/questions/1728984/class-keyword-in-javascript#38051579
(bemærk: år 12)

https://everyday.codes/javascript/please-stop-using-classes-in-javascript/

Pepita, lidt mere constructor agtigt:
        function Bird() { this.energy=0; }
       
        Bird.prototype.eat = function(amountOfPepitaSeedInGrams) {
          this.energy += amountOfPepitaSeedInGrams * 4;
        }
        Bird.prototype.fly = function(quantityFlownInKilometers) {
          this.energy -= 2*quantityFlownInKilometers;     
        }
       
        Pepita = new Bird();
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

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