Advertisement
simonradev

Обяснение на задача

Apr 23rd, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.45 KB | None | 0 0
  1. namespace Mentorship
  2. {
  3.     using System;
  4.  
  5.    public class Program
  6.     {
  7.         public static void Main()
  8.         {
  9.             /*Първото нещо което забелязваме е че имаме да прочетем някакъв вход от конзолата...
  10.               По специално някакво цяло число. По-нататък ще се учат но за целите числа в C# отговаря типа данни "int"
  11.               Повече за него можеш да прочетеш от книгата на Наков. Мога и аз да ти го обясня но не съм сигурен колко знания
  12.               имаш в сферата на програмирането и не искам да рискувам да те объркам с излишни знания за момента...
  13.               За да прочетем число от конзолата се ползва "int.Parse(Console.ReadLine());"... За момента запомняш на изуст
  14.               синтаксиса а ще го обясня на живо*/
  15.             int size = int.Parse(Console.ReadLine());
  16.  
  17.             /*Следващото нещо което забелязваме е че фигурата е широка толкова колкото е стойността на "size"...
  18.               Първия и последния ред са еднакви... Първо ще помислим за първия и последния ред и после ще начертаем средата.
  19.               Трябва ни нещо което изписва звезда толкова на брой пъти колкото искаме и за наш късмет разполагаме с такава команта
  20.               и тя е "new string('*', size);"... Това ще създаде някакъв текст от някакъв символ и ще е точно толкова дълък колкото
  21.               искаме... Пак на изуст и ще се обяснява по-подробно на живо...*/
  22.              
  23.             //Това е горната част и се създава по този начин.
  24.             //За да го изпечатаме на конзолата трябва да я викнем с "Console.WriteLine();"
  25.             string topPart = new string('*', size);
  26.             Console.WriteLine(topPart);
  27.  
  28.             /*Картинката е висока толкова реда колкото е стойността на "size" но ние вече имаме първия и последния ред
  29.               които са написани отделно... Това означава че остава да изпечатаме средните редове които след като имаме
  30.               вече два са "size - 2" реда... Това нещо се прави с фор-цикъл на който се задава начална и крайна стойност
  31.               на някаква променлива която определя колко пъти ще се изпълни кода вътре в къдравите скоби...
  32.               Стойността на променливата "currentLine" в началото е 1 след като се изпълни кода ще се увеличи с едно и ще стане 2
  33.               и кода в скобите пак ще се изпълни... Ще престане да се изпълнява чак когато стойността на променливата стане равна
  34.               на "size - 2"... И отново засега толкова на живо повече*/
  35.             for (int currentLine = 1; currentLine <= size - 2; currentLine++)
  36.             {
  37.                 /*За средните редове виждаме че започват със звездичка имат празни места и след това пак звезда... Празние места са
  38.                   "size - 2" отново понеже квадрата е широк колкото "size" но първия и последния символ се заемат от "*"
  39.                   След като знаем как да правим стринг от произволна дължина и символ може да го ползваме за празните места
  40.                   "new string(' ', size - 2);" а за да получим звездите отляво и отдясно може да използваме знака "+" който
  41.                   като приложим към текст действа така че го залепя... ако имам "а" + "b" ще стане "аb"... надявам се да схванеш
  42.                   но ето как се прави и след това принтираме*/
  43.                 string middlePart = "*" + new string(' ', size - 2) + "*";
  44.  
  45.                 Console.WriteLine(middlePart);
  46.             }
  47.  
  48.             //Това е долната част
  49.             //Правим същото което направихме и за горната част
  50.             //Създаваме някакъв текст и после го печатаме
  51.             string bottomPart = new string('*', size);
  52.             Console.WriteLine(bottomPart);
  53.         }
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement