Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace PROJECT2
- {
- class MainClass
- {
- public static void Main (string[] args)
- {
- Console.WriteLine ("Введите 1, чтобы ромб был напечатан символом '*', ");
- Console.WriteLine ();
- Console.WriteLine ("Введите 2, чтобы ромб был напечатан символом '+', ");
- Console.WriteLine ();
- Console.WriteLine ("Введите 3, чтобы ромб был напечатан символом '#'. ");
- int inputNum = Convert.ToInt32 (Console.ReadLine ());
- List<string> forRhombus = new List<string> ();
- switch (inputNum)
- {
- case 1:
- string a = "*";
- Console.WriteLine ("Введите нечетную длину стороны ромба от 5 до 15: ");
- int lenght1 = Convert.ToInt32 (Console.ReadLine ());
- int p = 1;
- if ((lenght1 >= 5) && (lenght1 <= 15))
- {
- for (int x = 0; x < lenght1; x++)
- {
- forRhombus.Add (" ");
- }
- if (lenght1 % 2 != 0)
- {
- for (int y = 0; y < lenght1; y++)
- {
- if (y == lenght1 / 2.0 + 0.5)
- {
- forRhombus [y] = a;
- Console.WriteLine (forRhombus);
- }
- if ((p < y) && (p < lenght1))
- {
- forRhombus [y + p] = a;
- forRhombus [y - p] = a;
- p += 1;
- }
- Console.WriteLine (forRhombus);
- }
- }
- }
- break;
- case 2:
- string b = "+";
- Console.WriteLine ("Введите нечетную длину стороны ромба от 5 до 15: ");
- int lenght2 = Convert.ToInt32 (Console.ReadLine ());
- break;
- case 3:
- string c = "#";
- Console.WriteLine ("Введите нечетную длину стороны ромба от 5 до 15: ");
- int lenght3 = Convert.ToInt32 (Console.ReadLine ());
- break;
- }
- }
- }
- private static char[] GetFillRhombus(int size, char foreground, char background = ' ')
- {
- if (size > 1)
- {
- char[] map = new char[Convert.ToInt32(Math.Pow((size * 2 - 1), 2))];
- // Заполнение всего массива задним фоном
- for (int i = 0; i < map.Length; i++)
- {
- map[i] = background;
- }
- // Заполнение верхней части ромба с серединой
- for (int i = 1; i < size * 2; i += 2)
- {
- int startPosition = size * i - i;
- for (int j = startPosition; j < startPosition + i; j++)
- {
- map[j] = foreground;
- }
- }
- // Заполнение нижней части ромба без середины
- for (int i = 0, j = size - 2 - i; j >= 0; i++, j--)
- {
- int middlePosition = (size + i) * (size * 2) - (i + 1);
- for (int k = middlePosition - j; k < middlePosition + j + 1; k++)
- {
- map[k] = foreground;
- }
- }
- return map;
- }
- return null;
- }
- private static void PrintRhombus(char[] map)
- {
- if (map != null)
- {
- int size = Convert.ToInt32(Math.Sqrt(map.Length));
- for (int i = 0, j = 0; i < map.Length; i++, j++)
- {
- Console.Write(map[i]);
- if (j == size - 1)
- {
- j = -1;
- Console.WriteLine("");
- }
- }
- }
- }
- static void Main(string[] args)
- {
- char[] rhombus = GetFillRhombus(20, '#', '.');
- PrintRhombus(rhombus);
- Console.ReadKey();
- }
Add Comment
Please, Sign In to add comment