Loading...
zlatko81 avatar zlatko81 14 Точки

Drawing with Loops - 6.Ромбче от звездички

Здравейте , 

Горната част на ромба я отпечатах според подсказките в *.doc файла с упражненията , а именно :

Подсказки:

  • Разделете ромба на горна и долна част и ги печатайте с два отделни цикъла.
  • За горната част завъртете цикъл за row от 1 то n:
    • Отпечатайте n-row интервала.
    • Отпечатайте “*”.
    • Отпечатайте row-1 пъти “ *”.
  • Долната част отпечатайте аналогично на горната с цикъл от 1 до n-1.

Дотук всичко е отлично , започнах с Долната част според подсказката с цикъл от 1 до n-1 . Резултата беше доста интересни безкрайни рисунки в конзолата. :)

Нужни ми бяха 2ч. за да стигна до решение с дебъгера и нагласяне на звездички и интервали. 

Ето го и него : http://pastebin.com/5R58cP6J

Все пак реших задачата на 100 , но въпросът ми е защо не успях да нарисувам долната част с цикъл до n-1 (както е подсказано). 

И другият въпрос който ми изниква , тези задачи за "чертане" с буквички и символчета за да ми изпапкат времето на изпита ли са замислени?

 

Тагове:
0
Programming Basics
dmaknev avatar dmaknev 49 Точки
Best Answer

Да, по всичко личи, че са замислени да ти изпапкат максимално много от времето на изпита... Затова ако зациклиш на някоя таква, просто я прескочи и давай нататък, пък накрая се върни и я дебъгвай, ако е останало време ;) Т.е. по-добре 6*50 отколкото 2*100 нали така ;)

Иначе при мен се получава, обаче е леко модифицирано, защото за улеснение съм извадил първия и последния ред от общия алгоритъм. И съответно тогава вместо до n съм до n - 1 за горната част и съответно вместо n - 1, съм от n - 2 за долната: http://volatileread.com/utilitylibrary/snippetcompiler?id=82593

При теб различното е, че не си обърнал фора огледално, а си правил съвсем други неща...

0
zlatko81 avatar zlatko81 14 Точки

Опитах се да го обърна огледално , но не се получаваше. Изтървам нещо , но не знам кое. За мен тези задачи са насосване, да се учим да дебъгваме.

0
dmaknev avatar dmaknev 49 Точки

Погледна ли как съм го направил аз?

for (int i = 1; i < n; i++) на обратно става for (int i = n - 2; i > 0; i--)

По принцип края i > 0 е същото като i == 1, т.е. i = 1 когато е начало. И съответно i < n е същото като i <= n - 1, но обратния for почва от i = n - 2, защото там има с 1 ред по-малко. Ако искаш съвсем да ти е огледално всичко, вадиш си и средния ред от циклите и си готов.

0
jivako000 avatar jivako000 296 Точки

Здравей!

Аз на тази задача съм се мъчил доста време, но в крайна сметка успях със подсказката да разбера как става! Това е моя код - http://pastebin.com/J1vx1i4T 

А доколкото за фигурката на изпита - мисля си, че нея трябва да я оставиш последна, защото на мен лично ми отне страшно много време на изпита на 28.08 и в крайна сметка не успях да я реша! На всеки изпит е с различна степен на трудност, това са моите впечатления!

Успех!smiley

0
fiherLuci avatar fiherLuci 225 Точки

Дай грешния код иначе не можем да ти кажем къде е грешката ;- )

1
daniel.a.mihaylov avatar daniel.a.mihaylov 6 Точки

Ето ти мойто решение дано ти помогне да откриеш грешката:

http://pastebin.com/3tARVW0k

0
zlatko81 avatar zlatko81 14 Точки

Твойто , мойто все тая. 

Като копираш кода, поне махни празните редове.

0
daniel.a.mihaylov avatar daniel.a.mihaylov 6 Точки

Копирал съм си го от джъджа щото съм я решавал преди месеци,ама като ти е все тая нема смисъл да задаваш тема :) Успех ,с тва заяждане ще спрат да ти отговарят на въпросите ;)

0
daniel.a.mihaylov avatar daniel.a.mihaylov 6 Точки

Всъщност сега видях че съм копирал твоя код вместо моя,като го загледах,ето го моя:

http://pastebin.com/FWZ7S0rM

 

0
ambiorix avatar ambiorix 640 Точки

Аз лесно се обърквам когато трябва първо да работя с един цикъл i < n - 1 (например), а пък 10 реда след това с друг който е i > n + 1 или нещо от този род.

Затова за тази задача конкретно подхождам така:

1. рисувам  n - i разстояния и една звезда (цикълът започва от 1 така че на първия ред ще имам 4 разстояния и една * при вход 5)

2. във вложен на този цикъл за конкретния ред долепям до j < i на брой разстояния със звезда (" *"). С това приключва горната част на ромба, т.е. той е нарисуван отгоре надолу до най-широката му част.

3. както казах вместо да сменям посоката на логиката на цикъла за да го направя огледален на предния, то в цикъл от 1  до i < n рисувам i на брой разстояния (първи ред - едно разстояние, втори - две) и звезда.

4. във вложен на този цикъл от 1 до  j < n - i долепям разстояния със звезда (" *")

http://pastebin.com/raw/EP9dNGSC

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