Главная /
Основы программирования - обучения основам /
Рассмотрим два способа представления матрицы размера 4×4. В первом случае используется массив из четырех элементов типа «массив из четырех элементов»: double a[4][4]; Во втором случае используется линейный массив из шестнадцати элементов: double a[16]; В
Рассмотрим два способа представления матрицы размера
4×4. В первом случае используется массив из четырех
элементов типа «массив из четырех элементов»:
double a[4][4];
Во втором случае используется линейный массив из шестнадцати
элементов:
double a[16];
В первом случае обращение к элементу матрицы с индексами
i
, j
осуществляется с помощью выражения
a[i][j],
во втором — с помощью выражения
a[4*i + j].
Есть ли существенная разница в эффективности программы
в первом и втором случаях при использовании оптимизирующего
компилятора?
вопрос
Правильный ответ:
Да, есть, первый способ эффективнее.
Да, есть, второй способ эффективнее.
Существенной разницы нет.
Сложность вопроса
89
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
Если бы не данные ответы - я бы сломался c этими тестами интуит.
28 июл 2018
Аноним
Кто ищет вот эти тесты по интуит? Это же очень просты вопросы
06 мар 2017
Другие ответы на вопросы из темы программирование интуит.
- # Рассмотрим два способа представления матрицы размера 4×4. В первом случае используется массив из четырех элементов типа «указатель на double»: double *a[4]; при этом элемент a[i] содержит адрес начала i-й строки матрицы. Во втором случае используется линейный массив из шестнадцати элементов: double a[16]; В первом случае обращение к элементу матрицы с индексами i, j осуществляется с помощью выражения a[i][j], во втором — с помощью выражения a[4*i + j]. Есть ли существенная разница в эффективности программы в первом и втором случаях при использовании оптимизирующего компилятора?
- # Текстовый файл содержит последовательность целых чисел в десятичной записи, каждое число записано в отдельной строке. Какую функцию следует использовать для последовательного считывания чисел?
- # Рассмотрим следующий фрагмент программы: #include <string.h> . . . int n; char a[32]; strcpy(a, "e2e4"); strcpy(a + 5, "c7c5"); n = strlen(a); Чему будет равно значение переменной n в результате выполнения этого фрагмента?
- # Рассмотрим следующую реализацию функции onMul, которая исполняет команду умножения в проекте «Стековый калькулятор»: static void onMul() { double y, x; assert(st_size() >= 2); // утв: глубина стека // не меньше двух y = st_pop(); x = st_pop(); st_push(x * y); display(); } Правильно ли здесь используется конструкция «утверждение», которая в Си реализуется функцией assert?
- # Может ли задача использовать объем виртуальной памяти, который превышает объем физической памяти компьютера?