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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 17:00   #21
Tase4ka
Пользователь
 
Аватар для Tase4ka
 
Регистрация: 08.12.2010
Сообщений: 27
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication9
{
    class Program
    {

        public static void matrix(int[,] array, int a_count, int c_count) //матрица
        {
            Random rand = new Random();
            for (int j = 0; j < c_count; j++)
            {
                for (int i = 0; i < a_count; i++)
                {
                    array[j, i] = rand.Next(-10, 10);
                }
            }
        }
        public static void ishod(int[,] array, int a_count, int c_count)
        {
            for (int j = 0; j < c_count; j++)
            {
                for (int i = 0; i < a_count; i++)
                {
                    Console.Write("\t{0}", array[j, i]);
                }
                Console.Write("\n");
            }
        }

        public static bool ТутЕстьОтрицательный(int[,] array, int c_count)
        {
            for (int i = 0; i > array.GetLength(0); i++)
            {
                if (array[i, c_count] > 0)
                    return true;
            }
            return false;
        }


        public static void minuse(int[,] array, int a_count)
        {
            Console.WriteLine("Столбец без отрицательного элемента:");
            for (int i = 0; i > a_count; i++)
            {
                if (ТутЕстьОтрицательный(array, i))
                    Console.WriteLine("{0} столбец с минусами", i);
                return;
            }
        }





        static void Main(string[] args)
        {
            Console.WriteLine("Введите кол-во столбцов");
            int y = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите кол-во строк");
            int z = int.Parse(Console.ReadLine());
            int[,] mas = new int[z, y];
            matrix(mas, z, y); //матрица
            Console.Write("\n");
            ishod(mas, z, y); //вывод исходной матрицы
            Console.Write("\n");
            minuse(mas, y);
            Console.ReadLine();
        }
    }
}
вот что у меня получилось. как мне теперь из этого перегрузку сделать? я знаю чт там вроде надо int на double поменять.
Tase4ka вне форума Ответить с цитированием
Старый 10.12.2010, 17:27   #22
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как мне теперь из этого перегрузку сделать?
Стоп! а причем тут перегрузка? Зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2010, 18:07   #23
Tase4ka
Пользователь
 
Аватар для Tase4ka
 
Регистрация: 08.12.2010
Сообщений: 27
По умолчанию

ну задание такое сначала его сделать в методе, а потом это же задание в перегрузку переделать
Tase4ka вне форума Ответить с цитированием
Старый 10.12.2010, 22:47   #24
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

По теме: а задание не можете четко и дословно привести? "В перегрузку" чего вам надо сделать это задание?
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось Stilet; 11.12.2010 в 08:36.
ACE Valery вне форума Ответить с цитированием
Старый 11.12.2010, 07:52   #25
Tase4ka
Пользователь
 
Аватар для Tase4ka
 
Регистрация: 08.12.2010
Сообщений: 27
По умолчанию

ну то что я код вверху написала его надо сделать в перегрузку
Tase4ka вне форума Ответить с цитированием
Старый 11.12.2010, 08:50   #26
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мда... Что бы ты не изучала тебе стоит научится самому важному - четко ставить задание. Четко и однозначно. Этому учат на 5-6 курсах института.
Смотри, чтоб сделать "перегрузку" для твоего задания, показушную хотя бы, тебе нужно описать скажем новый тип матрицы:
Код:
 float[,] mas = new float[z, y];
И дописать к коду процедуры точь-в-точь похожие на те что уже имеются, но принимающие матрицу типа float:
Код:
 public static void minuse(float[,] array, int a_count)
Код:
 public static bool ТутЕстьОтрицательный(float[,] array, int c_count)
И так далее. Должно быть две копии этих процедур. Одна будет работать с типом int[,] другая с float[,] - компилятор при вызове:
Код:
            int[,] mas = new int[z, y];            matrix(mas, z, y); //матрица целых
            float[,] mas2 = new float[z, y];     matrix(mas2, z, y); //матрица нецелых
сам выяснит какую из описанных тобой вариаций процедур стоит использовать для того или иного массива - это и есть перегрузка.
Далее, я тебе рекомендую не заниматься ерундой и выкинуть из параметров Z и Y

Посмотри где ты их используешь:
Код:
        public static void matrix(int[,] array, int a_count, int c_count) //матрица
        {
            Random rand = new Random();
            for (int j = 0; j < c_count; j++)
            {
                for (int i = 0; i < a_count; i++)
                {
                    array[j, i] = rand.Next(-10, 10);
                }
            }
        }
Так вот не знаю кто вам такую пургу намел, но в C# есть возможность (и даже не одна) узнать размерность массива,:
Код:
        public static void matrix(int[,] array) //матрица
        {
            Random rand = new Random();
            for (int j = 0; j < array.GetLength(0); j++)
            {
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    array[j, i] = rand.Next(-10, 10);
                }
            }
        }
Проследи свое внимание, прыгун: GetLength() выясняет размерность указанного измерения массива, и возвращает его длину - количество элементов в нем, если по русски писать. Он однозначно должен заменить твои c_count и a_count - это будет надежнее и тебе не придется передавать размер массива, а вдруг передашь число, выходящее за его пределы.
Таким образом код вызова у тебя сократится в
Код:
            int[,] mas = new int[z, y];            matrix(mas); //матрица целых
            float[,] mas2 = new float[z, y];     matrix(mas2); //матрица нецелых
Запомни - цикл по массиву, где пределы его указаны пользователем - ненадежное решение. Более того даже опасное, решение, благодаря которому было изобретено множество коварных вирусов.

Где бы ты не училась, не важно на кого постарайся понять - нужно читать литературу вдумчиво, пробовать, если это возможно, а не кидаться словами типа "Все вокруг виноваты кроме меня".
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2010, 17:49   #27
Tase4ka
Пользователь
 
Аватар для Tase4ka
 
Регистрация: 08.12.2010
Сообщений: 27
По умолчанию

О вот посмотри. Вот так должно получится?
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication9
{
    class Program
    {

        public static void matrix(int[,] array) //матрица
        {
            Random rand = new Random();
            for (int j = 0; j <  array.GetLength(0);  j++)
            {
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    array[j, i] = rand.Next(-10, 10);
                }
            }
        }
        public static void matrix(float[,] array) //матрица
        {
            Random rand = new Random();
            for (int j = 0; j < array.GetLength(0); j++)
            {
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    array[j, i] = rand.Next(-10, 10);
                }
            }
        }
        public static void ishod(int[,] array)
        {
            for (int j = 0; j <  array.GetLength(0); j++)
            {
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    Console.Write("\t{0}", array[j, i]);
                }
                Console.Write("\n");
            }
        }
        public static void ishod(float[,] array)
        {
            for (int j = 0; j < array.GetLength(0); j++)
            {
                for (int i = 0; i < array.GetLength(1); i++)
                {
                    Console.Write("\t{0}", array[j, i]);
                }
                Console.Write("\n");
            }
        }

        public static bool ТутЕстьОтрицательный(int[,] array)
        {
            for (int i = 0; i > array.GetLength(0); i++)
            {
                if (array[i,  array.GetLength(1)] > 0)
                    return true;
            }
            return false;
        }

        public static bool ТутЕстьОтрицательный(float[,] array)
        {
            for (int i = 0; i > array.GetLength(0); i++)
            {
                if (array[i, array.GetLength(1)] > 0)
                    return true;
            }
            return false;
        }
        
                public static void minuse(int[,] array)
        {
            Console.WriteLine("Столбец без отрицательного элемента:");
            for (int i = 0; i >  array.GetLength(1); i++)
            {
                if (ТутЕстьОтрицательный(array, i))
                    Console.WriteLine("{0} столбец с минусами", i);
                return;
            }
        }
        public static void minuse(float[,] array)
        {
            Console.WriteLine("Столбец без отрицательного элемента:");
            for (int i = 0; i > array.GetLength(1); i++)
            {
                if (ТутЕстьОтрицательный(array, i))
                    Console.WriteLine("{0} столбец с минусами", i);
                return;
            }
        }
        private static bool ТутЕстьОтрицательный(int[,] array, int i)
        {
            throw new NotImplementedException();
        }

        private static bool ТутЕстьОтрицательный(float[,] array, int i)
        {
            throw new NotImplementedException();
        }

         static void Main(string[] args)
        {
            Console.WriteLine("Введите кол-во столбцов");
            int y = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите кол-во строк");
            int z = int.Parse(Console.ReadLine());
            int[,] mas = new int[z, y];
            matrix(mas); //матрица
            Console.Write("\n");
            ishod(mas); //вывод исходной матрицы
            Console.Write("\n");
            minuse(mas);
            Console.Write("\n");
            float[,] mas2 = new float[z, y];
            matrix(mas2); //матрица нецелых
            Console.Write("\n");
            ishod(mas2);
            Console.Write("\n");
            minuse(mas2);
            Console.ReadLine();
        }
    }
}
Tase4ka вне форума Ответить с цитированием
Старый 25.12.2010, 16:13   #28
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вот так должно получится?
Это работает? Если да то радуйся )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы Горящее сердце Помощь студентам 2 26.05.2010 20:12
Двумерные массивы... BarSenok Паскаль, Turbo Pascal, PascalABC.NET 25 03.05.2010 00:11
Двумерные массивы St1mkA Помощь студентам 9 05.04.2010 21:26
Двумерные массивы Lioness Помощь студентам 2 06.01.2008 12:39