Софтуерно Инженерство
Loading...
+ Нов въпрос
TeodorTodorov avatar TeodorTodorov 27 Точки

накратко, отиваш в charmap (start>>Run>>charmap), намираш символа копираш го или му вземаш кода и го пълниш в char, След това печаташ празни места и знаци, нищо сложно

           

            Console.WriteLine("c".PadLeft(4));
            Console.WriteLine(("c"+" "+"c").PadLeft(5));
            Console.WriteLine(("c" + "   " + "c").PadLeft(6));
            Console.WriteLine("c" + " " + "c" + " " + "c" + " " + "c" + " ");

//Може и без Padleft, просто слагаш празни места преди знака.

/* Padleft(5) - казва  абе изпечатай ми 5 празни позиции, и на мястото на тези позиции от дясно на ляво попълвай, това което ти подам "в случая c", ама ако случайно това което ти подам е по-дълго ами просто си печатай както си знаеш, пусни го намали от 5 на 4 и сравни с ще разбереш и за padleft */

ето и друг вариант : 

            Console.WriteLine(new string(' ', 3) + "©");
            // the first line is equal to Console.WriteLine(" "+" "+" "+"c")
            Console.WriteLine(("©" + " " + "©").PadLeft(5));
            Console.WriteLine(("©" + "   " + "©").PadLeft(6));
            Console.WriteLine("©" + " " + "©" + " " + "©" + " " + "©" + " ");
        


3
ivaylo.yanchev.5 avatar ivaylo.yanchev.5 79 Точки

Задачата е логическа. Решение от типа просто начертай, за да изглежда по същия начин както в условието не виждам смисъл да се коментира. Аз бих подходил така, че да решим задачата за различни големини триъгълници.

Ако триъгълникът е реализиран от Х редове, с прости сметки виждаме, че  броят елементи на ред е (Х*2)-1. Това значи, че както е в условието - на 4 реда, броят елементи на последния ред е 7 (4 C и 3 празни).

Разглеждайки как е изграден триъгълникът ми се струва, че първият и последният ред са "нестандартни", а междинните са - тоест, подходящи са за включване в цикъл, който да ги изчертава. Първият ред съдържа C винаги на позиция X, последният ред редува C и празни (Х*2)-1 пъти, а на междинните редове C е на позиция Х-i и Х+i, където i е броячът на цикъла.

Сега остава да се напише кодът. :)

6
georgi.b.stoilov avatar georgi.b.stoilov 6 Точки

Евала бе Иво,

точно така. най-добре е да се разгледа задачата при триъгълник с произволна големина. Разбира се се има предвид равнобедрен такъв като височината се определя от броя редове. Нашата задача е за 4 реда, но може спокойно да се направи за N на борй

0
wartus avatar wartus 151 Точки
Console.OutputEncoding = Encoding.UTF8;
            char c = '\u00A9';
            Console.WriteLine("   "+c);
            Console.WriteLine("  "+c+" "+c);
            Console.WriteLine(" "+c+"   "+c);
            Console.WriteLine(c+" "+c+" "+c+" "+c);

Едно стегнато от мен решение :)))
6
Tisho_Todorov avatar Tisho_Todorov 8 Точки

Здравей, колега решението на задачата ти изглежда вярно, но направило ли ти е впечатление, че когато се визуализира на конзолата триъгалника не е образуван от знака за copyright 'c' ,а от символа 'апостроф и ' на кирилица - пробваи да закоментираш реда //Console.OutputEncoding = System.Text.Encoding.UTF8; в програмата си и нещата ще изглеждат по друг начин.

0
HPetrov avatar HPetrov 822 Точки
Здравей колега! И Вас и всички останали колеги, които видят този пост, много ви моля... има още 4 теми сигурно подобни... 2 от тях общи за всички домашни по конкретната лекция... ползвайте тях. За това са направени - да може всеки да споделя своите решения на едно място и да търси помощ отностно други - пак на едно място ;)
3
svetli0o avatar svetli0o 134 Точки
Ако на някой не му тръгва програмата с '©', а му излизат 'c' трябва да си смени шрифта на Consolas. Десен бутон върху конзолата -> properties.
5
HPetrov avatar HPetrov 822 Точки
Това обикновено не работи, поне при мен и като цяло просто трябва да "добавиш" encoding към конзолата. Това става като просто добавиш  

Console.OutputEncoding=System.Text.Encoding.UTF8;

към кода си в началото. Това ще инструктира конзолата да разпознава символи от UTF-8 стандарта.
10
svetli0o avatar svetli0o 134 Точки
Ами аз добавих енкодинга по същият начин ама пак не ми тръгна :) за това промених шрифта
1
ViValDam avatar ViValDam 23 Точки
Това не е задължително, казано e, че символа може и да не се отпечата правилно - важен е алгоритъма.
0
ViValDam avatar ViValDam 23 Точки

Ето го моето решение :

string empty = " ";
char symbol = (char)0XA9;

Console.WriteLine(empty + empty + empty + symbol);
Console.WriteLine(empty + empty + symbol + empty + symbol);
Console.WriteLine(empty + symbol + empty + empty + empty + symbol);
Console.WriteLine(symbol + empty + symbol + empty + symbol + empty + symbol);

А тук си поиграх с подобни задачи , че ми хареса :

// 'C' inside

Console.WriteLine(empty + empty + empty + symbol);
Console.WriteLine(empty + empty + symbol + empty + symbol);
Console.WriteLine(empty + symbol + empty + 9 + empty + symbol);
Console.WriteLine(symbol + empty + symbol + empty + symbol + empty + symbol);


Console.WriteLine();
Console.WriteLine();


// heart

Console.WriteLine(empty + empty + symbol + empty + empty + empty + symbol);
Console.WriteLine(empty + symbol + empty + symbol + empty + symbol + empty + symbol);
Console.WriteLine(symbol + empty + empty + empty + symbol + empty + empty + empty + symbol);
Console.WriteLine(empty + symbol + empty + empty + empty + empty + empty + symbol);
Console.WriteLine(empty + empty + symbol + empty + empty + empty + symbol);
Console.WriteLine(empty + empty + empty + symbol + empty + symbol);
Console.WriteLine(empty + empty + empty + empty + symbol);






















3
kliko avatar kliko 0 Точки

Започваш така

using System;

class IsoscelesTriangle

{

        static void Main()

        {

Console.OutputEncoding=System.Text.Encoding.UTF8; // Задаваш на конзолата формат UTF8 за текста

//Можеш да го направиш по два начина - екранизиране или с char

//това е първият начин

              string triangle =@"
                          ©
                        © ©
                      ©     ©
                    © © © ©";

             Console.WriteLine(triangle);

//втори начин

             char symbol = (char)0XA9;

             string space = " ";

             Console.WriteLine(space + space+ symbol);

             Console.WriteLine(space + space + symbol  + space+ symbol);

             Console.WriteLine(space + symbol + space + space + space+ symbol);

             Console.WriteLine(symbol + symbol + symbol + symbol);

       }

}

 

1
12/10/2014 23:59:17
ViValDam avatar ViValDam 23 Точки

Триъгълника трябва да е от 9 символа, равностранен , по 4 символа на страна - това за първият вариант.

Вторият ти е също неправилен ! Не го ли тества ?

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

Дала съм и "сърце" и още един триъгълник със символа в средатата му - като правиш такава програма - нарисувай си фигурката първо на лист !

string empty = " ";
char symbol = (char)0XA9;

Console.WriteLine(empty + empty + empty + symbol);
Console.WriteLine(empty + empty + symbol + empty + symbol);
Console.WriteLine(empty + symbol + empty + empty + empty + symbol);
Console.WriteLine(symbol + empty + symbol + empty + symbol + empty + symbol);





2
vvalchanov1988 avatar vvalchanov1988 5 Точки

Трябва да си поправиш настройките на конзолата.

Cntr i F5 дясно копче на полето горе (където ти се намира X и minimize) избираш properties, след това Font  и вместо Raster Fonts  трябва да го направиш на Lucida Console даваш OK и би трябвало да си готов.

1
Tisho_Todorov avatar Tisho_Todorov 8 Точки

Здравей, просто закоментираи реда с енкодинга  //Console.OutputEncoding=System.Text.Encoding.UTF8; 

-1
georgi.b.stoilov avatar georgi.b.stoilov 6 Точки

Ами аз изрисувах фигурата, но не и с тоя знак (c) защото в конзола не го изписва въпреки, че го намерих като Unicode. В условието на задачата се загатва за некакъв конвърт от Unicode към UTF-8, но това ми е малко неясно.

Ако кажеш как да изобразя (c) в конзола на Windows ще си супер.

А иначе по-долу решението:

using System;

    class CharacterTriangle
    {
        static void Main(string)
        {
            char drawingChar = '\u00A9';
            int height = 4;




            string identStringTop = new string(' ', height - 1);
            string top = identStringTop + drawingChar + identStringTop;
            Console.WriteLine(top);

            for (int i = 2; i < height; i++)
            {
                string identStringSide = new string(' ', height - i);
                string middleTriangleSpace = new string(' ', 2*i - 3);
                Console.WriteLine(identStringSide + drawingChar + middleTriangleSpace + drawingChar +  identStringSide );
            }




            for (int i = 0; i < height; i++)
            {
                string partBase = drawingChar.ToString() + ' ';
                Console.Write(partBase);
            }
            Console.WriteLine("\n");
           
        }
    }







2
vvalchanov1988 avatar vvalchanov1988 5 Точки

Трябва да добавиш ето този код:

 

using System.Text;

Console.OutputEncoding = Encoding.UTF8;

забелязах че го няма в твоята задача.

Ако пак не стане трябва да си поправиш настройките на Конзолата.

Ето го  и моето решение на задачата:

Console.OutputEncoding = Encoding.UTF8;
char copyRightSymbol = '\u00A9';
Console.WriteLine(
" " + copyRightSymbol);
Console.WriteLine(
" " + copyRightSymbol + " " + copyRightSymbol);
Console.WriteLine(
" " + copyRightSymbol + " " + copyRightSymbol);
Console.WriteLine(
copyRightSymbol + " " + copyRightSymbol + " " + copyRightSymbol + " " + copyRightSymbol);

Надявам се да съм бил полезен Лека на всички.

0
yonikolova avatar yonikolova 5 Точки
Ето моето решение: 
 
using System;
 
class IsoscelesTriangle
{
        static void Main()
        {
                char copyrightSymbol = '©';
                Console.WriteLine(" {0}\n {0} {0} \n {0} {0} \n{0} {0} {0} {0}", copyrightSymbol);
        }
}
3
Velichkov avatar Velichkov 87 Точки

Трябва да е равностранен триъгълник, а при теб се получава пръвоъгълен. :)

-1
advokata avatar advokata 1 Точки

Добре де не може ли да се измисли нещо с for цикъл. Би трябвало да може според входни данни да можеш да направиш такъв триъгълник.

0
nikola.m.nikolov avatar nikola.m.nikolov 832 Точки

Естествено, че може. Това реално си е задача за рисуване, каквито ще бъде 3-тата ви на изпита. 

0
petio.bs avatar petio.bs 51 Точки

Надявам се да ви е от полза : цък
Ако не ви излиза символа трябва да си промените шрифта на конзолата :)

6