Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2017, 09:31   #1
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
Печаль Найти матрицу с седловыми точками

Необходимо написать программу, которая по заданному количеству седловых точек должна находить соответствующую матрицу.

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

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Matrix
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private bool isMinInRow(int[,] arr, int i, int value)
        {
            for (int j = 0; j < arr.GetLength(1); j++)
                if (arr[i, j] < value) return false;
            return true;
        }

        private bool isMaxInColumn(int[,] arr, int j, int value)
        {
            for (int i = 0; i < arr.GetLength(0); i++)
                if (arr[i, j] > value) return false;
            return true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int count = 0;
            int amt = Convert.ToInt16(textBox1.Text);//количество седловых точек
            int countRows = Convert.ToInt16(textBox2.Text);//количество строк матрицы
            int countColumn = Convert.ToInt16(textBox3.Text);//количество столбцов
            int[,] Array = new int[countRows, countColumn];

            Random random = new Random(Guid.NewGuid().GetHashCode());

            dataGridView1.RowCount = countRows;
            dataGridView1.ColumnCount = countColumn;
            textBox4.Text = "";
            count = 0;

            while (count != amt)
            {
                for (int i = 0; i < Array.GetLength(0); i++)
                {
                    for (int j = 0; j < Array.GetLength(1); j++)
                    {
                        Array[i, j] = random.Next(-1, 5);
                    }
                }
                for (int i = 0; i < Array.GetLength(0); i++)
                {
                    for (int j = 0; j < Array.GetLength(1); j++)
                    {
                        if (isMinInRow(Array, i, Array[i, j]) && isMaxInColumn(Array, j, Array[i, j]))
                            count++;
                    }
                }
            }

            for (int i = 0; i < Array.GetLength(0); i++)
            {
                for (int j = 0; j < Array.GetLength(1); j++)
                {
                    dataGridView1.Rows[i].Cells[j].Value = Array[i, j];
                    if (isMinInRow(Array, i, Array[i, j]) && isMaxInColumn(Array, j, Array[i, j]))
                        textBox4.Text += Convert.ToString("Element [" + i + ", " + j + "]: " + Array[i, j] + " \n");
                }
            }
           

        }
    }
}
krasy вне форума Ответить с цитированием
Старый 24.11.2017, 09:56   #2
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
По умолчанию

Иногда еще при нажатии на кнопку зависает форма..что это может быть? из-за цикла? и как можно это исправить..
krasy вне форума Ответить с цитированием
Старый 24.11.2017, 10:11   #3
coremission
Форумчанин
 
Аватар для coremission
 
Регистрация: 09.11.2017
Сообщений: 121
По умолчанию

В такой ситуации лучше всего - отлаживать программу. Смотрите что происходит под отладчиком.
Профессионально программирую видео-игры. Пишу бекстейдж-блог о разработке игр CoreMission.net.
Разрабатываю календарь выхода игр.
coremission вне форума Ответить с цитированием
Старый 24.11.2017, 10:51   #4
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
По умолчанию

Цитата:
Сообщение от coremission Посмотреть сообщение
В такой ситуации лучше всего - отлаживать программу. Смотрите что происходит под отладчиком.
а как это сделать?
krasy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти расстояние между точками - JavaScript Chips186 JavaScript, Ajax 2 19.12.2016 21:24
Найти расстояние между точками на языке си Dimitrii23 Помощь студентам 2 31.10.2016 10:05
Найти расстояния между точками 1 и 2, 1 и 3, 1 и 4, 2 и 3, 2 и 4, 3 и 4 и среди этих величин P4elkabek Фриланс 12 10.01.2014 22:55
СИ Найти наименьшее расстояние между точками savra Помощь студентам 2 19.04.2011 10:16
Найти кратчайший путь между точками lucky Общие вопросы Delphi 0 27.05.2009 07:26