begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var (imin,imax):=(a.IndexMin,a.IndexMax); Writeln('Индекс минимального элемента- ',imin,', максимального- ',imax); Writeln('Максимум и минимум равны ',a[imax],', ',a[imin]) end.
Пример n= 20 45 5 -3 16 -37 24 -2 2 49 25 0 -37 17 26 -38 7 -11 21 3 -7 Индекс минимального элемента- 14, максимального- 8 Максимум и минимум равны 49, -38
Начиная с данной сборки PascalABC.NET вывод можно оформлять и так:
begin var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println; var (imin,imax):=(a.IndexMin,a.IndexMax); Writeln($'Min a[{imin}]={a[imin]}, max a[{imax}]={a[imax]}') end.
Пример n= 20 40 -13 -7 7 45 -28 3 -40 37 45 10 47 -38 -39 25 -46 45 -44 42 44 Min a[15]=-46, max a[11]=47
Собственно чтобы представить число в двоичную систему счисления, необходимо разделить его на максимально целую часть, которая при умножении на 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 потому она делает поиск номера элемента равного М а вообще глобальные переменные это зло. Так что проектирование тут в корне не верно
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var (imin,imax):=(a.IndexMin,a.IndexMax);
Writeln('Индекс минимального элемента- ',imin,', максимального- ',imax);
Writeln('Максимум и минимум равны ',a[imax],', ',a[imin])
end.
Пример
n= 20
45 5 -3 16 -37 24 -2 2 49 25 0 -37 17 26 -38 7 -11 21 3 -7
Индекс минимального элемента- 14, максимального- 8
Максимум и минимум равны 49, -38
Начиная с данной сборки PascalABC.NET вывод можно оформлять и так:
begin
var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
var (imin,imax):=(a.IndexMin,a.IndexMax);
Writeln($'Min a[{imin}]={a[imin]}, max a[{imax}]={a[imax]}')
end.
Пример
n= 20
40 -13 -7 7 45 -28 3 -40 37 45 10 47 -38 -39 25 -46 45 -44 42 44
Min a[15]=-46, max a[11]=47