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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2008, 17:02   #1
_Антон_
Новичок
Джуниор
 
Регистрация: 30.10.2008
Сообщений: 1
Радость Функции и процедуры

Тема процедуры и функции.
П-ста помогите составить блок схему и программу решения задачи ( хотя бы программу- блок схему сам по проге сделаю) , реализовать программу с конкретными исходными данными.
№1
Определить периметры треугольников, заданных координатами их вершин.
ХА(5), ХВ(5), ХС(5)
YA (5), YB(I), YC(5)
Длину стороны треугольников вычислять в подпрограмме.
_Антон_ вне форума Ответить с цитированием
Старый 15.11.2008, 17:50   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Найди учебник по геометрии, там есть очень сложная формула вычисления длины отрезка по координатам концов. Там же, если повезет, найдешь еще более сложную формулу вычисления периметра треугольника. Первую формулу оформишь функцией (об этом в учебниках написано), а вторую один раз вставишь в программу, и все.
puporev вне форума Ответить с цитированием
Старый 15.11.2008, 19:29   #3
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Как вариант. Остальное за вами.
Код:
programm Perimeters;
type
  TCoord = array[0..2] of integer;
var
  CoordX: TCoord;
  CoordY: TCoord;
  Perimeter: integer;

function GetLength(x1, y1, x2, y2: integer): integer;
begin
  GetLength := Round(Sqrt(Sqr(Abs(x1 - x2)) + Sqr(Abs(y1 - y2))));
end;

function GetPerimeter: integer;
var
  i: integer;
  Perimeter: integer;
begin
  for i := Low(TCoord) to High(TCoord)-1 do
    Perimeter := Perimeter + GetLength(CoordX[i], CoordY[i], CoordX[i+1], CoordY[i+1]);
  GetPerimeter := Perimeter + GetLength(CoordX[Low(TCoord)], CoordY[Low(TCoord)], CoordX[High(TCoord)], CoordY[High(TCoord)]);
end;

begin
  ...
  Perimeter := GetPerimeter;
  ...
end;

Последний раз редактировалось MalexG; 15.11.2008 в 19:32.
MalexG вне форума Ответить с цитированием
Старый 15.11.2008, 19:44   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
unction GetPerimeter: integer;
var
i: integer;
Perimeter: integer;
begin
for i := Low(TCoord) to High(TCoord)-1 do
Perimeter := Perimeter + GetLength(CoordX[i], CoordY[i], CoordX[i+1], CoordY[i+1]);
GetPerimeter := Perimeter + GetLength(CoordX[Low(TCoord)], CoordY[Low(TCoord)], CoordX[High(TCoord)], CoordY[High(TCoord)]);
end;
И эта галиматья чтобы три числа сложить?
puporev вне форума Ответить с цитированием
Старый 15.11.2008, 19:58   #5
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
И эта галиматья чтобы три числа сложить?
Уважаемый предложите свой вариант. А потом поговорим.
MalexG вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Процедуры и функции KulOle Паскаль, Turbo Pascal, PascalABC.NET 1 26.10.2008 14:18
Процедуры и функции 11111 Помощь студентам 10 26.11.2007 15:06
DLL + Процедуры(не функции) LEKA Общие вопросы Delphi 1 02.05.2007 20:37