12.5.6. Napisati program koji će za učitanu vrijednost N izračunati vrijednost izraza i ispisati::

Opis rješenja: Može se koristiti knan := k; za početnu vrijednost i u ptelji knan := knan * k; II varijanta sadrži uvećanje proizvoda pri svakom prolazu za k: p=p*k*i.

Listing programa:

PROGRAM p12510321;
USES
 WinCRT;
VAR
  i, n, k, knan : Integer;
  znak :-1..1;
  s, p: Real;
BEGIN
  Write('n=');
  Readln(n);
  Write('k=');
  Readln(k);
  znak := 1;
  s := 0;
  knan := k;
  p:=1;
  FOR i:=1 TO n DO
    BEGIN
      p := p * i;
	  knan := knan * k;
      s := s + znak * knan * p;
      znak := -znak;
    END;
  Writeln('s=',s:4:0);
END.

II Varijanta
PROGRAM p12510321_2;
USES
 WinCRT;
VAR
  i,n, k: Integer;
  s, p, s1, s2 : Real;
BEGIN
  Write('k=');
  Readln(k);
  Write('n=');
  Readln(n);
  s := 0;
  s1:=0;
  s2:=0;
  p:=1;
  FOR i:=1 TO n DO
    BEGIN
      p:=p*k*i;
      IF i mod 2 <>0 THEN
        s1 := s1 + p
      ELSE
       s2 := s2 + p;
    END;
    s:=s1-s2;
   Writeln('s=',s:4:2);
END.

Ispis na ekranu:

Index