
Triangeltest (programmering)

Uppgradera för mer innehåll
Sant eller falskt? Triangeln är rätvinklig om det finns en 90-gradersvinkel.
Här är en triangel. Hur vet vi om det är en rätvinklig triangel? Vi kan kolla om det finns en 90-gradersvinkel med hjälp av Pythagoras sats. Det är nämligen bara i en rätvinklig triangel som det här sambandet gäller: c2 = a2 + b2 För att testa det här sätter vi in sidornas längder i ekvationen, och ser om likheten stämmer – att vänstra sidan är lika med högra sidan. Nu ska vi skapa ett program som testar om en triangel är rätvinklig eller inte.
För att kunna genomföra beräkningen behöver vi längderna på triangelns tre sidor. Så de första tre instruktionerna i programmet blir: Anteckna sida 1 Anteckna sida 2 Anteckna sida 3 Vad skall programmet göra sen? För att kunna tillämpa Pythagoras sats behöver vi ta reda på vilken av sidorna som är längst. Den kallar vi c. De andra två sidorna får bli a och b.
OM c2 = a2 + b2 SÅ: tala om att det är en rätvinklig triangel ANNARS: tala om att det inte är det. Men den här biten? Att ta reda på vilken sida som är längst, hur ska det gå till? Vi kan använda tre om-satser. Så här!
På de här raderna kollar vi om sida 1 är längst och i så fall skapar vi variabel c och ger den värdet som skrivits in som längden på sida 1. På de här raderna gör vi på samma sätt med sida 2. Och på de här raderna testar vi sida 3. Här har programmet fått nej som svar i alla de tre om-satserna och då är ingen sida längre än de två andra och då är triangeln inte rätvinklig. Så vi matar ut att det inte är en rätvinklig triangel och avslutar programmet.
OM: vi vet att variabel c är den längsta sidan i triangeln är de andra kortare sidorna variabel a och variabel b. Vilken av de korta sidorna som blir variabel a och variabel b spelar ingen roll. För a2 + b2 är ju samma sak som b2 + a2. Är vår pseudokod klar nu? Inte riktigt. För att göra det tydligt vilka delar av koden som hör ihop med andra delar, brukar man dra in de rader som hör ihop.
Raderna 5 till 7 är indragna för att de hör ihop med om-satsen på rad 4. De raderna utförs bara när om-satsen på rad 4 är sann. På samma sätt med raderna 9 till 11 och 13 till 15 och rad 20. Raderna 17 till 18 och 22 hör ihop med annars-satsen. Titta här: det här är den delen av koden som löser själva uppgiften.
Det är algoritmen. Om c2 = a2 + b2 Ett flödesschema kan vara bra för att få en överblick av programmet. Vi ritar en ruta för varje steg. Skapa och ge värden åt variablerna s1, s2 och s3. Om s1 är störst, skapa variabel c och tilldela värdet från s1.
Variabel a får värdet från s2 och variabel b värdet från s3. Gör samma sak med s2. Och med s3. OM ingen sida är längre än de två andra DÅ är det inte en rätvinklig triangel: avsluta programmet. Nu vet vi vilken sida som är längst och den heter c.
Variabel a2 får värdet a · a Variabel b2 får värdet b · b Variabel c2 får värdet c · c Äntligen kan vi testa om: c2 = a2 + b2 OM det är sant, SÅ matar programmet ut ‘yes’, ANNARS matar programmet ut ‘no’. Nu är det dags att du programmerar lite igen!