Synlig lys
Våre øyne oppfatter elektromagnetisk stråling med en bølgelengde fra 380 til 740 nanometer, eller med en frekvens fra 405 til 790 terahertz. Dette område er kalt synlig lys eller bare lys. elektromagnetisk stråling i synlig lys omdannes til farger i hjernen hos mennesker og dyr. Tabellen nedenfor viser hvor de ulike fargene av synlig lys ligger i spekteret. Wikipedia.
| Color | Wavelength (nm) | Frequency (THz) |
|---|---|---|
| Violet | 380 - 450 | 670 - 790 |
| Blue | 450 - 485 | 620 - 670 |
| Cyan | 485 - 500 | 600 - 620 |
| Green | 500 - 565 | 530 - 600 |
| Yellow | 565 - 590 | 510 - 530 |
| Orange | 590 - 625 | 480 - 510 |
| Red | 625 - 750 | 400 - 480 |
Forholdet mellom bølgelengde og frekvens er gitt ved formelen: $$ \lambda = \frac{c}{f} $$ hvor \(\lambda\) er bølgelengde i meter, \(f\) er frekvens i Hz, og \(c = 3\cdot 10^8\text{ m/s}\) er lysets hastighet. Husk også på at vi har følgende forhold mellom enheter: $$ 1\text{ m} = 10^{9}\text{ nm} $$ $$ 1\text{ Hz} = 10^{-12}\text{ THz} $$ PS: Hz er det samme som 1/s.
I filen visible_light.py skal du skrive et program som spør brukeren om en enhet, enten nanometer (nm) eller terahertz (THz), og siden en verdi (et heltall). Programmet skal skrive ut hvilken farge i synlig lys den enheten og verdien tillhører. Om du får en enhet som ikke er nm eller THz skal programmet ditt informere brukeren at enheten må være enten nm eller THz, og programmet skal avslutte kjøringen (se eksempler under for nøyaktig ordlyd). Om brukeren skriver inn en bølgelengde eller frekvens som er utenfor spektrumet, skal det gis melding om dette også (se eksempler). Om du får en verdi som er akkurat på grensen mellom to farger skal du velge fargen med kortest bølgelengde (høyest frekvens) av de to.
Eksempelkjøringer:
Angi enhet (nm eller THz):
nm
Angi verdi i nm:
520
Green
Angi enhet (nm eller THz):
THz
Angi verdi i THz:
680
Violet
Angi enhet (nm eller THz):
nm
Angi verdi i nm:
320
320 nm er utenfor det synlige spekteret.
Angi enhet (nm eller THz):
THz
angi verdi i THz:
800
800 THz er utenfor det synlige spekteret.
Angi enhet (nm eller THz):
foo
Enheten må være i nm eller THz, det kan ikke være foo.
Det er mange ulike måter å løse denne oppgaven på. Programflyten over er et forslag som kan hjelpe deg å bryte ned programkoden i mer overkommelige deler. I skjemaet over er det to større oppgaver vi ikke har løst for deg:
- La \(f\) være frekvensen i antall Hz. Husk at verdien brukeren har gitt oss har enheten THz, så vi må først regne om. 1 THz er det samme som 10**12 Hz.
- Lysets hastighet er \(c = 3\cdot 10^8\text{ m/s}\).
- Plugg verdiene inn i formelen \(\lambda = c/f\) for å regne ut bølgelengden.
- Regn svaret om fra meter til nanometer.
- Det kan være lurt å benytte en if-elif -sekvens, hvor betingelsene sjekker verdien til bølgelengden opp mot grensene gitt i tabellen i oppgaveteksten.
- Ikke overskriv den enhet og verdi brukeren opprinnlig gav som input, men ta vare på dem i variabler slik at du kan skrive ut en feilmelding basert på disse hvis det trengs.
