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

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

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

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

21.12.2013, 17:07. Просмотров 200. Ответов 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] << " ";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 17:07     Объяснить часть кода
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
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[] дописать в конце программы.
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 327
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];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 17:24     Объяснить часть кода
Еще ссылки по теме:

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

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

Какие действия исполняет заданная часть программы? Если есть ошибки исправить их и объяснить исправления - C++
. . . class Anketa { char *fam; char *name; public: Anketa (); ~ Anketa ( char *str); ...

Объяснить и прокомментировать каждую строку кода - C++
Добрый вечер нуждаюсь в комментариях к программе , желательно прокомментировать каждую строку. #include &quot;stdafx.h&quot; #include...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7163 / 4329 / 632
Регистрация: 29.11.2010
Сообщений: 11,751
21.12.2013, 17:24     Объяснить часть кода #4
Цитата Сообщение от Aecttann Посмотреть сообщение
matr[i][m - j - 1] = matr[i][j];
симметричное отображение элементов i-ой строки
Yandex
Объявления
21.12.2013, 17:24     Объяснить часть кода
Ответ Создать тему
Опции темы

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