IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Датчик случайных чисел, треугольник ..., Последняя моя задачка :)
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 90
Пол: Мужской
Реальное имя: Дима

Репутация: -  1  +


Задача: С помощью датчика случайных чисел сгенерировать 2N целых чисел. Вывести номера тройки точек, которые являются координатами вершины треугольника с наибольшем углом.
~~~
В модуле сделать, операцию над векторами:
* сложения
* вычитания
* скалярного умножения векторов
* умножения вектора на число
* нахождения длинны вектора
сделать тип:
type vector = record
x,y: real;
end;
-----------------------------------------------------------

ну вот осталась всего лиш одна задачкa что бы закончить дела с tp7 smile.gif

я попытался сделать типа так:

Program ex_1375;

uses crt;

var i,j,k,n:integer;

ab,bc,ac:real;

a,b,c,aa,bb,cc:real;

maxi,maxj,maxk:integer;

max,m:real;

mas:array[1..100,1..2] of integer;

Begin
randomize;
clrscr;

write('Kollichestvo tochek (max=100) : ');
readln(n);

for i:=1 to n do
begin
mas[i,1]:=random(50)+10;
mas[i,2]:=random(50)+10;
end;

writeln;
writeln('Masiv :');
writeln;

for i:=1 to n do
begin
write(mas[i,1],' ; ');
writeln(mas[i,2]);
end;

readln;
max:=0;

for i:=1 to n-2 do
for j:=(i+1) to n-1 do
for k:=(j+1) to n do

begin
ab:=sqrt(sqr(mas[i,1]-mas[j,1])+sqr(mas[i,2]-mas[j,2]));
bc:=sqrt(sqr(mas[j,1]-mas[k,1])+sqr(mas[j,2]-mas[k,2]));
ac:=sqrt(sqr(mas[i,1]-mas[k,1])+sqr(mas[i,2]-mas[k,2]));
a:=((bc*bc+ac*ac-ab*ab)/(2*bc*ac));
b:=(ab*ab+ac*ac-bc*bc)/(2*ab*ac);
aa:=arctan(sqrt(1-a*a)/a)*180/pi;

if a<0 then aa:=aa+180;
bb:=arctan(sqrt(1-b*b)/b)*180/pi;

if b<0 then bb:=bb+180;
cc:=180-aa-bb;
m:=aa;
if bb>m then m:=bb;
if cc>m then m:=cc;
if max<m then
begin
max:=m;
maxi:=i;
maxj:=j;
maxk:=k;
end;
end;

write('Nomera tochek v masive : ');
writeln(maxi,' ; ',maxj,' ; ',maxk);
writeln;

writeln('Naibolshiy ygol v treygolnik s vershinami :');
writeln('A[',mas[maxi,1],';',mas[maxi,2],']');
writeln('B[',mas[maxj,1],';',mas[maxj,2],']');
writeln('C[',mas[maxk,1],';',mas[maxk,2],']');
writeln('Ygol raven ',max:5:2,' gradysov');

writeln;
write('Dlya vihoda nagmite knopky ...');
readln;
end.



Но я не уверен что єто правильноsad.gif и еще єто дело ж надо в модуль как то реализоавть,
но общем завал wacko.gif

Как с этим жить?

Сообщение отредактировано: Димас -


--------------------
Каждый человек , которого я знаю встречаю, превосходит меня в какой нить области, и я готов у него этому учится:)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.01.2022 13:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name