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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2016, 15:27   #1
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию Наследование

Даны 2 класса, связанные наследованием. Наличие конструктора - обязательно. Переставить в каждом столбце прямоугольной матрицы все отрицательные элементы в конец столба. Вывести часть полученной матрицы, состоящую из n первых строк, не имеющих отрицательных элементов.
luibrain вне форума Ответить с цитированием
Старый 05.10.2016, 15:38   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

И? Для чего вы выложили сюда текст этой задачи?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.10.2016, 17:41   #3
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию

я не понимаю, для чего нужно наследование, где писать функции и тд
luibrain вне форума Ответить с цитированием
Старый 05.10.2016, 18:11   #4
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Как звучит точное условие задачи? Приведите его слово в слово.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 05.10.2016, 18:36   #5
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию

Как написал в первом сообщении, так оно и звучит.
luibrain вне форума Ответить с цитированием
Старый 05.10.2016, 18:55   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от luibrain Посмотреть сообщение
я не понимаю, для чего нужно наследование, где писать функции и тд
Для чего в этом задании сложно сказать, странное оно, а в целом наверняка рассказано в вашем учебнике.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.10.2016, 19:00   #7
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию

нет учебника у нас
luibrain вне форума Ответить с цитированием
Старый 05.10.2016, 19:01   #8
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию

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

namespace _1234
{
    class Program
    {
        static void PrintMatrix(double[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i)
            {
                for (int j = 0; j < a.GetLength(1); ++j)
                {
                    Console.Write("{0,3} ", a[i, j]);
                }
                Console.WriteLine();
            }
        }

        static void Swap<T>(ref T aa, ref T bb)
        {
            T temp;
            temp = aa;
            aa = bb;
            bb = temp;
        }
 
        static void Main(string[] args)
        {
        double[,] a =
                {   { -1, 3, -4, -7},
                    { 4,  5,  9,  4},
                    { 5, -7, -8,  3} };
 
            Console.WriteLine("Исходная матрица: ");
            PrintMatrix(a);

            for (int j = 0; j < a.GetLength(1); ++j)
            {
                int konec_stroki = a.GetLength(0) - 1;
                for (int i = 0; i <= konec_stroki;)
                {
                    if (a[i, j] < 0)
                    {
                        Swap(ref a[i, j], ref a[konec_stroki, j]);
                        konec_stroki--;
                    }
                    else
                    {
                        i++;
                    }
                }
            }
 
            Console.WriteLine();


            Console.WriteLine("Матрица с переставленными элементами: ");
            PrintMatrix(a);

            int neotric_stroki = 0;
            bool otric_esli = false;
 
            for (int i = 0; i < a.GetLength(0); ++i)
            {
                for (int j = 0; j < a.GetLength(1); ++j)
                {
                    if (a[i, j] < 0)
                    {
                        otric_esli = true;
                        break;
                    }
                }
 
                if (otric_esli)
                    break;
 
                neotric_stroki++;
            }
 
            Console.WriteLine();
            Console.WriteLine("Часть строк матрицы с неотрицательными элементами: ");
            for (int i = 0; i < neotric_stroki; ++i)
            {
                for (int j = 0; j < a.GetLength(1); ++j)
                {
                    Console.Write("{0,3} ", a[i, j]);
                }
                Console.WriteLine();
                Console.ReadLine();
            }
        }
    }
}
вот работает у меня в общем, вот только как это связать с наследованием? что кинуть в parent, что в child, что в main?
luibrain вне форума Ответить с цитированием
Старый 05.10.2016, 19:03   #9
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Задание полный бред. Но программирование вещь такая, что приходится додумывать домысливать за заказчика. На вашем месте я бы задавал вопросы своему преподавателю.
А так сделайте класс для произвольных чисел, а второй для отрицательных.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 05.10.2016, 22:30   #10
luibrain
Пользователь
 
Регистрация: 17.02.2016
Сообщений: 27
По умолчанию

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

namespace _1234
{
    class Program
    {

        class Parent
        {
            
           public int n;
           public int m;
           public int  [,] mas;
            public Parent(int nn, int mm)
            {
                n = nn;
                m = mm;
                mas=new int[n,m];
            }

            public void vvod(int n, int m)
            {
               /* Console.WriteLine("Введите кол-во строк n");
                int n = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine("Введите кол-во столбцов m");
                int m = Convert.ToInt32(Console.ReadLine());*/

                int[,] mas = new int[n, m];
                Console.WriteLine("Введите элементы массива");

                for (int i = 0; i < mas.GetLength(0); i++)
                {
                    Console.WriteLine("Введите элементы " + i + "-й строки:");
                    for (int j = 0; j < mas.GetLength(1); j++)
                    {
                        Console.WriteLine();
                        mas[i, j] = Convert.ToInt32(Console.ReadLine());

                    }

                }
            }


            public void vyvod(int n, int m)
            {
                //int[,] mas = new int[n, m];
                for (int i = 0; i < mas.GetLength(0); ++i)
                {
                    for (int j = 0; j < mas.GetLength(1); ++j)
                    {
                        Console.Write("{0,3} ", mas[i, j]);
                    }
                    Console.WriteLine();
                }
            }
        }

        class Child : Parent
        {
            public Child(int n, int m) : base(n, m) { }
            static void Swap<T>(ref T aa, ref T bb)
            {
                T temp;
                temp = aa;
                aa = bb;
                bb = temp;
            }

            public void smena(int n, int m)
            {
               // int[,] mas = new int[n, m];
                for (int j = 0; j < mas.GetLength(1); ++j)
                {
                    int konec_stroki = mas.GetLength(0) - 1;
                    for (int i = 0; i <= konec_stroki; )
                    {
                        if (mas[i, j] < 0)
                        {
                            Swap(ref mas[i, j], ref mas[konec_stroki, j]);
                            konec_stroki--;
                        }
                        else
                        {
                            i++;
                        }
                    }
                }

                Console.WriteLine();
            }

            public void otric(int n, int m)
            {
                //int[,] mas = new int[n, m];
                int neotric_stroki = 0;
                bool otric_esli = false;

                for (int i = 0; i < mas.GetLength(0); ++i)
                {
                    for (int j = 0; j < mas.GetLength(1); ++j)
                    {
                        if (mas[i, j] < 0)
                        {
                            otric_esli = true;
                            break;
                        }
                    }

                    if (otric_esli)
                        break;

                    neotric_stroki++;
                }

                Console.WriteLine();
                Console.WriteLine("Часть строк матрицы с неотрицательными элементами: ");
                for (int i = 0; i < neotric_stroki; ++i)
                {
                    for (int j = 0; j < mas.GetLength(1); ++j)
                    {
                        Console.Write("{0,3} ", mas[i, j]);
                    }
                    Console.WriteLine();
                    Console.ReadLine();
                }
}
        }

            static void Main(string[] args)
            {

                Child c=new Child(4,3);
                c.vvod(4, 3);
                c.vyvod(4, 3);
                c.smena(4, 3);
                c.otric(4, 3);
                             
            }
        }
    }
одни нули выводит
не могу понять, в чем проблема
luibrain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование wanes101 JavaScript, Ajax 3 25.07.2014 10:33
С++ наследование HUGO+GO Помощь студентам 0 23.12.2012 20:59
Наследование на C++ Dead Romantic Фриланс 6 31.05.2011 11:35
Наследование notHaker Общие вопросы Delphi 5 24.05.2010 18:55
Наследование lolopolosko Помощь студентам 1 21.11.2009 17:17