Відповідь:
Пояснення:
Алгоритмы, в которых команды выполняются последовательно одна за другой, в порядке их записи, называются линейными.
Пример 1. Написать алгоритм получения изображения двузначного числа с исполнителя Чертежник.
Выберем следующий алгоритм построения изображения:
1) создать поле для исполнителя Чертежник размером 6х5 (6 клеток по горизонтали, 5 клеток по вертикали);
2) сместиться в точку (2, 2);
3) опустить перо;
4) изобразить цифру 1;
5) поднять перо и смечтиться в точку (4,3);
6) опустить перо;
7) изобразить цифру 2;
8) поднять перо и перейти в начало координат.
Вначале запишем алгоритм решения задачи на русском языке. Затем для каждой команды этого алгоритма выберем соответствующую команду исполнителя Чертежник.
Запись алгоритма на русском языке Текст программы
Заголовок программы;
Program PR_1;
вызов исп. Чертежник;
uses Drawman;
начало программы;
begin
создание поля размером 6х5;
Field(6,5);
рисуем цифры 1 и 2;
ToPoint(2,2);PenDown;
ToPoint(3,3);
ToPoint(3,1);
PenUp;
ToPoint (4,3);
PenDown;
ToPoint(5,3);
ToPoint(5,2);
ToPoint(4,1);
ToPoint(5,1);
PenUp;
ToPoint (0,0);
закончить программу.
end.
Можешь загрузить! Пример 1
Для выполнения программы выберем команды ПрограммаàВыполнить (F9 или кнопка на панели инструментов). Откроется окно исполнителя Чертежник, где нужно нажать кнопку Пуск или клавишу Enter на клавиатуре.
Команда OnVector(a,b)
OnVector(a,b)– перемещает перо Чертежника на вектор (a,b).
Выполним пример 1, но вместо команды ToPoint(x,y), кторая перемещает перо Чертежника в точку (x,y). будем использовать OnVector(a,b).
Перемещение из точки (1,2) в точку (3,3) с вектора: OnVector(2,1).
Перемещение из точки (3,3) в точку (1,2) с вектора: OnVector(-2,-1).
Перемещение из точки (1,3) в точку (4,3) с вектора: OnVector(3,0).
Перемещение из точки (4,3) в точку (1,3) с вектора: OnVector(-3,0).
Перемещение из точки (3,2) в точку (3,5) с вектора: OnVector(0,3).
Перемещение из точки (3,5) в точку (3,2) с вектора: OnVector(0,-3).
Пример 2. Написать алгоритм получения изображения двузначного числа с исполнителя Чертежник, используя команду OnVector(a,b).
Поделитесь своими знаниями, ответьте на вопрос:
Переведите десятичные дроби в двоичную восьмеричную систему счисления оставив пять знаков в дробной части нового числа а)21, 5 б)432, 54 в)678, 333 желательно ответ фото !
const
nMax = 50; { максимум 50 команд }
cGold = 7;
cSilver = 6;
cBronze = 5;
type
cName = string[20];
RC = record
position: byte;
name: cName;
nGold: byte;
nSilver: byte;
nBronze: byte;
cTotal: byte
end;
tM = array[1..nMax, 1..2] of byte;
procedure Shell(var a: tM; n: integer);
{ Сортировка методом Шелла массива a[1..n, 1..2]
по убыванию значений элементов второго столбца. }
var
i, j, step, t1, t2: integer;
begin
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if a[i, 2] < a[i + step, 2] then
begin
t1 := a[i, 1]; t2 := a[i, 2];
a[i, 1] := a[i + 1, 1]; a[i, 2] := a[i + 1, 2];
a[i + 1, 1] := t1; a[i + 1, 2] := t2
end;
i := i + step
end
end;
step := step div 2
end
end;
{ Основная программа }
var
f: file of RC;
a: tM;
i, n: byte;
s: cName;
t: RC;
begin
{ Организуем ввод данных }
Assign(f, 'Olympic.in');
Rewrite(f);
n := 0;
repeat
Writeln('Введите наименование команды или * для окончания ввода');
Readln(s);
if s[1] <> '*' then
begin
n := n + 1;
Write('Количество медалей: золото, серебро, бронза: ');
Readln(t.nGold, t.nSilver, t.nBronze);
t.position := n;
t.name := s;
t.cTotal := t.nGold * cGold + t.nSilver * cSilver + t.nBronze * cBronze;
Write(f, t);
a[n, 1] := t.position; a[n, 2] := t.cTotal
end
until s[1] = '*';
Reset(f);
{ Выполняем сортировку заполненного массива a,
определяя положение записей в файле }
Shell(a, n);
{ Выводим результаты, используя прямой доступ к файлу }
Writeln('Результаты олимпиады');
for i := 1 to n do
begin
seek(f, a[i, 1] - 1);
Read(f, t);
Writeln(i, ': ', t.name, '(', t.nGold, ' зол, ', t.nSilver, ' сер, ',
t.nBronze, ' бронз), очков- ', t.cTotal)
end;
Close(f);
end.
Тестовое решение:
Введите наименование команды или * для окончания ввода
Веселые медузы
Количество медалей: золото, серебро, бронза: 4 6 10
Введите наименование команды или * для окончания ввода
Юные сурки
Количество медалей: золото, серебро, бронза: 2 0 5
Введите наименование команды или * для окончания ввода
Черепашки-ниндзя
Количество медалей: золото, серебро, бронза: 3 7 11
Введите наименование команды или * для окончания ввода
*
Результаты олимпиады
1: Черепашки-ниндзя(3 зол, 7 сер, 11 бронз), очков- 118
2: Веселые медузы(4 зол, 6 сер, 10 бронз), очков- 114
3: Юные сурки(2 зол, 0 сер, 5 бронз), очков- 39