Differences
This shows you the differences between two versions of the page.
|
pabop_e2 [2017-09-01 12:54] |
pabop_e2 [2022-07-18 11:20] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Extrauppgifter 2 ====== | ||
| + | |||
| + | 1. | ||
| + | Skriv en funktion | ||
| + | **bool isprime(int $tal)** | ||
| + | som tar emot ett tal och undersöker om det är ett primtal. Om det är ett | ||
| + | primtal skall funktionen returnera true annars false. | ||
| + | Utgå från att det endast kommer godkända värden till funktionen. | ||
| + | Du skall använda funktionen i följande program. | ||
| + | |||
| + | <code php> | ||
| + | |||
| + | $antal = 100; | ||
| + | echo "Detta är alla primtal mellan 2 och " . $antal . " | ||
| + | $i=2; | ||
| + | while ($i <= $antal) { | ||
| + | if(isprime($i)){ | ||
| + | echo $i . " | ||
| + | } | ||
| + | $i++; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | 2. | ||
| + | I ett samboförhållnade hade det i många år varit prat om att man skulle gifta sig. | ||
| + | När ämnet än en gång togs upp (2002-12-03) sade mannen i huset att han hade som | ||
| + | enda villkor att han skulle gifta sig ett datum och klockslag där alla tal var primtal. | ||
| + | a. Skriv ett program som listar alla rimliga datum som är primtal. | ||
| + | Utgå från att mannen var 36 år. Obs! år, månad och dag skall vara primtal. | ||
| + | b. Skriv ett tillägg som listar alla klockslag som är primtal. | ||
| + | |||
| + | Du skall använda dig av din funktion isprime() | ||
| + | |||
| + | I exemplet ovan så skrev mannen ett program som listade alla godkända datum och den blivande frun fick välja. | ||
| + | De gifte sig i Arnäs kyrka 2003-07-05 kl 13.59 och är idag mycket lyckligt gifta. Inte undra på... | ||
| + | |||
| + | 3. | ||
| + | Skriv en funktion | ||
| + | **double my_sqrt(double $tal)** | ||
| + | som beräknar ett närmevärde till roten ur ett tal, du skall använda följande enkla algoritm: | ||
| + | |||
| + | IN A | ||
| + | X = A/2 | ||
| + | upprepa 10 ggr | ||
| + | X = (A/X + X)/2 | ||
| + | UT X | ||
| + | |||
| + | Funktionen skall användas av ett program. | ||
| + | |||
| + | 4. | ||
| + | Du skall göra om funktionen så att man skickar med hur många gånger man skall upprepa | ||
| + | **double my_sqrt(double $tal, int $n)** | ||
| + | Pröva med lite oilka tal för att se hur många gånger som är lämpligt för att få att värde som kan anses som ok. | ||
| + | |||
| + | 5. | ||
| + | Skriv ett program som läser in ett tal och faktorisera det i primtal. | ||
| + | |||
| + | 6. | ||
| + | Skriv ett program som hittar alla perfekta tal under 10 000 (4 st).\\ | ||
| + | Ett perfekt tal är ett heltal som är större än 1 och som är summan av sina delare. \\ | ||
| + | Som delare räknas talet 1 in, men naturligtvis inte talet självt (då hade de perfekta talen definierats bort).\\ | ||
| + | Exempel: 6 är ett perfekt tal eftersom det är delbart med 1, 2 och 3 och summan av dessa är just 6. | ||
| + | |||
| + | |||
| + | Det finns flera olösta gåtor angående de perfekta talen:\\ | ||
| + | - Man vet inte om det finns ändligt eller oändligt många perfekta tal. \\ | ||
| + | - Hittills har alla perfekta tal man hittat slutat på 6 eller 28. Men ingen har lyckats visa om alla perfekta tal gör det. \\ | ||
| + | - Hittills har man inte lyckats hitta något udda perfekt tal. Men det är inte bevisat att det inte finns några sådana.\\ | ||
| + | - 2005 känner man till 42 perfekta tal. | ||
| + | |||
| + | 7. | ||
| + | Vad kommer följade program att skriva ut? | ||
| + | <code php> | ||
| + | <?php | ||
| + | function printname($name, | ||
| + | if($n<1) { | ||
| + | return 0; | ||
| + | } | ||
| + | printname($name, | ||
| + | echo $name . " n = " . $n . " | ||
| + | } | ||
| + | |||
| + | printname(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | 8. | ||
| + | Ett program ska " | ||
| + | Programkörnings exempel: | ||
| + | Diamantens storlek: 5 | ||
| + | ¤ | ||
| + | ¤ ¤ | ||
| + | ¤ ¤ ¤ | ||
| + | ¤ ¤ ¤ ¤ | ||
| + | ¤ ¤ ¤ ¤ ¤ | ||
| + | ¤ ¤ ¤ ¤ | ||
| + | ¤ ¤ ¤ | ||
| + | ¤ ¤ | ||
| + | ¤ | ||
| + | |||
| + | 9. | ||
| + | Gör ett program som läser in ett tal (max 5000) och skriver ut talet med romerska siffror. Kan ju vara klokt att googla lite om hur det egentligen funkar... | ||
| + | Skriv in ett tal: 9 | ||
| + | Blir med romerska siffror: IX | ||
| + | Skriv in ett tal: 49 | ||
| + | Blir med romerska siffror: XLIX (Ej IL) | ||
| + | Skriv in ett tal: 1999 | ||
| + | Blir med romerska siffror: MCMXCIX (Ej MIM) | ||
| + | Skriv in ett tal: 445 | ||
| + | Blir med romerska siffror: CDXLV (Ej CDVL) | ||
| + | |||
| + | 10. | ||
| + | UPPGIFT 1 – KANINER (uppgift nr1 ur kval till PO 2003)\\ | ||
| + | Kaniner är bra på att föröka sig. I den här uppgiften tänker vi oss att det finns obegränsat med hannar | ||
| + | och att inga kaniner dör. Vi ska försöka simulera hur många kaninhonor det finns efter varje månad om | ||
| + | det vid tiden 0 finns en enda nyfödd kaninhona. Vi antar att det tar x månader innan varje kaninhona är | ||
| + | könsmogen och att hon från och med denna ålder (x månader) varje månad föder en kull innehållande | ||
| + | y kaninungar av honkön. \\ | ||
| + | Indata: Programmet ska fråga efter honornas könsmognadsålder x; <m>1 <= x <= 5</ | ||
| + | kull y; <m>1 <= y <= 5</ | ||
| + | Utdata: Programmet ska skriva en rad för varje månad under totalt 10 månader \\ | ||
| + | Exempel: | ||
| + | Könsmognadsålder ? 2 | ||
| + | Honor per kull ? 1 | ||
| + | Efter 1 m: 1 | ||
| + | Efter 2 m: 2 | ||
| + | Efter 3 m: 3 | ||
| + | Efter 4 m: 5 | ||
| + | Efter 5 m: 8 | ||
| + | Efter 6 m: 13 | ||
| + | Efter 7 m: 21 | ||
| + | Efter 8 m: 34 | ||
| + | Efter 9 m: 55 | ||
| + | Efter 10 m: 89 | ||
| + | Förklaring: | ||
| + | ensam. Efter 2 månader har Lisa fått en kull. Efter 3 månader finns 3 honor eftersom Lisa fått ytterligare | ||
| + | en kull. Efter 4 månader finns 5 honor eftersom både Lisa och hennes första unge har fått varsin kull | ||
| + | med en hona i varje. | ||