banketvoshod
?>

:оформить программу нахождения места максимального значения. вторая программа ввести с клавиатуры число х и выписать номера ячеек массива, где находится такое же значение массива.

Информатика

Ответы

denchiklo2299667
program jnrvjf;
var
A: array[0..20] of integer;
x, b, i, d, c: integer;
begin
    writeln('Введите число элементов в массиве');
    readln(d);
    writeln('Введите число');;
    readln(x);
    b:=0;
    for i:= 1 to d do
        A[i] := random (20);
    writeln(A);
    for i:= 1 to d do
    begin
        c:= A[i];
        if (c > b) then
            b:=A[i]
    end;
    writeln('Максимальное значение в множестве: ', b);
    for i:=0 to d do
    begin
        b:=A[i];
        if b = x then
            writeln ('Номера элементов, совпадающих с x: ', i)// Это если вести человеческую нумерацию, где первый элемент имеет номер 1.
    end;
end.
svetrusval

Вы допустили ошибку на строке 7:

for j in range(1, N):

   ...

Знакомая формулировка задачи, ЕГЭ-27. Вы пошли по пути наименьшего сопротивления, и решили перебрать все возможные пары элементов. Но в таком случае стоит учитывать, что для любого ряда входных данных, если x1 и x2 образуют пару, то эти же числа в обратном порядке учитывать не надо (При вашем переборе программа проверяла и пару x1-x2 и x2-x1, и считала их уникальными, что и приводило к ошибке)

Что бы перебрать все уникальные пары без повторений, вам следует немного изменить параметры вложенного for:

for i in range(N-1):

   for j in range(i, N):

       

Таким образом, вы точно так же учтете все возможные комбинации элементов, но сможете избежать повторений.

stmr29
PascalABC.NETbegin ArrRandom(ReadInteger('k:'),-99,99).Println.Slice(1,2).Average.Print end.

Объяснение:

ArrRandom(n,a,b) -- Возвращает массив размера n, заполненный случайными целыми значениями в диапазоне [a,b].Println -- Выводит последовательность на экран, используя пробел качестве разделителя, и переходит на новую строку.Slice(from,step) -- Возвращает срез последовательности от номера from с шагом step.Average -- Возвращает среднее значение последовательности.Print -- Выводит последовательность на экран, используя пробел качестве разделителя.

Пример работы:

37+55 = 9292 / 2 = 46
Найти среднее арифметическое элементов массива С[k], стоящих на четных местах. (Pascal), Закомментир

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

:оформить программу нахождения места максимального значения. вторая программа ввести с клавиатуры число х и выписать номера ячеек массива, где находится такое же значение массива.
Ваше имя (никнейм)*
Email*
Комментарий*