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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

Как вариант. Остальное за вами.
Код:
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,739
Репутация: 965
По умолчанию

Цитата:
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
Репутация: 33
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


12:30.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.