Добавил:
Источник:
Uman
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:01 семестр / Разное / Готовые решённые задачи в формате ТХТ / Массив записей / Точки
.txt Дан массив записей о точках на плоскости. Проверить, расположены ли расстояния от точек до начала координат в порядке возрастания, если нет - отсортировать.
program toch;
{$APPTYPE CONSOLE}
uses
SysUtils;
type tochki=record
x:real;
y:real;
end;
tmas=array[1..20] of tochki; {massiv tochek}
var n,m:integer;
t:tmas;
i:integer;
procedure vvod(n1:integer;var t1:tmas);
var i:integer;
begin
for i:=1 to n1 do begin
writeln('Vvedite koordinaty X',i);readln(t1[i].x);
writeln('Vvedite koordinaty Y',i);readln(t1[i].y);
end;
end;
procedure vivod(n1:integer;t1:tmas);
begin
for i:=1 to n1 do
writeln(t1[i].x:2:0,' ',t1[i].y:2:0);
end;
function rast(x1:real;y1:real):real;
var q:real;
begin
q:=sqrt(sqr(x1)+sqr(y1));
rast:=q;
end;
procedure proverka(n1:integer;var m1:integer; var t1:tmas);
var p,j:integer;
ra:array[1..20] of real;
buf:tochki;
begin
for i:=1 to n1 do
ra[i]:=rast(t1[i].x,t1[i].y);
p:=1;
for i:=1 to n1-1 do
if ra[i]>ra[i+1] then p:=0;
if p=0 then m1:=0
else m1:=1;
if p=0 then
for i:=1 to n1-1 do begin
for j:=1 to n1-i do
if rast(t[j].x,t[j].y)>rast(t[j+1].x,t[j+1].y) then begin
buf.x:=t[j].x;
buf.y:=t[j].y;
t[j].x:=t[j+1].x;
t[j].y:=t[j+1].y;
t[j+1].x:=buf.x;
t[j+1].y:=buf.y;
end;
end;
end;
begin {osn programma}
writeln('Vvedite kol-vo tochek');
readln(n);
vvod(n,t);
proverka(n,m,t);
if m=0 then writeln('Net. Ots. massiv: ');
vivod(n,t);
if m=1 then writeln('DA');
readln;
end.
program toch;
{$APPTYPE CONSOLE}
uses
SysUtils;
type tochki=record
x:real;
y:real;
end;
tmas=array[1..20] of tochki; {massiv tochek}
var n,m:integer;
t:tmas;
i:integer;
procedure vvod(n1:integer;var t1:tmas);
var i:integer;
begin
for i:=1 to n1 do begin
writeln('Vvedite koordinaty X',i);readln(t1[i].x);
writeln('Vvedite koordinaty Y',i);readln(t1[i].y);
end;
end;
procedure vivod(n1:integer;t1:tmas);
begin
for i:=1 to n1 do
writeln(t1[i].x:2:0,' ',t1[i].y:2:0);
end;
function rast(x1:real;y1:real):real;
var q:real;
begin
q:=sqrt(sqr(x1)+sqr(y1));
rast:=q;
end;
procedure proverka(n1:integer;var m1:integer; var t1:tmas);
var p,j:integer;
ra:array[1..20] of real;
buf:tochki;
begin
for i:=1 to n1 do
ra[i]:=rast(t1[i].x,t1[i].y);
p:=1;
for i:=1 to n1-1 do
if ra[i]>ra[i+1] then p:=0;
if p=0 then m1:=0
else m1:=1;
if p=0 then
for i:=1 to n1-1 do begin
for j:=1 to n1-i do
if rast(t[j].x,t[j].y)>rast(t[j+1].x,t[j+1].y) then begin
buf.x:=t[j].x;
buf.y:=t[j].y;
t[j].x:=t[j+1].x;
t[j].y:=t[j+1].y;
t[j+1].x:=buf.x;
t[j+1].y:=buf.y;
end;
end;
end;
begin {osn programma}
writeln('Vvedite kol-vo tochek');
readln(n);
vvod(n,t);
proverka(n,m,t);
if m=0 then writeln('Net. Ots. massiv: ');
vivod(n,t);
if m=1 then writeln('DA');
readln;
end.
Соседние файлы в папке Массив записей