Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
maris
1

Написать программу для нахождения сумм расстояний от заданных точек до фиксированной прямой (в пространстве)

01.12.2011, 19:49. Показов 984. Ответов 5
Метки нет (Все метки)

Программа почему-то не считает сумму..., проверьте пожалуйста...
Задание. Написать программу для нахождения сумм расстояний от заданных k (k<=10) точек до фиксированной прямой (в пространстве). Подготовить и использовать процедуру определения расстояния от точки до прямой (в пространстве).
Код:
program proga;
uses crt;
const Kmax=10;
var S: real; a,b,c: real;
K,i: integer;
var x,y,z: array [1..Kmax] of real;
function calcdist(var a,b,c,x,y,z: integer):real;
begin
calcdist:=(a*x+b*y+c)/sqrt (a*a+b*b);
end {calcdist};
begin
write ('‚ўҐ¤ЁвҐ §**зҐ*Ёп Їаאַ© a: ');
readln (a);
write ('‚ўҐ¤ЁвҐ §**зҐ*Ёп Їаאַ© b: ');
readln (b);
write ('‚ўҐ¤ЁвҐ §**зҐ*Ёп Їаאַ© c: ');
readln (c);
write ('‚ўҐ¤ЁвҐ зЁб«® в®зҐЄ (<=10) ');
readln (K);
for i:= 1 to K do
begin
readln (x[i],y[i],z[i]);
end;
S:=0;
for i:= 1 to K do
begin
l:= (a*x[i]+b*y[i]+c)/ sqrt(a*a+b*b);
end {l};
begin
for i:= 1 to K do;
S:=S+l;
for i:= 1 to K do
readln (S);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 19:49
Ответы с готовыми решениями:

Помогите пожалуйста...Программа для нахождения сумм расстояний....
Пожалуйста помогите решить задачу...)) Задание. Написать программу для нахождения сумм расстояний...

Написать программу для нахождения площади полой прямой призмы с трапецией в основании
Добрый день! Не понимаю его вообще Но нужно сделать работы Пожалуйста,помогите 1.необходимо...

Написать программу для нахождения инвариантных точек и прямых
написать программу для нахождения инвариантных точек и прямых. заранее спасибо.

Дано m точек в n-мерном пространстве. Упорядочить точки по неубыванию их расстояний
Дано m точек в n-мерном пространстве. Упорядочить точки по неубыванию их расстояний до начала...

5
29 / 23 / 23
Регистрация: 12.11.2011
Сообщений: 181
02.12.2011, 12:00 2
1) Если Вы создаете функцию для рассчета расстояния то точки до прямой, то почему Вы ей не пользуетесь? Может быть потому что Ваша функция требует чисел на вход, а Ваши действительные?
2) Саму формулу расстояния не знаю, но меня сущает отсутствие в формуле Z-координаты точки
3) После ввода значения K, хорошо бы проверить что оно действительно меньше 10. Или хотя бы вставить что-то вроде
Pascal
1
2
if K>10 then k:=10;
if k<0 then k:=0;
3) После того как Вы запросили у пользователя координаты точки, начинается мягко говоря некорректный код.

Pascal
1
2
3
4
for i:= 1 to K do
begin
l:= (a*x[i]+b*y[i]+c)/ sqrt(a*a+b*b);
end {l};
Вычисление расстояния до каждой из точек. При этом новое значение всегда перезаписывает старое. В итоге получится что в переменную l запишем расстояние до последней точки.

Затем идет бесполезное begin
Затем
Pascal
1
for i:= 1 to K do;
Просто пустой цикл, который ничего не делает.
Pascal
1
S:=S+l;
С учетом того что в S до этого был записан 0, то эквивалентно S:=l;
Затем
Pascal
1
2
for i:= 1 to K do
readln (S);
Код который должен K раз запросить значение S.

4) Вместо всего этого достаточно было:
Pascal
1
2
3
4
5
6
7
8
9
...
readln (K);
S:=0;
for i:= 1 to K do
begin
readln (x[i],y[i],z[i]);
S:=S+calcdist(a,b,c,x[i],y[i],z[i]);
end;
Write(S)
0
maris
02.12.2011, 18:14 3
Все так понятно разъяснили, большое спасибо...))
Правда программа все-равно выделывается...
S:=S+calcdist(a,b,c,x[i],y[i],z[i]);
Пишет несоответствие типов, сотню раз пыталась исправить все-равно не идет...
29 / 23 / 23
Регистрация: 12.11.2011
Сообщений: 181
02.12.2011, 21:34 4
Ну про несоответствие типов был п.1
У вас функция описана как
Pascal
1
function calcdist(var a,b,c,x,y,z: integer):real;
Т.е эта функция на вход ждет ЦЕЛЫЕ значения а выдает ДЕЙСТВИТЕЛЬНОЕ число. А Вы пытаетесь ей на вход подать ДЕЙСТВИТЕЛЬНЫЕ числа. Поэтому она и ругается. Правильное решение:
Pascal
1
function calcdist(var a,b,c,x,y,z: real):real;
0
maris
03.12.2011, 18:06 5
Вот так не пруха...((
Все уже вроде впорядке и ошибок вроде нет и запускается и числа запрашевает, но не считает, и непонятно чего ей не хватает...((
???.
29 / 23 / 23
Регистрация: 12.11.2011
Сообщений: 181
03.12.2011, 22:21 6
Непруха - это когда после успешной отладки до сохранения электричество закончилось. Вы саму функцию проверили? Код в студию.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2011, 22:21

Написать (переделать) программу с использованием ссылок в качестве параметров функций для нахождения минимального элемента из 3-х заданных
Просто нахождение написал. Подскажите как использовать ссылки (&amp;) в качестве параметров функций....

Написать программу, определяющую номера точек, расположенных ближе всего друг к другу, среди n заданных точек
Помогите решить, курсач горит! Напи¬сать программу, определяющую номера точек, расположенных...

Дано n точек в пространстве. Упорядочить точки по неубыванию их расстояний до начала координат
Всем привет. Задание такое... Дано n точек в пространстве. Упорядочить точки по неубыванию их...

Дано n точек в пространстве, упорядочить точки по неубыванию их расстояний до начала координат
Доброго времени суток всем. Прошу помочь с этими заданиям, написать код в c++ 1. Дано n точек в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru