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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2010, 00:19   #1
S1nek
 
Регистрация: 19.07.2010
Сообщений: 9
По умолчанию (Pascal) Функции

1- Написать программу, определяющую отрезок наибольшей длинны, если заданы начала и концы отрезков. Написать функцию, определяющую длину отрезка (входной параметр – координаты вершин начала и конца отрезка).

2-Найти периметр фигуры ABCD по заданным сторонам AB, AC и DC. Используя функцию определения гипотенузы по двум катетам.
Угол ВАС = углу BCD = 90 градусов.

И если не трудно,то обьясните пожалуйста по какому принцыпу ани работают, буду рад описанию к программе
S1nek вне форума Ответить с цитированием
Старый 20.07.2010, 08:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Написать функцию, определяющую длину отрезка (входной параметр – координаты вершин начала и конца отрезка).
Код:
 function len(ax,ay,bx,by:double);begin len:=sqrt(sqr(ax-bx)+sqr(ay-by));end;
Цитата:
если заданы начала и концы отрезков
Ну вот смотри. Допустим описываешь массив
Код:
type tPoint=record x,y:double;end; 
var otrezki[1..100,1..2] of tpoint;
 i:integer;
Далее заполняешь их
Код:
 for i:=1 to 100 do begin
  read(otrezki[i,1].x,otrezki[i,1].y,otrezki[i,2].x,otrezki[i,2].y);
 end;
После в цикле передаешь в функцию len элементы массива
Код:
...:=len(otrezki[i,1].x,otrezki[i,1].y,otrezki[i,2].x,otrezki[i,2].y);
которая вернет тебе длину отрезка. Запоминай ее в некую переменную если ее значение меньше чем длина высчитанного отрезка.
Цитата:
по какому принцыпу ани работают
А это ты у Ань сам спроси.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.07.2010, 14:14   #3
S1nek
 
Регистрация: 19.07.2010
Сообщений: 9
По умолчанию

Спасибо Stilet но не могли бы ли вы отправить полный текст программы
я плохо разбираюсь в паскале
S1nek вне форума Ответить с цитированием
Старый 21.07.2010, 21:57   #4
Анатоль
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 74
По умолчанию

Ну по-моему stilet супер доступно всё объяснил, дальше просто некуда.
А если вы не можете после таких объяснений сми написать код программы, то
вам это и не нужно по видимому. А препод всё равно потом поймёт что вы ничего не знаете, так что пора бы чему то самому научиться.
Анатоль вне форума Ответить с цитированием
Старый 21.07.2010, 22:30   #5
S1nek
 
Регистрация: 19.07.2010
Сообщений: 9
По умолчанию

Уважаемый Анатоль я понимаю вашу позицию, но дело в том что прежде чем писать на форум я сам попробовал создать программы,дабы проверить на правильность я задал свой вопрос в этой теме, вот одна из них :

Код:
program Perimetr_ABCD;
function GetHipo(kat1,kat2:real):real;
begin
  GetHipo:=sqrt(sqr(kat1)+sqr(kat2));
end;
var
  AB,AC,DC:real;
  P:real;
begin
  writeln('Vvedite AB');
  Readln(AB);
  writeln('Vvedite AC');
  Readln(AC);
  writeln('Vvedite DC');
  Readln(DC);
  P:=AB+AC+DC+GetHipo(GetHipo(AB,AC),DC);
  WriteLn('Perimetr = ',P:8:3);
  ReadLn;
end.

Как видите программа другая,мне кажется что я неправильно её написал и у меня поэтому возникли такие предложения

Последний раз редактировалось Stilet; 22.07.2010 в 11:26.
S1nek вне форума Ответить с цитированием
Старый 22.07.2010, 10:15   #6
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Цитата:
Как видите программа другая
Конечно, другая, Stilet про длину отрезка писал, а ты про периметр ABCD.
Цитата:
мне кажется что я неправильно её написал и у меня поэтому возникли такие предложения
почему тебе так кажется? Вроде все верно.
Snejnaya вне форума Ответить с цитированием
Старый 22.07.2010, 11:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я плохо разбираюсь в паскале
Признайся что просто лень
Код:
 function len(ax,ay,bx,by:double);begin len:=sqrt(sqr(ax-bx)+sqr(ay-by));end;
var a:array[1..1000,1..4] of double;
 mxi,i:integer;mx:double;
begin
 mx:=0;
 for i:=1 to 1000 do begin
  write('Введи АХ ');readln(a[i,1]);
  write('Введи АY ');readln(a[i,2]);
  write('Введи BХ ');readln(a[i,3]);
  write('Введи BY ');readln(a[i,4]);
  if len(a[i,1],a[i,2],a[i,3],a[i,4])>mx then begin
   mxi:=i;  mx:=len(a[i,1],a[i,2],a[i,3],a[i,4]);
  end;
 end;
 write('Наидлинейший отрезок ',a[mxi,1],a[mxi,2],a[mxi,3],a[mxi,4]);
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.07.2010, 16:37   #8
S1nek
 
Регистрация: 19.07.2010
Сообщений: 9
По умолчанию

Уважаемый Stilet спасибо за текст программы, но к сожалению она немного не верна, а на счёт лени - есть немножко
так я немного подправил, но не дописал - необходима ваша помощь

Код :

Program Otrezzzki;
function len(ax,ay,bx,by: double):real;
begin len:=sqrt(sqr(ax-bx)+sqr(ay-by));
end;
var a:array[1..4] of double;
L1,L2,i:integer;
begin
for i:=1 to 4 do
begin
writeln('Vvedi koord pervogo otrezka L1');
readln(a[i]);
L1:=len(a[i],a[i],a[i],a[i]);
Writeln('Vvedi koord vtorogo otrezka L2');
L2:=len(a[i],a[i],a[i],a[i]);
if L1>L2 then
begin
writeln('Naidlinneisiu otrezok ',L1);
end;
if L1<L2 then
begin
writeln('Naidlinneisiu otrezok ',L2);
end;
end.

Уважаемый Stilet так как координаты находятся на плоскости мне нужно вводить 4 координаты первого отрезка и 4 второго, по средству цыкла если (if) сравнить эти координаты и вывести результат.
МНЕ ОЧЕНЬ НЕОБХОДИМА ВАША ПОМОЩЬ
S1nek вне форума Ответить с цитированием
Старый 22.07.2010, 21:56   #9
S1nek
 
Регистрация: 19.07.2010
Сообщений: 9
По умолчанию

Народ,я мазгами пораскинул и сам всё написал,точнее переписал копитально, если каму необходимо увидеть мой вариант написания этой работы то отпишитесь....
P.S но возникла ещё одна проблема.... но это уже в другой теме....
S1nek вне форума Ответить с цитированием
Старый 24.11.2010, 08:51   #10
Gray_Mc
Новичок
Джуниор
 
Регистрация: 27.10.2010
Сообщений: 1
По умолчанию

Цитата:
Сообщение от S1nek Посмотреть сообщение
Народ,я мазгами пораскинул и сам всё написал,точнее переписал копитально, если каму необходимо увидеть мой вариант написания этой работы то отпишитесь....
P.S но возникла ещё одна проблема.... но это уже в другой теме....
Отпишите пожалуйста 2ю прогу
Gray_Mc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции(Pascal) Zimba Помощь студентам 3 21.06.2010 18:53
Функции в Pascal Masya1705 Помощь студентам 7 01.06.2010 21:34
Pascal. Функции. HD-boy Помощь студентам 2 22.12.2009 12:00
Функции [Pascal]. sergey31 Помощь студентам 4 31.05.2008 22:11