Loading...

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

axl894 avatar axl894 38 Точки

Домашно Тема 2/Задача 17

Здравейте, може ли малко помощ за задача 17 от второто домашно? Условието е:

"Do you know that the next solar eclipse will occur on April 29, 2014? It will be observable from South Asia, Australia, the Pacific and the Indian Oceans and Antarctica. Spiro is an entrepreneur who wants to cash in on this natural phenomenon. Help him produce protective sunglasses of different sizes. You will get 5% of the profit.
Input

The input data should be read from the console.

You have an integer number N (always an odd number) specifying the height of sunglasses.

The input data will always be valid and in the format described. There is no need to check it explicitly.

The output should be printed on the console.
You should print the sunglasses on the console. The sunglasses consist of three parts: frames, lenses and a bridge (the connection between the two frames). Each frame's width is double the height N and should be printed using the character '*' (asterisk). Print the lenses with the character '/'. Finally, connect the two frames with a bridge that is of size N, using the character '|'. Leave the rest of the space between the frames blank."

 

Това, което успях да измсиля е

  1. using System;
  2.  
  3. class Sunglasses
  4. {
  5.     public static void Main()
  6.     {
  7.         int height = int.Parse(Console.ReadLine());
  8.         int width = 2 * height;
  9.         string upperPart = new string('*', width);
  10.         string bridge = new string('|', height);
  11.         string bridgeSpace = new string(' ', height);
  12.         int middleOfTheHeight = (height / 2) + 1;
  13.  
  14.         if (height%2 != 0)
  15.         {
  16.             Console.WriteLine(upperPart + bridgeSpace + upperPart);
  17.             for (int line = 3; line <= height; line++)
  18.             {
  19.                 string lens = new string('/', width-2);
  20.                 Console.WriteLine("*" + lens + "*" + bridgeSpace + "*" + lens + "*");
  21.             }
  22.  
  23.             string lowerPart = upperPart;
  24.             Console.WriteLine(lowerPart + bridgeSpace + lowerPart);
  25.         }
  26.     }
  27. }

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

Тагове:
0
Programming Basics
Samuil.Petrow avatar Samuil.Petrow 1550 Точки

Ако не се лъжа задачката е точно като третата ни задача от изпита, само че с различен знак за свързване на лещите. Ето моето решение с вече променения знак.

0
fricer avatar fricer 23 Точки

Направих го заповядай http://pastebin.com/0DmuWXby :)

Опитах се да не променям много твоя код. Проблема е, че не знаеш кога си по средата на височината, за да отпечаташ моста затова пускаш един for цикъл да вътри от 0 до height - 2 ,защото видях че си печаташ първия и последния ред отделено и реших да го запазя, на всяко завъртане на for-a проверяваш дали си по средата ако си печаташ очилата с рамката ако не печаташ очилата със разстояние между тях. Ако не разбра нещо питай ще се опитам да ти обясня по-подробно. :) Прекарай го през дебъгера да разбереш по-добре какво прави.

1
a.angelov avatar a.angelov 1316 Точки

Ето и моето решение с ползване на string ... = new string(char c, int count);

РЕШЕНИЕ

1
axl894 avatar axl894 38 Точки

Много ви благодаря :)

0
bsdemon avatar bsdemon 348 Точки

Колега, моля отбелязвай за кой курс става въпрос. C#, Java и т.н. в самото заглавие.
Още по добре е да си задавате въпросите за определено домашно в темата за това домашно. Ако няма такава, създай я.
Няма смисъл да има 100 нови теми за едно домашно.

0
axl894 avatar axl894 38 Точки

Пуснал съм темата в раздел C# Basics :) Иначе, извинявам се, вече ще питам в обща тема, ако има таква

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