Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

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

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

Найди учебник по геометрии, там есть очень сложная формула вычисления длины отрезка по координатам концов. Там же, если повезет, найдешь еще более сложную формулу вычисления периметра треугольника. Первую формулу оформишь функцией (об этом в учебниках написано), а вторую один раз вставишь в программу, и все.
puporev вне форума Ответить с цитированием
Старый 15.11.2008, 20:29   #3
MalexG
Форумчанин
 
Регистрация: 07.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 в 20:32.
MalexG вне форума Ответить с цитированием
Старый 15.11.2008, 20: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, 20:58   #5
MalexG
Форумчанин
 
Регистрация: 07.11.2008
Сообщений: 100
По умолчанию

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS