Nauč se s námi víc. Využij 50% bonus na e-learningové kurzy.
Pouze tento týden sleva až 80 % na e-learning týkající se Javy
discount week 50
Avatar
Makaron
Člen
Avatar
Makaron:11.1.2016 17:40

Ahojte, učím sa C# a skúšal som naprogramovať algoritmus, ktorý by vypísal obsah listu stringov do rámčeka. (Lepšie pochopíte z kódu). Zaujíma ma, či by sa dal napísať nejako lepšie / efektívnejšie, aby som vedel, čo zlepšovať :D

Console.WriteLine("Pišem do ramčeka!");
List<string> list = new List<string>();
list.Add("Hello");
list.Add("world!");
list.Add("Looka");
list.Add("I´m");
list.Add("in a frame.");

string longest = "";

foreach (string s in list)
{
    if (s.Length > longest.Length)
        longest = s;
}

for (int i = 0; i < longest.Length+3; i++)
    Console.Write("*");
Console.WriteLine("*");

foreach (string s in list)
{
    string medzery = "";
    int p = longest.Length - s.Length;
    for (int i = 0; i < p; i++)
    {
        medzery += " ";
    }
    Console.WriteLine("* " + s + medzery + " *");
}

for (int i = 0; i < longest.Length+3; i++)
    Console.Write("*");
Console.WriteLine("*");

Console.ReadKey();
 
Odpovědět
11.1.2016 17:40
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
jt.e
Člen
Avatar
jt.e:11.1.2016 18:45

nevím jestli zlepšení, ale tady máš jinou verzi:

Console.WriteLine("Pišem do ramčeka!");

List<string> list = new List<string>();
list.Add("Hello");
list.Add("world!");
list.Add("Looka");
list.Add("I´m");
list.Add("in a frame.");

int max = 0;
foreach (string s in list) if (s.Length > max) max = s.Length;

StringBuilder stars = new StringBuilder(max + 4);
stars.Append('*', max + 4);

Console.WriteLine(stars);
foreach (string s in list)
{
    StringBuilder bu = new StringBuilder("* ", max + 4);
    bu.Append(s);
    bu.Append(' ', 1 + max-s.Length);
    bu.Append('*');

    Console.WriteLine(bu);
}
Console.WriteLine(stars);


Console.ReadKey();
 
Nahoru Odpovědět
11.1.2016 18:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.