Problemlösning
Grundproblem
1.
Gör ett program där man matar in ett tal. Programmet skall beräkna summan av alla heltal från ett upp till och med det du matade in.
Ex. Mata in ett tal: 4 Summan blir: 10
Extrauppgift: Gör så att även beräkningen skrivs ut korrekt, t.ex.
1+2+3+4=10
2.
Skriv ett program som beräknar summan av talen 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 med hjälp av en while-sats.
Array får ej användas.
3.
Skriv ett program som beräknar summan av talen 4, 7, 10, 13, 16, 19, 22, 25, 28, 31 med hjälp av en while-sats.
Array får ej användas.
4.
Skriv ett program som beräknar produkten av talen 1, 2, 3, 4, 5, 6, 7, 8, 9 med hjälp av en while-sats.
Array får ej användas.
5.
I ett program har du ett fält (array) $tal = [12,9,5,13,67,7,2,36,47,5,23,4,20,9,47,13,14,7,48].
a) Skriv ut talen ur fältet med hjälp av en while-sats.
b) Beräkna och skriv ut summan av talen i fältet. Gör detta utan att använda dig av array-funktion för summa.
c) Ta reda på och skriv ut det största och minsta talet ur fältet. Gör detta utan att sortera fältet och utan att använda dig av array-funktioner för max och min.
6.
Gör en sida där du matar in två positiva heltal som täljare och nämnare till en division. Programmet skall sedan skriva ut heltalsdelen och resten vid divisionen.
Ex. 17/3 ger heltalsdelen 5 och resten 2 (17/3 = 5 + 2/3).
Tips: använd (int)(tal1/tal2) och %.
7.
Läs in talen x, y, z. Lägg ihop dem och skriv ut summan. Om minst två av talen är lika räknas de dock inte.
8.
Läs in talen x, y, z. Lägg ihop dem och skriv ut summan. Dock, om något av värdena är 13 så räknas inte det värdet till summan, och värdena efter räknas inte heller. T.ex. om x är 13 så räknas inte y eller z heller.
Lite svårare problem
*9.
Skriv ett program där man matar in ett 3-siffrigt tal.
Programmet ska sätta ihop ett nytt tresiffrigt tal med siffrorna i omvänd ordning.
Exempel på körning:
Du angav: 267 Siffrorna i omvänd ordning : 762
Tips: Använd dig av heltalsdivision för att dela upp talet i separata siffror.
OBS! Man får inte använda sig av strängar för att lösa uppgiften.
*10.
Räkna åt Ingemar (Problem taget ur Forskning och framsteg)
Ingemar är bonde. På sin gård har han kycklingar och kaniner.
Allt som allt finns 50 huvuden och 140 ben hos djuren.
Hur många kycklingar och hur många kaniner har Ingemar?
Lämplig utskrift från ditt program:
Svar: 30 kycklingar och 20 kaniner.
*11.
En palindrom är en siffer- eller textrad som är sådan att den blir samma om man läser den framlänges eller baklänges., t.ex. 12321, 55555, 45554, 11611. Skriv ett program som läser in ett femsiffrigt tal och avgör om det är en palindrom. (Tips: använd heltalsdivision för att dela upp talet i separata siffror.)
OBS! Man får inte använda sig av strängar för att lösa uppgiften.
*12.
Skriv ett program som läser in ett heltal (maximalt 2 000 000 000) och avgör om det är en palindrom.
OBS! Man får inte använda sig av strängar för att lösa uppgiften.
*13.
41, 5, 26, 2, 88, 9, 38, 67, 14, 30, 25, 44, 11, 94, 58
Du skall lägga ihop tre av talen ovan så att summan blir 97.
Försök att skriva ett program som löser uppgiften åt dig.
Tips: Använd dig av en array.
*14.
Mata in ett heltal större än eller lika med 20 i ett formulär. Gör kontroll av att talet är ok.
Skapa sedan tre arrayer med 10 slumptal var. Slumptalen ska vara positiva heltal mindre än talet du matade in. Alla tal i en och samma array ska vara olika.
Hitta alla varianter där ett tal från varje array adderas och blir lika med det inmatade talet.
*15.
Skapa ett program som låter användaren gissa ett tal via ett formulär. Talet ska ha slumpats först (mellan 1 och 100). Är gissningen högre än talet ber programmet om en lägre gissning och vice versa. Max antal gissningar är 5. Gissar man rätt skall grattis skrivas ut och programmet avslutas.
*16.
Skriv ett program som läser in en bokstav och som sedan kollar om tecknet kommer före bokstaven h i alfabetet. Om exempelvis den inmatade bokstaven är d skrivs ”d kommer först”, annars skrivs ”h kommer först”. Bokstäver före andra bokstäver har ett mindre värde. Få det att funka med både små och stora bokstäver.
*17.
Tre heltal som fungerar som sidor i en rätvinklig triangel kallas för en pythagoreisk trippel, t.ex. 3, 4, 5. Hitta alla pythagoreiska tripplar där inget av talen är större än 500. Inga utskrivna tripplar ska innehålla exakt samma siffror som en annan trippel men i annan ordning.
*18.
Om du får tid över kan du prova på att lösa några uppgifter från gamla programmeringsolympiader.