Differences

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

Link to this comparison view

amprog_10 [2018-03-16 12:12]
Anders Mosshäll created
amprog_10 [2022-07-18 13:20]
Line 1: Line 1:
-====== Anders Genomgång 10 - Rekursion ====== 
- 
-==== Exempel1 ==== 
- 
-<code php> 
- 
-<?php 
-// EXEMPEL 1 
- 
-/* 
- * Rekursiv funktion som beräknar värdet av den rekursiva 
- * talföljden där a(1) = 5 och a(n+1)=a(n)+4. 
- */ 
-function a($n){ 
-  if ($n == 1){  // Brytvillkor 
-    return 5;    // a(1) = 5 
-  } else { 
-    return a($n-1) + 4; 
- // Funktionen anropar sig själv med ett nytt värde. 
- // Fortgår tills brytvillkoret nås. 
-        // Observera att flera kopior av funktionen är igång samtidigt 
-        // (lika många som antal gjorda (ej avslutade) anrop). 
-        // Varje kopia har sina egna unika värden på parametrar och lokala variabler. 
-  }   
-} 
- 
- 
-include('head.php');                   
- 
-echo 'a1 = ' . a(1) . '<br>'; 
-echo 'a2 = ' . a(2) . '<br>'; 
-echo 'a3 = ' . a(3) . '<br>'; 
-echo 'a4 = ' . a(4) . '<br>'; 
-echo 'a5 = ' . a(5) . '<br>'; 
- 
-include('foot.php'); 
- 
-/* Programmet skriver ut: 
-  a1 = 5 
-  a2 = 9 
-  a3 = 13 
-  a4 = 17 
-  a5 = 21 
-*/ 
-?> 
- 
-</code> 
- 
-==== Exempel2 ==== 
- 
-<code php> 
- 
-<?php 
-// EXEMPEL 2 
- 
-/* 
- * Rekursiv funktion som skriver ut ett namn. 
- * Rekursion går att använda istället för while om man vill. 
- */ 
-  
-function namnutskrift($namn, $antal){ 
-  echo $namn . $antal . '<br>'; 
-  if ($antal == 1){  // Brytvillkor. 
-  } else { 
-    namnutskrift($namn, $antal-1); 
- // Funktionen anropar sig själv med ett nytt värde. 
- // Fortgår tills brytvillkoret nås. 
-  } 
-  echo 'Hej' . $antal . '<br>';  // Skrivs ut när den "inre"-funktionen är färdigkörd.   
-} 
- 
- 
-include('head.php');                   
- 
-namnutskrift('Anders',5); 
- 
-include('foot.php'); 
- 
-/* Programmet skriver ut: 
-  Anders5 
-  Anders4 
-  Anders3 
-  Anders2 
-  Anders1 
-  Hej1 
-  Hej2 
-  Hej3 
-  Hej4 
-  Hej5 
-*/ 
-?> 
- 
-</code>