1. От 7 бита (знак) к 0:
-1110: 1000 1110
10100: 0001 0100
2) 73 в двоичной это 1*2^6 + 1*2^3 + 1*2^0 = 0100 1001
-93 в двоичной, в прямом коде это 1*2^6 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^0 = 1101 1101
3) В обратном коде у отрицательного числа значащие биты инвертируются:
100: 0000 0100
-10111: 1110 1000
5) 1011 - положительное, поэтому во всех кодах одинаковое: 0000 1011
-10111 - отрицательное, поэтому в прямом коде
1001 0111 (старший разряд - знак, значащие без изменений)
в обратном коде:
1110 1000 (старший разряд - знак, значащие инвертируются)
в дополнительном:
1110 1001 (обратный код + 1)
6) 1000 0110 - отрицательное 110 = 2^2+ 2^1 = -6
0000 1010 - положительное 1010 = 2^3 + 2^1 = 10
10) 1983 - это 0000 0111 1011 1111 в 2-х байтах в двоичной, в шестнадцатеричной - 07BF (переводим тетрады и записываем)
-1983 в двоичной в дополнительном коде - 1111 1000 0100 0001, в шестнадцатеричной это F841
F6D7 в двоичной - 1111 0110 1101 0111
2)отсекается 1 элемент
3)Произведение элементов массива, которые лежат в промежутке [40;55)
в паскале как и почти любом ЯП есть переменные,которые содержат имя и значение,например (i: =0)->имя переменной i,значение 0.Значение переменной можно изменить,имя переменной нельзя.Массивы это переменные которые хранят несколько значений.Чтобы обратиться к определенному значению масива использовать синтаксис имямасива[индексмасива],например чтоб получить 3 элемент масива a использовать a[3].repeat (expression) until(boolean) это цикл,в котором будет выполняться expression(любой код) до тех пор пока boolean не будет верно.Boolean это выражение значение которого будет равно true/false(правда/неправда).Напрмер в repeat
i:=i+1;
until (a[i]=x) or (i=10); к переменной i будет прибавляться 1 до тех пор пока a[i] не равно x или i будет меньше 10(так как в масиве всего 10 элементов,если например i будет 11 это будет выход за границу массива).Каждый блок выполнения в цикле(в нашем случае i:=i+1) называется итерацией.В цикле for(a to max) в a идет создание переменной-счетчика(в нашем случае создание переменной i со значением 0) ,потом пишется to и идет максимальное значение счетчика.И итерации этого цикла(if (a[i]=>40) and (a[i]<55) then s:=s*a[i];
).В конце каждой итерации автоматически значение счетчика увеличивается на 1.До тех пор пока счетчик меньше или равен max итерации будут выполняться.
А вообще в интернете очень много обучающих статей по данной теме