Софтуерно Инженерство
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
mar10 avatar mar10 1 Точки

Здравей,

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

Console.WriteLine - изписва символа на нов ред.

За new string мога да кажа, че създава твой собствен вид текст, който мойеш да повториш "а" пъти, ако говорим конкретно за кода който си сложил по горе. За останалата част от задачата не мисля че е правилно да коментирам, защото и на мен ми помогнаха да направя кода елегантен... :)

0
BozhidarBozhilov avatar BozhidarBozhilov 8 Точки

Не зная какъв ти е бил кода, когато не се е получавало и кое а-2 си променил, но и редовете със спейсове, както и самите спейсове са а-2 броя.

0
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