Помогите написать программу

Модератор: Модераторы

Помогите написать программу

Сообщение sathal » 26.01.2014 10:42:29

Задан n треугольников координатами своих вершин на плоскости. Напечатать номер треугольника с наибольшей площадью (произведения катета). Вычисление сторон и площадей, организовать с помощью подпрограмм. PS. Определить гипотенузу как самую длинную сторону площади треугольника, как определить произведения 2 сторон катетов
sathal
незнакомец
 
Сообщения: 4
Зарегистрирован: 26.01.2014 10:32:50

Re: Помогите написать программу

Сообщение SSerge » 26.01.2014 12:48:33

sathal
1. Для треугольников, заданных "координатами своих вершин на плоскости", нет таких понятий, как "катет" и "гипотенуза". Это - характеристики только прямоугольных треугольников, а их задавать "координатами вершин на плоскости" крайне некорректно, ввиду неизбежных искажений геометрии из-за исходных данных.
2. "Напечатать номер треугольника с наибольшей площадью (произведения катета)" - Задача некорректна, поскольку площадь треугольника в общем смысле не есть "произвдениея катетов". Более того, площадь прямоугольного треугольника также не есть "произведение катетов".
3. "Определить гипотенузу как самую длинную сторону площади треугольника" - Какая сторона вообще может быть у площади, вы вообще о чем?

Это ваша формулировка задачи? Или ее так вам задали? Если второе - мне искрене жаль вас за безграмотного преподавателя.
В любом случае, пока не поймете, как это решается вручную - нечего лезть в программирование алгоритма.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Помогите написать программу

Сообщение NTFS » 26.01.2014 19:45:04

300 руб, работа в течении 2-х часов после подтверждения готовности оплаты заказа (здесь или в личное сообщение). Бинарник высылаю сразу, исходники - после оплаты. Оплата через Qiwi, Yandex или картой, на крайний случай - перевод на номер телефона.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Помогите написать программу

Сообщение vada » 26.01.2014 23:54:13

В задании нет сортировки треугольников по площади периметра?
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Помогите написать программу

Сообщение sathal » 28.01.2014 14:15:59

SSerge писал(а):sathal
1. Для треугольников, заданных "координатами своих вершин на плоскости", нет таких понятий, как "катет" и "гипотенуза". Это - характеристики только прямоугольных треугольников, а их задавать "координатами вершин на плоскости" крайне некорректно, ввиду неизбежных искажений геометрии из-за исходных данных.
2. "Напечатать номер треугольника с наибольшей площадью (произведения катета)" - Задача некорректна, поскольку площадь треугольника в общем смысле не есть "произвдениея катетов". Более того, площадь прямоугольного треугольника также не есть "произведение катетов".
3. "Определить гипотенузу как самую длинную сторону площади треугольника" - Какая сторона вообще может быть у площади, вы вообще о чем?

Это ваша формулировка задачи? Или ее так вам задали? Если второе - мне искрене жаль вас за безграмотного преподавателя.
В любом случае, пока не поймете, как это решается вручную - нечего лезть в программирование алгоритма.

да я с вами согласен не правильно задачу написал
"Заданно n треугольников с координатами своих вершин на плоскости. Напечатать номер треугольника с наибольшей площадью. Вычисления сторон и площадей организовать с помощью процедур и функций, воспользовавшись теоремой пифагора и формулой герона."
написал программу
program Project1;
procedure dlina(x1,x2,y1,y2:integer; var d:real);
begin
d:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
function plosh (a,b,c:real):real;
var p,s:real;
begin
s:=0;
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
plosh:=s;
end;
var xa,ya,xb,yb,xc,yc:integer;
a,b,c:real;
begin
writeln('Vvedite koordinaty tochki a');
readln(xa,ya);
writeln('Vvedite koordinaty tochki b');
readln(xb,yb);
writeln('Vvedite koordinaty tochki c');
readln(xc,yc);
dlina(xa,xb,ya,yb,a);
dlina(xb,xc,yb,yc,b);
dlina(xc,xa,yc,ya,c);
writeln(plosh(a,b,c));
readln;
end.
но не могу сделать цикл если надо будет вводить несколько треугольников
sathal
незнакомец
 
Сообщения: 4
Зарегистрирован: 26.01.2014 10:32:50

Re: Помогите написать программу

Сообщение Лекс Айрин » 28.01.2014 14:42:02

sathal, как бы нужен будет массив для хранения координат.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Помогите написать программу

Сообщение sathal » 28.01.2014 17:50:42

Лекс Айрин писал(а):sathal, как бы нужен будет массив для хранения координат.

мне кажется все намного проще чем вы думаете, не уверен но кажется должно получится так
Программа Project1;
процедура dlina (x1, x2, y1, y2: целое; вар г: реальный);
начинают
д: = SQRT (SQR (x1-x2) + SQR (Y1-Y2));
конец;
функция plosh (а, б, в: реальный): реальная;
вар P, S: реальная;
начать
S: = 0;
р: = (A + B + C) / 2;
ы: = КОРЕНЬ (р * (годовых) * (Pb) * (шт));
plosh: = S;
конец;
вар ха, уа, XB, YB, XC, YC, я, п, J: целое;
, б, в, с, не более: в режиме реального;
начать
WriteLn ('Vvedite kolichestvo treugolnikov ');
ReadLn (п);
макс: = 0;
для I: = 1 до п у
начать
WriteLn ('Vvedite koordinaty vershin', я, '-ого treugolnika');
WriteLn ('Vvedite koordinaty tochki') ;
ReadLn (ха, уа);
WriteLn ('Vvedite koordinaty tochki б');
ReadLn (ВБ, г.р.);
WriteLn ('Vvedite koordinaty tochki с');
ReadLn (хс, ус);
dlina (ха, XB, я, г.р.,);
dlina (ВБ, хс, г.р., ус, б);
dlina (хс, ха, ус, я, в);
WriteLn (',', б "," в);
WriteLn (plosh ( а, б, в));
с: = plosh (а, б, в);
если с> макс затем
начать
макс: = S;
J: = я;
конец;
конец;
WriteLn ('Naibolshuyu Площадь imeyet', J, '-й Треугольник');
ReadLn;
конец.
sathal
незнакомец
 
Сообщения: 4
Зарегистрирован: 26.01.2014 10:32:50

Re: Помогите написать программу

Сообщение Little_Roo » 28.01.2014 18:26:28

sathal писал(а):Программа Project1;
процедура dlina (x1, x2, y1, y2: целое; вар г: реальный);
начинают
д: = SQRT (SQR (x1-x2) + SQR (Y1-Y2));
конец;

Это на каком языке??? На фарджунском, или на ламерском? :shock: :shock: :shock:
Так ведь известно еще с фидошных времен, что LAMERZZZ MUST DIE ! :evil:

И откройте для себя тег code
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Помогите написать программу

Сообщение sathal » 28.01.2014 19:19:14

Little_Roo писал(а):
sathal писал(а):Программа Project1;
процедура dlina (x1, x2, y1, y2: целое; вар г: реальный);
начинают
д: = SQRT (SQR (x1-x2) + SQR (Y1-Y2));
конец;

Это на каком языке??? На фарджунском, или на ламерском? :shock: :shock: :shock:
Так ведь известно еще с фидошных времен, что LAMERZZZ MUST DIE ! :evil:

И откройте для себя тег code

Извините гугл хром стоит на авто перевод текста стоит вот видимо и получилась такая белеберда. А аот сама программа
program Project1; procedure dlina(x1,x2,y1,y2:integer; var d:real); begin d:=sqrt(sqr(x1-x2)+sqr(y1-y2)); end; function plosh (a,b,c:real):real; var p,s:real; begin s:=0; p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); plosh:=s; end; var xa,ya,xb,yb,xc,yc,i,n,j:integer; a,b,c,s,max:real; begin writeln('Vvedite kolichestvo treugolnikov'); readln(n); max:=0; for i:=1 to n do begin writeln('Vvedite koordinaty vershin ',i,'-ogo treugolnika'); writeln('Vvedite koordinaty tochki a'); readln(xa,ya); writeln('Vvedite koordinaty tochki b'); readln(xb,yb); writeln('Vvedite koordinaty tochki c'); readln(xc,yc); dlina(xa,xb,ya,yb,a); dlina(xb,xc,yb,yc,b); dlina(xc,xa,yc,ya,c); writeln(a,' ',b,' ',c); writeln(plosh(a,b,c)); s:=plosh(a,b,c); if s>max then begin max:=s; j:=i; end; end; writeln('Naibolshuyu ploshchad imeyet ',j,'-y treugolnik'); readln; end.

Добавлено спустя 1 минуту 7 секунд:
Хотя с андроида тоже как то не получилось адекватно написать
sathal
незнакомец
 
Сообщения: 4
Зарегистрирован: 26.01.2014 10:32:50

Re: Помогите написать программу

Сообщение Little_Roo » 28.01.2014 19:44:39

sathal писал(а):rogram Project1; procedure dlina(x1,x2,y1,y2:integer; var d:real); begin d:=sqrt(sqr(x1-x2)+sqr(y1-y2)); end; function plosh (a,b,c:real):real; var p,s:real; begin s:=0; p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); plosh:=s; end; var xa,ya,xb,yb,xc,yc,i,n,j:integer; a,b,c,s,max:real; begin writeln('Vvedite kolichestvo treugolnikov'); readln(n); max:=0; for i:=1 to n do begin writeln('Vvedite koordinaty vershin ',i,'-ogo treugolnika'); writeln('Vvedite koordinaty tochki a'); readln(xa,ya); writeln('Vvedite koordinaty tochki b'); readln(xb,yb); writeln('Vvedite koordinaty tochki c'); readln(xc,yc); dlina(xa,xb,ya,yb,a); dlina(xb,xc,yb,yc,b); dlina(xc,xa,yc,ya,c); writeln(a,' ',b,' ',c); writeln(plosh(a,b,c)); s:=plosh(a,b,c); if s>max then begin max:=s; j:=i; end; end; writeln('Naibolshuyu ploshchad imeyet ',j,'-y treugolnik'); readln; end.

Смотрите ВЫШЕ - оформляйте свои исходники в теги CODE :(
На опобликованное смотреть, увы, "...желудочный сок не вырабатывается..." (с)моя жена :D
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 638
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Помогите написать программу

Сообщение Лекс Айрин » 28.01.2014 21:00:46

sathal писал(а):мне кажется все намного проще чем вы думаете,


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

А зациклить пример легко. И не одним способом. но, сам подфорум намекает, что нет смысла дергаться даром.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград


Вернуться в Помощь за вознаграждение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru