Diskuze: Pomoc s kódem...
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= 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.
Ahoj,
ty čísla jsou nějak oddělená mezerou nebo čárkou?
Jako řešení bych to viděl tak, že bych si vyhledal číslo v textovém poli a pomocí tohoto kódu provedl ciferný součet. Proměnná "s" představuje nalezené číslo.
Dim s As String = "11"
Dim soucet As Integer = 0
For Each c As Char In s
soucet += Integer.Parse(c)
Next
TextBox1.Text = TextBox1.Text.Replace(s, soucet)
Co se týče ciferných součtů, tak Ondřej už odpověděl
Co se týče písmen, tak Ti stačí daný znak přetypovat z
char
do int
což Ti vrátí polohu (adresu) daného
znaku v ASCII tabulce.
Dalším krokem je odečíst vhodné číslo tak, abys pro a
dostal 0, b
1 atd.
Pak už jen spočítat modulo, tedy zbytek po dělení, devíti a k výsledku přičíst jedničku.
Tím jsi dostal první polovinu "tabulky" do jedné funkce.
Díky za reakce, nula nepřichází v úvahu. Je to aplikace na jednoduché
dekódování textu kde a=1 b=2 c=3 atd...
Dále když je to celá věta s dlouhým textem tak to znamená že čísla se
sečtou tak dokud nezůstane jen jednociferné číslo jako příklad text aabcd
= 11234 = 1+1+2+3+4= 11 = 1+1 = 2 ... "2" Je výsledné číslo slova. Jako
řešení bych nejspíše viděl odpověď Ondřeje.
A pro "aj" to bude 1+10 nebo 1+1+0 a nebo, jak mas tu puvodni tabulku
1+1?
Jestli to puvodni, tak bych pouzil podobny kod jako psal ondrej. Pseudokod nejak
takto:
cyklus (vsechny znaky)
{
if (code>=65 && code<75) zapis(code - 64); // 65 ascii kod znaku pro 'A' http://www.asciitable.com/
if (code>=75 && code<85) zapis(code - 64 - 10); ...
}
soucet = 0;
cyklus (vsechny znaky)
{
if (code>=48 && code<=57) {soucet += code - 47;}
else {zapis(soucet) + znak; soucet = 0;}
}
if (soucet>0) zapis(soucet);
Jestli s tou nulou narážíš na můj příspěvek, tak nehrozí, že by ta nula byla vrácená. Modulo vrací zbytek po celočíselném dělení, pro X modulo 9 to vrátí číslo od nuly do osmi. V dalším kroku je přičtení jedničky, takže výsledek je v rozsahu od jedné do devíti.
Celou větu můžeš jednoduše zpracovat rekurzivní funkcí.
Private Sub String zvejkej (String StaryRetezec)
// kod pro prevod StaryRetezec na NovyRetezec
if (NovyRetezec.length>1)
NovyRetezec=zvejkej(NovyRetezec);
return NovyRetezec;
Zobrazeno 7 zpráv z 7.