Профил
Loading...
SvilenPavlov avatar SvilenPavlov 8 Точки

Rhombus of Stars и чертане на фигурки с for

Здравейте!

В курса программинг бейсикс,в 6-ти урок има упражнение да нарисуваме ромб от звездички. В упътването се казва Отпечатайте row-1 пъти “ *” Да де, ама със Console.Write(new string()) не става, защото приема само char, а " *" е стринг, има 2 символа. Как да го направя, не намерих  в гооглиту. Тенкс ин адванс!

0
Основи на програмирането 14/06/2016 13:28:50
KrasimirPetkov avatar KrasimirPetkov 331 Точки

Ако искаш да направиш new string(), като използваш повече от 1 символ (в твоя случай "* "), можеш да опиташ следното:

string s = new string('s', n).Replace("s","* ");

По този начин се създава стринг, който съдържа даден символ (в случая съм използвал 's'), а с командата Replace(), той се подменя навсякъде със string-a, който си задал.

Ето и кратко решение на задачата (аз използвам substring и placeholder-и, които най-вероятно още не сте ги учили, но ако провериш в интернет ще разбереш лесно кое какво прави): http://pastebin.com/775qFGi1

В общи линии при моето решение, още в самото начало създавам един дълъг string от "* ", а после с for циклите отпечатвам части от string-а и празни места пред тях.

Ако не разбираш нещо от кода, а ти е интересно как работи - питай и ще обяснявам.

Успех!

1
14/06/2016 15:59:51
Perss avatar Perss 7 Точки

Като рънна кода и ми изписва "Unexpected character '$'" ? Какво е това $ ?

0
KrasimirPetkov avatar KrasimirPetkov 331 Точки

Здравей, знакът "$" се използва за string interpolation. Можеш да разгледаш примери тук: http://www.dotnetperls.com/string-interpolation . Като цяло идеята му е да позволи да се добави стойността на променлива/уравнение/др. в string. Друг вариант е да се използва placeholder от типа на "{0}" или concatenation с "+". Пример:

int a = 5;

Console.WriteLine("The value of a is: {0}", a);
// Резултат: "The value of a is: 5"

Console.WriteLine($"The value of a is: {a}");
// Резултат: "The value of a is: 5"

Console.WriteLine("The value of a is: " + a);
// Резултат: "The value of a is: 5"

Доколкото съм запознат, "$" е добавено в C# 6.0 (Visual Studio 2015+), така че при по-стари версии може да даде грешка.

В Judge работи безпроблемно.

Успех!

0
rumyn avatar rumyn 8 Точки

Вие сте злато ! даже и го разбрах кода на това http://pastebin.com/775qFGi1   :) със излъгването на ню стринг да приеме няколко символа

и s.Substring като си поиграх малко го разбрах и него , май

Благодаря!

0