Iteracija

Iz MaFiRaWiki

  • Pojem iteracija izhaja iz latinske besede iterum, kar v prevodu pomenu ponovno, zopet.


Program v katerem koli programskem jeziku sestavljajo;

  • Stavki
  • Zanke
  • ...

Program v katerem koli programskem jeziku je praviloma sestavljen iz stavkov.

Pogosto stavke vpletemo v zanke. Kolikokrat se zanka izvede = število ponavljanj zanke ali število iteracij

Zgled 1:

Največji skupni delitelj dveh pozitivnih celih števil

Največji delitelj dveh pozitivnih celih celih je največje celo število, ki deli obe števili.

NSD(a,b) = \left\{ \begin{matrix} b\qquad\qquad\qquad\quad & ;\ a\ mod\ b = 0 \\ NSD(b, a\ mod\ b) & ;\ sicer\qquad\quad \end{matrix}\right\}

  1. // najvecji skupni delitelj dveh celih stevil
  2. public class N_S_D_I
  3. {
  4. public static int n_s_d_i(int stevilo_a, int stevilo_b)
  5. {
  6. int stevilo_pom ;
  7. while (stevilo_a % stevilo_b != 0)
  8. {
  9. stevilo_pom = stevilo_a ;
  10. stevilo_a = stevilo_b ;
  11. stevilo_b = stevilo_pom % stevilo_b ;
  12. }
  13. return stevilo_b ;
  14. }
  15.  
  16. public static void main(String[] args)
  17. {
  18. String niz_stevilo_a ;
  19. String niz_stevilo_b ;
  20. int stevilo_a ;
  21. int stevilo_b ;
  22. niz_stevilo_a = args[0] ;
  23. niz_stevilo_b = args[1] ;
  24. stevilo_a = Integer.parseInt(niz_stevilo_a);
  25. stevilo_b = Integer.parseInt(niz_stevilo_b);
  26. System.out.println() ;
  27. System.out.println( " Najvecji skupni delitelj stevil " + stevilo_a + " in " + stevilo_b +
  28. " je stevilo: " + n_s_d_i(stevilo_a, stevilo_b) + " .") ;
  29. System.out.println() ;
  30. }
  31. }

  1. // najvecji skupni delitelj dveh celih stevil
  2. public class N_S_D_R
  3. {
  4. public static int n_s_d_r(int stevilo_a, int stevilo_b)
  5. {
  6. if (stevilo_a % stevilo_b == 0)
  7. return stevilo_b ;
  8. else
  9. return n_s_d_r(stevilo_b, stevilo_a % stevilo_b);
  10. }
  11.  
  12. public static void main(String[] args)
  13. {
  14. String niz_stevilo_a ;
  15. String niz_stevilo_b ;
  16. int stevilo_a ;
  17. int stevilo_b ;
  18. niz_stevilo_a = args[0] ;
  19. niz_stevilo_b = args[1] ;
  20. stevilo_a = Integer.parseInt(niz_stevilo_a);
  21. stevilo_b = Integer.parseInt(niz_stevilo_b);
  22. System.out.println() ;
  23. System.out.println( " Najvecji skupni delitelj stevil " + stevilo_a + " in " + stevilo_b +
  24. " je stevilo: " + n_s_d_r(stevilo_a, stevilo_b) + " .") ;
  25. System.out.println() ;
  26. }
  27. }

Zgled 2:

Fibonacijevo zaporedje

1, 1, 2, 3, 5, 8, 13, 21, ...

  1. // Fibonacijevo zaporedje
  2. public class Fibonaci_I
  3. {
  4. // izracunajmo n -ti clen Fibonacijevega zaporedja -iterativno
  5. public static int fibonaci_n_i(int stevilo_n)
  6. {
  7. int stevilo_fibonaci_1 ;
  8. int stevilo_fibonaci_2 ;
  9. int stevilo_fibonaci ;
  10. int stevilo_pom ;
  11. int clen_zap ;
  12. stevilo_fibonaci_1 = 1 ;
  13. stevilo_fibonaci_2 = 1 ;
  14. clen_zap = 2 ;
  15.  
  16. while (clen_zap < stevilo_n )
  17. {
  18. clen_zap = clen_zap + 1 ;
  19. stevilo_pom = stevilo_fibonaci_2 ;
  20. stevilo_fibonaci_2 = stevilo_fibonaci_1 + stevilo_fibonaci_2 ;
  21. stevilo_fibonaci_1 = stevilo_pom ;
  22. }
  23. stevilo_fibonaci = stevilo_fibonaci_2 ;
  24. return stevilo_fibonaci ;
  25. }
  26.  
  27. public static void main(String[] args)
  28. {
  29. String niz_stevilo_n ;
  30. int stevilo_n ;
  31. niz_stevilo_n = args[0] ;
  32. stevilo_n = Integer.parseInt(niz_stevilo_n);
  33. System.out.println() ;
  34. System.out.println(stevilo_n + " -ti clen fibonacijevega zaporedja: " + fibonaci_n_i(stevilo_n) + " . ") ;
  35. System.out.println() ;
  36. }
  37. }

  1. // Fibonacijevo zaporedje
  2. public class Fibonaci_R
  3. {
  4. // izracunajmo n -ti clen Fibonacijevega zaporedja -z rekurzijo
  5. public static int fibonaci_n_r(int stevilo_n)
  6. {
  7. int stevilo_fibonaci ;
  8. if (stevilo_n == 1 || stevilo_n == 2)
  9. {
  10. stevilo_fibonaci = 1 ;
  11. }
  12. else
  13. {
  14. stevilo_fibonaci = fibonaci_n_r(stevilo_n - 1) + fibonaci_n_r(stevilo_n - 2) ;
  15. }
  16. return stevilo_fibonaci ;
  17. }
  18.  
  19. public static void main(String[] args)
  20. {
  21. String niz_stevilo_n ;
  22. int stevilo_n ;
  23. niz_stevilo_n = args[0] ;
  24. stevilo_n = Integer.parseInt(niz_stevilo_n);
  25. System.out.println() ;
  26. System.out.println(stevilo_n + " -ti clen fibonacijevega zaporedja: " + fibonaci_n_r(stevilo_n) + " . ") ;
  27. System.out.println() ;
  28. }
  29. }
Osebna orodja