Придумай исполнителя алгоритмов.в его системе команд хотя бы одна команда должна иметь параметры . a.напиши систему команд. b. пример алгоритма( на алгоритм и сам алгоритм) c.нарисуй своего исполнителя.
Вот программа, рисующая маленького кита с фонтаном воды над ним. Сделано через закраску клеток роботом. Поле для робота для этого рисунка нужно в 16 столбцов и 14 строк (сам рисунок 14 на 12 клеток, и по одной клетке с каждой стороны на обязательные отступы от рисунка- так его лучше видно будет). Начальное положение робота- верхний левый угол.
Рисунок в программе можно задать любой, самому- там всё забито в виде текстовой строки (рисуется горизонтальная строка из клеток, начиная со следующей по диагонали клетки от верхнего левого угла- то есть, сам рисунок идёт с отступом в одну клетку от сторон поля). Для каждой клетки рисунка нужно указать- закрасить её, или оставить пустой. Пустые клетки отмечаются знаком равно (=), закрашенные клетки- ноликом (0), конец строки- точкой (её ставить обязательно в конце строки). Также, если после какого то момента в строке дальше идут только пустые клетки, то можно их знаками равно не указывать, а поставить перенос строки (точку).
На первом скрине показан сам рисунок кита, а на втором- как этот рисунок выглядит в программе, если её разбить на строки (так видно рисунок в строках программы, но правда так программа не заработает, придётся после составления рисунка в программе опять сделать строку символов цельной).
при а[ц]=".": нц пока слева свободно; влево кц; вниз
всё
кц
кон
А вот (на всякий случай) программа для чертёжника, рисующая жирафика (смотри третий скрин). Тут уже конечно не универсальная программа, а составленная конкретно для этого рисунка.
Program fofgogjoj; var arr: array[1..1000] of byte; max_num, min_num: byte; i: byte; n,p:integer; begin randomize; Wriiteln('Введите число n'); Readln(n); for i := 1 to n do begin arr[i] := random(100); Write (arr[i]:3); end; max_num := arr[1]; for i := 2 to n do if arr[i] > max_num then begin max_num := arr[i]; end; Writeln; Writeln ('Max = ',max_num); min_num := arr[1]; for i := 2 to n do if arr[i] < min_num then begin min_num := arr[i]; end; Writeln; Writeln ('Min = ',min_num); P:=max_num*min_num; Writeln('Произведение равно:',p); end.
Вот программа, рисующая маленького кита с фонтаном воды над ним. Сделано через закраску клеток роботом. Поле для робота для этого рисунка нужно в 16 столбцов и 14 строк (сам рисунок 14 на 12 клеток, и по одной клетке с каждой стороны на обязательные отступы от рисунка- так его лучше видно будет). Начальное положение робота- верхний левый угол.
Рисунок в программе можно задать любой, самому- там всё забито в виде текстовой строки (рисуется горизонтальная строка из клеток, начиная со следующей по диагонали клетки от верхнего левого угла- то есть, сам рисунок идёт с отступом в одну клетку от сторон поля). Для каждой клетки рисунка нужно указать- закрасить её, или оставить пустой. Пустые клетки отмечаются знаком равно (=), закрашенные клетки- ноликом (0), конец строки- точкой (её ставить обязательно в конце строки). Также, если после какого то момента в строке дальше идут только пустые клетки, то можно их знаками равно не указывать, а поставить перенос строки (точку).
На первом скрине показан сам рисунок кита, а на втором- как этот рисунок выглядит в программе, если её разбить на строки (так видно рисунок в строках программы, но правда так программа не заработает, придётся после составления рисунка в программе опять сделать строку символов цельной).
использовать Робот
алг
нач
цел ц
лит а= '===0=0.==0=0=0.====0.====0.==00000.=0000000.000000000=0==0.00=000000=0000.000000000==00.0000000000000.=00000000000.==000000000.'
вниз
нц для ц от 1 до длин(а)
вправо
выбор
при а[ц]="0": закрасить
при а[ц]=".": нц пока слева свободно; влево кц; вниз
всё
кц
кон
А вот (на всякий случай) программа для чертёжника, рисующая жирафика (смотри третий скрин). Тут уже конечно не универсальная программа, а составленная конкретно для этого рисунка.
использовать Чертежник
алг
нач
сместиться в точку(9, 20)
опустить перо
сместиться на вектор(2, -15)
сместиться на вектор(0, -5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, 5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, -5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, 5)
сместиться на вектор(-3, 0)
сместиться на вектор(0, -5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, 5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, -5)
сместиться на вектор(-1, 0)
сместиться на вектор(0, 7)
сместиться на вектор(-1, -1)
сместиться на вектор(0, 1)
сместиться на вектор(7, 0)
сместиться на вектор(-1, 13)
сместиться на вектор(0, 3)
сместиться на вектор(1, 1)
сместиться на вектор(0, -1)
сместиться на вектор(1, 1)
сместиться на вектор(0, -1)
сместиться на вектор(3, -1)
сместиться на вектор(0, -1)
сместиться на вектор(-3, -1)
поднять перо
сместиться в точку (0,0)
кон
var
arr: array[1..1000] of byte;
max_num, min_num: byte;
i: byte;
n,p:integer;
begin
randomize;
Wriiteln('Введите число n');
Readln(n);
for i := 1 to n do begin
arr[i] := random(100);
Write (arr[i]:3);
end;
max_num := arr[1];
for i := 2 to n do
if arr[i] > max_num then
begin
max_num := arr[i];
end;
Writeln;
Writeln ('Max = ',max_num);
min_num := arr[1];
for i := 2 to n do
if arr[i] < min_num then
begin
min_num := arr[i];
end;
Writeln;
Writeln ('Min = ',min_num);
P:=max_num*min_num;
Writeln('Произведение равно:',p);
end.