Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [pascal] вычислить длины! Про 4 точки и их координаты 
V
    Опции темы
xF1x
Дата 11.9.2008, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



Всем доброго времени суток! Такая вот школьная задача! Даны 4 точки у каждой точки две координаты(x y)  (всего 8 входных параметров т.е x1 x2 x3 x4 y1 y2 y3 y4) по этим парметрам вычислить длины соединений координат(т.е длины сторон этой фигуры, и диагонали, вообще все длины) и найти наибольшую длину в этой фигуре! только что у нас прошел первый урок по ПОДПРОГРАММАМ! сказали нужно через них( procedure) если можно то как можно проще! очень нужно к субботе! ВСЕМ ЗАРАНЕЕ СПАСИБО!
PM MAIL   Вверх
xF1x
Дата 11.9.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



Блин неужели никто не знает как это сделать?
PM MAIL   Вверх
mr.Anderson
Дата 11.9.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, все достаточно просто.

1. Пишешь подпрограмму, принимающую четыре координаты - x1,y1 и x2,y2 - соответственно, координаты первой и второй точек, длину отрезка между которыми надо вычислить. Подпрограмма должна считать длину по известной формуле. Запишу, как это выглядит:
Код

function calcLength( x1, y1, x2, y2: Integer ): Real;
begin
 calcLength := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
end;

2. Пишешь основную часть, где запрашиваешь все координаты у юзера и читаешь их в переменные. Вычисляешь с помощью вышесозданной функции все... ммм... 6 длин (четыре стороны и две диагонали). Затем сравниваешь шесть полученных значений, находишь максимальное, выводишь его.

Все.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 11.9.2008, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



Во первых! я же сказал школьная задача, function calcLength вот этогго я в помине не знаю! я же знаю что для вас програмистов это раз плюнутьб, ну помогите школьнику!
PM MAIL   Вверх
mr.Anderson
Дата 11.9.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, так, стоп, ты же сказал, что вы прошли подпрограммы? Function/procedure - это подпрограммы, просто функция возвращает какой-то результат, а процедура нет. Так в чем проблема?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 11.9.2008, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



у нас был первый урок подпрограмм! учитель дал попробовать сможем или нет! только слово procedure изучили! 1 ое домашнее задание
PM MAIL   Вверх
mr.Anderson
Дата 11.9.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, через процедуры эту задачу решать глупо. Можно, конечно, извратиться с глобальными переменными. Знаешь, что это такое? Если знаешь, сейчас напишу.

Добавлено через 5 минут и 6 секунд
В общем, если извращаться с глобалками, то так. ЭТО ФРАГМЕНТ, не целая программа. Додумай, чего там не хватает.
Код

program YourProgram;
var
 lengths : Array [1..6] of Real; //сюда длины запихаем

procedure calcLength( x1, y1, x2, y2, lenPos: Integer ): Real;
begin
 if (lenPos<1 or lenPos>6) then
  return;
 
 lengths[lenPos] := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); //считаем длину с номером lenPos (1-4 стороны, 5-6 диагонали, это к примеру)
end;

begin
 //тут сам допишешь, что нужно, т.е. ввод координат, подсчет шести длин, вычисление максимума
end.


Добавлено через 6 минут и 3 секунды
Вообще, мой совет: делай через function и блесни на уроке знаниями. Почитай, кстати, про function, чтобы понять, что делают функции и в чем отличие от процедур (хотя я об этом уже тут говорил). Меньше головной боли.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 11.9.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



вообщем она сказала! вот  вам procedure!  и решайте! программа большая получается а глобальные переменные не слышал!  она сказала что по простому вводишь координаты потом формулул для длины отрезков по координатам и вывести наибольшую длину! все! это же ШКОЛА! я програмирование изучаю год от силы! ))
PM MAIL   Вверх
mr.Anderson
Дата 11.9.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, делай, как я говорю, хуже не будет, если ты знаешь больше, чем дали в школе. Если, конечно, действительно знаешь. Если про глобалки не слышал, тем более. Ссылочные аргументы процедуры знаешь? Если нет, то я не вижу другого метода делать через процедуры. Вообще, это как в Москву из Иванова через Владивосток ехать.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 11.9.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



я плохо знаю програмирование! если бы знал хорошо сюда бы не обращался! поэтому и прошу мне помочь написать программу! она сказала делать через метки label ты об этом?
PM MAIL   Вверх
Rodman
Дата 11.9.2008, 22:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 26
Всего: 122



Цитата(xF1x @  11.9.2008,  21:42 Найти цитируемый пост)
метки label ты об этом? 

не вздумай метки делать
PM MAIL WWW Skype GTalk YIM MSN   Вверх
volvo877
Дата 11.9.2008, 22:40 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 34
Всего: 116



xF1x, понимаешь, в чем засада-то:
Цитата(xF1x @  11.9.2008,  21:18 Найти цитируемый пост)
она сказала что по простому вводишь координаты потом формулул для длины отрезков по координатам
- это функция, о чем тебе было сказано, поскольку формула тебе возвращает какой-то результат (что и делает функция).

А уж вот это:
Цитата(xF1x @  11.9.2008,  21:42 Найти цитируемый пост)
она сказала делать через метки label 
вообще ни в какие ворота... Ты Паскаль изучаешь? Процедуры вам объяснили? И после этого приплести еще метки??? Может нам попробовать еще через Goto переходить внутрь процедуры? Вообще-то нельзя, но может быть получится, раз очень надо...  smile 

Цитата(xF1x @  11.9.2008,  21:00 Найти цитируемый пост)
я же знаю что для вас програмистов это раз плюнуть
Угу... Особенно если на каждый ответ всплывают ограничения: функции не использовать, про глобальные переменные не слышал (можно подумать, ты про какие-то другие слышал. Чем же ты пользовался ДО того, как тебе рассказали про процедуры для хранения значений? Воздухом), вот теперь еще Goto обязательно. Круто...

Нужно с функциями (или с процедурами + Var параметры) - сделаем... А нет - так извиняй...

PM MAIL   Вверх
xF1x
Дата 11.9.2008, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



да да кстати и goto она тоже делала! )) ну уж помогите! а для вас это наоборот лучше! разнообразие! мне к субботе нужно!
PM MAIL   Вверх
orthrus
Дата 12.9.2008, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

Репутация: 5
Всего: 16



Вот, вроде работает, пытался написать по школьному smile function не используется зато используется procedure:
Код

VAR
   lengths : Array [1..6] of Real;
   x1,x2,x3,x4:integer;
   y1,y2,y3,y4:integer;
   i,n:integer;
   max:real;

PROCEDURE CalcLength(in_x1,in_y1,in_x2,in_y2:integer;var length:real);
BEGIN
  length := sqrt((in_x1-in_x2)*(in_x1-in_x2) + (in_y1-in_y2)*(in_y1-in_y2));
END;

BEGIN
  WriteLn('Введите координаты точки 1:');
  Write('x1 = '); ReadLn(x1);
  Write('y1 = '); ReadLn(y1);
  WriteLn('Введите координаты точки 2:');
  Write('x2 = '); ReadLn(x2);
  Write('y2 = '); ReadLn(y2);
  WriteLn('Введите координаты точки 3:');
  Write('x3 = '); ReadLn(x3);
  Write('y3 = '); ReadLn(y3);
  WriteLn('Введите координаты точки 4:');
  Write('x4 = '); ReadLn(x4);
  Write('y4 = '); ReadLn(y4);
  CalcLength(x1,y1,x2,y2,lengths[1]);
  CalcLength(x2,y2,x3,y3,lengths[2]);
  CalcLength(x3,y3,x4,y4,lengths[3]);
  CalcLength(x4,y4,x1,y1,lengths[4]);
  CalcLength(x1,y1,x3,y3,lengths[5]);
  CalcLength(x2,y2,x4,y4,lengths[6]);
  max := lengths[1];
  n := 1;
  for i := 2 to 6 do
  begin
    if max<lengths[i] then
       begin
         max := lengths[i];
         n := i;
       end;
  end;

  WriteLn('максимально длинная прямая');
  case n of
   1 : begin
         WriteLn('Из точки 1 в точку 2');
         Write('её длинна равна'); WriteLn(lengths[1]);
       end;
   2 : begin
         WriteLn('Из точки 2 в точку 3');
         Write('её длинна равна'); WriteLn(lengths[2]);
       end;
   3 : begin
         WriteLn('Из точки 3 в точку 4');
         Write('её длинна равна'); WriteLn(lengths[3]);
       end;
   4 : begin
         WriteLn('Из точки 4 в точку 1');
         Write('её длинна равна'); WriteLn(lengths[4]);
       end;
   5 : begin
         WriteLn('Из точки 1 в точку 3');
         Write('её длинна равна'); WriteLn(lengths[5]);
       end;
   6 : begin
         WriteLn('Из точки 2 в точку 4');
         Write('её длинна равна'); WriteLn(lengths[6]);
       end;
  end;
  ReadLn;
END.



--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
xF1x
Дата 12.9.2008, 06:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



CalcLength не изучали и мы про 3 точки делали без массива! без массива нельзя?case n of тоже не изучали! а так все отлично!

Это сообщение отредактировал(а) xF1x - 12.9.2008, 15:24
PM MAIL   Вверх
mr.Anderson
Дата 12.9.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, вы вообще ну хоть что-то, кроме меток, изучали?! Что значит "calcLength" не изучали, а ничего, что это название процедуры? Или на первом уроке по процедурам ты не был? Кошмар. Без массива долго, нудно и муторно. Можно без case, если понаписать кучу условных операторов, это, надеюсь, учили. Если не учили, то максимум и минимум ты не найдешь. Вообще, код от orthrus можно раза этак в 2-3 сократить всего лишь с использованием дополнительного массива.

Добавлено через 1 минуту и 9 секунд
То есть двух дополнительных, для X и для Y соответственно. Кстати, красивое решение получится. А если еще и записи прикрутить, то вообще супер будет, но я даже не спрашиваю, учили это или нет...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 12.9.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



ладно давай я напишу как мы делали для 3 ч точек! и на этом основании ты уже подумаешь ок?

Добавлено через 14 минут и 53 секунды

программа находит существует ли треуголдьник по его заданным координатам тоесть если одна сторона меньше двух других сторон то он существует еслши нет то несуществует! использовали формулу герона где p полупериметр! вот! и теперь нужно по образцу этой задачи сделать то что я написал!вычислить длины соединенй координат четырех точек и найти наибольшую длину! вот
var x1 y1 x2 y2 x3 y3:integer;
var s,p, l12,l21,l23:real;
LABEL1,2;
procedure dlin;
var n,n1,m,m1:integer;
var d:real;
begin d:=sqrt (sqr(n1-n) +sqr(m1-m)) 
end:
begin
writeln ('x','x2','x3');
readln(x1,x2,x3);
writeln ('y1','y2','y3');
readln (y1,y2,y3);
dlin (x1,x2,y1,y2,l12);
dlin (x2,x3,,y2,y3,l23);
dlin(x3,x1,y3,y1,l31);
writeln ('dlin12'l12,'dlin23'l23,'dlin31',l31)
if l12>(l23+l31)or
l23>(l12+l31)or
l31>(l12+l23) then go to 1; else writeln ('существует');
p:=(l12+l23+l31)/2;
s:=sqrt(p*(p-l12)*(p- l23)*(p-l31);
writeln ('площадь's:5:1);go to 2
1:write('ytceo');
2:readln;
end.
PM MAIL   Вверх
THandle
Дата 12.9.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



xF1x, Боже!!! Ужас какой-то. Вообще код у нас принято соответствующей кнопкой выделять, но это даже кодом называть язык не поворачивается smile 

За такое оформление надо расстреливать.

Код

procedure dlin;
var n,n1,m,m1:integer;
var d:real;
begin d:=sqrt (sqr(n1-n) +sqr(m1-m)) 
end:


А вот это вообще зачем, а?
Что оно хоть делает? просто считает локальную переменную не понятно для чего...

Еще и goto эти...

послушай ты народ что тебе говорит, сделай с функциями. Знаниями блеснешь... Если не примут сделаем тебе с goto, хотя это извращения жуткие... Зачем такое преподавание языка нужно...


Если очень грубо - извиняюсь.
PM   Вверх
mr.Anderson
Дата 12.9.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, руки поотрывать тем, кто такой код пишет. THandle тебе правильно сказал насчет стиля и оформления. Да и смысла в коде не особо. Я тебе уже говорил, сделай с функциями и будешь на высоте, репутацию себе поднимешь! Чего через одно место-то все делать, просто потому, что так препод сказал? Не стоит оно этого.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 12.9.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



Ну ребят выкладывайте свой код давайте! как можно проще с procedure! блесну знаниями! давайте кидайте а то завтра сдавать

PM MAIL   Вверх
xF1x
Дата 12.9.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



А РЕБЯТААА! ГДЕ ВЫ ВСЕ? smile  НЕ КИДАЙТЕ МЕНЯ МНЕ ЗАВТРА СДАВАТЬ!  smile 
PM MAIL   Вверх
mr.Anderson
Дата 12.9.2008, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



xF1x, наконец-то. Хоть что-то. Лови. Привел максимально короткое решение с процедурами, какое придумал. Перед сдачей советую проверить на работоспособность, у меня компилятора нет.
Код

program YourProgram;
var
 _x : Array [1..4] of Integer; //координаты X каждой точки
 _y : Array [1..4] of Integer; //координаты Y каждой точки
 max : Real; //максимальная длина, глобальная общедоступная переменная

procedure calcLength( x1, y1, x2, y2: Integer );
var
 len : Integer;
begin
 len := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); //считаем длину

 if (max < len) then //одновременно ищем максимум
  max := len;
end;

begin
 for i:=1 to 4 do
 begin
  WriteLn("Enter coordinates of ", i, " point (x y): ");
  ReadLn(_x[i], _y[i]);
 end;

 max := 0; //пока максимума нет, ставим в 0 как в минимально возможное значение

 calcLength(_x[1], _y[1], _x[2], _y[2]); //считаем длины сторон
 calcLength(_x[2], _y[2], _x[3], _y[3]);
 calcLength(_x[3], _y[3], _x[4], _y[4]);
 calcLength(_x[4], _y[4], _x[1], _y[1]);
 calcLength(_x[1], _y[1], _x[3], _y[3]); //и двух диагоналей
 calcLength(_x[2], _y[2], _x[4], _y[4]);

 WriteLn("Maximum: ", max); //выводим максимум
end.

Кажись, так.

Это сообщение отредактировал(а) mr.Anderson - 12.9.2008, 21:11


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 12.9.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



calcLength
len поясни пожалуйста не знаю такого, так нужно же 4 точки! а у тебя 2 
и что то  len := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) вот эту форумулу не понял зачем две координаты сами на себя перемножать?

Это сообщение отредактировал(а) xF1x - 12.9.2008, 21:17
PM MAIL   Вверх
xF1x
Дата 12.9.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



ауууу ну где ты?
PM MAIL   Вверх
THandle
Дата 12.9.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



mr.Anderson, тебя плющит!!! Уж извини smile Это надо попутать C++ и Pascal в строках?smile

Цитата(mr.Anderson @  12.9.2008,  22:00 Найти цитируемый пост)
WriteLn("Maximum: ", max);


Так кажись:

Код

WriteLn('Maximum: ', max);


 smile 

И хто есть заюзанная, но не объявленная переменная i? smile  Хоть в Делфе что ль проверяй...
Еще как можно например юзать переменную целого типа для присвоения результата вычислений sqrt?

Вот в общем как-то работающий код, формулы не мои smile Я после празднования ДП плохо соображаю насчет них. Но какой то результат программа даёт smile

Код

program YourProgram;

var
  x: Array [1..4] of Integer; //координаты X каждой точки
  y: Array [1..4] of Integer; //координаты Y каждой точки
  max: Real; //максимальная длина, глобальная общедоступная переменная
  i: Integer; //Переменная-счетчик

procedure CalcLength(x1, y1, x2, y2: Integer);
var
  len: Real;
begin
  len := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)); //считаем длину
  if (max < len) then //одновременно ищем максимум
    max := len;
end;

begin
  for i := 1 to 4 do
    begin
      WriteLn('Enter coordinates of ', i, ' point (x y): ');
      ReadLn(x[i], y[i]);
    end;
  max := 0; //пока максимума нет, ставим в 0 как в минимально возможное значение
  CalcLength(x[1], y[1], x[2], y[2]); //считаем длины сторон
  CalcLength(x[2], y[2], x[3], y[3]);
  CalcLength(x[3], y[3], x[4], y[4]);
  CalcLength(x[4], y[4], x[1], y[1]);
  CalcLength(x[1], y[1], x[3], y[3]); //и двух диагоналей
  CalcLength(x[2], y[2], x[4], y[4]);
  WriteLn('Maximum: ', max); //выводим максимум
  ReadLn;
end.



Добавлено через 1 минуту и 54 секунды
Цитата(xF1x @  12.9.2008,  22:15 Найти цитируемый пост)
calcLength


Процедура считающая длину типа.

Цитата(xF1x @  12.9.2008,  22:15 Найти цитируемый пост)
len поясни пожалуйста не знаю такого, так нужно же 4 точки! а у тебя 2 


4 точки, 4. Ты запусти, посмотри сколько раз надо вводитьsmile

PM   Вверх
xF1x
Дата 12.9.2008, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



THandle  поясни плиз где мы вводим координаты 4 точек? и почему в начале 2 массива а не 4?

Добавлено @ 22:29
len := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) длина от точки до точки не так находиться из конечной начальную вроде надо вычитать

Это сообщение отредактировал(а) xF1x - 12.9.2008, 22:30
PM MAIL   Вверх
THandle
Дата 12.9.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Цитата(xF1x @  12.9.2008,  23:26 Найти цитируемый пост)
THandle  поясни плиз где мы вводим координаты 4 точек?


Код

  for i := 1 to 4 do
    begin
      WriteLn('Enter coordinates of ', i, ' point (x y): ');
      ReadLn(x[i], y[i]);
    end;


Цитата(xF1x @  12.9.2008,  23:26 Найти цитируемый пост)
и почему в начале 2 массива а не 4? 


Потому что массивы у Андерсена длиной по 4 элемента, в одном [ координаты в другом y. Я бы вообще сделал запись и один массив, ну это мои уже дела smile вы врядли это проходили все.

Еще вопросы?
PM   Вверх
xF1x
Дата 12.9.2008, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



len := sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) длина от точки до точки не так находиться из конечной начальную вроде надо вычитать
PM MAIL   Вверх
THandle
Дата 12.9.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



xF1x, предъявы  не ко мне, я просто разместил объяву... Смотри, так?

Код

program YourProgram;

var
  x: Array [1..4] of Integer; //координаты X каждой точки
  y: Array [1..4] of Integer; //координаты Y каждой точки
  max: Real; //максимальная длина, глобальная общедоступная переменная
  i: Integer; //Переменная-счетчик

procedure CalcLength(x1, y1, x2, y2: Integer);
var
  len: Real;
begin
  len := sqrt((x2-x1)*(y2-y1)); //считаем длину
  if (max < len) then //одновременно ищем максимум
    max := len;
end;

begin
  for i := 1 to 4 do
    begin
      WriteLn('Enter coordinates of ', i, ' point (x y): ');
      ReadLn(x[i], y[i]);
    end;
  max := 0; //пока максимума нет, ставим в 0 как в минимально возможное значение
  CalcLength(x[1], y[1], x[2], y[2]); //считаем длины сторон
  CalcLength(x[2], y[2], x[3], y[3]);
  CalcLength(x[3], y[3], x[4], y[4]);
  CalcLength(x[4], y[4], x[1], y[1]);
  CalcLength(x[1], y[1], x[3], y[3]); //и двух диагоналей
  CalcLength(x[2], y[2], x[4], y[4]);
  WriteLn('Maximum: ', max); //выводим максимум
  ReadLn;
end.

PM   Вверх
xF1x
Дата 12.9.2008, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



вот формула для нахождения длины от одной точки до другой len:= sqrt(sqr(x1-x)+sqr(y1-y)) поправь если не так мы в классе так делали
PM MAIL   Вверх
THandle
Дата 12.9.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



xF1x, тчоно smile Забыл. Меньше праздновать надо было smile

Код

program YourProgram;

var
  x: Array [1..4] of Integer;
  y: Array [1..4] of Integer;
  max: Real;
  i: Integer;

procedure CalcLength(x1, y1, x2, y2: Integer);
var
  len: Real;
begin
  len := sqrt(Sqr((x2-x1))*Sqr((y2-y1)));
  if (max < len) then
    max := len;
end;

begin
  for i := 1 to 4 do
    begin
      WriteLn('Enter coordinates of ', i, ' point (x y): ');
      ReadLn(x[i], y[i]);
    end;
  max := 0;
  CalcLength(x[1], y[1], x[2], y[2]);
  CalcLength(x[2], y[2], x[3], y[3]);
  CalcLength(x[3], y[3], x[4], y[4]);
  CalcLength(x[4], y[4], x[1], y[1]);
  CalcLength(x[1], y[1], x[3], y[3]);
  CalcLength(x[2], y[2], x[4], y[4]);
  WriteLn('Maximum: ', max);
  ReadLn;
end.


Так?
PM   Вверх
xF1x
Дата 12.9.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



вообщем все я разобрался! сам кое где подредактировал! ВСЕМ ОГРОМНОЕ СПАСИБО! smile  ЗАВТРА ОТПИШУСЬ ЧТО МНЕ ПОСТАВИЛИ! 
PM MAIL   Вверх
THandle
Дата 12.9.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



xF1x, если разобрался, то не поленись теме галочку поставить smile Что решена типа smile Удачи завтра smile
PM   Вверх
xF1x
Дата 12.9.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



спасибо!  smile  ЧТОБЫ Я БЕЗ ВАС ДЕЛАЛ?!!
PM MAIL   Вверх
mr.Anderson
Дата 13.9.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 16
Всего: 128



THandle, ну, вот что бывает, когда пишешь подобные ответы в спящем состоянии + при изучении второго языка попутно... smile

xF1x, учил бы, например. smile Что поставили-то?


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
xF1x
Дата 16.9.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 18.3.2008

Репутация: 0
Всего: 0



5 поставили! СПАСИБО щас еще одна программа будет!
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1506 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.