использовать Черепаха
алг
нач
вперед (60)
влево (65)
вперед (43)
вправо (20)
вперед (28)
вправо (45)
вперед (60)
вправо (90)
вперед (20)
вправо (90)
вперед (60)
влево (90)
вперед (20)
влево (65)
вперед (43)
вправо (65)
вперед (20)
вправо (45)
вперед (27)
вправо (45)
вперед (40)
вправо (45)
вперед (27)
влево (180)
вперед (27)
влево (45)
вперед (40)
вправо (90)
вперед (60)
вправо (45)
вперед (26)
вправо (20)
вперед (45)
влево (180)
вперед (45)
влево (155)
вперед (40)
вправо (45)
вперед (27)
влево (45)
вперед (40)
вправо (90)
вперед (39)
вправо (90)
вперед (40)
влево (90)
вперед (20)
влево (90)
вперед (40)
вправо (90)
вперед (39)
поднять хвост
вправо (90)
вперед (100)
опустить хвост
влево (45)
вперед (4)
влево (90)
вперед (4)
влево (90)
вперед (6)
влево (90)
вперед (4)
поднять хвост
кон
Объяснение:
Смотри картинку
Типы и структуры данных
Под типом данных (data type) понимается множество величин, объединенных определенными признаками и совокупностью допустимых преобразований.
Так, если в качестве объединяющего признака используетс� вид данных, то данные можно разделить на следующие типы:
• символьные;
• текстовые;
• звуковые;
• графические.
Например, в MS Excel выделяются три основных типа данных: число, текст и формула.
Если в качестве объединяющего признака использовать представления данных в вычислительных системах (алгоритмических языках программирования), то данные можно разделить на следующие типы:
• целочисленный – используется для представления целых чисел;
• вещественный – используется для представления чисел с плавающей запятой (точкой);
• строковый – используется для представления строки символов;
• логический – используется для представления логических значений «ложь» или «истина»;
• указательный – используется для ссылки на другой объект и т. д.
Program Program1;
Var
a:array [1..10] of integer;
i,min,max, Nmin, Nmax:integer;
//Процедура рекурсивной инвресии массива
procedure InvertMas(nac,kon:integer);
var
temp:integer;
begin
temp:=a[nac];
a[nac]:=a[kon];
a[kon]:=temp;
if nac+1<kon-1 then InvertMas(nac+1,kon-1);
end;
begin
randomize;
//Заполняем массив случайнами числами и выводим его на экран
writeln('Массив до инверсии:');
for i:=1 to 10 do
begin
a[i]:=random(100);
writeln('a['+inttostr(i)+']='+inttostr(a[i]));
end;
//Находим самый левый минимальный элемент в первой половине массива и номер этого элемента
Nmin:=1;
min:=a[Nmin];
for i:=1 to 5 do
if min>a[i] then
begin
min:=a[i];
Nmin:=i;
end;
//Находим самый правый максимальный элемент во второй половине массива и номер этого элемента
Nmax:=10;
max:=a[Nmax];
for i:=10 downto 6 do
if max<a[i] then
begin
max:=a[i];
Nmax:=i;
end;
writeln;
writeln('Инвертируем часть массива с '+inttostr(Nmin)+' по '+inttostr(Nmax)+' элемент');
//Инвертируем часть массива с Nmin по Nmax
invertmas(Nmin,Nmax);
//Выводим массив после инверсии на экран
writeln;
writeln('Массив после инверсии:');
for i:=1 to 10 do writeln('a['+inttostr(i)+']='+inttostr(a[i]));
end.