1. Напишите модель программы, определяющей, какое из двух данных значений встречается чаще в массиве. Псевдокод программы приведен ниже. Программа возвращает положительное число, если первое значение встречается чаще, отрицательное – если чаще встречается второе, а если оба встречаются равное число раз, то возвращает ноль. В псевдокоде a – это массив из n значений. Индексация ведется с нуля.

    int cx = cy = 0;
    for (int i = 0; i < n; ++i) {
        if (a[i] == x) ++ cx;
        else if (a[i] == y) ++ cy;
        if (cx - cy >= n - i ||
            cy - cx >= n - i) break;
    }
    return cx - cy;
    
  2. Напишите модель программы и модель требований, докажите полную корректность. Программа получает на вход массив из целых чисел и увеличивает на 1 все отрицательные элементы массива.

  3. Напишите модель программы и модель требований, докажите полную корректность. Программа реверсирует данный массив без использования дополнительного массива.

  4. Напишите модель программы и модель требований, докажите полную корректность. Программа ожидает на входе массив четной длины. Она обменивает первую и вторую половину массива без использования дополнительного массива.