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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [pascal] вычислить длины! Про 4 точки и их координаты 
V
    Опции темы
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   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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