Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 14.05.2018
Сообщений: 214

Найти наименьший из максимальных элементов по нечетным столбцам матрицы

13.09.2019, 17:44. Показов 2817. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, пожалуйста!
Написать программу, которая ищет наименьший из максимальных элементов по нечетным
столбцах матрицы. Реализовать через функции.
Уже написал функции ввода и
вывода матрицы, не знаю как закончить.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp5
{
    class Program
    {
        
 
 static void Create(int[,] a)
        {
            int n = a.GetLength(0);
            int k = a.GetLength(1);
            Random r = new Random();
            for (int i = 0; i < n; i++)
                for (int j = 0; j < k; j++)
                    a[i, j] = r.Next(0, 100);
        }
        static void Print(int[,] a)
        {
            int n = a.GetLength(0);
            int k = a.GetLength(1);
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < k; j++)
                    System.Console.Write("{0,4}", a[i, j]);
                System.Console.WriteLine();
            }
            System.Console.WriteLine();
        }
        
        static void Main(string[] args)
        {
            System.Console.Write("n = ");
            int n = Convert.ToInt32(System.Console.ReadLine());
 
            System.Console.Write("k = ");
            int k = Convert.ToInt32(System.Console.ReadLine());
            int[,] a = new int[n, k];
            Create(a);
            Print(a);
        }
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.09.2019, 17:44
Ответы с готовыми решениями:

Процедура нахождения максимальных элементов матрицы по столбцам
Процедура нахождения максимальных элементов матрицы по столбцам. (3,3)-размерность матрицы.

Найти минимальное из максимальных элементов и максимальное из минимальных элементов по строкам и по столбцам
Сформировать целочисленную матрицу из величин типа integer. Найти минимальное из максимальных элементов и максимальное из минимальных...

Найти наименьший элемент матрицы и от элементов всех столбцов, за исключением первого, вычесть наименьший
Двумерные массивы. Ввести матрицу А размером m*n, найти наименьший элемент и от элементов всех столбцов, за исключением первого, вычесть...

32
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18359 / 14289 / 5370
Регистрация: 17.03.2014
Сообщений: 28,968
Записей в блоге: 1
14.09.2019, 21:04
Студворк — интернет-сервис помощи студентам
Макрой, а еще члены интерфейса. Только при чем тут это если в данном случае дело в наличии extern модификатора.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
14.09.2019, 21:08
Цитата Сообщение от Макрой Посмотреть сообщение
методы без тела это абстрактные методы
Читайте https://docs.microsoft.com/ru-... rds/extern
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
14.09.2019, 21:19
OwenGlendower, спасибо.
0
0 / 0 / 0
Регистрация: 14.05.2018
Сообщений: 214
15.09.2019, 15:11  [ТС]
Элд Хасп, Спасибо огромное! могли бы еще на Java етод сделать, пожалуйста?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
15.09.2019, 15:21
Цитата Сообщение от Taras99 Посмотреть сообщение
могли бы еще на Java метод сделать
Я JAVA не знаю.
Обратитесь в соответсвующий раздел.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
15.09.2019, 21:09
Цитата Сообщение от Элд Хасп Посмотреть сообщение
GetLength - это МЕТОД!
хм, всегда считал его свойством, наравне с Length, хотя он и имеет все формальные признаки метода(через это,он конечно же им и является), но у него сложность О(1), как и у свойства Length, отсюда можно к нему относиться как к свойству
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
15.09.2019, 23:13
Цитата Сообщение от Diamante Посмотреть сообщение
хм, всегда считал его свойством, наравне с Length, хотя он и имеет все формальные признаки метода(через это,он конечно же им и является), но у него сложность О(1), как и у свойства Length, отсюда можно к нему относиться как к свойству
Любое свойство, по сути, это оболочка двух методов.
Но всё же свойство это свойство, а метод - метод.
Главное отличие в синтаксисе - наличие круглых скобок после имени.
У метода они обязательны, у свойств - недопустимы.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18359 / 14289 / 5370
Регистрация: 17.03.2014
Сообщений: 28,968
Записей в блоге: 1
15.09.2019, 23:27
Цитата Сообщение от Diamante Посмотреть сообщение
отсюда можно к нему относиться как к свойству
Зачем? Что это даст?

Цитата Сообщение от Diamante Посмотреть сообщение
но у него сложность О(1)
Методы класса Math тоже имеют такую сложность. Они тоже свойства?

Добавлено через 9 минут
Также интересно что насчет обратной ситуации - когда есть свойство которое возможно следовало бы объявить как метод. Например, DateTime.Now или Environment.CurrentDirectory.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
16.09.2019, 00:49
Элд Хасп, не более чем аналогия с .Length у одномерных массивов, и по удобству и по скорости(про формальные признаки я упоминал)
не хочу холивара на тему "свойства vs методы", всему свое место, но свойство(как и метод), с точки зрения пользователя, это то, через что, можно получить нечто тут и сейчас необходимое(только метод что-то делает), а свойство просто возвращает то, что и так известно(касабельно массивов)(в случае .GetLength, параметр более похож на индексатор, со всеми вытекающими)
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Зачем? Что это даст?
нет смысла заморачиваться конструкциями вида
C#
1
2
3
4
5
int n = a.GetLength(0);
            int k = a.GetLength(1);
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < k; j++)
для одномерных же, так не делается?!
З.Ы.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Также интересно что насчет обратной ситуации - когда есть свойство которое возможно следовало бы объявить как метод. Например, DateTime.Now или Environment.CurrentDirectory.
речь шла именно о .GetLength и именно о нем я и писал, согласен, своим "подходом" я смутил участников дискуссии, но смысла моего "подхода" это не меняет, ни на что другое не претендую
З.Ы. кого смутил мой пост, прошу понять и простить

Арбуз - это фрукт или ягода?
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16165 / 11285 / 2891
Регистрация: 21.04.2018
Сообщений: 33,173
Записей в блоге: 2
16.09.2019, 01:43
Цитата Сообщение от Diamante Посмотреть сообщение
не более чем аналогия с .Length у одномерных массивов
Там не так всё просто.

Свойство - это обычно уже вычисленное значение.
Чаще всего в сеттере свойства просто возвращается значение одноимённой закрытой переменной.
Даже если есть в свойстве какие-то команды (кроме присвоения/возврата значения) они бывают в геттере свойства.
Lenght - такая же история. Его значение известно. Хранится в закрытой переменой и свойство просто возвращает это значение.

Методы же создаются когда для возврата значения надо произвести какие-то вычисления.
Я не разбирал исходники GetLenght, но скорее всего там тоже не просто возврат значения переменной.
Метод этот с модификатором extern. То есть он реализован во внешнем неуправляемом коде.
Значит вычисления там не простые.

Да, конечно, с учётом того, что в Net массивы неизменяемы, можно было при создании массива записать все данные в какой-то немутабельный массив и сделать свойство его возвращающее. Но так не сделано. Наверное, есть какие-то нюансы выше моего понимания, почему надо именно вычислять это значение.
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
16.09.2019, 07:54
Элд Хасп, подозреваю, что передаваемое значение это не более чем "индекс" размера в "массиве размеров", и вычислять там действительно нечего, просто возвращай и вся недолга(все создается на этапе создания массива и далее не меняется), свойство, как таковое, не подразумевает передачу параметра, отсюда, они просто вынуждены были оформить в виде метода
0
1532 / 538 / 127
Регистрация: 09.01.2018
Сообщений: 1,750
16.09.2019, 09:02
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Lenght - такая же история. Его значение известно. Хранится в закрытой переменой и свойство просто возвращает это значение.
Нет, оно тоже делегируется внешнему коду:

C#
1
public extern int Lenght {get;}
Сведения о размерах массива и количестве элементов во всех его измерениях хранятся в блоке памяти, там же где хранятся элементы массива. И в общем, чтобы получить длину массива, необходимо прочитать эту информацию.
Для работы с одномерными массивами SZ в CLR имеются специальные команды. И в случае работы с таким массивом, компилятор вызывает команду: ldlen

Что кроется за этой инструкцией не ясно. Либо длина считывается из блока памяти, либо вычисляется. В любом случае инструкция также является методом, только в данном случае она реализована прямо в IL.

Многомерные массивы CLR рассматривает как массивы с неопределенной нижней границей. И если попытаться вывести тоже свойство, но у многомерного массива, то вместо команды выше компилятор вызывает метод System.Array::get_Length().

А если вызвать метод GetLength(int dimension) у одномерного или многомерного массива, то компилятор вызывает метод System.Array::GetLength(int32).
Т.е. опять пришли к extern.
Когда и где компилятор делегирует вычисление длины методу FCIMPL2(INT32, ArrayNative::GetLength, ArrayBase* array, unsigned int dimension) непонятно. С первым методом вообще темный лес, его нет и в исходниках. Также непонятно почему вычисление делегируется внешнему методу, если можно прочитать ту же информацию из блока памяти.

Пока ясно одно, в обоих случаях вычисление длины массива -это метод. Для SZ массивов он вычисляется в IL, для многомерных массивов длина вычисляется где то в дебрях CLR.

п.с. Также не ясно что происходит при работе с циклом с многомерными массивами.
В случае одномерных массивов, длина вычисляется один раз перед циклом и дальше хранится во временной переменной.
А насчет многомерных массивов - неизвестно. Возможно также, но возможно и на каждой итерации.
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18359 / 14289 / 5370
Регистрация: 17.03.2014
Сообщений: 28,968
Записей в блоге: 1
16.09.2019, 09:26
Цитата Сообщение от Diamante Посмотреть сообщение
нет смысла заморачиваться конструкциями вида
Такими конструкциями скорее нет смысла заморачиваться из-за JIT, а не потому что это как бы свойство, но логика теперь понятна. Спасибо за ответ.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
Значит вычисления там не простые.
Да нет. Довольно простые.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2019, 09:26

Создать одномерный массив из максимальных значений каждого столбца матрицы с нечетным индексом
Дана матрица C(N, M). Создать одномерный массив из максимальных зна- чений каждого столбца матрицы с нечетным индексом.

Найти произведение элементов по столбцам матрицы
Вот такая задача, вот мой код, никак немогу додумать: (извините, нет времени переводить на русский) program Project9_1_1; {$APPTYPE...

Определение индексов максимальных элементов по строкам и столбцам
Всем Доброго времени суток! Заранее прошу прощение, если где-то уже подобная тема была поднята. Есть матрица, в которой требуется...

Найти минимальный среди максимальных элементов строк матрицы и добавить его к максимальному по ABS элементу матрицы
Найти минимальный среди максимальных элементов строк матрицы и добавить его к максимальному по ABS элементу матрицы.

Для каждой строки матрицы с нечетным номером найти среднее арифметическое ее элементов
Дана матрица размера MxN. Для каждой строки матрицы с нечетным номером найти среднее арифметическое ее элементов. выдает ошибку при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru