|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
08.06.2010, 13:38 | #1 (permalink) |
Новичок
Регистрация: 08.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с комплексным заданием на Pascal
Задание: 1. Задать три точки. По двум точкам построить прямую и найти расстояние до третьей. Проиллюстрировать решение графически. 2. Ввести координаты точек из файла, записать результаты в файл. 3. Оформить программу в виде набора процедур. 4. Составить все возможные комбинации прямых и точек из десяти заданных точек, перенумеровать эти комбинации. 5. Ранжировать тройки в порядке возрастания расстояния между прямой и точкой. 6. Представить результаты в виде файла из набора записей, включающих номер комбинации, координаты характерных точек, значения расстояний. 7. Представить результаты в виде таблицы и в виде графика зависимости значения расстояния от номера комбинации. 8. Процедуры ранжирования и построения графика включить в модуль пользователя. Последний раз редактировалось Arfa; 08.06.2010 в 15:23 |
08.06.2010, 13:38 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Люди интересуются одним и тем же, зачастую создают аналогичные темы Задание в Pascal. Подскажите Задание в паскале. Помогите с решением Задание в паскале с кординатами Задание в Паскале |
10.06.2010, 18:29 | #2 (permalink) |
Новичок
Регистрация: 08.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Код программы:
Program ppp; Uses crt; Var T: ARRAY [1..10, 1..2] of INTEGER; i,j,k,N: INTEGER; D: Array[1..360] of real; PROCEDURE Rasst (Var X10,X11,X20,X21,X30, X31: Integer); VAR a,b,d: real; BEGIN if (X20-X10=0) then begin a:=0; b:=X11; end else begin a:=(X21-X11)/(X20-X10); b:=(X11*(X20-X10)-X10*(X21-X11))/(X20-X10); end; Writeln('priamaia: y =', a:2:0, 'x+',b:2:0); d:=Abs(a*X30-X31+b)/Sqrt(Sqr(a)+1); Writeln ('rasstoianie= ', d:2:0); {ReadLn;} end; FUNCTION Rst(Var X10,X11,X20,X21,X30, X31: Integer): REAL; Begin Rst:=Abs(((X21-X11)/(X20-X10))*X30-X31+(X11*(X20-X10)-X10*(X21-X11))/(X20-X10))/Sqrt(Sqr((X21-X11)/(X20-X10))+1); End; PROCEDURE swap(VAR x,y: real); var t:real; begin t:=x; x:=y; y:=t end; BEGIN clrscr; Writeln('tochki T1, .. , T10: '); for i:=1 to 10 do for j:=1 to 2 do Begin T[i,1]:=i; T[i,2]:=Random(I); GotoXY(i,j+1); Write(T[i,j], ' '); End; N:=0; Readln; for i:=1 to 10 do for j:=i+1 to 10 do for k:=1 to 10 do begin IF (k<>i) and (k<>j) Then begin N:=N+1; Writeln('nomer ', N); Writeln('rasstoianie megdu priamoi', '(',T[i,1],T[i,2],')','(',T[j,1],T[j,2],')','i tochkoi(',T[k,1],T[k,2], ')'); Rasst(T[i,1],T[i,1], T[j,1],T[j,2], T[k,1],T[k,2]); D[N]:=Rst(T[i,1],T[i,1], T[j,1],T[j,2], T[k,1],T[k,2]); end; end; Readln; Writeln('sortirovka:'); begin for j:=1 to 359 do for i:=1 to 360-j do if D[i]>D[i+1] then swap(D[i],D[i+1]) end; for j:=1 to 360 do Write(D[j]:2:0); Readln; END. Нужно, чтобы точки считывались из файла, Представить результаты в виде файла из набора записей, включающих номер комбинации, координаты характерных точек, значения расстояний. Представить результаты в виде графика зависимости значения расстояния от номера комбинации. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|