Вывод различных фигур в консоли - C#

Узнай цену своей работы

Формулировка задачи:

Я помню, как на уроках по C++ рассказчик формулами выводил разные фигуры в консоли, а как это реализовать на этом языке, кто-нибудь подскажет? Например квадрат из # ?

Решение задачи: «Вывод различных фигур в консоли»

textual
Листинг программы
using System;
 
namespace A
{
    class ConsoleCanvas
    {
        private char[][] canvas;
        int SIZE;
 
        public ConsoleCanvas(int size)
        {
            canvas = new char[SIZE = size][];
            for (int y = 0; y < canvas.Length; y++)
            {
                canvas[y] = new char[SIZE];
                for (int x = 0; x < canvas[y].Length; x++) canvas[y][x] = ' ';
            }
        }
 
        public void plot(int x, int y)
        {
            if ((x >= SIZE) || (y >= SIZE) || (x < 0) || (y < 0)) return;
            canvas[y][x] = '#';
        }
 
        public void line(int x1, int x2, int y1, int y2)
        {
            double dx = x2 - x1;
            if (dx == 0) { for (var y = y1; y < y2; y++) plot(x1, y); return; }
            double dy = y2 - y1;
            for (var x = x1; x <= x2; x++)
            {
                double y = y1 + dy * (x - x1) / dx;
                plot((int)x, (int)Math.Round(y));
            }
        }
 
        public override string ToString()
        {
            var sb = new System.Text.StringBuilder();
            for (int y = 0; y < canvas.Length; y++)
            {
                for (int x = 0; x < canvas[y].Length; x++) sb.Append(canvas[y][x]);
                sb.AppendLine();
            }
            return sb.ToString();
        }
 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            var c = new ConsoleCanvas(20);
            c.line(1, 1, 1, 7);
            c.line(12, 12, 1, 7);
            c.line(1, 12, 1, 1);
            c.line(1, 12, 7, 7);
            c.line(1, 12, 1, 7);
            Console.Write(c);
            Console.ReadLine();
        }
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5