Loading...
borislav9212 avatar borislav9212 745 Точки

Coding 101 Exam - Задача 5. Знак СТОП - 24 април 2016

Здравеийте колеги,

Закъсах на най-лесната задача. Знам,че е по добре човек като закъса да продължи с другите задачи и да се върне после на нея, но се издразних, че запънах на елементарна задача повече от час. В условието не е дадено размерите на реда, тия долни черти малко трудно се определят колко са, но ги открих, проблема ми е в средния ред "STOP!", нещо не мога да открия точната формула, това ми е кода

http://pastebin.com/JCHn1aby

Тагове:
0
Programming Basics
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки
Best Answer

Има и други грешки, не смяташ чертите точно...

Първи ред:

new string('.', n + 1) + new string('_', n * 2 + 1) + new string('.', n + 1))

В първия цикъл:

innerCount = n * 2 - 1 + i * 2;

Правиш си допълнителна променлива innerCount, за да знаеш до къде си стигнал с броя черти след първия цикъл.  

new string('.', n - 1 * i) + "//" + new string('_', innerCount) 
    + "\\\\" + new string('.', n - i));

STOP реда:

"//" + new string('_', (innerCount - 5) / 2 + 1) + "STOP!" 
    + new string('_', (innerCount - 5) / 2 + 1) + "\\\\"

Във втория цикъл:

new string('.', n - 1 - i) + "\\\\" 
    + new string('_', innerCount + 2 - 2 * (n - 1 - i)) 
    + "//" + new string('.', n - 1 - i)

Ето така бих го направил пък аз: http://pastebin.com/AiJ8tDwY

1
30/04/2016 22:47:38
borislav9212 avatar borislav9212 745 Точки

Втория цикъл има малка грешка, трябва да е така  

Console.WriteLine( new string('.', n - 1 - i) + "\\\\"  + new string('_', innerCount + 2) + "//" + new string('.', n - 1 - i));

Благодаря ти за помощта, видях къде ми е грешката.

1
30/04/2016 23:10:06
Nikola_Andreev avatar Nikola_Andreev 671 Точки

Долните черти на предните редове, предполагам знаеш колко са. Вадиш от тях 5 (стопа) и ги  делиш на 2 и готово.

0
Nikola_Andreev avatar Nikola_Andreev 671 Точки

Ако искаш погледни и моето решение от изпита -> http://pastebin.com/WVEFbYqV

Малко е по дълго, но поне за мен е по четим кода.

 

1
kgyorev avatar kgyorev -10 Точки

Това беше най-трудната задача за мен защото на нея изгубих най-много време.

Ето и моето решение: http://pastebin.com/hRLMnQeg

2
30/04/2016 22:33:29
Thenis avatar Thenis 219 Точки

Ето и мойто решение. Направих задачата с 1 for цикъл. Дано да ти донесе идеи за в бъдеще.

http://pastebin.com/ZtvyFhrE

1
borislav9212 avatar borislav9212 745 Точки

Благодаря ви колеги!

1
b.serafimov avatar b.serafimov -5 Точки

Препоръчвам за тези задачи да се ползва текстов редактор, който показва какво си маркирал. Напр. Notepad++

Като бонус, показва всичко останало еднакво с маркираното, за някои не дотам очебийни зависимости. 

0
borislav9212 avatar borislav9212 745 Точки

Хареса ми и твоето решение, аз ако бях щях да събера стринговете ей така http://pastebin.com/VGY5jJr5

 

1
vladimir.st.radoslavov avatar vladimir.st.radoslavov 29 Точки

не обичам дългите редове laugh моя проблем с тях е че докато стигна до края забравям началото wink 

0
ivan.nedyalkov avatar ivan.nedyalkov 10 Точки

Това ми прилича като състезание за най-сложно решение :) 

Моето решение ! първи ред / цикъл / ред STOP / цикъл

            var n = int.Parse(Console.ReadLine());

            var h = (n * 2) + 2;
            var w = (n * 2) + (2 * n - 1) - 4;

            Console.WriteLine("{0}{1}{0}", new string('.', n + 1), new string('_', 2 * n + 1));

            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("{0}//{1}\\\\{0}", new string('.', n - i), new string('_', (2 * n - 1) + i + i));
            }

            Console.WriteLine("//{0}STOP!{0}\\\\", new string('_', w/2));

            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("{0}\\\\{1}//{0}", new string('.', i), new string('_', w+4-i-i));
            }
        

1
stambo avatar stambo 6 Точки

Тия задачи с чертането са ми ужасно трудни...след близо ~40 минути мъка и ужасно много тестове, успях да измъдря моето супер малоумно решение laugh

http://pastebin.com/myFcGC9y

Това е то...отвратително е laugh дори на места и аз не знам какво точно правя.Мисля че е достойно за говнокод.ру laughlaugh.

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