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

перегнать с C++ на C# - C++

Восстановить пароль Регистрация
 
testerka
 Аватар для testerka
1 / 1 / 0
Регистрация: 19.09.2010
Сообщений: 44
03.02.2011, 11:09     перегнать с C++ на C# #1
имеется

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
int CMyPaintDC::AreaLines(int x,int y,int dir,int d,int PrevXL, int PrevXR,COLORREF col_g,COLORREF col_f)
{
    int xL,xR,y1,fl;
    COLORREF cc=RGB(255,255,255);
    xL=x;
    xR=x;
    do{
        cc = GetPixel(xL,y);
        xL--;
    }while(cc!=col_g && cc!=col_f);
    do{
        cc = GetPixel(xR,y);
        xR++;
    }while(cc!=col_g && cc!=col_f);
    ++xL;
    --xR;
 
    
    MoveTo(xL,y);LineTo(xR,y);
    //Sleep(10);
    for(x=xL+1 ;x<xR;x++)
    {fl=0;
        for(y1=y+dir;y1!=y+d;y1=y1+dir)
        {   cc = GetPixel(x,y1);
            if(cc==col_g || cc==col_f)
                fl++;
        }
        if(!(fl))
            x=AreaLines(x,y+d,dir,d,xL,xR,col_g,col_f);
    }
    for(x=xL+1 ;x<PrevXL;x++)
    {fl=0;
        for(y1=y-dir;y1!=y-d;y1=y1-dir)
        {   cc = GetPixel(x,y1);
            if(cc==col_g || cc==col_f)
                fl++;
        }
        if(!(fl)) 
            x=AreaLines(x,y-d,-dir,-d,xL,xR,col_g,col_f);
    }
    for(x=PrevXR; x<xR;x++)
    {fl=0;
        for(y1=y-dir;y1!=y-d;y1=y1-dir)
        {   cc = GetPixel(x,y1);
            if(cc==col_g || cc==col_f)
                fl++;
        }
        if(!(fl)) 
            x=AreaLines(x,y-d,-dir,-d,xL,xR,col_g,col_f);
    }
return xR;
}



проблема в этом

C++
1
if(!(fl))
что это такое, и как это будет выглядить на C#?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
03.02.2011, 11:35     перегнать с C++ на C# #2
Выражение !fl истинно, когда fl не равно нулю.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
03.02.2011, 15:50     перегнать с C++ на C# #3
Цитата Сообщение от testerka Посмотреть сообщение
имеется
проблема в этом

C++
1
if(!(fl))
что это такое, и как это будет выглядить на C#?
У вас fl - это переменная типа int. В C# оператор ! - только для булевых переменных. Поэтому будет так:

C#
1
if (fl==0)
testerka
 Аватар для testerka
1 / 1 / 0
Регистрация: 19.09.2010
Сообщений: 44
04.02.2011, 09:36  [ТС]     перегнать с C++ на C# #4
че то ответы у вас различаються?

так
if (fl!=0)
или
if (fl=0)
Dzhej-Dzhej
Заблокирован
04.02.2011, 09:51     перегнать с C++ на C# #5
testerka, правильно будет if (fl!=0)
//а вместо этого if (fl=0) пишут if (fl==0)

Не по теме:

всегда поражало в плюсах !5=0, !0=1 => !(!5)=1

zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.02.2011, 10:38     перегнать с C++ на C# #6
Цитата Сообщение от Dzhej-Dzhej

Не по теме:

всегда поражало в плюсах !5=0, !0=1 => !(!5)=1

И ведь по логике все верно
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.02.2011, 15:38     перегнать с C++ на C# #7
Цитата Сообщение от testerka Посмотреть сообщение
че то ответы у вас различаються?
так
if (fl!=0)
или
if (fl=0)
Вот так
C#
1
if (fl == 0)
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.02.2011, 16:03     перегнать с C++ на C# #8
Dzhej-Dzhej,
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
всегда поражало в плюсах !5=0, !0=1 => !(!5)=1
Ничего удивительного, всё вполне верно. Логическая единица - любое ненулевое число. Результатом логической операции должно быть логическое значение, значит число 5 при применении двух отрицаний (логических операций) даёт логическую единицу)))

Не по теме:

А вообще похоже на известное доказательство 2 * 2 = 5, где квадратный корень извлекают из левой и правой частей равенства, забыв про модуль)))

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2011, 13:52     перегнать с C++ на C#
Еще ссылки по теме:

"Перегнать" код из С в С++ (через fstream) C++
C++ Перегнать с паскаля в С++
C++ Перегнать с Pascal на C++

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

Или воспользуйтесь поиском по форуму:
testerka
 Аватар для testerka
1 / 1 / 0
Регистрация: 19.09.2010
Сообщений: 44
05.02.2011, 13:52  [ТС]     перегнать с C++ на C# #9
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
[b]
//а вместо этого if (fl=0) пишут if (fl==0)
ой лоханулся, ну все то поняли что имелось введу
Yandex
Объявления
05.02.2011, 13:52     перегнать с C++ на C#
Ответ Создать тему
Опции темы

Текущее время: 06:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru