[ЗМІСТ]      [Далі]       [Назад]      [Початок розділу]

 

3.3. Програмування арифметичного циклу

 

      У мові Паскаль передбачені тільки такі арифметичні цикли, які мають лічильник, причому інструкція Р не змінює вираз n і лічильник k, тобто

       k <- 0;

       повт n раз

          k <- k+1;                                        (Ln-P)

          Р

       кц,

де змінна k натуральна. Цикл вигляду (Ln-P) програмується так:

 

       for K:=1 to N do

       begin

          Pas(Р)

       end,

 

коли Р - ланцюг команд. Операторні дужки "begin - end" можна опустити, якщо Р не ланцюг інструкцій.

 

      Приклад 1P. Степінь з натуральним показником (задача 3.2).

    program Power;

       var х, у: real;

           k, n: word;

    begin

       write('х, n=? '); readln(х, n);

       у:= 1;

       for k:=1 to n do у:= у*х;

       writeln(х:5:2,' ^ ', n:2,'=', у:11:4)

    end.

 

      Приклад 2P. N член послідовності {tn} (задача 3.4).

    program Tn;

       var X, Т: real;

           K, N: word;

    begin

       write('х, n=? '); readln(X, N);

       Т:= 1;

       for K:=1 to N do Т:= - Т*Х/K;

       writeln(' Т = ', Т)

    end.

 

      Приклад 3P. Числа Фібоначчи (задача 3.6).

    program Fibonacci;

       var F, Т, Sf: integer;

           K, N: word;

    begin

       write('n=? '); readln(N);

       F:= 0; Sf:= 1;

       for K:=1 to N do begin

          Т:= F+Sf; F:= Sf; Sf:= Т

       end;

       writeln('Fib( ', N:2,' )= ', F:1)

    end.

 

      У мові Сі арифметичний цикл повинен містити лічильник за схемою, аналогічною (Ln-P) для Паскаля

      Цикл вигляду (Ln-P) у мові Сі програмується так:

 

      for (k=1; k<=n; k++)

            {

             C(Р)

            }

 

коли Р - ланцюг команд. Операторні дужки "{ - }" можна опустити, якщо Р не ланцюг інструкцій.

 

      Приклад 1C. Степінь з натуральним показником (задача 3.2).

#include <stdio.h>

 

/* Power */

main()

{

  double x, y;

  unsigned k, n;

 

  printf(х, n=?); scanf(“%lf %u”, &х, &n);

  у = 1;

  for (k = 1; k<=n; k++) у *= х;

  printf(“%lf ^ %u = %lf”,x,n,у);

}

 

      Приклад 2C. N член послідовності {tn} (задача 3.4).

#include <stdio.h>

 

/* Tn */

main()

{

  double x, t;

  unsigned k, n;

 

  printf(“х, n=?”); scanf(“%lf %u”, &х, &n);

  t = 1;

  for (k = 1; k<= n; k++) t = - t*x/k;

  printf(“ Т = %lf”, t);

}

 

      Приклад 3C. Числа Фібоначчи (задача 3.6).

#include <stdio.h>

 

/* Fibonacci */

main()

{

  int f, t, sf;

  unsigned k, n;

 

  printf(n=?); scanf(“%u”, &n);

  f = 0; sf = 1;

  for (k = 1; k<=n; k++)

    {

     t = f+sf; f = sf; sf = t;

    }

  printf(Fib( %u )= %d”, n, f);

}

[ЗМІСТ]      [Далі]       [Назад]      [Початок розділу]