Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
1

Проблема с оператором IF

05.09.2008, 03:24. Просмотров 3489. Ответов 8
Метки нет (Все метки)

Голову уже сломал никак немогу догнать как сделать.... вот код
Код
void *hdc=CreateDCA("DISPLAY",NULL,NULL,NULL);
if(GetPixel(hdc,37,580) == 63483)
if(GetPixel(hdc,38,580) == 63997)
if(GetPixel(hdc,39,580) == 63997)
if(GetPixel(hdc,36,581) == 63483)
if(GetPixel(hdc,40,581) == 63740)
if(GetPixel(hdc,36,582) == 63997)
if(GetPixel(hdc,40,582) == 63997)
if(GetPixel(hdc,36,583) == 63997)
if(GetPixel(hdc,40,583) == 63997)
if(GetPixel(hdc,37,584) == 63740)
if(GetPixel(hdc,38,584) == 63997)
if(GetPixel(hdc,39,584) == 63997)
if(GetPixel(hdc,40,584) == 64511)
if(GetPixel(hdc,40,585) == 64254)
if(GetPixel(hdc,39,586) == 63740)
if(GetPixel(hdc,37,587) == 63483)
if(GetPixel(hdc,38,587) == 63997)
Timer1->Enabled = false;
ShowMessage("OK");
Мне нужно, чтобы действия выполнялись только если каждый if равен тому что написанно, но я незнаю как это сделать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2008, 03:24
Ответы с готовыми решениями:

проблема с оператором условия
#include <iostream.h> #include <math.h> #include <iomanip.h> #include <conio.h> void main() {...

Проблема с оператором if - почему условия всегда выполняется
вопрос в комментариях 50 строка #include <iostream> #include <vector> #include <algorithm>...

Возможно ли воспользоваться в VB.NET оператором логического сдвига Shr (Shl) и оператором And?
Возможно ли воспользоваться в VB.NET оператором логического сдвига Shr (Shl) и оператором And?

Откладка программ с оператором ветвления и оператором выбора
:drink:

8
9 / 7 / 3
Регистрация: 30.08.2008
Сообщений: 120
05.09.2008, 04:07 2
Тебе нужно использовать функцию SetPixel после функции CreateDCA, но перед проверкой условия if. вставляя в функцию SetPixel значения которые ты проверяешь в GetPixel, вот только как перевести значение в RGB я тебе в этом помочь не могу.
0
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
05.09.2008, 04:28  [ТС] 3
Цитата Сообщение от Sined Посмотреть сообщение
Тебе нужно использовать функцию SetPixel после функции CreateDCA, но перед проверкой условия if. вставляя в функцию SetPixel значения которые ты проверяешь в GetPixel, вот только как перевести значение в RGB я тебе в этом помочь не могу.
спс, а нельзя как нить попроще а то я чет непонел?
и еще нет ли чего нить вроде этого
Код
if(GetPixel(hdc,1,1) == 222 & GetPixel(hdc,2,1) == 333 & GetPixel(hdc,3,1) == 444)
Добавлено через 6 минут 53 секунды
или мож как нибудь так
Код
void *hdc=CreateDCA("DISPLAY",NULL,NULL,NULL);

int qqq_1;
int qqq_2;
int qqq_3;

qqq_1 = GetPixel(hdc,1,1);
qqq_2 = GetPixel(hdc,2,2);
qqq_3 = GetPixel(hdc,3,3);

if(qqq_1 == 63483)
if(qqq_2 == 63740)
if(qqq_3 == 63997)

Timer1->Enabled = false;
ShowMessage("OK");
0
9 / 7 / 3
Регистрация: 30.08.2008
Сообщений: 120
05.09.2008, 04:37 4
Цитата Сообщение от Gremlin Посмотреть сообщение
и еще нет ли чего нить вроде этого

Код
if(GetPixel(hdc,1,1) == 222 & GetPixel(hdc,2,1) == 333 & GetPixel(hdc,3,1) == 444)
Да можно, только не с унарным & а во т с таким && типа.
Код
if(GetPixel(hdc,1,1) == 222 [B][COLOR="Red"]&&[/COLOR][/B] GetPixel(hdc,2,1) == 333 [B][COLOR="Red"]&&[/COLOR][/B] GetPixel(hdc,3,1) == 444)
А в использовании функции SetPixel тебе нужно писать типа так.
Код
SetPixel(hdc,37,580,RGB(тот параметр который ты проверяешь))
SetPixel(hdc,38,580,RGB(тот параметр который ты проверяешь))
SetPixel(hdc,39,580,RGB(тот параметр который ты проверяешь))
...
и так для каждого.
1
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
05.09.2008, 04:42  [ТС] 5
Спасибо огромное!
0
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
04.06.2009, 00:34  [ТС] 6
почти через 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
 
if(GetPixel(hdc,37,580) == 63483)
{
 if(GetPixel(hdc,38,580) == 63997)
 {
  if(GetPixel(hdc,39,580) == 63997)
  {
   if(GetPixel(hdc,36,581) == 63483)
   {
    if(GetPixel(hdc,40,581) == 63740)
    {
     if(GetPixel(hdc,36,582) == 63997)
     {
      if(GetPixel(hdc,40,582) == 63997)
      {
       if(GetPixel(hdc,36,583) == 63997)
       {
        if(GetPixel(hdc,40,583) == 63997)
        {
         if(GetPixel(hdc,37,584) == 63740)
         {
          if(GetPixel(hdc,38,584) == 63997)
          {
           if(GetPixel(hdc,39,584) == 63997)
           {
            if(GetPixel(hdc,40,584) == 64511)
            {
             if(GetPixel(hdc,40,585) == 64254)
             {
              if(GetPixel(hdc,39,586) == 63740)
              {
               if(GetPixel(hdc,37,587) == 63483)
               {
               if(GetPixel(hdc,38,587) == 63997)
                {ДЕЙСТВИЕ}}}}}}}}}}}}}}}}}
0
1088 / 586 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
04.06.2009, 06:21 7
а чем последний код отличается от первого? только скобками? по-моему скобки в данном случае ничего не решают и первый код должен быть работоспособным.
где я ошибаюсь?
0
517 / 305 / 58
Регистрация: 30.07.2008
Сообщений: 607
05.06.2009, 23:10  [ТС] 8
Мне нужно было проверять изображение
Проблему я решил с момощью массива

А отличается тем, что если один пиксель равен ХХХ то идет проверка следующего
0
1088 / 586 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
08.06.2009, 09:06 9
Цитата Сообщение от Gremlin Посмотреть сообщение
А отличается тем, что если один пиксель равен ХХХ то идет проверка следующего
извините, не совсем понял. это про первый или последний вариант? можно по-подробнее.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2009, 09:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Задание с оператором for и do while
Разработайте программу, которая выполняет вычисления с числами, которые вводятся с клавиатуры...

3адача с оператором FOR
Решите, пожалуйста, эту задачу. Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · … ...

3адача с оператором IF.
Решите, пожалуйста, эту задачу. Дан номер года (положительное целое число). Определить количество...

3адача с оператором WHILE
Решите, пожалуйста, эту задачу. Дано целое число N (> 0). Используя операции деления нацело и...


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

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

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