Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Struct


Автор: Demonid 12.10.2007, 14:49
Как сделать структуру.
Кто поможет переделать два масива(сортировки) в  структуру?
Условие:

Код

Массив записей структура которого автор, год издания,  упорядочить по  году издания.


Вот моя последняя бетта-версия ( by http://forum.codenet.ru/showpost.php...16&postcount=3 )


Работоспособная программа.

Код

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication6
{
    class Program
    {
        class Teenager
        {
            private static Random r = new Random();
            private static int GetRamdomNumber(short upperLimit)
            { return r.Next(upperLimit); }
            public static string Complain()
            {
                string[] messages = new string[6] { "Троесент!", "Ватсон!", "Фаронов!", "Шилд!", "Агуров!", "Глинський!" };
                return messages[GetRamdomNumber(5)];
            }
        }

        static void Main(string[] args)
        {
            int i, x,  size = 10;
            string y;
            string[] b = new string[100];
            int[] d = new int[100];
            Console.WriteLine("Генерация масива");
            Random a = new Random();
            Random c = new Random();
            for (i = 0; i < size; i++)
            {
                b[i] = Teenager.Complain();
                d[i] = c.Next(2007);
                Console.WriteLine("Название книги :" + b[i] + " Год : " + d[i]);
            }
            Console.ReadLine();
            
                        for (j = 0; j < size; j++)
                        {
                            for (i = 1; i < size; i++)
                            {
                                if (d[i - 1] > d[i])
                                {
                                    x = d[i - 1];
                                    d[i - 1] = d[i];
                                    d[i] = x;

                                    y = b[i - 1];
                                    b[i - 1] = b[i];
                                    b[i] = y;
                                 }
                             }
                        }
             
            Console.WriteLine("Cортованый масив");

            for (i = 1; i < size; i++)
            {
                Console.WriteLine(" Название книги :" + b[i] + " Год  : " + d[i]);
            }
            Console.ReadLine();
        }
    }
}


Вот я сам сделал, но ошибки ктото может исправить?
Код


using System;
using System.Collections.Generic;
using System.Text;

namespace Struct
{
    
    struct Books
    {
        public string[] autor;
        public int[] god;
        public Books(string[] a, int[] b)
        {
            autor=a;
            god=b;
        }
    }
    struct Teenager
    {
        private static Random r = new Random();
        private static int GetRamdomNumber(short upperLimit)
        { return r.Next(upperLimit); }
        public static string Complain()
        {
            string[] messages = new string[6] { "Троесент!", "Ватсон!", "Фаронов!", "Шилд!", "Агуров!", "Глинський!" };
            return messages[GetRamdomNumber(5)];
        }
    }
    class structions
    {
        public static void Main()
        {
            string[] a = new string[6];
             int[] b;
            int i,j,x, size=10;
            
            Random c = new Random();
            for (i = 0; i < size; i++)
            {
                a = Teenager.Complain();
                b = c.Next(2007);
                Books book = new Books(a, b);
                Console.WriteLine("Название книги :" + book.autor[i] + " Год : " + book.god[i]);
                
            }
             Console.ReadLine();
            
             for (j = 0; j < size; j++)
             {
                 for (i = 1; i < size; i++)
                 {
                     if (book.autor[i - 1] > book.autor[i])
                      {
                          x = book.autor[i - 1];
                          book.autor[i - 1] = book.autor[i];
                          book.autor[i] = x;

                                   

                       }
                  }
              }
                        Console.WriteLine("Cортованый масив");

              for (i = 1; i < size; i++)
              {
                    Console.WriteLine(" Название книги :" + book.autor[i] + " Год  : " + book.god[i]);
              }
              Console.ReadLine();
        }
    }

}          

Автор: Demonid 12.10.2007, 15:35
Я хачу хранить в структуре имя и год?

Автор: zaver 12.10.2007, 16:08
Цитата

Как сделать структуру.

Код

struct MyStruct
{
}

Цитата

Кто поможет переделать два масива(сортировки) в  структуру?

конкретнее, что за структура
Цитата

Я хачу хранить в структуре имя и год?

не знаю, думаю тебе известнее

Автор: Demonid 12.10.2007, 16:46
Код

Struct в (С#) и Record в (Pascal)

Ето разные темы, или нет?

Автор: Bogdan1024 12.10.2007, 16:59
Вообще-то у System.Collections.Generic.List<T> есть встроенный механизм сортировки (метод Sort), тебе просто нужно написать сортировщик, а T может быть типо такого:
Код

struct T
{
book[] books;
uint year;
}


Добавлено через 1 минуту и 2 секунды
Цитата
Ето разные темы, или нет?

У тебя мсдн есть? 
В паскале у структур не может быть методов!

Автор: Demonid 12.10.2007, 17:43
Цитата(Bogdan1024 @ 12.10.2007,  16:59)
Вообще-то у System.Collections.Generic.List<T> есть встроенный механизм сортировки (метод Sort), тебе просто нужно написать сортировщик, а T может быть типо такого:

Мене надо сделать своим методом сортировку, а не стандартным?

Добавлено @ 17:45
А как сортировать по второму параметру обьекта в struct?

Добавлено через 5 минут и 28 секунд
Код

book[] books;
uint year;

А где типы  переменных?
Странное обьявление  переменных?

Добавлено через 8 минут и 43 секунды
Как создать масив обьектов?

Автор: Demonid 12.10.2007, 18:38
Ктото поможет...

Автор: Demonid 13.10.2007, 18:37
Я исправил некоторые ошыбки .
Я уже переделал, не работает?

Код

using System;
using System.Collections.Generic;
using System.Text;

namespace Struct
{
    
    struct Bookss
    {
         private string _author;   
         public string Author  
         { get {return _author; } }   
        private int _year;   
        public int year;
        public void book(string author, int year) 
        {       _author = author;       _year = year;   }
    }
    struct Teenager
    {
        private static Random r = new Random();
        private static int GetRamdomNumber(short upperLimit)
        { return r.Next(upperLimit); }
        public static string Complain()
        {
            string[] messages = new string[6] { "Троесент!", "Ватсон!", "Фаронов!", "Шилд!", "Агуров!", "Глинський!" };
            return messages[GetRamdomNumber(5)];
        }
    }
    class structions
    {
        public static void Main()
        {
            string a;
             int b;
            int i,j,x, size=10;
            
            Random c = new Random();

            Bookss Books = new Bookss();
            
            for (i = 0; i < size; i++)
            {
                a = Teenager.Complain();
                b = c.Next(2007);
                Books.Add(new book(a, b));
                Console.WriteLine("Название книги :" + book.author[i] + " Год : " + book.year[i]);
                
            }
            
             Console.ReadLine();
            
             for (j = 0; j < size; j++)
             {
                 for (i = 1; i < size; i++)
                 {
                     if (book.year[i - 1] > book.year[i])
                      {
                          x = book.year[i - 1];
                          book.year[i - 1] = book.year[i];
                          book.year[i] = x;

                                   

                       }
                  }
              }
                        Console.WriteLine("Cортованый масив");

              for (i = 1; i < size; i++)
              {
                  Console.WriteLine(" Название книги :" + book.author[i] + " Год  : " + Books.year[i]);
              }
              Console.ReadLine();
        }
    }

} 

    
Может ктото исправит ошыбки?
   


Автор: mr.DUDA 14.10.2007, 10:13

 ! 
mr.DUDA
Demonid (известный также как kurzon и Megabit), предупреждаю серьёзно: или заходи под одним пользователем, или последуют меры. Я не зря тебе премодерацию поставил. А этот аккаунт отныне запрещён к добавлению тем и сообщений.


 smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)