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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2010, 23:17   #1
nox7
Новичок
Джуниор
 
Регистрация: 25.09.2010
Сообщений: 2
Вопрос Программа на цикле неверно выводит результаты

var n, i:integer;
k, x1, x2, y1, y2: real;
begin
readln (n);
readln (x1, y1);
for I := 2 to n do
begin
readln (x2, y2);
k := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
x1 := x2;
y1 := y2;
end;
writeln (k : 0 : 3);
readln ;
end.

Это программа для нахождения расстояния между точками по их координатам n-кол-во точек x,y-координаты,как вывести не последнее значение k(расстояние) а все и чтоб они были все в конце ?

Последний раз редактировалось nox7; 25.09.2010 в 23:23.
nox7 вне форума Ответить с цитированием
Старый 25.09.2010, 23:51   #2
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

не совсем понял,может так?
Код:
uses crt;
var n, i:integer;
k, x1, x2, y1, y2: real;
begin
readln (n);
readln (x1, y1);
for I := 2 to n do
begin
readln (x2, y2);
k := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
x1 := x2;
y1 := y2;
end;
writeLn ('END:');
Writeln;
writeln (' x1- ',x1,'  x2- ',x2);
writeln (k : 0 : 3);
readln ;
end.
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 25.09.2010, 23:58   #3
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

вот так правильней
Код:
uses crt;
var n, i:integer;
k, x1, x2, y1, y2: real;
begin
readln (n);

for I := 1 to n do
begin
readln (x1, y1);
readln (x2, y2);
k := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
x1 := x2;
y1 := y2;
end;
writeLn ('END:');
Writeln;
writeln (' x1- ',x1,'  x2- ',x2);
Writeln;
writeln (' y1- ',y1,'  y2- ',y2);
writeln (k : 0 : 3);
readkey;
end.
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)
DRAgon™ вне форума Ответить с цитированием
Старый 26.09.2010, 07:23   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Может, я неправильно понял, но в цикле то не проще выводить если нужны расстояния между несколькими точками?
Код:
uses crt;
var n, i:integer;
k, x1, x2, y1, y2: real;
begin
readln (n);

for I := 1 to n do
begin
readln (x1, y1);
readln (x2, y2);
k := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
writeln (k : 0 : 3);
x1 := x2;
y1 := y2;
end;
readln;
end.
_-Re@l-_ вне форума Ответить с цитированием
Старый 26.09.2010, 19:28   #5
nox7
Новичок
Джуниор
 
Регистрация: 25.09.2010
Сообщений: 2
По умолчанию

как в предложил _-Re@l-_ подошло,спасибо!!

Последний раз редактировалось nox7; 26.09.2010 в 21:10.
nox7 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi7 - Почему Edit1.Text не выводит в цикле ? vldnik Помощь студентам 8 28.03.2010 05:02
Программа компилируется но не выводит результат в метку prikolist Общие вопросы C/C++ 2 24.03.2009 19:19
Проблема. программа на цикле начинает тупить Василий Общие вопросы Delphi 15 11.01.2009 15:11