Главная /
Основы программирования - обучения основам /
Рассмотрим два способа представления матрицы размера 4×4. В первом случае используется массив из четырех элементов типа «массив из четырех элементов»: double a[4][4]; Во втором случае используется массив из четырех элементов типа «указатель на double»: do
Рассмотрим два способа представления матрицы размера
4×4. В первом случае используется массив из четырех
элементов типа «массив из четырех элементов»:
double a[4][4];
Во втором случае используется массив из четырех
элементов типа «указатель на double»:
double *a[4];
при этом элемент a[i]
содержит адрес
начала i
-й строки матрицы.
В обоих случаях обращение к элементу матрицы с индексами
i
, j
осуществляется с помощью выражения
a[i][j].
Есть ли существенная разница в эффективности программы
в первом и втором случаях при использовании оптимизирующего
компилятора?
вопрос
Правильный ответ:
Да, есть, первый способ эффективнее.
Да, есть, второй способ эффективнее.
Существенной разницы нет.
Сложность вопроса
57
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
Если бы не данные подсказки - я бы не решил c этими тестами intuit.
29 окт 2020
Аноним
Это очень простецкий решебник по интуиту.
12 ноя 2017
Другие ответы на вопросы из темы программирование интуит.
- # Рассмотрим непрерывную реализацию множества с помощью бинарного поиска. Пусть множество содержит миллион элементов. Сколько операций сравнения может быть выполнено при поиске элемента?
- # Является ли индуктивной функция, которая последовательности вещественных чисел ставит в соответствие сумму ее первого и последнего элементов?
- # Пусть f(x) — целочисленная функция от целочисленного аргумента. Определить, содержит ли следующий фрагмент программы ошибку (т.е. действительно ли тело цикла сохраняет инвариант): // Программа корень функции цел a, b, c; . . . утверждение: a < b и f(a) * f(b) <= 0; // Значения функции на концах отрезка [a,b] разных знаков цикл пока b - a > 1 | инвариант: f(a) * f(b) <= 0 | // Делим отрезок [a, b] пополам | c := (a + b) / 2; // c -- целая часть (a+b)/2 | если f(a) * f(c) < 0 | | то b := c; // выбираем левую половину отрезка | | иначе a := c; // выбираем правую половину отрезка | конец если конец цикла утверждение: a == b - 1 и f(a) * f(b) <= 0;
- # Как нумеруются биты внутри байта или машинного слова?
- # Чему равна вещественная константа 0.001e+4, записанная в экспоненциальной форме?