Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
prog1_11 [2013-04-30 14:08]
Joakim Forsgren
prog1_11 [2018-04-09 09:10]
Daniel Viström
Line 21: Line 21:
  
 3a. 3a.
-Skriv en rekursiv funktion som anropar sig själv och på så sätt räknar ner heltalen  +Skriv en rekursiv funktion **calculate1($tal)** som anropar sig själv och på så sätt räknar ner heltalen  
-från till 1 och skriver ut samtliga tal.+från **$tal** till 1 och skriver ut samtliga tal.
  
-3b*+3b. 
-Skriv en rekursiv funktion som anropar sig själv och på så sätt räknar upp heltalen  +Skriv en rekursiv funktion **calculate2($tal)** som anropar sig själv och på så sätt räknar upp heltalen  
-från 1 till och skriver ut samtliga tal.+från 1 till **$tal** och skriver ut samtliga tal. \\ 
 +Tips: Det räcker att flytta en rad i koden för föregående uppgift.
  
 4. 4.
Line 34: Line 35:
 Skriv en rekursiv funktion **power($b,$n)** som beräknar b<sup>n</sup>, där **$n** är ett heltal större  Skriv en rekursiv funktion **power($b,$n)** som beräknar b<sup>n</sup>, där **$n** är ett heltal större 
 än noll och **$b** är ett decimaltal. än noll och **$b** är ett decimaltal.
-Ledning: Då $n = 1 kan funktionen returnera talet $b. Annars måste den returnera +Ledning: Då $n = 1 kan funktionen returnera talet **$b**. Annars måste den returnera 
 **$b * power($b,$n-1)**. **$b * power($b,$n-1)**.
  
Line 66: Line 67:
 10*. 10*.
 Skriv en rekursiv funktion **siffsum**, med en heltalsparameter **$n**. Funktionen ska returnera summan av siffrorna i talet. Skriv en rekursiv funktion **siffsum**, med en heltalsparameter **$n**. Funktionen ska returnera summan av siffrorna i talet.
 +
 +<php>
 +/*
 +<?php
 +function u1($n) {
 +  if ($n == 1) {
 +    return 4;
 +  }
 +  return 2*u1($n-1)-3;
 +}
 +echo "<br> u1, svar: " . u1(4);
 +
 +function u2($n) {
 +  if ($n == 1) {
 +    return 2.8;
 +  }
 +  return 1.12*u2($n-1);
 +}
 +echo "<br> u2, svar: " . u2(4);
 +
 +
 +echo '<br>u3 a och b';
 +function u3a($n) {
 +  echo '<br>' . $n;
 +  if ($n == 1) {
 +    return;
 +  }
 +  u3a($n-1);
 +}
 +u3a(5);
 +
 +function u3b($n) {
 +  if ($n == 1) {
 +    echo '<br>' . $n;
 +    return;
 +  }
 +  u3b($n-1);
 +  echo '<br>' . $n;
 +}
 +u3b(5);
 +
 +function u4($str, $antal){
 +  echo $antal . ':' . $str . '<br>';
 +  if ($antal == 1){  // Brytvillkor.
 +    return;
 +  }
 +  u4($str, $antal-1);
 +
 +}
 +echo '<br> u4:<br>';
 +u4('Hello World', 5);
 +
 +
 +function u5($b,$n) {
 +  if ($n == 1) {
 +    return $b;
 +  }
 +  return $b * u5($b,$n-1);
 +}
 +echo "<br> u5, svar: " . u5(2.2,3);
 +
 +function u6($n) {
 +  if ($n == 1) {
 +    return $n;
 +  }
 +  return $n * u6($n-1);
 +}
 +echo "<br> u6, svar: " . u6(4);
 +
 +function u7($n) {
 +  if ($n == 1) {
 +    echo "$n x 7 = " . $n*7 . "<br>";
 +    return;
 +  }
 +  u7($n-1);
 +  echo "$n x 7 = " . $n*7 . "<br>";
 +}
 +echo "<br> u7, svar: <br>";
 +u7(10);
 +function u8($n1,$n2) {
 +  if ($n1 > $n2) {
 +    return;
 +  }
 +  u8($n1,$n2-1);
 +  echo $n2 . ',';
 +}
 +echo "<br> u8, svar: ";
 +u8(3,6);
 +
 +function u9($n) {
 +  if ($n == 1) {
 +    return 15000;
 +  }
 +  return 1.04*u9($n-1)+400;
 +}
 +echo "<br> u9, svar: " . u9(3);
 +
 +
 +function u10($n) {
 +  if ((int)($n/10) == 0) {
 +    return $n;
 +  }
 +  return u10((int)($n/10)) + $n%10;
 +}
 +echo "<br> u10, svar: " . u10(981);
 +*/
 +</php>