1 Востаннє редагувалося kerimov_e (01.12.2018 18:04:07)

Тема: Помилка в коді

Допоможіть будь-ласка виправити помилки в коді:

using FigureCollections;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace SparseMatrix
{//основна программа
    class ClassName
    {
        static void Main(string[] args)
        {
            Rectangle rect = new Rectangle(5, 4);
            Square square = new Square(5);
            Circle circle = new Circle(5);
 
            Console.WriteLine("\nArrayList");
            ArrayList al = new ArrayList();
            al.Add(circle); al.Add(rect); al.Add(square);
 
            foreach (var x in al) Console.WriteLine(x);
 
            Console.WriteLine("\nArrayList - сортировка"); al.Sort();
            foreach (var x in al) Console.WriteLine(x);
 
            Console.WriteLine("\nList<Figure>");
            List<Figure> fl = new List<Figure>();
            fl.Add(circle);
            fl.Add(rect); fl.Add(square);
 
            foreach (var x in fl) Console.WriteLine(x);
 
            Console.WriteLine("\nList<Figure> - сортировка");
            fl.Sort();
            foreach (var x in fl) Console.WriteLine(x);
 
            Console.WriteLine("\nМатрица");
            Matrix3D<Figure> cube = new Matrix3D<Figure>(3, 3, 3, null);
            cube[0, 0, 0] = rect; cube[1, 1, 1] = square;
            cube[2, 2, 2] = circle;
            Console.WriteLine(cube.ToString());
 
            Console.WriteLine("\nСписок");
            SimpleList<Figure> list = new SimpleList<Figure>();
            list.Add(square); list.Add(rect);
            list.Add(circle);
 
            foreach (var x in list) Console.WriteLine(x);
 
            list.Sort();
            Console.WriteLine("\nСортировка списка");
            foreach (var x in list) Console.WriteLine(x);
 
            Console.WriteLine("\nСтек");
            SimpleStack<Figure> stack = new SimpleStack<Figure>();
            stack.Push(rect); stack.Push(square); stack.Push(circle);
 
            while (stack.Count > 0)
            {
                Figure f = stack.Pop();
                Console.WriteLine(f);
            }
 
            Console.ReadLine();
        }
 
    }
 
 
    //матриця
    namespace SparseMatrix
    {
        public class Matrix<T>
        {
        
            Dictionary<string, T> _matrix = new Dictionary<string, T>();   
            int maxX;
 
                 
            int maxY;
 
            T nullElement;
 
            public Matrix(int px, int py, T nullElementParam)
            {
                this.maxX = px; this.maxY = py;
                this.nullElement = nullElementParam;
            }
 
    
            public T this[int x, int y]
            {
                get
                {
                    CheckBounds(x, y); string key = DictKey(x, y); if (this._matrix.ContainsKey(key))
                    {
                        return this._matrix[key];
                    }
                    else
                    {
                        return this.nullElement;
                    }
                }
                set
                {
                    CheckBounds(x, y); string key = DictKey(x, y); this._matrix.Add(key, value);
                }
            }
    
            void CheckBounds(int x, int y)
            {
                if (x < 0 || x >= this.maxX) throw new Exception("x=" + x + " выходит за границы");
                if (y < 0 || y >= this.maxY) throw new Exception("y=" + y + " выходит за границы");
 
            }
 
            string DictKey(int x, int y)
            {
                return x.ToString() + "_" + y.ToString();
            }
 
    
            public override string ToString()
            {StringBuilder b = new StringBuilder();
 
                for (int j = 0; j < this.maxY; j++)
                {
                    b.Append("[");
                    for (int i = 0; i < this.maxX; i++)
                    {
                        if (i > 0) b.Append("\t");
                        b.Append(this[i, j].ToString());
                    }
                    b.Append("]\n");
                }
 
                return b.ToString();
            }
 
        }
    }
    //однозв'язний список
    namespace FigureCollections
    {
                public class SimpleListItem<T>
        {
                    public T data { get; set; }
            
            public SimpleListItem<T> next { get; set; }
                                    public SimpleListItem(T param)
            {
                this.data = param;
            }
        }
 
    
        public class SimpleList<T> : IEnumerable<T> where T : IComparable
        {
            
            protected SimpleListItem<T> first = null;
 
                    protected SimpleListItem<T> last = null;
 
            
            public int Count
            {
                get { return _count; }
                protected set { _count = value; }
            }
            int _count;       
            public void Add(T element)
            {
                SimpleListItem<T> newItem = new SimpleListItem<T>(element);
                this.Count++;
 
 
                if (last == null)
                {
 
                    this.first = newItem; this.last = newItem;
                }
 
                else
                {
                    this.last.next = newItem;
 
                    this.last = newItem;
                }
            }
 
            
            public SimpleListItem<T> GetItem(int number)
            {
                if ((number < 0) || (number >= this.Count))
                {
 
                    throw new Exception("Выход за границу индекса");
                }
 
                SimpleListItem<T> current = this.first; int i = 0;
 
 
                while (i < number)
                {
 
                    current = current.next;
                    i++;
                }
 
                return current;
            }
 
              
            public T Get(int number)
            {
                return GetItem(number).data;
            }
 
            public IEnumerator<T> GetEnumerator()
            {
                SimpleListItem<T> current = this.first;
 
                while (current != null)
                {
 
                    yield return current.data;
                    current = current.next;
                }
            }
            
            System.Collections.IEnumerator
            System.Collections.IEnumerable.GetEnumerator()
            {
                return GetEnumerator();
            }
  
            public void Sort()
            {
                Sort(0, this.Count - 1);
            }
            private void Sort(int low, int high)
            {
                int i = low; int j = high;
                T x = Get((low + high) / 2); do
                {
                    while (Get(i).CompareTo(x) < 0) ++i;
                    while (Get(j).CompareTo(x) > 0) --j;
                    if (i <= j)
                    {
                        Swap(i, j); i++; j--;
                    }
                } while (i <= j);
 
                if (low < j) Sort(low, j); if (i < high) Sort(i, high);
            }
            private void Swap(int i, int j)
            {
                SimpleListItem<T> ci = GetItem(i);
                SimpleListItem<T> cj = GetItem(j);
                T temp = ci.data;
                ci.data = cj.data; cj.data = temp;
            }
        }
    }
}

http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1963&amp;download=0

Post's attachments

Снимок.PNG 59.68 kb, 93 downloads since 2018-12-01 

2

Re: Помилка в коді

Не зовсім зрозуміло, що там на скріншоті (ви б ще китайською виклали), але зрозуміло, що перша помилка - про клас Rectangle (сподіваюся, вам вистачило клепки не обрізати скріншотом попередні помилки). І де ви визначаєте цей клас?
А, так, ще й тексти в коді іноземною. Вам хоч пристойно за це платять?

Подякували: DOP, leofun01, FakiNyan3