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

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

Войти
Регистрация
Восстановить пароль
 
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236
#1

Объясните алгоритм - C++

30.10.2015, 12:16. Просмотров 266. Ответов 7
Метки нет (Все метки)

Всем доброго времени суток.
Ниже представлен алгоритм работы с изображением и не могу понять одну строку с использованием оператора xor.
C++
1
2
3
4
5
6
7
8
9
10
11
12
if A = O
do nothing
else if (not B labeled) and (not C labeled)
increment label numbering and label A
else if B xor C labeled // this line
copy label to A
else if B and C labeled
if B label = C label
copy label to A
else
copy either B label or C label to A
record equivalence of labels
Я это представляю как:
C++
1
else if((color[i-1][j]^color[i][j-1]) == count)
но не уверен поскольку, как я понял xor возвращает значения 0 или 1, а count может принимать любое значение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 12:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните алгоритм (C++):

Объясните алгоритм - C++
#include <iostream> using namespace std; int main() { double num; cout << "enter number: "; while ( cin >> num...

Объясните, пожалуйста, алгоритм - C++
Объясните, пожалуйста, построчно, следующий алгоритм, никак не разберусь, всю голову сломал. Заранее благодарен. double...

Объясните пожалуйста алгоритм - C++
Вычислите сумму с данной точностью е. Используйте указатели на функции как параметры: Сумма от 1 до бесконечности sin n/n Как я понял...

Объясните алгоритм (калькулятор) - C++
Всем доброго времени суток. Есть код: #include <iostream> using namespace std; double brackets(); double operation(); ...

Объясните алгоритм пожалуйста - C++
#include <iostream> #include <cmath> int f(int, int, int, int, int); int main() { int a, b, c, d;

циклический алгоритм, объясните - C++
Составить программу для расчета таблиц функций m и n в зависимости от i по формулам: m=5+3/(100+i+10*i^2) и ...

7
bizba
6 / 6 / 4
Регистрация: 29.10.2015
Сообщений: 45
30.10.2015, 12:51 #2
пиши как есть:

C++
1
else if(color[i-1][j]^color[i][j-1]))
xor возвращает не 0 и 1, а 0 и разные числа и если будет 0, то в тело if программа не зайдёт. Насколько я понимаю это эквивалентно ещё:

C++
1
else if(color[i-1][j] != color[i][j-1]))
0
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236
30.10.2015, 13:01  [ТС] #3
bizba, спасибо. Можете, пожалуйста, посмотреть алгоритм который у меня получился и может сможете подсказать почему не работает и где ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  int count = 1;
    for(int i=1; i<image.width()-1; i++){
        for(int j=1; j<image.height()-1;j++){
            if (color[i][j] == 0){
                continue;
            }else if(color[i-1][j] != count && color[i][j-1] != count){
                count++;
                color[i][j] = count;
            }else if((color[i-1][j] != color[i][j-1])){
                color[i][j] = count;
            }else if(color[i-1][j] != 0 && color[i][j-1] != 0){
                    if (color[i-1][j] == color[i][j-1]){
                        color[i-1][j] = count;
                    }else{
                      color[i][j] = color[i-1][j];
                      color[i-1][j] = color[i][j-1];
                    }
                }
 
            }
        }
0
bizba
6 / 6 / 4
Регистрация: 29.10.2015
Сообщений: 45
30.10.2015, 14:32 #4
JavJun, а что должна делать программа? и что не работает? или надо просто реализовать аналог:
C++
1
2
3
4
5
6
7
8
9
10
11
12
if A = O
do nothing
else if (not B labeled) and (not C labeled)
increment label numbering and label A
else if B xor C labeled // this line
copy label to A
else if B and C labeled
if B label = C label
copy label to A
else
copy either B label or C label to A
record equivalence of labels
кстати на каком языке это?

Добавлено через 8 минут
а как ты изначально хотел:

C++
1
else if((color[i-1][j]^color[i][j-1]) == count)
тоже не работало?
0
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236
30.10.2015, 16:47  [ТС] #5
bizba, это не язык,а просто алгоритм работы.
На счет что должна делать:это "алгоритм последовательного сканирования изображения"
0
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236
02.11.2015, 17:41  [ТС] #6
актуально
0
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
02.11.2015, 20:26 #7
тебе что надо, побитовый xor, или булевский?
побитовый ^
булевский !=
0
JavJun
12 / 10 / 3
Регистрация: 27.08.2015
Сообщений: 236
18.11.2015, 21:31  [ТС] #8
Fallenworld, если бы я знал( или хотя бы знал в чем разница...а так только есть строка алгоритма:
C++
1
else if B xor C labeled
0
18.11.2015, 21:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2015, 21:31
Привет! Вот еще темы с ответами:

Объясните данный алгоритм/функцию - C++
http://rabus.ru/mc/methodOfCoord.html#prim_1 Собственно каким образом это должно происходить? Как вообще и на основании чего это...

Работа с текстом. Объясните алгоритм если не сложно.. - C++
1. Дан текстовый файл, фразы в котором отделены друг от друга точками, а слова – пробелами и знаками препинания. Удалить из этого файла...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки ) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...

Объясните алгоритм хэширования: ГОСТ Р 34.11-94 - C++
Доброго времени суток) Объясните, пожалуйста, алгоритм хэширования госта р 34.11-94) И очень приятным дополнением была бы готовая...


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

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

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