Первое занятие. Функции. Модули. Тестирование функций. Кортежи.


1. Использование описание переменных внутри блоков и новых операторов присваивания (+=, *= и т.д.).

1.1.Описать функцию Exp1(x, eps) вещественного типа (параметры x, eps — вещественные, eps > 0), находящую приближенное значение функции exp(x):

exp(x)=1+X+X2/2!++XN/N!.

С помощью Exp1 найти приближенное значение экспоненты для данного x.

1.2 Реализовать проверку входных параметров с помощью Assert.

  • 2. Описать функцию IsDigit(D), которая возвращает истину, если целое число D представляет цифру (то есть D лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N (N ≥ 0) данных чисел.

  •  3. Описать функцию AddRightDigit(D, K), которая возвращает целое число, полученное «дописыванием» к целому положительному числу K справа цифры D (D — входной параметр целого типа, лежащий в диапазоне 0–9, K — входной положительный параметр целого типа).

    Указание #1. Добавьте проверку корректности значений входных параметров D, K в начало функции AddRightDigit:

    Assert(IsDigit(d));
    Assert(k > 0);
  • 4.

    Описать в краткой форме функцию АMean(X, Y), вычисляющую среднее арифметическое AMean=X+Y2

    Описать в краткой форме функцию GMean(X, Y), вычисляющую среднее геометрическое GMean=XY−−−−−√ двух положительных вещественных чисел X и Y.


    5 Кортежи. объявление может иметь вид:

    var t: (string,integer);
    Присваивание и вывод:

    t:=('Смирнов',56);
    Print(t);
    t[1]:= 100; ///ошибка - нельзя изменять. Но можно распаковать!
    var name: string;
    var age: integer;
    (name,age) := t;
    Print(name,age);

    6.1 Кортежи - результат функции (вместо процедур).

    Опишите в модуле функцию вычисления площади и периметра прямоугольника, заданного своими сторонами.

    function SP(a,b: real) :(real,real);

    в разделе реализации используйте краткую форму. Для вызова в основной программе можно использовать

    var S,P: real;
    (S,P) := SP(2,3); 
    print(S,P);

    6.2 Картежное присваивание. Описать функцию FibN(N), которая принимает целое положительное значение N ≥ 1 и возвращает N-ое число Фибоначчи. Напоминаем, что последовательность Fk чисел Фибоначчи определяется следующим образом:

    F1=1,F2=1,Fk=Fk2+Fk1,k=3,4,

    Это числа 1,1,2,3,5,8,13,21,34,55,.

    Указание к реализации: после инициализации основное вычисление будет выглядеть:

    for var i:=2 to n do
    (f1,f2):=(f2,f1+f2);
    result:=f2;

    В основной программе считать значение N и вывести соответствующее число Фибоначчи FN.

    6.3.Дано целое число N > 2.

    Последовательность вещественных чисел Ak определяется следующим образом:

    A1=2,Ak=2+1/Ak1,k=2,3,… Вывести N-ое число.

    6.4

    Дано целое число N > 3. Последовательность целых чисел Ak определяется следующим образом:

    A1=1,A2=2,A3=3,Ak=Ak1+Ak22Ak3,k=4,5,Вывести N-ое число.