» »

[C#] Kako se lotiti naloge

[C#] Kako se lotiti naloge

Cvenemir ::

Lep pozdrav.

Zanimajo me predlogi, kako bi se lotil naslednje naloge:

"Izdelajte program, ki bo vneseno celo število izpisal v "grafični" obliki (uporabite znake minus, plus, klicaje ipd.)"

A to za vsako število od 0-9 izdelam funkcijo in jih potem kličem v MAIN programu? Ali obstaja kakšen bolj kompakten način?

darkolord ::

Če boš tako naredil, kot si napisal, potem boš imel vsako števko izpisano v svoji "vrstici". Če hočeš eno za drugo, boš moral malenkost drugače...

Cvenemir ::

A se ne da zlepit nize izpisov skupaj, da bi bili v eni vrstici?

Zgodovina sprememb…

  • spremenil: Cvenemir ()

FrEaKmAn ::

lahko malo več o tem? število v grafični obliki? kako je to mišljeno...

darkolord ::

Lepiti jih moraš sam po vrsticah.

FrEaKmAn, recimo takole:

  .o    .oooo.     .oooo.   
o888  .dP""Y88b  .dP""Y88b  
 888        ]8P'       ]8P' 
 888      .d8P'      <88b.  
 888    .dP'          `88b. 
 888  .oP     .o o.   .88P  
o888o 8888888888 `8bd88P' 

Zgodovina sprememb…

  • spremenilo: darkolord ()

LeQuack ::

Moja rešitev z uporabo 7 vrstične grafike.
    /// <summary>
    /// Program izpise celo stevilo s pomocjo ASCII grafike.
    /// Grafika pridobljena na strani ASCII Generator (http://www.network-science.de/ascii/)
    /// </summary>
    class Program
    {
        // Array za 10 stevil visine 7 vrstic
        private static String[] stevilke = {
			"   ###      #    #####   #####  #       #######  #####  #######  #####   #####  ",
			"  #   #    ##   #     # #     # #    #  #       #     # #    #  #     # #     # ",
			" #     #  # #         #       # #    #  #       #           #   #     # #     # ",
			" #     #    #    #####   #####  #    #  ######  ######     #     #####   ###### ",
			" #     #    #   #             # #######       # #     #   #     #     #       # ",
			"  #   #     #   #       #     #      #  #     # #     #   #     #     # #     # ",
			"   ###    ##### #######  #####       #   #####   #####    #      #####   #####  "};

        // Array za znak minus
        private static String[] minus = {
            "       ",
            "       ",
            "       ",
            " ##### ",
            "       ",
            "       ",
            "       "};

        // Ker stevilke niso enakih sirin shranimo zacetno in koncno pozicijo vsake stevilke
        private static int[] pozicijaStevilke = { 1, 9, 16, 24, 32, 40, 48, 56, 64, 72, 80 };

        static void Main(string[] args)
        {
            // Branje vhodnega stevila
            Console.Write("Vnesite poljubno celo stevilo: ");
            int stevilo = int.Parse(Console.ReadLine());
            string steviloText = Math.Abs(stevilo).ToString();

            int[] steviloArray = new int[steviloText.Length];
            for (int i = 0; i < steviloText.Length; ++i)
                steviloArray[i] = int.Parse(steviloText[i].ToString());


            // Vsako vrstico izpisemo posebej
            for (int i = 0; i < stevilke.Length; ++i)
            {
                // Ce je negativno izpisemo minus
                if (stevilo < 0)
                    Console.Write(minus[i] + " ");

                // Gremo skozi vse posamezne stevilke in glede na zacetno in 
                // koncno pozicijo izpisemo del stringa
                foreach (int st in steviloArray)
                    Console.Write(stevilke[i].Substring(
                        pozicijaStevilke[st] - 1,
                        pozicijaStevilke[st + 1] - pozicijaStevilke[st]) + " ");
                // Nova vrstica
                Console.WriteLine();
            }

            // Pritisni katerokoli tipko za izhod
            Console.ReadKey();
        }
    }



Izpis programa je tak:
Vnesite poljubno celo stevilo: -567
         #######   #####   #######
         #        #     #  #    #
         #        #            #
 #####   ######   ######      #
               #  #     #    #
         #     #  #     #    #
          #####    #####     #
Quack !

Zgodovina sprememb…

  • spremenil: LeQuack ()

Spura ::

Lol lequack, teb se pa res da zadnje case vse folku resit. :D

LeQuack ::

Trening za možgane. :)
Quack !

asdfghjkl12 ::

hvala ti LeQuack :P


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

BBC bo razdelil milijon računalnikov Micro Bit britanskim sedmošolcem

Oddelek: Novice / Ostale najave
2210041 (6551) bbbbbb2015
»

Wireless attack

Oddelek: Informacijska varnost
191784 (1591) LitralSM
»

Anonymous in napadi na razne ustanove

Oddelek: Loža
71707 (1440) @nny
»

C# - Grafični izpis števil

Oddelek: Programiranje
81445 (1341) someone1
»

TRDI DISK ExcelStor! NITI PRIBLIŽNO

Oddelek: Pomoč in nasveti
51015 (764) dash_wallace

Več podobnih tem