необходимо провести робота из начального положения (♦️) в точку А, закрашивая при этом указанные клетки поля. Размеры стен и расстояние между ними могут быть произвольны.
1) Представим число -135 в двоичном коде: 135 = 100001112.
2) Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Двоичное 10000111 имеет обратный код 1,01111000 .
3) По таблице триад переводим число из 2 в 8 систему счилсения:
1.01111000 = 1.360
4) 1.360 в десятеричном будет равно:
1 = 8^0*1 = 1 = 1 (целая часть);
360 = 8^-1*3 + 8^-2*6 + 8^-3*0 = 0.46875
Складываем целую и дробную часть и получаем: 1.46875
Объяснение: Если вы что-то не поняли, то буду рад объяснить в лс.
Для этого нужно в цикле пробежаться по элементам mass[i] и элементам mass[30 - i], тоесть чтобы не запоминать суму элементов достаточно её сравнить с сумой каких либо других пар (в нашом случае начало масива мы сравниваем с концом). Далее создадим переменную, по каторой мы будем определять индекс элемента сума которого из соседним элементом являлась самой большой. Просто для проверки запускается 2 цикла в которых будет индекс инкрементироваться, Не важно в конце или в начале этот элемент. В цикле где есть этот элемент делаем проверку, найшли ли мы нужный элемент, если да, то записуем значение индекса в переменную, далее записуем проверку, на равенство индекса и переменной, что не даст нам изменить значение нужного индекса до тех пор, пока мы не найдем нужный, а индекс декрементируем, он все равно будет не изменен, по скольку в начале цыкла мы его увеличиваем на 1. Примерно все! C++ . . . int main { int mass[30]; int i,counter, j; for(i = 0,i<30;i++) {cout<<"Your mass: "<<mass[i] = rand%100<<endl; // делаем заполнение масива случайными числами от 0 до 100 } //делаем собственно проверку
for(i=0;i<30;i++) { for(j=0;j<30;j++) { if (mass[i]+mass[i+1]<mass[30-j]+mass[30-j-1]){ counter=j; j--; } else {counter = i; i--; } } cout<<"Your max element : "<<mass[counter]; } getch(); return 0;
1) Представим число -135 в двоичном коде: 135 = 100001112.
2) Для отрицательного числа все цифры числа заменяются на противоположные (1 на 0, 0 на 1), а в знаковый разряд заносится единица. Двоичное 10000111 имеет обратный код 1,01111000 .
3) По таблице триад переводим число из 2 в 8 систему счилсения:
1.01111000 = 1.360
4) 1.360 в десятеричном будет равно:
1 = 8^0*1 = 1 = 1 (целая часть);
360 = 8^-1*3 + 8^-2*6 + 8^-3*0 = 0.46875
Складываем целую и дробную часть и получаем: 1.46875
Объяснение: Если вы что-то не поняли, то буду рад объяснить в лс.
Далее создадим переменную, по каторой мы будем определять индекс элемента сума которого из соседним элементом являлась самой большой. Просто для проверки запускается 2 цикла в которых будет индекс инкрементироваться, Не важно в конце или в начале этот элемент. В цикле где есть этот элемент делаем проверку, найшли ли мы нужный элемент, если да, то записуем значение индекса в переменную, далее записуем проверку, на равенство индекса и переменной, что не даст нам изменить значение нужного индекса до тех пор, пока мы не найдем нужный, а индекс декрементируем, он все равно будет не изменен, по скольку в начале цыкла мы его увеличиваем на 1. Примерно все!
C++
.
.
.
int main {
int mass[30];
int i,counter,
j;
for(i = 0,i<30;i++)
{cout<<"Your mass: "<<mass[i] = rand%100<<endl; // делаем заполнение масива случайными числами от 0 до 100
}
//делаем собственно проверку
for(i=0;i<30;i++)
{
for(j=0;j<30;j++)
{
if (mass[i]+mass[i+1]<mass[30-j]+mass[30-j-1]){
counter=j;
j--;
}
else {counter = i;
i--;
}
}
cout<<"Your max element : "<<mass[counter];
}
getch();
return 0;