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

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

Войти
Регистрация
Восстановить пароль
 
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
#1

для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); - C++

22.12.2011, 21:21. Просмотров 563. Ответов 8
Метки нет (Все метки)

вот int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2011, 21:21     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
Посмотрите здесь:

Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int - C++
// Оператор преобразования #include <iostream> using namespace std; class Counter { public: Counter(): itsVal(0) {} ...

Объясните для чего нужна строчка? - C++
ВОт прога #include <iostream> using namespace std; int main () { int stringSize; cout << "Size of string: "; ...

Написать функцию SUM (int M, int N) / С++ для начинающих - C++
Написать функцию SUM (int M, int N), которая вычисляет и возвращает сумму всех чисел кратных 3 и 9 в пределах от M и N включительно ....

Объясните, для чего нужны некоторые строчки в коде(using namespace, new, int main) - C++
#include <iostream> using namespace std; //для чего эта строчка int main(void) // что нужно изменить чтобы было void main() { ...

нужна зарезервированная макро константа для максимального значения unsigned int - C++
Ребят, срочно нужна зарезервированная макро константа для максимального значения unsigned int. Я могу ошибаться, но по-моему она должна...

Что означает эта запись? int(*px)[5] = 0; cout << px; - C++
Добрый день товарищи, недавно впал в ступор. Есть запись вида int(*px) = 0; cout &lt;&lt; px+2; Я трактовал так: Мы создаем указатель на...

Ошибка:unresolved external 'My<int>::My<int>(int)' unresolved external 'My<int>::~My<int>' - C++
есть 3 файла. файл inc.h: ... template &lt;class T&gt; class My { int m_size; T *m_data; public: My(int value); ~My(); ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:23     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #2
Тернарная операция
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:26  [ТС]     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #3
а ее проще можно записать или заменить?
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:32     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #4
C++
1
2
3
4
5
6
int x_step = (iter % 2 == 0 ? 1 : -1);
int x_step;
if(iter % 2 == 0)
    x_step = 1;
else
    x_step = -1;
Вторая по аналогии
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:34  [ТС]     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #5
о, спасибо большое! а вот еще последний вопрос можно ли эту программу написать еще проще
вот код
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
#include <iomanip>
using namespace std;
const int n=9;
void fill_matrix(int value,     // Значение для следующего элемента матрицы.
        int iter,       // Порядковый номер итерации (вызова функции).
        int curr_row,   // Текущий ряд (строка).
        int curr_col,   // Текущая колонка (столбец).
        int rows,       // Количество рядов в матрице.
        int cols,       // Количество колонок в матрице.
        int mtrx[][n]) {    // Матрица.
    // Получаем значение шага по горизонтали и вертикали
    // в зависимости от номера итерации: если четный, то 
    // движемся вправо и вверх, если нечетный - то влево и вниз.
    int x_step = (iter % 2 == 0 ? 1 : -1); // если остаток от деления
    int y_step = (iter % 2 == 0 ? -1 : 1);
 
    // Цикл для заполнения элементов в текущем ряду (по горизонтали).
    for (int i = 0; i < iter; ++i) {
        curr_col += x_step;
        if (curr_col < 0 || curr_col >= n) {
            return;
        }
        mtrx[curr_row][curr_col] = value++;
    }
    
    // Цикл для заполнения элементов в текущем столбце (по вертикали).
    for (int j = 0; j < iter; ++j) {
        curr_row += y_step;
        if (curr_row < 0 || curr_row >= n) {
            return;
        }
        mtrx[curr_row][curr_col] = value++;
        
    }
 
    // Инкремент счетчика итераций.
    ++iter;
 
    // Рекурсивный вызов с текущими значениями.
    fill_matrix(value, iter, curr_row, curr_col, n, n, mtrx);
}
 
int main()
{
    //Матрица
    int mtrx[n][n];
 
    
//  int rows=9; // кол-во строк.
//  int cols=9; // кол-во столбцов.
    
 
    // Текущая позиция по вертикали.
    int curr_row = n / 2;
    // Текущая позиция по горизонтали.
    int curr_col = n / 2;
 
    // Заполнение матрицы.
    // Первый элемент заносим в матрицу явно.
    mtrx[curr_row][curr_col] = 1;
    fill_matrix(2, 1, curr_row, curr_col, n, n, mtrx);
 
    //Выводим матрицу
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << setw(5) << mtrx[i][j];
        }
        cout << endl;
    }
 
    system("PAUSE");
 
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:38     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #6
Не хочу копаться в чужом коде, проще задание скажите.
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:41  [ТС]     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #7
Создать квадратную матрицу размером 9*9
и заполнить ее числами как показано на рисунке
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:43     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #8
Цитата Сообщение от mice Посмотреть сообщение
на рисунке
.....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 21:47     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
Еще ссылки по теме:

Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию - C++
IP-адрес - это четверка a.b.c.d, где a, b, c, d целые числа из интервала . Требуется написать функции encode и decode: unsigned int...

Ошибка - перегруженность pow(int,int) неосуществима. Как исправить? - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; struct point { int x,y,z; }; double dlina(point a,point b) { ...

Работа с массивом - Invalid types 'int[int]' for array subscript - C++
Добрый день. Данный код выдает ошибку invalid types 'int' for array subscript в функции в строке cout &lt;&lt;dm; Не понимаю в чем ошибка....

error C2664: InputMatrixCurrent: невозможно преобразовать параметр 1 из 'int [5][5]' в 'int' - C++
Помогите поправить код, а то выдаёт ошибки #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; void...

Правильное объявление переменной с точки зрения стиля [int *a vs int* a] - C++
И всё таки, как корректней объявлять переменные? 1. int* a, int&amp; a, int** a или 2. int *a, int &amp;a, int **a ?


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

Или воспользуйтесь поиском по форуму:
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:47  [ТС]     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); #9
извините, она расположена по этой ссылке программа должна выполняться так как показано на рисунке, а выполняется с точностью до наоборот
Yandex
Объявления
22.12.2011, 21:47     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
Ответ Создать тему
Опции темы

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