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

расстояние между шариками - C++

Восстановить пароль Регистрация
 
Мда!
 Аватар для Мда!
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 19
16.01.2011, 21:22     расстояние между шариками #1
драсте! помогите пожалста решить задачу.

дан круг по которому движутся 2 шарика: а) в одном направлении; б) в противоположном напиравлении.
длина круга 100 см. причем шарики начинают двигаться не с нуля. 1й находится в точке х1=1см, 2й в точке х2= 99см. надо найти минимальное расстояние между шариками. (начало, т.е. старт, считается точкой равной нулю)



т.е. все расчитывается по такой формуле S = L - (|x1 - x2|) => min расстояние тут = 2.
и как я понимаю х1=-х1, а х2=-х2, а как реализовать код не соображу.

заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 21:22     расстояние между шариками
Посмотрите здесь:

расстояние между строк C++
Расстояние между 2-мя точками. C++
C++ Задача на рекурсию. Найти кратчайшее расстояние между городами i и j даже если между ними нет прямой дороги
Расстояние между точками C++
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
16.01.2011, 23:24     расстояние между шариками #2
Первое, хочу узнать в какой среде вы пишите, и второе, возможно, я не до конца поняд задание, но всё, что вы написали в коде реализовывается так (писал в Microsoft Visual Studio 2010):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
int compare (const void* a, const void* b);
 
int main(int argc, char* argv[])
{
        float x1 = 1,x2 = 99,L = 100, S;
        S = L- fabs(x1-x2);
        cout<<S<<endl;
        _getch();
 
    
        return 0;
}
Мда!
 Аватар для Мда!
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 19
17.01.2011, 00:10  [ТС]     расстояние между шариками #3
я пишу на Microsoft Visual Studio 2008.
эээ я написала частья задачи, но вы вроде поняли правильно. только у меня теперь не получается с выходным файлом. ошибку пишет, когда пишу противоположные скорости.
вот как то так у меня получилось. помогите найти ошибку и разобраться.(это моя первая программа)

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
#include "StdAfx.h"
#include<iostream>
#include <fstream>
#include <cmath>
#include <conio.h>
using namespace std;
int main ();
int compare (const void* a, const void* b);
{
    ifstream ifs("input.txt"); 
    ofstream outputFile("output.txt"); 
    int N;
    int i;
    int j;
    int a;
    int b;
    int c;
 
    int dlina = 400;
 
    struct treenode 
    { 
        int v; 
        int t; 
    };
 
    
    treenode tr1[100];
    treenode tr2[100];
 
    ifs >> (int)N;
    i = 0; 
 
    while(i < N+1)
    { 
        ifs >> tr1[i].v >> tr1[i].t;
        ifs >> tr2[j].v >> tr2[j].t; 
        ++i;  
    }
    
        a=0;
        b=0;
    for(int i=0; i<N; i++)
    {
        a = a + (tr1[i].v * tr1[i].t);
        b = b + (tr2[j].v * tr2[j].t);
    }
 
    
        c = abs(a - b);
    if(c > dlina/2) 
    {
        c = dlina - c;
    }
 
        float x1 = 10, x2 = 399, L = 400, S;
                S = L - fabs(x1 - x2);
                cout << S << endl;
                getch();
 
 
    outputFile << c;
        ifs.close();
    outputFile.close();
 
    return 0;
}
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
17.01.2011, 00:33     расстояние между шариками #4
C++
1
2
3
4
5
6
7
8
9
using namespace std;
int main ();                                              //убираем точку с запятой
int compare (const void* a, const void* b); //здесь я немного не точно подсказал эту функцию
                                                            //  вообще убираем
{
 ifstream ifs("input.txt"); 
 ofstream outputFile("output.txt"); 
 int N;
 int i;
Вот так правильнее
C++
1
2
3
4
5
6
int main ()
{
 ifstream ifs("input.txt"); 
 ofstream outputFile("output.txt"); 
 int N;
 int i
Дальше будем смотреть...

Добавлено через 12 минут
Цитата Сообщение от Мда! Посмотреть сообщение
ifstream ifs("input.txt");
Этот файл пустой или в нём есть какие-то данные ?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.01.2011, 01:21     расстояние между шариками #5
Цитата Сообщение от Мда! Посмотреть сообщение
это моя первая программа
Дежавю
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
17.01.2011, 01:49     расстояние между шариками #6
Вот сдесь
Цитата Сообщение от Мда! Посмотреть сообщение
getch(); // вот это убрать
outputFile << c;
ifs.close();
outputFile.close();
Добавлено через 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "StdAfx.h"
#include<iostream>
#include <fstream>
#include <cmath>
#include <conio.h>
using namespace std;
int main ()
 
{
        ifstream ifs("input.txt"); 
        ofstream outputFile("output.txt"); 
        int N;
        int i;
        int j;
        int a;
        int b;
        int c;
 
        int dlina = 400;
 
        struct treenode 
        { 
                int v; 
                int t; 
        };
 
        
        treenode tr1[100];
        treenode tr2[100];
 
        ifs >> (int)N;
        i = 0; 
 
        while(i < N+1)
        { 
                ifs >> tr1[i].v >> tr1[i].t;
                ifs >> tr2[j].v >> tr2[j].t; 
                ++i;  
        }
        
                a=0;
                b=0;
        for(int i=0; i<N; i++)
        {
                a = a + (tr1[i].v * tr1[i].t);
                b = b + (tr2[j].v * tr2[j].t);
        }
 
        
                c = abs(a - b);
        if(c > dlina/2) 
        {
                c = dlina - c;
        }
 
        float x1 = 10, x2 = 399, L = 400, S;
                S = L - fabs(x1 - x2);
                cout << S << endl;
                                
 
 
        outputFile << c;
                ifs.close();
        outputFile.close();
 
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2011, 03:01     расстояние между шариками
Еще ссылки по теме:

Задача по физике (Определить силу притяжения между телами массы m1 и m2, расстояние между которыми r) C++
Найти расстояние между отрезками C++
Расстояние между точками x0 y0 x1 y1 C++

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

Или воспользуйтесь поиском по форуму:
Мда!
 Аватар для Мда!
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 19
17.01.2011, 03:01  [ТС]     расстояние между шариками #7
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
#include "StdAfx.h"
#include<iostream>
#include <fstream>
using namespace std;
int main ()
 
{
    ifstream ifs("input.txt"); 
    ofstream outputFile("output.txt"); 
    int N;
    int i;
    int j;
    int a;
    int b;
    int c;
 
    int dlina = 400;
 
    struct treenode 
    { 
        int v; 
        int t; 
    };
 
    
    treenode tr1[100]; 
    treenode tr2[100];
 
    ifs >> (int)N;
    i = 0; 
 
    while(i < N+1)
    { 
        ifs >> tr1[i].v >> tr1[i].t;
        ifs >> tr2[i].v >> tr2[i].t; 
        ++i;  
    }
    
    a=0;
    b=0;
    for(int i=0; i<N; i++)
    {
        a = a + (tr1[i].v * tr1[i].t);
        b = b + (tr2[i].v * tr2[i].t);
    }
 
    
    c = abs(a - b);
    if(c > dlina/2) 
    {
        c = dlina - c;
    }
 
    outputFile << c;
 
    ifs.close();
    outputFile.close();
 
    return 0;
 
}
Yandex
Объявления
17.01.2011, 03:01     расстояние между шариками
Ответ Создать тему
Опции темы

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