Silnia w javie - iteracyjnie

Algorytm rozwiązywania równania liniowego


Algorytm iteracyjny obliczania funkcji silnia

import java.util.Scanner;
public class Sil_iter {
  public static void main(String[] args) {
    int n;
    Scanner klaw=new Scanner(System.in);
    System.out.print("n = ");
    n=klaw.nextInt();
    int i=1, s=1;
    while(i<=n){
      s=s*i;
      i++;
    }
    System.out.print(n);
    System.out.print("! = ");
    System.out.println(s);
  }
}

  W pierwszej linii programu informujemy, że będziemy korzystali z klasy Scanner z biblioteki util javy. Klasa Scanner zostanie użyta do wczytywania danych wejściowych w naszym programie. W języku java wykonywanie programu rozpoczyna się od wywołania publicznej funkcji statycznej main() zawartej w klasie, której nazwa jest zgodna z nazwą programu (program musi zostać zapisany w pliku Sil_iter.java i następnie skompilowany do pliku Sil_iter.class). Definicja klasy Sil_iter rozpoczyna się w 3 linii programu. Linia 4 zawiera początek definicji funkcji main, jest to początek realizacji naszego algorytmu (blok START (1)). W kolejnej linii deklarujemy zmienną n typu integer, której za chwilę użyjemy do wczytania z klawiatury argumengtu funkcji silnia. W javie zmienne można deklarować w dowolnym miejscu przed ich użyciem, dlatego nie deklarujemy tutaj od razu zmiennych i oraz s. W 6 linii deklarujemy i inicjujemy zmienną klaw jako obiekt typu Scanner. Podajemy, że źródłem danych tekstowych będzie strumień System.in, czyli klawiatura.

 Linie od 7 i 8 realizują operację wejścia/wyjścia (2), w której pobierane są dane wejściowe - n, liczba, dla której chcemy obliczyć wartość funkcji silnia.

  W linii 9 deklarujemy zmienne i oraz s, nadając im równocześnie wartości początkowe (w obu przypadkach równe 1) (3).

  Instrukcja while jest odpowiednikiem bloku wyboru (4) z naszego algorytmu. Instrukcje zawarte w liniach 11 - 12 (blok 5) będą wykonywane tak długo dopóki jest spełniony warunek w instrukcji while, czyli dopóki i jest mniejsze lub równe n. Gdy stale zwiększane i stanie się większe od n przechodzimy do instrukcji za pętlą while, rozpoczynających się w linii 14. W liniach 14 do 16 następuje wypisanie wyniku (6).

 Nawias klamrowy } z linii 17 kończy funkcję main i zarazem działanie całego programu (blok końca algorytmu (7)).

 Nawias klamrowy } z linii 18 kończy definicję klasy Sil_iter.