[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Здравствуйте.Пытаюсь решить задачу, в итоге получаю нули.


    [​IMG]
    Code:
    #include "stdafx.h" 
    #include <iostream> 
      int main() { 
        double s,a,x; 
        int i; 
        printf("Input x="); 
        scanf("%f",&x); 
        s=0; 
        a=-x*x*x/12; 
        i=1; 
        while (abs(a)>1e-7) { 
          s=s+a; 
          i=i+1; 
          a=-a*x*x*(i-1)/(2.0*i*i*(2*i+1)); 
        } 
        printf("Sum= %f\n",s); 
        system ("pause"); 
    }
    
    Прошу помощи.
     
  2. o'clock

    o'clock Elder - Старейшина

    Joined:
    16 May 2009
    Messages:
    125
    Likes Received:
    22
    Reputations:
    11
    Всем привет. Необходимо на c++ написать функцию, содержащую алгоритм определения является ли число простым,или нет. в случае, если оно простое, функция должна именем возвращать единицу. вроде всё просто, но почему-то у меня не получается определить правильно. прошу помощи!
     
  3. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    http://ideone.com/KiNI8j
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://rosettacode.org/wiki/Primality_by_trial_division#C.2B.2B
     
    _________________________
  5. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Как отловить окошко другой программы

    Собственно код

    {
    HWND hWnd = FindWindow("Вот сюда вводить имя окошка",NULL); // ищем своё окно
    if (hWnd!=NULL)
    {
    ShowMessage("proga already loaded");
    }
    }

    Дело в том, что компилятор ругается на совместимость типов.

    [bcc32 Error] Unit3.cpp(39): E2034 Cannot convert 'char const[51]' to 'const wchar_t *'

    Вопрос
    1. Как это дело обойти?
    2. Как отловить хэндл окошка, название которого меняется, но есть определенная часть в названии, которая всегда одинаковая?
     
  6. Xnamed

    Xnamed New Member

    Joined:
    1 Feb 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Функция принимаeт const wchar_t указатeль, а ты даeшь char. Почитай, как работать с вчаром.
    2) ID процeсса, имя
     
    #7506 Xnamed, 29 Dec 2012
    Last edited: 30 Dec 2012
  7. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    HWND hWnd = FindWindow(NULL,(wchar_t*)"Калькулятор");
    if (hWnd)
    {
    BitBtn1->Caption="ДА";
    }

    Сделал так. Но не работает (Почитал синтаксис функции, понял, сначала надо NULL потом имя процесса)
    Все запускается но "ДA" не высвечивается на кнопке...
     
  8. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    А ты попробуй напиши
    HWND hWnd = FindWindow(NULL, TEXT("Калькулятор"));
     
    _________________________
    1 person likes this.
  9. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Спасибо, вот это помогло )

    А как сделать, чтобы он находил окно, когда в названии, например, присутствует не только слово "Калькулятор", но и еще парочка слов, которые рандомно меняются?
     
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    EnumWindows и поиск строки в имени или по каким-то другим уникальным характеристикам
     
    _________________________
  11. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Я так понял EnumWindows должна вывести все названия окон, После чего нужно допустим найти первые 11 символов строки, если они == "Калькулятор", то button1->Caption ="ДА"

    Помоги реализовать, а то у меня не очень получается...
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb773436%28v=vs.85%29.aspx

    Всё ведь документировано. Откуда проблемы то?
     
    _________________________
    1 person likes this.
  13. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Короче, сделал вот так, мб кому пригодится.

    Code:
     BOOL EnumWindowsProc(HWND hWnd, long lParam)
    {
      wchar_t Buff[255];
      GetWindowText(hWnd, Buff, 254);
      Main->ListBox1->Items->Add((Buff));
      return TRUE;
    }
    Code:
    void __fastcall TMain::Button2Click(TObject *Sender)
    {
    
    Main->ListBox1->Clear();
    EnumWindows((WNDENUMPROC)EnumWindowsProc, 0);
      int i;
      for (i = 0; i < ListBox1->Items->Count; i++) {
    	char* listitem = AnsiString(ListBox1->Items->Strings[i]).c_str();
    		if (strstr(listitem,"Калькулятор")) {
    	 Button2->Caption="Ура бл* Нашло";
       }
    
      }
    Почти два часа потратил, чтобы найти способ конвертировать UNICODESTRING в CHAR*, так как strstr Отказывается жрать, хоть что-то, кроме char*...
    Но зато теперь все работает. Kaimi, спасиб, что тыкнул пальцем, где копать ))
     
  14. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Code:
    #include <iostream>
    #include "curl/curl.h"
    using namespace std;
    
    int main()
    {
        std::string buffer;
        CURL* curl;
        curl = curl_easy_init();
        if(curl) {
            CURLcode result;
            curl_easy_setopt(curl, CURLOPT_URL, "http://habrahabr.ru");
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
            result = curl_easy_perform(curl);
            curl_easy_cleanup(curl);
        }
        return 0;
    }
    
    Подключены библиотеки libcurl.a и libcurldll.a.

    При компиляции ошибки:
    Code:
     obj\Debug\main.o||In function `main':|
    E:\projects\curl\main.cpp|9|undefined reference to `_imp__curl_easy_init'|
    E:\projects\curl\main.cpp|12|undefined reference to `_imp__curl_easy_setopt'|
    E:\projects\curl\main.cpp|13|undefined reference to `_imp__curl_easy_setopt'|
    E:\projects\curl\main.cpp|14|undefined reference to `_imp__curl_easy_perform'|
    E:\projects\curl\main.cpp|15|undefined reference to `_imp__curl_easy_cleanup'|
    
    Насколько я понимаю, просит подключить библиотеки...
     
    #7514 0o Chris o0, 30 Dec 2012
    Last edited: 30 Dec 2012
  15. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Еще такой вопрос.
    Как реализовать, чтобы программа сама нажимала в определенный места на экране, но вне самой себя, допустим в браузере кнопки щелкать во flash приложении, что-то типа бота?
     
  16. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    В браузере, наверное, не стоит "кнопки щелкать"..
     
  17. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Ты не уверен? Зачему пишешь тогда?
     
  18. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Хм... как скажешь, не уверен, так не уверен.
     
  19. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Нужно просто
    X=19
    Y=19
    Щелкнуть левой кнопкой мыши, причем это координаты относительно окна моей прграммы! После запуска программы форма становиться прозрачной AlphaBlendValue=0; И щелчек делается по тому окну, что под программой. П
    олучится или нет?
     
  20. 0xd098d0b3d0

    0xd098d0b3d0 New Member

    Joined:
    26 Oct 2012
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Собственно нашел функцию mouse_event

    mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);

    Если вставить в таймер то жмякает норм ))

    Как сделать, чтобы она нажимала на координаты относительно окна формы?
     
Thread Status:
Not open for further replies.