Diskuze: Generování posloupného textu.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 19 zpráv z 19.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
domácí úkol?
podle mě, se to dá napsat pomocí tohoto návodu http://www.itnetwork.cz/…e-split-join + cyklů
nemyslíš a, b, c, ..., z, aa, ab, ac, ..., zz, aaa, aab, ..., zzz?
Veď si to skús naprogramovať sám nie? Keď ti to niekto spraví nikdy tomu nebudeš rozumieť...
Tak po dalším zkoumání se mi podařilo udělat kod který by měl fungovat ale dělá mi prapodivné věci zde je kód: http://www.itnetwork.cz/dev-lighter/430
A zde je výstup:
a
b
c
d
e
f
g
h
ch
i
b
a
b
b
b
c
b
d
b
e
b
f
b
g
b
h
b
ch
b
i
Nevíte někdo co s tím?
Nebylo by lepší použít ASCII tabulku?
Jinak tohle by mělo ( C# nepoužívám) vypsat do console znaky a-z :
int i;
for(i=(int) 'a'; i <= (int) 'z'; i++)
Console.WriteLine((char) i);
zbytek by neměl být problém.
Jedna pro radost
class Program
{
static void Main(string[] args)
{
var text = string.Join(",", Combine(_alphabet, 3));
Console.WriteLine(text);
}
public static readonly string _alphabet = "abcdefghijklmnopqrstuvwxyz";
public static IEnumerable<string> Combine(string source, int length)
{
return (length > 0) ? Combine(source, length - 1).Concat(Combine(source, length - 1).SelectMany(p => source.Select(s => p + s))) : new [] { "" };
}
}
Mohlo by fungovat - nezkoušel jsem:
private void Vypis()
{
for (int n = 1; i <= 3; i++) // počet písmen k vypisování na 1 řádku
{
for (int letter = (int) 'a'; letter <= (int) 'b'; letter++) // cyklus od a do z
{
for (int _n = 1; _n <= n; _n++) // pro každý řádek se n-krát vypíše písmeno
{
Console.Write((char) letter);
}
Console.WriteLine(); // nový řádek
}
}
}
oprava - v tom druhém cyklu má být for (int letter = (int) 'a'; letter <= (int) 'z'; letter++)
jo a ještě v definici
prvního cyklu tam má být všude proměnná n (síla zvyku..
)
class Program
{
static void Main(string[] args)
{
Console.Write(Generate("",4));
Console.ReadLine();
}
private static string Generate(string prefix, int number)
{
if (number == 0)
{
return "";
}
if (number == 1)
{
return prefix + Environment.NewLine;
}
string output = "";
for (int i = (int)'a'; i <= (int)'z'; i++)
{
output += Generate(prefix + (char)i, number - 1);
}
return output;
}
}
Takové míň funkcionální řešení než coellsovo
zajímavé je, že pro n<=3 je rychlejší moje, ale pro vyšší n už je výrazně rychlejší coellsovo
To bych nenazýval
prvním pohledem. Zlepši práci se stringem a uvidíš.
no, do takové hloubky jazyka jsem se ještě nedostal - máš na mysli nějakou konkrétní nedokonalost?
Zobrazeno 19 zpráv z 19.