För dessa övningar kan allt arbete göras i den interaktiva C#-tolken, som du öppnar med View > Other Windows > C# Interactive. Det är dock fortfarande en bra idé att spara dina lösningar medan du jobbar på dem, antingen i valfri textredigerare eller genom att öppna en fil med Visual Studio: File > New > File... > Text File > Open.
Kodstruktur
Använd följande upplägg för dina program:
// indata: skapa värden
int x = 1;
int y = 2;
...;
// beräkning: utför operationer
int z = x + y;
...;
...;
// utdata: spara slutresultatet
int result = ...;
Tips
Om du inte kommer på hela lösningen på en gång, försök att arbeta fram den steg för steg.
Om övningen är för svår, börja med att hitta på en förenklad variant av problemet och lösa detta.
Du kan när som helst köra kod i Interactive C# och när som helst nollställa resultatet (med #reset), så ta chansen att experimentera.
Om du kör fast, testa att lösa problemet med penna och papper, antingen med riktig C#-kod eller med diagram och "pseudokod".
När du har tagit fram en lösning, testa den på några olika kombinationer av indata för att se till den verkligen är korrekt.
Vissa övningar efterfrågar varianter som är avsiktligt kluriga. Om du fastnar på någon av dessa, fortsätt med de andra övningarna och återvänd senare.
Du behöver inte klara av samtliga övningar på tiden i klassrummet.
För var och ett av de matematiska uttrycken nedan, skriv ett program som beräknar samma uttryck och sparar resultatet i variabeln result. (För dessa program behöver du inte ha några variabler för indata som i resten av övningarna.)
Skriv ett program som skapar en sträng och sparar true i variabeln authorized om strängen är "secret123", annars false.
Kan du skriva en variant av programmet som inte använder likhetsoperatorn? (==)
Skriv ett program som skapar en siffra och sparar true i variabeln comfortable om siffran ligger innanför den rekommenderade celsiustemperaturen i en lägenhet (mellan 18 och 26 grader), annars false.
Skriv två varianter av programmet: en som enbart använder disjunktionsoperatorn (||) och likhetsoperatorn (==) och en som använder valfria operatorer förutom dessa.
Skriv ett program som räknar ut om en person kan bli USA:s president. Programmet ska skapa tre värden – ett födelseland, en ålder och antalet gånger som personen tidigare har valts till president – och spara true i variabeln eligible om personen kan bli president, false annars. Kraven för att kunna bli president är följande: måste vara född i USA, måste vara minst 35 år gammal och får bara ha valts till president högst en gång tidigare.
Skriv en variant av programmet där man kan få dispens från de vanliga kraven om man uppfyller något annat anmärkningsvärt krav som du själv väljer, exempelvis: äger mer än 100 miljarder kronor, har programlett en dokusåpa eller har räddat jorden från utomjordingar. En person som inte har gjort något av detta ska fortfarande kunna bli president utifrån de vanliga kraven.
Skriv ett program som beräknar en persons BMI. Programmet ska skapa två värden – en längd i meter och en vikt i kilogram – och spara resultatet i variabeln bmi. Formeln för att beräkna BMI är följande:
Kom ihåg att är samma som att multiplicera med sig självt.
Skriv två varianter av programmet: en med samtliga operatorer på en rad och en som använder högst en operator per rad.
Skriv ett program som konverterar en temperatur i Fahrenheit till motsvarande temperatur i Celsius. Programmet ska skapa ett värde – en temperatur i Fahrenheit – och spara resultatet i variabeln celsius. Formeln för att beräkna Celsius är följande:
Skriv två varianter av programmet: en med samtliga operatorer på en rad och en som använder högst en operator per rad.
Skriv en variant av programmet som gör motsatsen: konverterar en temperatur i Celcius till motsvarande temperatur i Fahrenheit.
I den exakta definitionen av formeln från Fahrenheit till Celsius används inte siffran utan uttrycket . Skriv en variant av programmet som använder detta istället. Stöter du på något problem? Kan du i så fall förklara detta? (För mer om detta, se uppgift 9.)
Skriv ett program som skapar två värden – antalet kronor som en person har i kontanter och antalet kronor som personen har på sitt bankkonto – och sparar ett meddelande i variabeln message som beskriver personens totala förmögenhet. Om personen exempelvis har 100 kronor i kontanter och 500 kronor på banken ska meddelandet vara följande: "Din förmögenhet: 600 kronor".
Skriv två varianter av programmet: en med samtliga operatorer på en rad och en som använder högst en operator per rad.
Skriv om följande uttryck så att det inte använder sig av konjunktionsoperatorn (&&): bool result = !(x && y)
Ledtråd: De Morgan
Hur många olika kombinationer av x och y måste du testa för att bekräfta att ditt omskrivna uttryck är likvärdigt det ursprungliga?
Skriv ett program som jämnt fördelar en godispåse mellan barnen på ett födelsedagskalas. Programmet ska skapa två värden – antalet barn på kalaset och det totala antalet godisbitar i påsen – och spara antalet godisbitar per barn i variabeln portion.
Testa din lösning med ett antal barn och ett totalt antal godisbitar som borde kräva att några godisbitar delas upp (eller "försvinner" när de vuxna fördelar dem), exempelvis 505 godisbitar och 10 barn, som borde ge 50 och en halv godisbitar per barn. Stöter du på något problem? Hur kan du lösa detta? Ledtråd: Casting and Type Conversions.
Skriv ett program som skapar ett antal sekunder och sparar ett meddelande i variabeln timer som beskriver sekunderna uttryckt i timmar, minuter och sekunder. Om antalet sekunder exempelvis är 3735 ska meddelandet vara följande: "1h, 2m, 15s".