Закраски клеток (команда 5) здесь нет, значит надо просто обеспечить более короткое перемещение в ту же конечную точку.
Для этого посмотрим, что за движения там записаны.
Если во всём алгоритме три раза вверх и три раза вниз- то робот вернётся в ту же точку (по вертикали), и значит все эти команды можно просто удалить.
То же самое- для движений влево и вправо. Они тоже взаимно противоположные.
Другими словами- надо просто сократить все пары движений влево-вправо и вверх-вниз. Всё что останется- это и есть короткий вариант алгоритма, который даст перемещение ту же самую конечную точку.
Запишу подробнее, как сократить алгоритм движения (только для случая без закраски):
а) берём наш алгоритм: 131413324223
б) во всём алгоритме считаем количество команд перемещения для каждого из направлений движения:
1 (вверх)- 3 штуки
2 (вниз)- 3 штуки
3 (влево)- 4 штуки
4 (вправо)- 2 штуки
в) считаем разность количества команд влево и вправо (из большего числа вычитаем меньшее): 4 - 2 = 2
Осталось две команды - влево (т.к. их было больше). Остальные команды влево-вправо сократились (мы их удалили из алгоритма).
г) считаем разность количества команд вверх и вниз (из большего числа вычитаем меньшее, но тут числа равны): 3 - 3 = 0
Не осталось ни одной команды вверх или вниз. Все эти команды сократились (мы их удалили из алгоритма).
д) получаем, что в коротком варианте алгоритма останутся только две команды влево (3).
Запишем весь алгоритм: 33
Складіть програму мовою С++ для знаходження функції y(x), де x Є [a, b] з кроком h. Дані для y(x), a, b, h вказані в таблиці.
y = x + sin(3x);
[a, b], h [-1, 3], h = 0.3
Програма:
С++:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float y, a, b, h;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "h = "; cin >> h;
while (a <= b) {
y = a + sin(3 * a);
cout << "y = " << y << " при x = " << a << endl;
a += h;
}
}
Результат:
a = -1
b = 3
h = 0.3
-1.14112 при x = -1
-1.56321 при x = -0.7
-1.33204 при x = -0.4
-0.39552 при x = -0.1
0.764643 при x = 0.2
1.4975 при x = 0.5
1.47546 при x = 0.8
0.942254 при x = 1.1
0.528424 при x = 1.4
0.774186 при x = 1.7
1.72058 при x = 2
2.87844 при x = 2.3
3.59854 при x = 2.6
3.56297 при x = 2.9