(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733

Задача, вопрос не сколько в делфи, сколько в физике)

26.10.2008, 09:44. Показов 1437. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вообщем так, есть две вселенные 1 и 2, с координатами центра (x1, y1) и (x2, y2)
У каждой вселенной есть свой радиус (r1) и (r2) сответственно.
Радиус расширяется по формуле r1+v1*t и r2+v2*t, понятно, что v1 и v2 - скорости.
Надо найти время, когда у вселенных будет одна общая точка, если нам известно(во входном файле записано, на первой строчке x1 y1 r1 v1, на второй x2 y2 r2 v2.

Как я понимаю, координаты точки соприкоснавения будут такие: x3=((x2-x1)*v1)/(v2+V1)
а y3=((y2-y1)*v1)/(v2+V1). вот, тогда перемещение первой вселенной до точки равно
корню из суммы квадратов x3-x1 и y3-y1.
тогда время, получается равно перемещение минус радиус1, делить на скорость 1.

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

Например в файле
0 0 1 1
1 1 2 2
ответ 0,4142135623730915,
ну ответ надо в файл вывести. и при проверке игнорируется абсолютная погрешность, не превосходящая 10^-6

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2008, 09:44
Ответы с готовыми решениями:

Подсчитать, сколько студентов знают язык Си, сколько – Turbo Pascal, сколько - оба языка
Сформировать список студентов группы со следующими сведениями: Фамилия, имя, отчество, знает ли языки программирования Turbo Pascal, Cи...

Сколько слов в строке имеет четное количество символов, а сколько - нечетное.
в турбопаскале . условие:Введите строку из нескольких слов. Определите, сколько слов в строке имеет четное количество символов, а сколько...

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

6
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
26.10.2008, 10:15
Поскольку вещественные числа в машинном представлени никогда не равны, вводится понятие погрешности, у Вас она 10^-6.
Поэтому условие равенства суммы радиусов и расстояния между центрами окружностей определяется так
if abs((r1+r2)-L)<e then равны и работаем дальше, здесь е-погрешность.
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
26.10.2008, 10:25  [ТС]
Не. там немног по-другому, у меня ведь все числа - x1 x2 v1 v1 y1 y1 r1 r2 это целые

Добавлено через 35 секунд
и что такое L? и е, как я понимаю это 10^-6

Добавлено через 4 минуты 26 секунд
Да и собственно вопрос не в этом, вопрос, в формулах.....у меня получаются неправильные ответы.
0
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
26.10.2008, 10:29
L это расстояние между центрами окружностей, т.е. длина отрезка, соединяющего их. Мы ведь сначала должны ее посчитать, а потом найти момент времени когда r1+r2=L. А 10^-6 это е - погрешность.

Добавлено через 2 минуты 54 секунды
Если в целых числах, то е не надо, только не забывай про round(sqrt).
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
26.10.2008, 10:57  [ТС]
Code
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
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
//type
//  mas=array[1..4] of single;
var
  bin,bout:text;
  a:single;
  i:integer;
  l,t:real;
  x1,x2,y1,y2,V1,V2,r1,r2:integer;
 
begin
assign(bin, 'universe.in');reset(bin);
assign(bout,'universe.out');rewrite(bout);
WHILE 1=1 do begin
read(bin,x1);read(bin, y2);read(bin, r1);readln(bin, v1);
read(bin,x2);read(bin, y2);read(bin, r2);readln(bin, v2);
  l:=sqrt(sqr(x2-x1) + sqr(y2-y1));
  t:=(l-(r1+r2))/(v1+v2);
 writeln('Time=', t);
 writeln;
 readln;
end
 
end.
В принцыпе работает, только такой вопросик)))
как вещественное число записать в файл, так чтобы оно было вот такого вида

0,4142135623730915,

Добавлено через 11 минут 33 секунды
Во! работает, как часы!
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  bin,bout:text;
  l,t:real;
  x1,x2,y1,y2,V1,V2,r1,r2:integer;
  s:string;
 
begin
assign(bin, 'universe.in');reset(bin);
assign(bout,'universe.out');rewrite(bout);
//WHILE 1=1 do begin
read(bin,x1);read(bin, y1);read(bin, r1);readln(bin, v1);
read(bin,x2);read(bin, y2);read(bin, r2);readln(bin, v2);
  l:=sqrt(sqr(x2-x1) + sqr(y2-y1));
  t:=(l-(r1+r2))/(v1+v2);
  str(t:18:17, s);
 writeln(bout, s);
end.
Единственное не пишет в universe.out число, я попробовал строку, тоде ниче не пишет

Добавлено через 2 минуты 45 секунд
А, епт, ну я нуп, опять файлы забыл закрыть
0
Почетный модератор
 Аватар для Puporev
64308 / 47605 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
26.10.2008, 11:29
Например в файле
0 0 1 1
1 1 2 2
ответ 0,4142135623730915,
Вот ты привел пример. В этом примере расстояние между центрами окружностей = корень из 2=1,41. А сумма радиусов = 3. Окружности уже перехлестываются, чего им встречаться. Т.е. исходные данные неверные. Чтобы такого не было, после ввода данных надо делать проверку их правильности. Это делается так:
Code
1
2
3
4
5
6
7
8
9
10
repeat
writeln('Vvedite dannye:');
write('x1=');readln(x1);
write('y1=');readln(y1);
write('x2=');readln(x2);
write('y2=');readln(y2);
write('r1=');readln(r1);
write('r2=');readln(r2);
if sqrt(sqr(x1-x2)+sqr(y1-y2))<(r1+r2) then writeln('Nevernye dannye!');
until sqrt(sqr(x1-x2)+sqr(y1-y2))>(r1+r2);
Ввести результат в фвйл в форматированном виде, с точностью до шестого знака можно проще:
writeln(bout, 't=',t:0:6);
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
26.10.2008, 12:14  [ТС]
ага)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2008, 12:14
Помогаю со студенческими работами здесь

Посчитать,сколько элементов массива равны 5 или сколько 5 в массиве
Посчитать,сколько элементов массива равны 5 или сколько 5 в массиве Желательно полная программа и объяснения к ней. Заранее большое...

Определить сколько учеников хотели пойти в 10 класс, сколько – поступили в училище или техникум?
В школе было три 9 класса, в августе каждый классный руководитель имел сведения о своих учениках: фамилия, куда поступал (10 класс, училище...

Подсчитать, сколько в выражении умножений и сколько возведений в степень
Дано алгебраической выражение, состоящее из натуральных чисел, переменных (a, b, c, ..., z) записанных строчной латинской буквой, знаков...

Симплекс-метод нужна программа и блок схема. Сколько стульев и сколько столов должна изготовить фирма
Дана задача по симплекс-методу, решение методом Гаусса, решение задачи есть не могу составить блок-схему и программу, кто может помогите,...

Определить, сколько раз в строке встречается буква a, сколько цифр и сколько заглавных букв
4)Вводится строка символов, заканчивающаяся точкой. Определите, сколько раз в ней встречается латинская буква a, сколько цифр и сколько...


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

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

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru