HelpFox
02.02.2021 04:08

Что такое строки? Списки? Что такое подстрока?
Что обозначает оператор +
Что обозначает оператор *
В чем заключается особенность списков?
Что обозначает функция type?
Для чего используется #?​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Foxer20024
25.12.2022 19:37
Var
    a: array [,] of integer;

begin
    var n := ReadlnInteger('n = ');
    var m := ReadlnInteger('m = ');
    var rand := ReadlnInteger('Для ручного ввода нажмите 0');
    
    if rand = 0 then begin
        a := new integer[m, n];
        for var i := 0 to m-1 do
            for var j := 0 to n-1 do
                a[i, j] := ReadlnInteger('a[' + i + ',' + j + '] = ');
    end
    else a := MatrixRandom(m, n, 1, 100);
    Println(a);
    
    var b := ArrGen(n, x -> 1);
    for var i := 0 to m-1 do
        for var j := 0 to n-1 do
            if j mod 2 = 0 then
                b[j] := b[j] * a[i, j];
    
    b.Where((x, i)-> i mod 2 = 0).SortedDescending().Println();
end.
0,0(0 оценок)
Ответ:
Vampire1234
07.07.2022 00:38
Прикладываю исходник и скрин в приложении к ответу.

Несколько замечаний:

1. Большое количество комментариев внесено в код исключительно в учебных целях. В реальную программу переносить не рекомендуется - признак нехорошего тона.

2. У вас допущены синтаксические ошибки в двух последних циклах, а точнее - в операторах If, в которых стоит три условия (объединённых and), но нет ключевого слова "then" и последующих инструкций. Исправил.

3. Так же, автор вашей программы построил на мой взгляд нелогичную структуру алгоритма. Переменные min, min2 и min3, как я догадался, должны хранить три минимальных значения массива.
А вот что происходит в вашей конструкции: первый цикл безошибочно находит наименьший элемент и записывает его в min, а последующие два цикла записывают в min2 и min3 первые попавшиеся(начиная с первого) элементы, если они больше min. Таким образом, нет никакой закономерности в том, что попадёт в эти переменные и сложно представить, для какой задачи потребовались бы такие случайности.

Одним из вариантов решения предлагаю изначально записывать в эти три переменные не значение первого элемента массива, а какое-то большое число, которое в массиве нам не встретится (например 100). Тогда цикл будет искать значения меньше 100 и перезаписывать им соответствующую переменную, пока не найдёт самое маленькое значение. В таком случае не очень стабильная переменная j нам так же не нужна, я её вычеркнул.

Вам отсылаю уже с учётом поправок, однако если вам требовалась именно первоначальная версия несмотря на её минусы, просто поправьте синтаксис в последних циклах (41 и 34 строчка на скрине) и пользуйтесь ей.

Объясните как работает эта программа по-шагово program lklkjo; uses crt; const n=10; var a: array[1.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота