[ 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. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    можно и гет чаром) там без разгици но я ету юзаю)
     
  2. rudvil

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

    Joined:
    25 Aug 2008
    Messages:
    200
    Likes Received:
    29
    Reputations:
    0
    Code:
    system("PAUSE")
    работает только под виндой.
    Лучше использовать
    Code:
    cin.get();
     
  3. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Картинки

    Всем привет. Возникла проблема, помогите кто может
    Вот есть часть кода:
    Code:
    HDC	hDC;// основная поверхность для рисования
    
    /*Инициализация картинок*/
    HBITMAP hBitmap;
    hDC=GetDC(hWnd);
    hназваниеDC=CreateCompatibleDC(hDC);
    hBitmap=LoadBitmap(hInstance,MAKEINTRESOURCE(IDB_название));
    SelectObject(hvozdDC,hBitmap);
    DeleteObject(hBitmap);
    
    Ну и наконец рисую то что попалось в матрице
    case 0:
    BitBlt hDC,x*weight,y*height,weight,height,hкартинкаDC,0,0,SRCCOPY);
    break;
    
    А сама проблема в том что все это может вставить картинки только bmp и с ограниченым количеством бит.
    А на что нужно заменить код чтоб можно было вставить картинки формата png?
    Помогите плиз!!!
     
  4. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    http://msdn.microsoft.com/en-us/library/ms536316%28VS.85%29.aspx
    http://msdn.microsoft.com/en-us/library/ms533815%28VS.85%29.aspx

    Кароч кури маны по GDI+ Там все достаточно просто и удобно
     
    #4184 Ra$cal, 9 Nov 2009
    Last edited: 9 Nov 2009
  5. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    А можешь подсказать что-нибудь на русском и желательно чтонибудь попроще для понимания
     
  6. Ra$cal

    Ra$cal Elder - Старейшина

    Joined:
    16 Aug 2006
    Messages:
    670
    Likes Received:
    185
    Reputations:
    78
    чего уж проще то?

    Graphics graphics(GetDC(hWnd));
    Image img(L"C:\\test.png");
    graphics.DrawImage(&img, 5, 5);

    Выучить технический английский для чтения доков гораздо быстрее, чем ждать переводов залетных, поверь. Тем более доки очень редко переводят.

    [ADDED]
    http://msdn.microsoft.com/en-us/library/ms536339%28VS.85%29.aspx
    тут описывается изменение логики кодирования с апи на gdi+. Тупо на глаз понятно что к чему. Хз какие еще доки найти понятнее.
     
    #4186 Ra$cal, 9 Nov 2009
    Last edited: 9 Nov 2009
    2 people like this.
  7. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Можно каким то извратным методом заставить поток саспендить самого себя, или это вообще технически невозможно?
     
  8. ~NeiTRoN~

    ~NeiTRoN~ Elder - Старейшина

    Joined:
    3 Jul 2008
    Messages:
    64
    Likes Received:
    2
    Reputations:
    0
    Большое пасибо!!! Единственное последний вопрос: Почему когда я вышеописанным способом включаю кртинку, она не прозрачна?(тоесть я создаю прозрачный png прямоугольник,а он отображается белым)
     
    #4188 ~NeiTRoN~, 9 Nov 2009
    Last edited: 9 Nov 2009
  9. Patrik

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

    Joined:
    15 Jan 2006
    Messages:
    42
    Likes Received:
    6
    Reputations:
    0
    Возможно, это поможет... http://msdn.microsoft.com/ru-ru/library/ms172507.aspx
     
    1 person likes this.
  10. Drakon

    Drakon New Member

    Joined:
    17 Sep 2009
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    т.е. не меняя ничего все работает??

    string ... ? наверное я до этого не изучил еще. пока в курсе что строки как char-массивы вбиваются

    /да case это так и надо , просто потом добавил варианты, переписывать неохота/
     
  11. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Как объявить двух и трёхмерный динамический массив(используя операцию new)? Например, одномерный массив
    int * a = new int[10];
     
  12. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    я написал, как работает у меня :)
     
  13. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    2x
    Code:
    int** arr = new int[Rows];
    for (int i = 0; i < Rows; i++) {
    arr[i] = new int[Columns];
    }
    3x

    аналогично, только три цикла
     
  14. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Реализация алгоритма теста на простоту Миллера-Рабина. В чём ошибка.
    Code:
    #include <iostream>
    #include <cmath>
    int is_prime(int m){
    	using namespace std;
    	int r = 1000;
    	int t = m-1;
    	int s = 0;
    	bool b = true;
    	if(m%2==0){
    		return false;
    	}
    	if(m==1){
    		return false;
    	}
    	if(m==2){
    		return true;
    	}
    	while(t%2==0 || b){
    		b = false;
    		s++;
    		t=t/2;
    	}
    	for(int i=1;i<r+1;i++){
    		int a = 2+rand()%(m-2);
    		int x = int(float(pow(float(a),float(t))))%m;
    		if((x==1)||(x==m-1)){
    			continue;
    		}
    		for(int j=1;j<s;j++){
    			x=int(float(pow(float(x),2)))%m;
    			if(x==1){
    				return false;
    			}
    			if(x==m-1){
    				continue;
    			}
    		}
    	}
    	return true;
    }
    int main(){
    	using namespace std;
    	int a,b;
    	cin >> a >> b;
    	for(int i=a;i<b;i++){
    		if(is_prime(i)){
    			cout << i << " ";
    		}
    	}
    	cin >> a;
    	return 0;
    }
    P.S Алгоритм, с которого я писал есть на википедии, страница так и называется тест миллера-рабина
     
  15. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    что пишет компилятор?
    Code:
    int is_prime(int m)
    попробуй сделать bool, а нет int
     
  16. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Разницы нет, компиляция проходит и программа работает, но неправильно, выводит 15(оно составное) и не выводит 17(простое), если a=3, а b=20.
     
  17. Fata1ex

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

    Joined:
    12 Dec 2006
    Messages:
    703
    Likes Received:
    300
    Reputations:
    38
    тогда с++ тут ни при чем - ошибка в алгоритме
     
  18. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Да это я и так понял, сам алгоритм правильный, но я неправильно его реализовал(немного). Просто не могу найти ошибки. Более подходящего места вопросу не нашёл)
     
  19. Irdis

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

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    1)
    а у вас [2,m-1]
    http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
    2)
    а (*) у вас нет
    3)
    а у вас на следующую итерацию цикла "для r = 1 .. s − 1"
     
    #4199 Irdis, 10 Nov 2009
    Last edited: 10 Nov 2009
    1 person likes this.
  20. winflip

    winflip New Member

    Joined:
    13 May 2009
    Messages:
    36
    Likes Received:
    1
    Reputations:
    0
    Честно говоря, на счёт rand, я сделал, а вот
    Return false;
    Это по-вашему что?
    А 3 пункт я и вовсе не понял
     
Thread Status:
Not open for further replies.