Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Нахождение длины наибольшего отрезка

Ответить
Настройки темы
Delphi - Нахождение длины наибольшего отрезка

Новый участник


Сообщения: 3
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Delirium
Дата: 18-01-2013
С помощью матрицы (i=1,2;j=1,…n) на плоскости задано n точек так , что , координаты j-й точки. Точки попарно соединены отрезками. Найдите длину наибольшего отрезка. У меня есть решение данной задачи на паскале. Помогите переделать в Delphi. Вот код:
Код: Выделить весь код
program matrix;
uses crt;
const n=6;
type matr=array[1..2,1..n] of byte;
var a:matr;
i,k,j,j_max:byte;
max:real;	
x,y:real;
b:array[1..n-1] of real;
begin
 
{SR+}
clrscr;
k:=1;
writeln('исходная матрица');
for i:=1 to 2 do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write(a[i,j]:3);
end;
writeln;
end;
begin
for j:=1 to n-1 do
b[j]:=sqrt(sqr(a[1,j]-a[2,j])+sqr(a[1,j+1]-a[2,j+1]));
 
end;
writeln(' длинны векторов ');
begin
for j:=1 to n-1 do
write( b[j]:5:2 );
end;
writeln;
 
begin
max:=b[1];
j_max:=1;
for j:=2 to n-1 do
if b[j]>max then
begin
max:=b[j];
j_max:=j;
end;
x:=(a[1,j_max+1]-a[1,j_max]);
y:=(a[2,j_max+1]-a[2,j_max]);
begin
writeln('координаты самого длинного вектора');
writeln( 'X=', x);
writeln( 'Y=', y);
end;
end;
end.
Заранее благодарен

Отправлено: 23:14, 16-01-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Snakepower, Скажи New -> New Project -> New Console Application (такая черная пиктограмма)
"uses crt" исключить, все остальное перенести в новый проект.
"{SR+}" Это я не знаю, что за ключ компилятору, его тоже исключить на всякий случай.
По коду замечания делать или не критично?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:20, 17-01-2013 | #2



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

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


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


От замечании бы тоже не отказался

Отправлено: 12:04, 17-01-2013 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4466
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Цитата Snakepower:
a[i,j]:=random(10); »
Random есть. Randomize нет. Это снижает строгость псевдослучайности чисел. Здесь не критично, но вообще да.
Цитата Snakepower:
b[j]:=sqrt(sqr(a[1,j]-a[2,j])+sqr(a[1,j+1]-a[2,j+1])); »
Извлечение квадратного корня не точная операция, это может привести к ошибке. Например корень из 3 и корень из 3,00000001 дадут почти одинаковый ответ. Разрешимый в рамках квадратов и разрядной сетки. Но не в рамках квадратных корней.
Т.к. числа выбраны в диапазоне 0-255, то самый большой разброс 65535*2=255*sqrt(2). И вот опять. Корень из 2 -- число иррациональное.
Цитата Snakepower:
writeln(' длинны векторов ');
begin
for j:=1 to n-1 do
write( b[j]:5:2 );
end; »
Вас никто не просит печатать длины векторов. Отладочную информацию пожалуйста в комментарии.
Цитата Snakepower:
begin
max:=b[1];
j_max:=1;
for j:=2 to n-1 do
if b[j]>max then
begin
max:=b[j];
j_max:=j;
end;
x:=(a[1,j_max+1]-a[1,j_max]);
y:=(a[2,j_max+1]-a[2,j_max]);
begin
writeln('координаты самого длинного вектора');
writeln( 'X=', x);
writeln( 'Y=', y);
end;
end; »
Почему "for j:=2 to n-1 do", почему "n-1"? Напрашивается просто "n"
Может и правильно, но почему то смущает.
И опять же. Что просят в задании?
Цитата Snakepower:
Найдите длину наибольшего отрезка. »
Причем здесь координаты самого длинного отрезка?

Это как например: какова высота Эйфелевой башни? А ты говоришь -- в Париже!
Мне до лампочки, что она в Париже, мне бы ее высоту узнать.
Понимаешь, о чем я?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 12:26, 17-01-2013 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Полностью с вами согласен.

Отправлено: 13:22, 17-01-2013 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Нахождение длины наибольшего отрезка

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Ограничение длины имени файла - как бороться? flower Microsoft Windows 7 14 22-07-2021 15:46
Хватит длины проводов shishlyander Выбор отдельных компонентов компьютера и конфигурации в целом 3 03-08-2011 01:01
Прочее - [решено] Протяжка кабелей разной длины в гофру одержимый Сетевое оборудование 3 07-04-2010 09:55
Разное - Уникумы колец чисел постоянной длины burany Программирование и базы данных 7 03-04-2009 11:55
Помогите с алгоритмом или исходником двумерного отсечения отрезка. [mzd] Программирование и базы данных 2 04-09-2005 20:31




 
Переход