Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2008, 18:08   #1
kolduev
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 30
По умолчанию Определить длину отрезка во 2-м квадранте системы координат

Вводятся координаты отрезка. Определить длину отрезка во втором квадранте системы координат.
kolduev вне форума Ответить с цитированием
Старый 06.02.2008, 21:16   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Вы хвастаетесь, что вам досталась простая задача?
Где вопрос
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 06.02.2008, 22:23   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Задача не такая и простая. Если оба конца отрезка находятся во второй четверти, то нет вопросов. Если один конец во второй четверти, а другой в первой или третьей, то найти часть отрезка во второй четверти не очень сложно. А вот если другой кнец в четвертой четверти, то несколько вариантов. Также не просто, если концы в третьей и первой четвертях и отрезок средней своей частью проходит через вторую четверть. Так что есть над чем подумать.
puporev вне форума Ответить с цитированием
Старый 06.02.2008, 22:29   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Не вижу ничего сложного в задаче, если честно. Система линейных уравнений. А вот автору не мешало бы по крайней мере, язык указать, который его интересует.
B_N вне форума Ответить с цитированием
Старый 06.02.2008, 22:40   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Никто и не говорит, что за решение этой задачи Нобелевскую премию дадут, но для ребятишек, которые сюда пишут, две дроби сложить проблема.
puporev вне форума Ответить с цитированием
Старый 06.02.2008, 22:44   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Никто и не говорит, что за решение этой задачи Нобелевскую премию дадут, но для ребятишек, которые сюда пишут, две дроби сложить проблема.
Ну... ладно..... согласен
B_N вне форума Ответить с цитированием
Старый 06.02.2008, 22:53   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Никто и не говорит, что за решение этой задачи Нобелевскую премию дадут, но для ребятишек, которые сюда пишут, две дроби сложить проблема.
"Ребятишку" 20 лет....

Вообщем алгоритм решения, как и стоило ожидать, довольно прост.
Строим отрезок по двум точкам.
Смотрим не находится ли какая из точек в нужном квадранте.
Если да, то составляем систему и находим точку пересечения с осями x и\или y.
Вычисляем длину отрезка.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 11.02.2008, 16:42   #8
kolduev
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 30
По умолчанию

меня вот как раз и интересуют два последних варианта, про которые говорил puporev!! как в них длину определить!? впринце у мня есть решение, но тогда для каждого варианта придётся создавать отдельное условие, а в некоторых случаях и не одно, или мож как проще можно!?
нада тогда будет систему линейных уравнений повторить!=)

Последний раз редактировалось kolduev; 11.02.2008 в 16:52.
kolduev вне форума Ответить с цитированием
Старый 11.02.2008, 19:40   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Я уж думал ты решил. Вот посмотри вариант.
Чтобы было понятно, нарисуй все возможные положения отрезка относительно осей координат. Если я не ошибся их 9, в трех из них решений нет.
Для удобства примем х2>=x1; d-общая длина отрезка; d2-длина во второй четверти.
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
Что-то много ошибок нашел в своей писанине при написании программного кода, поэтому выложу лучше его. Ты его всетаки протестируй с пристрастием и попрвь, если что. Мне лично он надоел.
Код:
program otrezok;
uses crt;
var x1,x2,y1,y2,d,d2,x0,y0:real;label 1;
begin
clrscr;
write('vvedite x1: ');readln(x1);
write('vvedite y1: ');readln(y1);
1: write('vvedite x2>=x1: ');readln(x2);
if x2<x1 then
   begin
     write('neverno!');
     readln;
     goto 1;
   end;
write('y2=');readln(y2);
d:=sqrt(sqr(x2-x1)+sqr(y2-y1));
if (x1>=0)or((y1<=0)and(y2<=0))then
  begin
   writeln('Reshenii net');
   readln;
   exit;
  end
  {2 qw}
else if (x1<0)and(x2<=0)and((y1>0)and(y2>=0))then d2:=d
  {2-1 qw}
else if ((x1<0)and(x2>0))and((y1>=0)and(y2>=0))then d2:=d/abs(x2-x1)*abs(x1)
  {2-3 qw}
else if (x1<0)and(x2<0)and(y1>0)and(y2<0) then d2:=d/abs(y2-y1)*abs(y2)
   {3-1 qw}
else if (x1<0)and(x2>0)and(y1<0)and(y2>0)then
    begin
      x0:=-y1*(x2-x1)/(y2-y1)+x1;
      y0:=-x1*(y2-y1)/(x2-x1)+y1;
      if x0>0 then
         begin
           writeln('Reshenii net');
           readln;
           exit;
         end
       else d2:=sqrt(sqr(x0)+sqr(y0));
    end;
  {2-4 qw}
if (x1<0)and(x2>0)and(y1>0) and(y2<0) then
         begin
           x0:=-y1*(x2-x1)/(y2-y1)+x1;
           y0:=-x1*(y2-y1)/(x2-x1)+y1;
           if x0>0 then d2:=d/abs(x2-x1)*abs(x1)
           else if x0<0 then d2:=d/abs(y2-y1)*abs(y1);
         end;
writeln('d2=',d2:5:2);
readln;
end.

Последний раз редактировалось puporev; 11.02.2008 в 21:06.
puporev вне форума Ответить с цитированием
Старый 13.02.2008, 17:45   #10
kolduev
Пользователь
 
Регистрация: 12.01.2008
Сообщений: 30
По умолчанию

спасибо ограмное, есть небольшие неточности, исправил, вроде работает!!!!!!!!

Последний раз редактировалось kolduev; 13.02.2008 в 18:14.
kolduev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать размер и длину песни Манжосов Денис :) Мультимедиа в Delphi 5 27.12.2011 03:23
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Движение окружности и отрезка. Ev@ngel Компоненты Delphi 0 18.04.2008 22:16
Pascal//определить длину самого короткого и самого длинного слова в строке ShnurOK Помощь студентам 2 16.12.2007 10:43
Вычисление корня уравнения методом деления отрезка пополам Absent Помощь студентам 12 25.11.2007 17:54