по таблице, в первой строке все переменные равны нулю, а сама функция возвращает 1.
Если мы посмотрим на функции, там встречается только И, а И дает 1 только когда все переменные равны 1, значит если у всех переменных будет НЕ, значит функция вернет 1, если все переменные равны нулю
Как известно динамическое программирование, это разбиение огромной глобальной задачи на маленькие задачи, то есть своего рода алгоритм последовательных действий. Приведу пример: допустим ты молодой программист, тебе поручили задание написать программу для банка. с виду покажется сложно, так вот начинаем разбиение, сначала анализируем деятельность банка, спрашиваем что и как им нужно, формируем в голове модель продукта, изучаешь средства необходимые для создания конечного продукта и тд. Все начинается с малого!
#include <iostream> //библиотека потоков ввода/вывода #include <vector> //библиотека "вектор", это обертка над динамическим массивом using namespace std; /* * пространство имен, без него компилятор не поймет, * что за функции ты хочешь использовать и что за объекты * создавать, то есть библиотеки, * что подключили мы выше - не заведутся без него. */ //эта функция считает сумму позитивных елементов в векторе(массиве), от и до //указанного индекса, все параметры передаем по ссылке во избежании копирования // double getSumOfPositivElements(const vector<double>& array, const int& indexFrom, const int& indexTo) // { double sumOfPositivElements = 0; //переменная, что хранит сумму for (int i = indexFrom; i < indexTo; ++i) //цикл от и до указанного индекса { if (0 < array[i]) //условие, если елемент больше нуля { sumOfPositivElements += array[i]; //то приплюсовать его } } return sumOfPositivElements; //вернуть полученный результат суммы } //работает аналогично, с разницей лиш что суммирует отрицательные елементы // double getSumOfNegativElements(const vector<double>& array, const int& indexFrom, const int& indexTo) // { double sumOfNegativElements = 0; for (int i = indexFrom; i < indexTo; ++i) { if (0 > array[i]) { sumOfNegativElements += array[i]; } } return sumOfNegativElements; } //основная функция программы // int main() // { vector<double> myArray; //создаем вектор(массив), что хранит значения типа double double arraySize; //переменная, что хранит размер вводимого массива int elementBuf; //в этой переменной будем хранить вводимый елемент int arrayMiddlePosition; //индекс середины массива cout << "Enter array size: "; cin >> arraySize; //вводим размер массива arrayMiddlePosition = arraySize / 2; //определяем его середину myArray.reserve(arraySize); //резервируем размер под кол-во елементов for (int i = 0; i < arraySize; ++i) //цикл инициализации вектора { cout << "Enter element: "; cin >> elementBuf; //вводим текущий елемент myArray.push_back(elementBuf); //вставляем его в вектор cout << "Elements left: " << arraySize - (i + 1); //расчитываем кол-во оставшихся елементов cout << endl << endl; } cout << endl; cout << "Sum of positiv elements in first array half: "; //выводим сумму положительных елементов в первой половине массива cout << getSumOfPositivElements(myArray, 0, arrayMiddlePosition); cout << endl; cout << "Sum of negativ elements in first array half: "; //выводим сумму отрицательных елементов в второй половине массива cout << getSumOfNegativElements(myArray, arrayMiddlePosition, myArray.size()); cout << endl; //останавливаем выполнение программы, что бы посмотреть результат system("pause"); //возращаем значение '0', что значит для системы, что программа завершила работу успешно (без ошибок) return 0; }
4
Объяснение:
по таблице, в первой строке все переменные равны нулю, а сама функция возвращает 1.
Если мы посмотрим на функции, там встречается только И, а И дает 1 только когда все переменные равны 1, значит если у всех переменных будет НЕ, значит функция вернет 1, если все переменные равны нулю