Задания Задания для составления линейных программ 1*. На числовой оси х даны целые числа х, их, (рис. 1). Напиши про- грамму вычисления расстояния между точками с координатами х, и.. Пример Результат х 4 -8 о S = |x,- х, 12 х
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 потому она делает поиск номера элемента равного М а вообще глобальные переменные это зло. Так что проектирование тут в корне не верно
Собственно чтобы представить число в двоичную систему счисления, необходимо разделить его на максимально целую часть, которая при умножении на 2 давала нам ближайшее значение к этому числу. Т.е. число 243: если мы умножим 121 на 2: 121*2=242;Т.е. 121 умноженное на 2 и есть ближайшее число к 243, но им не является, т.к. остаток 1, мы записываем его ниже и делим число дальше. Вспоминаем деление столбиком и высчитываем (во вложении). Также, есть более быстрое и продуктивное высчитывание (во вложении). В обоих решениях выписывание остатков происходит в обратном порядке для верного ответа.
N = 10;
var
A: array[1..N] of integer;
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 потому она делает поиск номера элемента равного М
а вообще глобальные переменные это зло. Так что проектирование тут в корне не верно
число 243: если мы умножим 121 на 2: 121*2=242;Т.е. 121 умноженное на 2 и есть ближайшее число к 243, но им не является, т.к. остаток 1, мы записываем его ниже и делим число дальше. Вспоминаем деление столбиком и высчитываем (во вложении). Также, есть более быстрое и продуктивное высчитывание (во вложении). В обоих решениях выписывание остатков происходит в обратном порядке для верного ответа.