Oppg-4-3

Øvelse 4 – Oppgave 3

a)

Lagring av konstanter

Gravitasjonsakselerasjonen g på jordoverflaten er omtrent 9.81 m/s². For våre formål i denne deloppgaven kan denne antas å være konstant. Tiden som trengs for at et objekt i fritt fall skal ramle et gitt antall meter (d) er gitt ved formelen

t = sqrt(2m/g)

hvor g er gravitasjonsakselerasjonen som gitt tidligere.

I denne deloppgaven skal du lagre gravitasjonskonstanten i en global variabel med navnet GRAVITY på toppen av programmet ditt. Deretter skal du lage en funksjon get_fall_time som tar inn et gitt antall meter, og bruker formelen gitt over til å returnere hvor lang tid det tar et objekt å ramle det gitte antallet meter. La så programmet ditt ta inn en fall-lengde i meter fra brukeren, og bruk funksjonen du har laget til å regne ut hvor lang tid det tar å ramle den gitte distansen. Print ut resultatet.

Løsningsforslag



## Oppgave 3a svar

import numpy as np

GRAVITY = 9.81

def get_fall_time(m):
    
    t = np.sqrt(2*m/GRAVITY)
    
    return t


m = int(input('Hvor mange meter? '))

tidTilBakken = get_fall_time(m)

print('Det tar', format(tidTilBakken,'.1f'), 'sekunder å falle', 
      m, 'meter ved en gravitasjon på ', GRAVITY)


 

b)

Oppdatere en global variabel

I denne oppgaven ønsker vi å legge til rette for flere verdier av gravitasjonsakselrasjonen, ettersom denne ikke er helt konstant over hele jordoverflaten, i tillegg til at den vil være forskjellig på f.eks. månen. En mulig måte å løse dette på kunne vært å introdusere en ny funksjon som lar brukeren overskrive verdien til den globale konstanten. Husk at denne nye konstanten fortsatt må være global for å kunne brukes i resten av programmet.

Løsningsforslag:


## Oppgave 3b svar

import numpy as np

g = float(input('Hva er g? ')) # Angi tallet som skal pass'es til set_gravity
                                # funksjonen

def set_gravity(g):
    
    global GRAVITY # Gjør GRAVITY til en global variabel
    
    GRAVITY = g # Sett GRAVITY til parameter g
    
    return GRAVITY

GRAVITY = set_gravity(g)


def get_fall_time(m):
    
    t = np.sqrt(2*m/GRAVITY) # Sett m inn i formelen og bruk GRAVITY-konstanten
    
    return t


m = int(input('Hvor mange meter? ')) # be om antall meter objektet skal falle

tidTiBakken = get_fall_time(m) # Kall get_fall_time og pass input for meter 
                               # til funksjonen


print('Det tar', format(tidTiBakken,'.1f'), 'sekunder å falle', 
      m, 'meter ved en gravitasjon på ', GRAVITY)