Постановка задачи: программа должна содержать функцию, которая получает в качестве параметров имя массива и его длину (или нескольких массивов, если этого требуют условия задачи) и выполняет необходимые действия. При решении не разрешается создавать или резервировать в программе дополнительную память, соизмеримую по размерам с объемом исходных данных. То есть, нельзя создавать дополнительные массивы, если это явно не оговорено в задаче.
Функция main
должна заполнить массив числами из файла. Для определения длины массива предусматривается два варианта: 1) по значению первого числа в файле, 2) непосредственным подсчетом количества чисел в файле. Результат также выводится в файл.
Задание: получить массив биномиальных коэффициентов для степени N, последовательно вычисляя строки треугольника Паскаля (можно использовать только один массив).
вопросПравильный ответ:
- # Какой из перечисленных языков высокого уровня является наиболее современным?
- # Рассмотрим реализацию матрицы целых чисел, размеры которой определяются в процессе работы программы, через массив указателей на начало строк, захватываемый в динамической памяти. Каждая строка также представляет собой отдельный массив в динамической памяти: typedef int* intptr; int m, n; // Размеры матрицы: число строк, столбцов . . . intptr* a = new intptr[m]; for (int i = 0; i < m; ++i) { a[i] = new int[n]; } // a[i][j] -- элемент i-й строки и j-го столбца Сколько памяти требуется для хранения прямоугольной матрицы размером в 10 строк и 20 столбцов в 64-разрядной архитектуре (без учета памяти, используемой под описатели фрагментов кучи; предполагаем, что размер элемента типа int равен 4)?
- # Чему будет равно значение переменной n в результате выполнения следующего фрагмента программы? Процессор имеет 32-разрядную архитектуру. double a[10][2]; int n, m; n = (int)(a+1); m = (int) a; n -= m;
- # Левым нейтральным элементом (левой единицей) для бинарной операции называется элемент e такой, что для всякого другого элемента x "произведение" e на x равно x: e x = x. Какие элементы будут нейтральными для операций произведения и минимума чисел соответственно?
- # Рассмотрим следующий фрагмент программы, вычисляющей частное q и остаток r от деления целых чисел a, b: // дано: целые числа a >= 0, b > 0 int a, b; . . . int q = 0, r = a; int e = 1, m = b; while (r >= b) { if (2*m <= r) { e *= 2; m *= 2; } else if (m > r) { e /= 2; m /= 2; } else { // утверждение: m <= r && r < 2*m q += e; r -= m; } } // q и r - частное и остаток от деления a на b Какое условие является инвариантом цикла?