Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 335
#1

Объяснить часть кода - C++

21.12.2013, 17:07. Просмотров 210. Ответов 3
Метки нет (Все метки)

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

C++
1
for (j = m >> 1; j < m; j++)
и где именно в коде происходит отображение относительно вертикальной оси, а не, допустим, горизонтальной.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cstdlib>
#include <locale.h>
#include <time.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    srand(time(NULL));
 
    int n, m, i, j;
 
    cout << "Введите количество строк " << endl;
    cin >> n;
    cout << "Введите количество столбцов" << endl;
    cin >> m;
 
    int** matr = new int*[n];
    for (i = 0; i < n; i++)
        matr[i] = new int[m];
 
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            matr[i][j] = rand() % 100;
 
    cout << "Начальная матрица: " << endl;
    for (i = 0; i < n; i++, cout << endl)
        for (j = 0; j < m; j++)
            cout << matr[i][j] << " ";
 
    for (i = 0; i < n; i++)
        for (j = m >> 1; j < m; j++)
            matr[i][m - j - 1] = matr[i][j];
 
    cout << "Конечная матрица: " << endl;
    for (i = 0; i < n; i++, cout << endl)
        for (j = 0; j < m; j++)
            cout << matr[i][j] << " ";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 17:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объяснить часть кода (C++):

Вынести основную часть кода кода в отдельную функцию - C++
помогите пожалуйста переделать это на функцию... #include &lt;locale.h&gt; #include &lt;conio.h&gt; int main() { setlocale(0,&quot;&quot;); float...

Объяснить работу кода - C++
Подскажите пожалуйста как работает этот код при F(9). На экран выводит 131159, но как это происходит? void F(int n) { if (n &gt; 0) ...

Объяснить кусок кода - C++
Всем привет, нашел у себя в файле с хелпом напоминалку, но когда-то забыл записать что это. Предполагаю, что это ввод символов в массив...

Объяснить фрагменты кода - C++
Доброго времени суток, дорогие программисты. Помогите чайнику в &quot;плюсах&quot; найти что такое &quot;Ar&quot; Вот код #include &lt;iostream&gt; #include...

Объяснить строку кода - C++
#pragma comment ( linker, &quot;/EXPORT:MyFunc=_MyFunc@8&quot; ) Объясните, что мы делаем этим. Не уверен, что совсем понял.

Объяснить работу кода - C++
Объясните что происходит в данном коде #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;cmath&gt; int _tmain(int argc, _TCHAR*...

3
MrGluck
Модератор
Эксперт CЭксперт С++
7419 / 4534 / 673
Регистрация: 29.11.2010
Сообщений: 12,305
21.12.2013, 17:14 #2
Цитата Сообщение от Aecttann Посмотреть сообщение
j = m >> 1
побитовый сдвиг направо
было 1(1) стало 0(0)
было 10(2) стало 1(1)
было 11(3) стало 1(1)
было 100(4) стало 10(2)
было 101(5) стало 10(2)
было 110(6) стало 11(3)

Добавлено через 36 секунд
память у вас не освобождается.
Надо delete[] дописать в конце программы.
1
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 335
21.12.2013, 17:24  [ТС] #3
Цитата Сообщение от MrGluck Посмотреть сообщение
побитовый сдвиг направо
было 1(1) стало 0(0)
было 10(2) стало 1(1)
было 11(3) стало 1(1)
было 100(4) стало 10(2)
было 101(5) стало 10(2)
было 110(6) стало 11(3)
Спасибо

а для чего эта строка?
C++
1
matr[i][m - j - 1] = matr[i][j];
0
MrGluck
Модератор
Эксперт CЭксперт С++
7419 / 4534 / 673
Регистрация: 29.11.2010
Сообщений: 12,305
21.12.2013, 17:24 #4
Цитата Сообщение от Aecttann Посмотреть сообщение
matr[i][m - j - 1] = matr[i][j];
симметричное отображение элементов i-ой строки
1
21.12.2013, 17:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 17:24
Привет! Вот еще темы с ответами:

Объяснить фрагмент кода - C++
Добрый день, господа. Есть у меня такая вот задачка - надо объяснить структуру фрагмента. По сути, погадать по единственной строчке кода....

Объяснить почему fin.getline() прочитывает только часть строк (файловый ввод/вывод) - C++
Стоит задача написать лексический анализатор. Код написал, но не могу понять, почему getline не может прочитать 6 и далее строки. ...

Объяснить назначение элемента кода - C++
C++ зачем запятая перед пабликом? ,public PhysObject

Объяснить пару строк кода - C++
Доброго времени суток. Есть код #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; //образец стека template...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru