// PascalABC.NET 3.1, сборка 1213 от 04.04.2016 begin var f: file of integer; var t:integer; Assign(f,'input.dat'); Rewrite(f); for var j:=1 to 5 do begin for var i:=1 to 10 do begin t:=Random(10,99); Write(f,t) end; for var i:=1 to 10 do begin t:=-Random(10,99); Write(f,t) end end; f.Close; end.
2. Программа, которую требовалось написать
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016 begin var f,g: file of integer; var a:=new integer[20]; var t:integer; Assign(f,'input.dat'); Reset(f); Assign(g,'output.dat'); Rewrite(g); while not f.Eof do begin for var i:=0 to 19 do Read(f,a[i]); a:=a[10:15]+a[0:5]+a[15:20]+a[5:10]; for var i:=0 to 19 do Write(g,a[i]) end; f.Close; g.Seek(0); while not g.Eof do begin Read(g,t); Print(t) end; g.Close end.
1. Современное короткое, но скорее всего, мало понятное школьнику решение
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016 function LineLen(a,b:(real,real)):= Sqrt(Sqr(b.Item1-a.Item1)+Sqr(b.Item2-a.Item2));
begin var a:array[1..3] of (real,real); var x,y:real; Writeln('Введите три пары координат x,y'); for var i:=1 to 3 do begin Read(x,y); a[i]:=(x,y) end; Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+ LineLen(a[1],a[3])+LineLen(a[2],a[3])) end.
Тестовое решение: Введите три пары координат x,y 3 -3.5 -6 8 4 5.2 Периметр треугольника равен 33.7449685386805
2. Традиционное, но возможно тоже не очень понятное школьнику решение
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016 type Point=record x,y:real end;
function LineLen(a,b:Point):real; begin Result:=Sqrt(Sqr(b.x-a.x)+Sqr(b.y-a.y)); end;
var a:array[1..3] of Point;
begin Writeln('Введите три пары координат x,y'); for var i:=1 to 3 do Read(a[i].x,a[i].y); Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+ LineLen(a[1],a[3])+LineLen(a[2],a[3])) end.
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var f: file of integer;
var t:integer;
Assign(f,'input.dat'); Rewrite(f);
for var j:=1 to 5 do begin
for var i:=1 to 10 do begin t:=Random(10,99); Write(f,t) end;
for var i:=1 to 10 do begin t:=-Random(10,99); Write(f,t) end
end;
f.Close;
end.
2. Программа, которую требовалось написать
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
begin
var f,g: file of integer;
var a:=new integer[20];
var t:integer;
Assign(f,'input.dat'); Reset(f);
Assign(g,'output.dat'); Rewrite(g);
while not f.Eof do begin
for var i:=0 to 19 do Read(f,a[i]);
a:=a[10:15]+a[0:5]+a[15:20]+a[5:10];
for var i:=0 to 19 do Write(g,a[i])
end;
f.Close;
g.Seek(0);
while not g.Eof do begin Read(g,t); Print(t) end;
g.Close
end.
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
function LineLen(a,b:(real,real)):=
Sqrt(Sqr(b.Item1-a.Item1)+Sqr(b.Item2-a.Item2));
begin
var a:array[1..3] of (real,real);
var x,y:real;
Writeln('Введите три пары координат x,y');
for var i:=1 to 3 do begin Read(x,y); a[i]:=(x,y) end;
Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+
LineLen(a[1],a[3])+LineLen(a[2],a[3]))
end.
Тестовое решение:
Введите три пары координат x,y
3 -3.5 -6 8 4 5.2
Периметр треугольника равен 33.7449685386805
2. Традиционное, но возможно тоже не очень понятное школьнику решение
// PascalABC.NET 3.1, сборка 1213 от 04.04.2016
type
Point=record
x,y:real
end;
function LineLen(a,b:Point):real;
begin
Result:=Sqrt(Sqr(b.x-a.x)+Sqr(b.y-a.y));
end;
var
a:array[1..3] of Point;
begin
Writeln('Введите три пары координат x,y');
for var i:=1 to 3 do Read(a[i].x,a[i].y);
Writeln('Периметр треугольника равен ',LineLen(a[1],a[2])+
LineLen(a[1],a[3])+LineLen(a[2],a[3]))
end.