Differences
This shows you the differences between two versions of the page.
pabop_e2 [2011-02-15 09:40] Joakim Forsgren |
pabop_e2 [2022-07-18 13:20] |
||
---|---|---|---|
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. | ||