Loading...
bborisov92 avatar bborisov92 2 Точки

Подготовка за изпит - Проблем със задача за рисуване

Здравейте, подгатвям се върху предстоящия изпит и имам 1 проблем с 1 задачка 

-->> https://judge.softuni.bg/Contests/8/CSharp-Basics-Exam-14-April-2014-Morning - задачката WineGlass , моето решение -->> http://pastebin.com/NJVyi7kn .Имам проблем с най-долната част, някаква идея?

Тагове:
1
Programming Basics
MladenMladenov avatar MladenMladenov 80 Точки

On the next (N/2)-2 rows, if N >= 12 or (N/2)-1 rows, if N < 12, you should print the stem that should look like the following: a count of (N/2)-1 dots (“.”), followed by two vertical lines (“|”) and (N/2)-1 dots after the lines. The remaining one or two rows (up to a total count of N) should be filled with exactly N dashes (“-”) on each row

В условието е дадено опътване, където може да видиш как се изчислява долната част на чашата.

 

С иф даваш ако инпута - n e повече от 12 да чертае 2 реда, елс по 1.

 


if (n>=12)
{
  Console.WriteLine(new string('-',n));
  Console.WriteLine(new string('-',n));
}
else
{
Console.WriteLine(new string('-',n));
}

Това трябва да ти представлява конструкцията на долната част. Без For.

0
23/04/2015 17:40:52
bborisov92 avatar bborisov92 2 Точки

Пробвах по този начин и ми изкарва 20/100 :? Иначе под 12 си ми ги изкарва с 1 ред а над 12(включително 12) с 2 реда :?

0
bborisov92 avatar bborisov92 2 Точки

на 2-рия фор където е и = 1;и <= ..... , махнах "=" и ми изкара 80/100 :D

0
MladenMladenov avatar MladenMladenov 80 Точки

Прегледах решението ти още веднъж, ще се опитам да обясня какво трябва да се направи.

Преди втория цикъл ФОР правиш if проверка дали числото N е по-малко от 12;

ако е така трябва да печата n / 2 - 1 итерации;

ако не е по-малко (т.е. N е по-голямо от 12, в този случай е else - то трябва да печата n / 2 - 2 итерации;

След, което имаш отново проверка за дали е спрямо 12, по-голямо или по-малко за броя на последния ред.

съответно ако е N e по-голямо от 12 печата 2 реда, ако е по-малко печата 1 ред.

http://pastebin.com/i6Qiy0LM - това е преработката на твоя код, добавил съм коментари ;) 

0
bborisov92 avatar bborisov92 2 Точки

Благодаря много! :))

0
MladenMladenov avatar MladenMladenov 80 Точки

Прегледах решението ти още веднъж, ще се опитам да обясня какво трябва да се направи.

Преди втория цикъл ФОР правиш if проверка дали числото N е по-малко от 12;

ако е така трябва да печата n / 2 - 1 итерации;

ако не е по-малко (т.е. N е по-голямо от 12, в този случай е else - то трябва да печата n / 2 - 2 итерации;

След, което имаш отново проверка за дали е спрямо 12, по-голямо или по-малко за броя на последния ред.

съответно ако е N e по-голямо от 12 печата 2 реда, ако е по-малко печата 1 ред.

http://pastebin.com/i6Qiy0LM - това е преработката на твоя код, добавил съм коментари ;) 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.