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

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

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

> Датчик случайных чисел, треугольник ..., Последняя моя задачка :)
Димас
сообщение 11.09.2007 16:07
Сообщение #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

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

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


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

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


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

 



- Текстовая версия 20.07.2025 10:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"