Софтуерно Инженерство
Loading...
radoslavgeorgiev93 avatar radoslavgeorgiev93 0 Точки

Въпрос относно задача номер 6 от Основи на програмирането: Квадрат от Звездички

Здравейте,

Та исках да попитам защото не ми стана ясно какво точно направих, но с малко риисърч го направих. Ето това ми е кодът:

    using System;

    namespace Projects
    {
        class Program
        {
        static void Main(string[] args)
        {
            var a = int.Parse(Console.ReadLine());

            Console.WriteLine(new string('*', a));
            for (int i = 0; i < a - 2; i++)
            {
                Console.Write("*");
                for (int b = 0; b < a - 2; b++)
                {
                    Console.Write(" ");
                }

                Console.WriteLine("*");
            }
            Console.WriteLine(new string('*', a));
        }
            }
        }
    

 

Та работи, но не знам точно за какво служи new string и защо ми се получи като сложих: а - 2

И също така разлиакта между: Console.WriteLine и Console.Write

Благодаря предварително за отговорите.

0
Основи на програмирането 20/05/2017 18:14:17
gadjov avatar gadjov 115 Точки

Здравей,

Като рисуваш фигурки, според мен най важно е да разбереш логиката, кои елементи са статични и кои динамични (и на какъв приницип се повтарят). В този случай имаш 3 елемента:

1. Горната страна на фигурата - статична (затова се принтира с Console.WriteLine(new string ('', a);)

2. Долната страна на фигурата - статична (затова се принтира с Console.WriteLine(new string ('', a);)

3. Средата или пълнежа на фигурата - динамичен (за това се принтира със цикъл)

И сега ако ги подредим правилно, имаш вход а = 6 примерно, тогава принтираш статичния ред, след това се завъртя цикъл. Имаме един статичен ред написан и трябва да имаме и най-отдоло още един. И ето затова цикъла трябва да се повтори а - 2.

 

0
radoslavgeorgiev93 avatar radoslavgeorgiev93 0 Точки

Благодаря за изчерпателните отговори. Ако имате съвети за напред, моля заповядайте. Приемам всякакви и всякаква информация :)

 

0
gadjov avatar gadjov 115 Точки

Един съвет от мен не се задоволявай с това само да работи,  но да не знаеш как и защо. Като не разбираш нещо, дебъгвай и разглеждай кое как точно функционира. По важното е да разбереш как точно работи и ако нещо те мъчи винаги можеш да попиташ във форума ;) 

Поздрави и хубава вечер! 

0
20/05/2017 22:53:58
vasilevamaria avatar vasilevamaria 0 Точки

"И също така разлиакта между: Console.WriteLine и Console.Write "

Console.Write ти извежда следващата команда на същия ред, а Console.WriteLine - на следващият.

Получило ти се е с "а" може би защото си задал "а" като променлива на по-горният ред.

-1