Составьте программу которая заполняет массив b 1..8 случайными целыми числами в диапозоне от 1 до 10 затем изменяет знак элементов с чётными индексами на противоположный. выведите на экран исходный и полученный массивы
Var b: array[1..8] of integer; i: byte; begin randomize; writeln('Исходный массив.'); for i := 1 to 8 do begin b[i] := random(9)+1; write(b[i], ' '); end; writeln; writeln('Измененый массив.'); for i := 1 to 8 do begin if i mod 2 = 0 then b[i] := -b[i]; write(b[i], ' '); end; writeln; end.
Собственно чтобы представить число в двоичную систему счисления, необходимо разделить его на максимально целую часть, которая при умножении на 2 давала нам ближайшее значение к этому числу. Т.е. число 243: если мы умножим 121 на 2: 121*2=242;Т.е. 121 умноженное на 2 и есть ближайшее число к 243, но им не является, т.к. остаток 1, мы записываем его ниже и делим число дальше. Вспоминаем деление столбиком и высчитываем (во вложении). Также, есть более быстрое и продуктивное высчитывание (во вложении). В обоих решениях выписывание остатков происходит в обратном порядке для верного ответа.
function Fun: integer; var i, M: integer; begin writeln('Введите число M='); readln(M); for i := 1 to N do if A[i] = M then Fun := i; end;
procedure CreateMassive; var i: integer; begin for i := 1 to N do begin A[i] := Random(199) - 100; write(A[i],' '); end; Writeln; end;
begin CreateMassive; Writeln(Fun); end.
вот вариант исправления который работает, хотя конечно не факт что он работает как там кто-то задумывал))) не понятно было назначение функции Fun потому она делает поиск номера элемента равного М а вообще глобальные переменные это зло. Так что проектирование тут в корне не верно
b: array[1..8] of integer;
i: byte;
begin
randomize;
writeln('Исходный массив.');
for i := 1 to 8 do
begin
b[i] := random(9)+1;
write(b[i], ' ');
end;
writeln;
writeln('Измененый массив.');
for i := 1 to 8 do
begin
if i mod 2 = 0 then b[i] := -b[i];
write(b[i], ' ');
end;
writeln;
end.