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

Столкновение шаров - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычисление определенного интеграла приближенными методами http://www.cyberforum.ru/cpp-beginners/thread729404.html
Вычисление определенного интеграла приближенными методами формулой прямоугольников и формулой трапеции. Вычислить интеграл при двух значениях шага интегрирования h=0.1 h=0.01 ∫ a=0.4 b=1.2 (cosx2)/(x+1) * dx Вот делал сам:
C++ найти и поменять местами пару слов, у которых первые три буквы одного совпадают с последними тремя буквами другого (дописать) Задание: В последовательности из 10 пятибуквенных слов найти и поменять местами пару слов, у которых первые три буквы одного совпадают с последними тремя буквами другого. так сказать написал программу, но она не работает, что нужно сделать, что бы она высчитывала то, что требуется в задании? #include <stdio.h> #include <conio.h> #include <string.h> char* find(char* str, const char c) {... http://www.cyberforum.ru/cpp-beginners/thread729390.html
Вывести на экран все числа, на которые заданное число делится без остатка C++
Нужно написать программу с использованием процедуры, которая выводит на экран все числа, на которые заданное число делится без остатка. Вот, что-то пытался написать сам (пишу в MS Visual Studio 2012): #include "stdafx.h" double proc(float c) { for int i=100 { res=c%i; }
C++ Функции , Варианты написания программы , Задача с функцией C++
Задача на С++ : Функция , которая вводит с клавиатуры последовательность целых чисел и после ввода последнего числа выводит на печать в главной функции среднее арифметическое всех введенных чисел. Параметром функции является количество вводимых чисел. Очень нужно записать эту программу боллее понятно , что бы не к чему придраться преподам было . Или хотя бы просто напишите её же , в любом...
C++ Ввод данных/выделение памяти (динамический символьный массив) http://www.cyberforum.ru/cpp-beginners/thread729375.html
1. Если ли разница в таких двух вариантах объявления динамического символьного массива: а) char *string = (char*) malloc(N); б) char *string = new char ;? 2. Почему-то не работает перераспределение памяти. Пишу так: string = (char*) realloc(string,(len-5)); Переменная len - длинна введенной строки (считается правильно, проверял). Здесь, например, я пытаюсь уменьшить на 5 байт блок,...
C++ найти любой прямоугольник этой матрицы с наибольшей суммой /*Задача: заполнить матрицу случайными числами, в том числе и отрицательными найти любой прямоугольник этой матрицы с наибольшей суммой. зы.не могу понять ошибку свою*/ #include <iostream> #include <cstdlib> #include <ctime> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
foxaice
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 3
12.12.2012, 20:04     Столкновение шаров
Помогите пожалуйста написать условие столкновения шаров
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 void impact(Sphera & a,Sphera & b)
    { 
     if((a.x+r>=b.x-r)&&(a.x-r<=b.x+r)&&(a.y-r<=b.y+r)&&(a.y+r>=b.y-r))
       {
        a.dx=-a.dx;
        b.dx=-b.dx;
        a.dy=-a.dy;
        b.dy=-b.dy;
        }
     if((a.x+r<=b.x-r)&&(a.x-r>=b.x+r)&&(a.y-r>=b.y+r)&&(a.y+r<=b.y-r))
       {
        a.dx=-a.dx;
        b.dx=-b.dx;
        a.dy=-a.dy;
        b.dy=-b.dy;
       }
                              }
полный код программы
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <graphics.h>
 
#define N 9
#define width 800
#define height 600
#define r 20
 
class Sphera 
 {
  private:
   int x,y;
   int color;
   int dx,dy; 
  public:
   int initcoor (int,int,int);
   int initspeed (int,int);
   void draw (int);
   void moveline (void);
   friend void impact(Sphera & a, Sphera & b);
 };
   int Sphera::initcoor (int inx, int iny,int incolor)
    {
     x=inx;y=iny;color=incolor;
     return 0;
    }
       
   int Sphera::initspeed (int indx, int indy)
    {
     dx=indx; dy=indy; 
     return 0;
    }
   
   void Sphera::draw (int color)
    {
     setcolor (color);
     circle (x,y,r);
    }
     
   void Sphera::moveline (void)
    {
     draw (0);
     if ((x-r)<=0) {dx=-dx;}
     if (x+r>=width) {dx=-dx;}
     if (y-r<=0)   {dy=-dy;}
     if (y+r>=height) {dy=-dy;}
          
     if ((x+r>=700)&&(y+r<=500)&&(y-r>=100)) {dx=-dx;}
     if ((x-r<=100)&&(y+r<=500)&&(y-r>=100)) {dx=-dx;}
     if ((y-r<=100)&&(x+r<=700)&&(x-r>=100)) {dy=-dy;}
     if ((y+r>=500)&&(x+r<=700)&&(x-r>=100)) {dy=-dy;}
   
     x+=dx; y+=dy;
     draw (color);
    }
    
   void impact(Sphera & a,Sphera & b)
    { 
     if((a.x+r>=b.x-r)&&(a.x-r<=b.x+r)&&(a.y-r<=b.y+r)&&(a.y+r>=b.y-r))
       {
        a.dx=-a.dx;
        b.dx=-b.dx;
        a.dy=-a.dy;
        b.dy=-b.dy;
        }
     if((a.x+r<=b.x-r)&&(a.x-r>=b.x+r)&&(a.y-r>=b.y+r)&&(a.y+r<=b.y-r))
       {
        a.dx=-a.dx;
        b.dx=-b.dx;
        a.dy=-a.dy;
        b.dy=-b.dy;
       }
                              }
 
////////////////////////////////////////////////////////////////////////
 
main ()
{
   int i,j; char key;
   Sphera A[N];
    
    for (i=0;i<N;i++)
     {
      A[i].initcoor(rand()%350+200,rand()%300+150,rand()%15+1);
      A[i].initspeed (rand()%5-1,rand()%5-1);
     }
    
 
    initwindow(width,height);
    
     while(true)
      {
        moveto(100,100);
        setcolor(9);
        lineto(100,500);
        lineto(700,500);
        lineto(700,100);
        lineto(100,100);
        
       for (i=0;i<N;i++)
        {
         A[i].moveline();
          for (j=0;j<N;j++)
           {
            if(i==j) j++;
            impact(A[i],A[j]);
           }
        }
      }
    
    closegraph();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru