Uses crt;
var x,m: array [1..40] of integer;
n,k,c:integer;
begin
readln(n);
c:=1;
for k:=1 to n do
begin
write('x[',k,']:');
readln(x[k]);
end;
k:=1;
repeat
if x[k]>0 then
begin
m[c]:=x[k];
inc(c);
inc(k);
end
else inc(k);
until c=6;
writeln;
for c:=1 to 5 do
writeln('m[',c,']:',m[c]);
<span>end.</span>
Такие задачи лучше всего(проще и быстрее) решать через 16-ричную систему.
Гляди
123 = 7Bh = 0111 1011b = 001 111 011b = 173(8)
147 = 93h = 1001 0011b = 010 010 011b = 223(8)
Ну и так далее, всё просто! А для перевода 10->16 пользуйся стандартным алгоритмом, то есть последовательно дели на 16.
Например
123/16 = 7 (ост 11), значит 123 = 7Bh (Цифра B - это 11 в 10-тичной системе).
Смотри: чтобы это сделать надо провести логическую линию
Например: колеса-рама-велосипед
Надеюсь помог)))
Проверялось на Ruby
0006 - нормально принимается
-0 - нормально принимается, операция унарный минус
7,0 - как число не принимается, принимается как массив
7. - не принимается, нужно после точки указать ноль
+0.3 - не принимается, нет операции унарный плюс
.3 - не принимается, требует дописать нолик в начале, хотя в других средах может прокатить
2/3 - нормально принимается, хотя следует учитывать что в данном случае деление целочисленное
Е-1 - не принимается, в Ruby нет такой записи числа
8Е0 - не принимается, в Ruby нет такой записи числа
0Е-4 - не принимается, в Ruby нет такой записи числа
2*Е5 - не принимается, в Ruby нет такой записи числа
e
- не принимается, считается необьвленной переменной
3,6e+8
0,03038
0,00685
5,625
5,431004875