Задание: Единственный собрать весь уражай-этт двигаться вперед пока не доберешься до салата затем повернуть налево если есть путь влево. В прртивном случае. Блоки: дви6аться в перёд, повернуть направа и налева, выбрать салат, если путь налева выполнить или, пока это салат выполнить, повторять 5 раз, повторять пока не это салат выполнить. Место сбора блоковт0/9 блоки
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 unit MatInt;
interface
type Matrix=array[,] of integer;
function MatCreate(m,n:integer):Matrix; procedure MatPrint(a:Matrix;w:integer); procedure MatMax(a:Matrix;var x,imax,jmax:integer);
implementation
function MatCreate(m,n:integer):Matrix; // создает матрицу и инициализирует её нулями begin SetLength(Result,m,n); end;
procedure MatPrint(a:Matrix;w:integer); // выводит матрицу, отводя w позиций под элемент begin var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do begin for var j:=0 to n do Write(a[i,j]:w); Writeln end end;
procedure MatMax(a:Matrix;var x,imax,jmax:integer); // возвращает значение максимального элемента и его координаты begin imax:=0; jmax:=0; var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do for var j:=0 to n do if a[i,j]>a[imax,jmax] then (imax,jmax):=(i,j); Inc(imax); Inc(jmax); x:=a[imax-1,jmax-1] end;
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 uses MatInt; begin var a:=MatCreate(5,8); var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do for var j:=0 to n do a[i,j]:=Random(-50,50); MatPrint(a,4); var irow,jcol,max:integer; MatMax(a,max,irow,jcol); Writeln('Максимальный А[',irow,',',jcol,']=',max) end.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 function FS(a,b:real):=0.5*a*b; begin var a,b:real; Write('Катеты первого треугольника: '); Read(a,b); var S1:=FS(a,b); Write('Катеты второго треугольника: '); Read(a,b); var S2:=FS(a,b); if S1>S2 then Writeln('Площадь первого треугольника больше') else if S1<S2 then Writeln('Площадь второго треугольника больше') else Writeln('Площади треугольников равны') end.
Тестовое решение Катеты первого треугольника: 4.18 6 Катеты второго треугольника: 5.4 3.9 Площадь первого треугольника больше
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
unit MatInt;
interface
type
Matrix=array[,] of integer;
function MatCreate(m,n:integer):Matrix;
procedure MatPrint(a:Matrix;w:integer);
procedure MatMax(a:Matrix;var x,imax,jmax:integer);
implementation
function MatCreate(m,n:integer):Matrix;
// создает матрицу и инициализирует её нулями
begin
SetLength(Result,m,n);
end;
procedure MatPrint(a:Matrix;w:integer);
// выводит матрицу, отводя w позиций под элемент
begin
var n:=Length(a,1)-1;
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to n do Write(a[i,j]:w);
Writeln
end
end;
procedure MatMax(a:Matrix;var x,imax,jmax:integer);
// возвращает значение максимального элемента и его координаты
begin
imax:=0; jmax:=0;
var n:=Length(a,1)-1;
for var i:=0 to Length(a,0)-1 do
for var j:=0 to n do
if a[i,j]>a[imax,jmax] then (imax,jmax):=(i,j);
Inc(imax); Inc(jmax); x:=a[imax-1,jmax-1]
end;
end.
2. Компилируем файл, получая библиотеку MatInt.pcu
3. Пишем основную программу:
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016
uses
MatInt;
begin
var a:=MatCreate(5,8);
var n:=Length(a,1)-1;
for var i:=0 to Length(a,0)-1 do
for var j:=0 to n do a[i,j]:=Random(-50,50);
MatPrint(a,4);
var irow,jcol,max:integer;
MatMax(a,max,irow,jcol);
Writeln('Максимальный А[',irow,',',jcol,']=',max)
end.
Тестовое решение
11 -16 11 16 23 -4 -17 -34
-12 -5 20 9 16 47 43 17
-46 -26 47 -40 12 -31 -25 13
-7 39 -20 26 11 -19 32 -15
45 -10 -28 31 -46 -29 -29 -22
Максимальный А[2,6]=47
function FS(a,b:real):=0.5*a*b;
begin
var a,b:real;
Write('Катеты первого треугольника: '); Read(a,b);
var S1:=FS(a,b);
Write('Катеты второго треугольника: '); Read(a,b);
var S2:=FS(a,b);
if S1>S2 then Writeln('Площадь первого треугольника больше')
else
if S1<S2 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение
Катеты первого треугольника: 4.18 6
Катеты второго треугольника: 5.4 3.9
Площадь первого треугольника больше