Övningsuppgift 2 Datalogi I 2I1027/2I1035/2I1046 Beatrice Åkerblom 14 oktober 2003 Övningarnas innehåll Övningsuppgifterna i detta dokument är lämpliga att göra före lektion 3, det vill säga att alla uppgifterna skall gå att lösa med hjälp av det vi gått igenom på kursen till och med lektion 2. Övningar 1. Skriv ett Java-program som skriver ut alla tal mellan 1 och 20. 2. Skriv ett Java-program som skriver ut alla tal mellan 5 och 15. 3. Skriv ett Java-program som frågar användaren efter ett tal och som skriver ut talet 5 gånger. 4. Skriv ett Java-program som skriver ut alla tal mellan 1 och 5 baklänges. 5. Skriv ett Java-program som skriver ut varannat tal mellan 1 och 100. 6. Skriv ett Java-program som skriver ut följande mönster: 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 1
2 7. Skriv ett Java-program som skriver ut följande mönster: * *** ***** ******* 8. Skriv ett Java-program som skriver ut en multiplikationstabell med detta utseende: Multiplikationstabell 1 2 3 4 5 6 7 8 9 1 1 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18 3 3 6 9 12 15 18 21 24 27 4 4 8 12 16 20 24 28 32 36 5 5 10 15 20 25 30 35 40 45 6 6 12 18 24 30 36 42 48 54 7 7 14 21 28 35 42 49 56 63 8 8 16 24 32 40 48 56 64 72 9 9 18 27 36 45 54 63 72 81 Tips: ett enkelt sätt att se till att alltid använda två positioner till utskriften av värdet i multiplikationstabellen är att testa på om värdet är mindre än 10 och skriva ut ett extra blanktecken före talet i dessa fall. Det vill säga: if (multiptal < 10) { System.out.print( );} 9. Skriv ett Java-program som frågar användaren efter ett intervall och sedan skriver ut talen i detta intervall. Start: 37 Stopp: 48 37 38 39 40 41 42 43 44 45 46 47 48 10. Ändra programmet ovan så att talen skrivs ut med 10 tal på varje rad. Start: 63 Stopp: 98 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 11. Ändra programmet ovan så att man skall ange ett startvärde och sedan hur många tal som skall skrivas ut. Start: 16 Antal: 18 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
3 12. Ändra programmet ovan så att man även läser in hur många tal som skall skrivas ut på varje rad. Start: 27 Antal: 10 Antal per rad: 3 27 28 29 30 31 32 33 34 35 36 13. Ändra programmet ovan så att man skriver ut var tredje tal istället. Start: 27 Antal: 5 Antal per rad: 2 27 30 33 36 39 14. Ändra programmet ovan så att man även läser in hur stort intervallet mellan de utskrivna talen skall vara. Start: 11 Antal: 13 Antal per rad: 8 Intervall: 4 11 15 19 23 27 31 35 39 43 47 51 55 59 15. Skriv ett Java-program som låter användaren mata in två heltal och sedan räknar ut summan av dessa heltal och sriver ut resultatet av beräkningen på skärmen. 16. Skriv ett Java-program som låter användaren mata in en textsträng som sedan skrivs ut 10 gånger på skärmen. 17. Utöka programmet ovan med att fråga användaren hur många gånger man vill att strängen skall skrivas ut på skärmen. Se sedan till att strängen skrivs ut rätt antal gånger. Mata in en sträng: Kuckeliku Hur många gånger skall den skrivas ut? : 3 1> Kuckeliku 2> Kuckeliku 3> Kuckeliku
4 18. Skriv ett Java-program som låter användaren mata in ett antal heltal. Inläsningen av heltal skall fortsätta till dess att användaren svarar N på frågan om han eller hon vill mata in fler tal. Efter att inmatningen avslutats skall programmet räkna ut medelvärdet på de inmatade talen och skriva ut det på skärmen. 19. I Byköpingsbanken finns 3 olika slags konton, betecknade med bokstäverna A, B och C. Skillnaderna mellan dessa konton är räntesatsen som är 7% på A-konton, 8% på B-konton samt 8.5% på C-konton. BKBanken behöver nu ett program som för kunderna räknar ut hur stor behållning inklusive ränta som finns på kontot vid årsslutet varje år mellan ett start och ett slutår. Vi förutsätter här att pengarna alltid står inne hela år... Om behållningen vid årets början är X kronor så blir den vid årets slut (inkl ränta) X * (1+räntesats/100), om räntesatsen är 7% skall behållningen bli X * 1.07. Denna beräkning upprepas varje år. Ert program skall fråga användaren om kontotyp, behållning, startår och slutår. Därefter skall en tabell skrivas ut. Exempel på programdialog: Ange kontotyp: A Ange behållning: 1000 Ange startår: 1997 Ange slutår: 2002 År Behållning inkl ränta ------------------------------------- 1997 1000.00 1998 1070.00 1999 1144.90 2000 1225.04 2001 1310.80 2002 1402.55 Tillägg: Lägg till indatakontroller så att det kontrolleras att användaren anger korrekt kontotyp, en positiv behållning samt att slutåret är större än startåret. Om felaktigt värde matas in skall användaren få tillfälle att mata in ett nytt värde. Ni kan dock förutsätta att användaren alltid matar in ett värde av rätt sort om ni alltså frågar efter en integer så matas ett heltal in, detta tal kan dock ha fel värde... Tänk på att användaren kan mata in fel värde flera gånger i rad...
5 20. Skriv ett Java-program som skriver ut ett enkelt stapeldiagram med 10 staplar i terminalfönstret. Programmet skall först låta användaren mata in 10 stycken stapelhöjder. Vid inläsningen skall kontrolleras att alla staplar har en höjd som ligger mellan 1 och 25. Om användaren matar in ett värde som inte ligger inom detta intervall skall han eller hon få ett felmeddelande och en ny möjlighet att mata in ett korrekt värde. Efter inmatningen skall programmet skriva ut alla staplarna på skärmen med hjälp av asterisker ( * ). Stapel 1: 12 Stapel 2: 23 Stapel 3: 38 Stapel 3: 8 Stapel 4: 19 Stapel 5: 11 Stapel 6: 43 Stapel 6: -7 Stapel 6: 312 Stapel 6: 7 Stapel 7: 17 Stapel 8: 11 Stapel 9: 18 Stapel 10: 3 Här är stapeldiagrammet: ************ *********************** ******** ******************* *********** ******* ***************** *********** ****************** *** 21. Ändra programmet ovan så att stapeldiagrammet skrivs ut på höjden istället.