100. Vad för output väntar du dig av följande program? ----- #include int main() { printf("Forsta..."); printf("andra..."); printf("tredje...\n"); return 0; } ----- 101. I följande program finns ett syntaxfel (felskrivning i koden). Detta gör att programmet inte kommer gå att kompilera. Hitta felet! ----- #include int main() { printf("Hej alla! :D\n"); return 0 } ----- 102. Skriv ett program som ger följande utskrift. ----- Jag ar ett C-program. Jag ar skriven av . Vad fa ovningar det blev till detta kapitel! :o ----- 200. I följande program finns ett allvarligt fel, som gör att koden inte kommer att kompileras. Hitta det! ----- #include int main() { tidningar = 14; printf("Antal tidningar ar %i\n", tidningar); return 0; } ----- 201. Även i detta program finns ett fel, hitta det. ----- #include int main() { int tidningar; tidningar = 3; printf("Jag har %i tidningar kvar, upprepar, bara %i tidningar!\n", tidningar); return 0; } ----- 202. Följande program räknar ut tiden det tar att färdas mellan två punkter. Variabler används för samtliga faktorer. ----- #include int main() { int kmh, tid, stracka; //kmh är hastigheten mätt i kilometer i timmen. tid är tiden i timmar. stracka är sträckan i kilometer. stracka = 440; //här ställer vi in hur många kilometer som färdats (440 kmh = 44 mil, ungefär från stockholm till nedre småland) kmh = 110; //vi åker på motorled hela resan, i 110 km/h tid = stracka / kmh; //vi gör en division för att få ut tiden det tog, i timmar printf("En resa pa %i km, med en hastighet av %i km/h, tar %i timmar.\n", stracka, kmh, tid); return 0; } ----- Ändra detta program så att det istället räknar ut sträckan som färdats. Om du inte läst grundläggande fysik: t = s / v s = v * t v = s / t s är sträckan, v är hastigheten, och t är tiden Den formel vi använde i programmet som det ser ut nu är den översta, tid är lika med sträckan genom hastigheten. Du vill använda den mittersta formeln, sträckan är lika med hastigheten gånger tiden. 203. Som bonus kan du vidareutveckla programmet från övning 202 till att även räkna ut hastigheten baserat på tiden och sträckan. 204. Skriv ett program som räknar ut hur mycket en bokförsäljare tjänar! Bokförsäljarens grundlön är 480 kronor per dag och för varje bok han säljer får han en provision på 20 kronor. Programmet ska använda sig av fyra variabler, en för grundlönen, en för provisionen, en för hur många böcker han säljer, samt en sista för hans totala dagslön. Du väljer själv hur många böcker han ska ha sålt. 205. Lägg till i programmet från övning 204 så att det räknar ut hans månadslön. Detta program ska ha samma variabler som det förra, plus en för antal dagar han har arbetat den månaden. 206. Utveckla programmet från övning 204 så att det räknar ut hur mycket pengar han har kvar efter att han har köpt ett föremål för 320 kronor. 207. Vad för värden kan man lagra i en variabel av typen int? double? char? 300. I detta program finns ett fel som endast kommer att generera en varning när du kompilerar, men gör programmet oanvändbart. Hitta det! ----- #include int main() { int alder; printf("Skriv in hur gammal du ar: "); scanf("%i", alder); printf("Aha, du är %i ar gammal!", alder); return 0; } ----- 301. Bygg vidare på övning 203, fast låt användaren skriva in sträcka och tid. Kommunikationen med programmet kan se ut så här: ----- Valkommen till hastighetsutraknaren! Hur manga timmar har du rest? 4 Och hur många kilometer fardades du under dessa 4 timmar? 320 Okej, du rorde dig med en genomsnittshastighet på 80 km/h! ----- 302. Bygg vidare på programmet från övning 204. Låt användaren skriva in alla variabler. Så här kan användningen se ut: ----- Lonutrakningsprogrammet for saljare Vad ar din grundlon per dag i kronor? 630 Hur manga kronor far du i provision per salt objekt? 30 Hur manga objekt salde du idag? 3 Idag har du tjanat 720 kronor! ----- 303. Dags att experimentera. Ta följande program, och testa att skriva in olika höga tal. Beter den sig konstigt efter något tal? Vilket? ----- #include int main() { int heltal; scanf("%i", &heltal); printf("Talet du skrev in var: %i\n", heltal); return 0; } ----- 304. Nu ska du skriva ett program som räknar ut hur många A4-papper en bunt är, baserat på hur mycket den väger. Ett A4-papper väger ungefär 5 gram. Användaren ska skriva in hur mycket pappersbunten väger i gram, så ska programmet räkna ut hur många de är. Kommunikationen kan se ut så här: ----- Hur manga gram vager pappersbunten (endast A4-papper!)? 2000 Den bestar troligtvis av 400 papper. ----- 305. Det går också att skriva ett program liknande det förra, fast detta program räknar istället ut vikten baserat på hur stor bunten är. Detta program är lite klurigare att skriva. Interagerandet med användaren kan se ut som följer: ----- Obs! Alla matt ar i millimeter, kubikcentimeter och gram om inget annat anges. Mata endast in heltal! Buntens hojd (A4 ar 297 mm): 297 Buntens bredd (A4 ar 210 mm): 210 Buntens djup (10 st A4 ar 1 mm): 3 Din pappersbunt ar 187 kubik stor och vager 149 gram. ----- Användbara fakta: volym = bredd * höjd * djup (om alla mått är i mm, blir volymen i mm^3) för att konvertera mm^3 till cm^3 delar man volymen på 1000 papper väger 0.8 gram per cm^3 400. Vad väntar du dig för output av följande program? ----- #include int main() { int a; a = 23; printf("Hej!\n"); if (a == 24) //om a är 24 printf("Hejda! :D\n"); //skriv ut hejdå return 0; //och avsluta programmet printf("Farval!\n"); return 0; } ----- 401. Skriv ett program som läser in tre värden, längden på tre sidor i en triangel. Avgör sedan om dessa tre sidor faktiskt utgör en triangel. (I en triangel är summan av två sidor _alltid_ större än den tredje sidan.) Kommunikation kan se ut så här: ----- Mata in langden pa sida 1: 30 Mata in langden pa sida 2: 15 Mata in langden pa sida 3: 50 Din form ar inte en triangel. ----- 402. Du har just köpt en helikopterplatta, och det följde med ett antal meter staket till den. Skriv ett program som läser in helikopterplattans diameter och staketlängden, och sen avgör om staketet räcker hela vägen runt. En cirkels omkrets är som bekant lika med diameter * pi. Eftersom vi inte gått igenom decimaltal än skriver jag om detta till: omkrets ~= diameter * 314 / 100 Kommunikationen kan se ut så här: ----- Helikopterplattans diameter (m): 16 Staketlangden (m): 40 Staketet racker tyvarr inte. ----- 403. Du har denna gång köpt en kvadratisk jordplätt, och ska odla gräs. Du har köpt gräs för ett antal kvadratmeter, och vill veta om du behöver köpa mer. Programmet ska läsa in markkvadratens ena sida, hur många m^2 gräs det finns i en påse, samt hur många påsar du har köpt. Programmet ska sen skriva ut om gräset räcker, och om det inte gör det, hur mycket gräs mer du behöver köpa. Interageringen kan se ut till exempel som följer: ----- Ange markens sida (m): 6 Ange hur manga m^2 en pase racker for: 4 Ange hur manga pasar du kopt: 7 Det racker inte, du behover kopa 8 m^2 gras till. ----- 404. Du verkar spela monopol eller nåt. Nu har du köpt ett hotell. Du som ägare har just fått in listor på inkomst/spenderingar för hotellet. Ditt jobb är att ta reda på om hotellet går plus, back, eller är relativt stabilt. Självklart skriver du ett program för det. Programmet läser in två siffror, inkomster och utgifter. Programmet ska skriva ut hur hotellet ligger till. Detta program blir lite mer avancerat. Baserat på medelvärdet av inkomster och utgifter, ska den avgöra hur mycket plus/minus som räknas som "stabilt". Till exempel om inkomsterna och utgifterna ligger i tiotusen-kronors-klassen gör det inte så mycket om hotellet går back 500 kronor. Om inkomster och utgifter däremot ligger i hundrakronors-klassen får inte hotellet gå 90 kronor back. Vi bestämmer denna magiska gräns som +/- en tiondel av medelvärdet på inkomster och utgifter. Så här kan kommunikationen med programmet se ut: ----- Inkomster: 1290 Utgifter: 1423 Stabilt (mellan -135 och 135 fortjanst) ----- ----- Inkomster: 36 Utgifter: 47 Fara (under -4 fortjanst) ----- ----- Inkomster: 17365 Utgifter: 14926 Plus (over 1614 fortjanst) -----