NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Funkce pro převod znaku

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 9:04

Dobrý den,

snažím se docílit převod znaku. V php jsem to dělal viz. níže. Prosím, jak stejného efektu docílit v C#? Předem moc děkuji za rady. Zkoušel jsem to pomoci funkce replace, ale ta dokáže jen jeden znak/slovo.

function prevod($text){$preved = array("a" => "1 ","j" => "1 ","s" => "1 ","b" => "2 ","k" => "2 ","t" => "2 ","c" => "3 ","l" => "3 ","u" => "3 ","d" => "4 ","m" => "4 ","v" => "4 ","e" => "5 ","ö" => "5 ","n" => "5 ","w" => "5 ","f" => "6 ","o" => "6 ","x" => "6 ","g" => "7 ","p" => "7 ","y" => "7 ","h" => "8 ","q" => "8 ","z" => "8 ","i" => "9 ","ü" => "9 ","r" => "9 ");return strtr($text,$preved);}
 
Odpovědět
2.10.2016 9:04
Avatar
Odpovídá na Frestyle
Michal Štěpánek:2.10.2016 9:23

zkus se inspirovat tady
http://www.itnetwork.cz/…ace-se-znaky
nebo v jiném ze zdejších tutoriálů...
P.S. Trošku hledání jsi tomu věnovat mohl...

Nahoru Odpovědět
2.10.2016 9:23
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 14:06

Tohle jsem vyhledal, ale nic moc mi to nedalo. Potřebuji přímé nahrazení viz funkce v php. Zkoušel jsem i Replace, ale to se už opakuju

 
Nahoru Odpovědět
2.10.2016 14:06
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 15:12

nevím co znamená přímé nahrazení, ale tady máš funkční:

static string GetConvertedChar(char c)
{
    switch(c)
    {
        case 'a': return "1 ";
        case 'j': return "1 ";
        case 's': return "1 ";
        case 'b': return "2 ";
        case 'k': return "2 ";
        case 't': return "2 ";
        case 'c': return "3 ";
        case 'l': return "3 ";
        case 'u': return "3 ";
        case 'd': return "4 ";
        case 'm': return "4 ";
        case 'v': return "4 ";
        case 'e': return "5 ";
        case 'ö': return "5 ";
        case 'n': return "5 ";
        case 'w': return "5 ";
        case 'f': return "6 ";
        case 'o': return "6 ";
        case 'x': return "6 ";
        case 'g': return "7 ";
        case 'p': return "7 ";
        case 'y': return "7 ";
        case 'h': return "8 ";
        case 'q': return "8 ";
        case 'z': return "8 ";
        case 'i': return "9 ";
        case 'ü': return "9 ";
        case 'r': return "9 ";
        default: return c.ToString();
    }
}

string ConvertStr(string str)
{
    StringBuilder bu = new StringBuilder(str.Length * 2);
    foreach (char c in str) bu.Append(GetConvertedChar(c));
    return bu.ToString();
}
 
Nahoru Odpovědět
2.10.2016 15:12
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 20:13

To je přesně ono. Moc děkuju

 
Nahoru Odpovědět
2.10.2016 20:13
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 20:38

Ještě jedna a snad poslední otazka k funkci. Chci každé to číslo sečíst a dostat součet. Snažil jsem se toho docílit takhle:

ciselnySoucet += ConvertStr(text);

Chtěl jsem třeba i pomocí for() ale když mi nechce vzít +=, tak nevím jak jinak toho docílit. Omlouvám se, ale stále se učím i když to tak nevypadá

 
Nahoru Odpovědět
2.10.2016 20:38
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 20:48

je to string, takže musíš s něj parsovat hodnotu.
Takže se nabízí otázka proč jsi rovnou nechtěl vracet hodnotu?

int GetConvertedChar(char c)
{
    switch(c)
    {
        case 'a': return 1;
        case 'j': return 1;
        case 's': return 1;
        ........

a tu pak rovnou přičítat..

Editováno 2.10.2016 20:50
 
Nahoru Odpovědět
2.10.2016 20:48
Avatar
Marian Benčat:2.10.2016 20:58

Ja tam tedy vidim, ze on dela defakto

number = ((int) character - 96) % 10; pokud to takto skutečně je,. nebylo by to asi jen tak 1000x lepší, než dělat nějakým lookup table (Dictionary / Asociativní pole), nebo nedejbože switch?

Nahoru Odpovědět
2.10.2016 20:58
Totalitní admini..
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 20:59

Opravil jsem string (case) na int a kde tedy prosím vytvořit přičítání?

 
Nahoru Odpovědět
2.10.2016 20:59
Avatar
HONZ4
Člen
Avatar
Odpovídá na Marian Benčat
HONZ4:2.10.2016 21:03

částečně, nesedí tam 'ö' a 'ü'

 
Nahoru Odpovědět
2.10.2016 21:03
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 21:05

já ale nechápu jak to chceš vlastně přičítat.
Třeba jako tak, že za jednotlivé znaky dosadit čísla a ty pak sečíst?

 
Nahoru Odpovědět
2.10.2016 21:05
Avatar
Odpovídá na HONZ4
Marian Benčat:2.10.2016 21:10

on chce poste z jednotlivych cislic poskaldat zpet cislo a mit to jako cislo..

ciselnySoucet = ConvertStr(text) + ciselnySoucet;

.. a jako spravny PHPkar, nevi co je to immutable.

Nahoru Odpovědět
2.10.2016 21:10
Totalitní admini..
Avatar
Frestyle
Člen
Avatar
Odpovídá na Marian Benčat
Frestyle:2.10.2016 21:16

To jsi vystihnul :-(

 
Nahoru Odpovědět
2.10.2016 21:16
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 21:17

kdyby vstupem byla trochu delší věta bude v pr.eli

 
Nahoru Odpovědět
2.10.2016 21:17
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 21:18

takže ne takto: ??

static int GetConvertedCharValue(char c)
{
    switch (c)
    {
        case 'a': return 1;
        case 'j': return 1;
        case 's': return 1;
        case 'b': return 2;
        case 'k': return 2;
        case 't': return 2;
        case 'c': return 3;
        case 'l': return 3;
        case 'u': return 3;
        case 'd': return 4;
        case 'm': return 4;
        case 'v': return 4;
        case 'e': return 5;
        case 'ö': return 5;
        case 'n': return 5;
        case 'w': return 5;
        case 'f': return 6;
        case 'o': return 6;
        case 'x': return 6;
        case 'g': return 7;
        case 'p': return 7;
        case 'y': return 7;
        case 'h': return 8;
        case 'q': return 8;
        case 'z': return 8;
        case 'i': return 9;
        case 'ü': return 9;
        case 'r': return 9;
        default: return 0;
    }
}
/// <summary>
/// získání hodnoty z textu:
/// </summary>
int GetValueFromString(string str)
{
    int val = 0;
    foreach (char c in str) val += GetConvertedCharValue(c);
    return val;
}
 
Nahoru Odpovědět
2.10.2016 21:18
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 21:24

ale takto?

private static string GetConvertedChar(char c)
{
    switch(c)
    {
        case 'a': return "1";
        case 'j': return "1";
        case 's': return "1";
        case 'b': return "2";
        case 'k': return "2";
        case 't': return "2";
        case 'c': return "3";
        case 'l': return "3";
        case 'u': return "3";
        case 'd': return "4";
        case 'm': return "4";
        case 'v': return "4";
        case 'e': return "5";
        case 'ö': return "5";
        case 'n': return "5";
        case 'w': return "5";
        case 'f': return "6";
        case 'o': return "6";
        case 'x': return "6";
        case 'g': return "7";
        case 'p': return "7";
        case 'y': return "7";
        case 'h': return "8";
        case 'q': return "8";
        case 'z': return "8";
        case 'i': return "9";
        case 'ü': return "9";
        case 'r': return "9";
        default: return string.Empty;
    }
}

public static int ConvertStr(string str)
{
    StringBuilder bu = new StringBuilder(str.Length);
    foreach (char c in str) bu.Append(GetConvertedChar(c));

    int result;
    int.TryParse(bu.ToString(), out result);
    return result;
}
Editováno 2.10.2016 21:26
 
Nahoru Odpovědět
2.10.2016 21:24
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 21:29

ten závěr raději takto:

public static int ConvertStr(string str)
{
    StringBuilder bu = new StringBuilder(str.Length);
    foreach (char c in str) bu.Append(GetConvertedChar(c));

    int result;
    return int.TryParse(bu.ToString(), out result) ? result : 0;
}
 
Nahoru Odpovědět
2.10.2016 21:29
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 21:35

to je vlastně jedno :)

 
Nahoru Odpovědět
2.10.2016 21:35
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 21:37

Tahle kombinace funkcí mi vyhazuje toto: Typ int nelze implicitně převést na typ string. (CS0029)

 
Nahoru Odpovědět
2.10.2016 21:37
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 21:48

to bys musel dát ukázku použití.

takhle ti můžu poradit jen .ToString()

 
Nahoru Odpovědět
2.10.2016 21:48
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 21:55

Ukázka použití v konzolové aplikaci:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Zadej text:");
        string str = Console.ReadLine();
        int val = ConvertStr(str);
        Console.WriteLine(val.ToString());
        Console.ReadKey();
    }

    private static string GetConvertedChar(char c)
    {
        switch (c)
        {
            case 'a': return "1";
            case 'j': return "1";
            case 's': return "1";
            case 'b': return "2";
            case 'k': return "2";
            case 't': return "2";
            case 'c': return "3";
            case 'l': return "3";
            case 'u': return "3";
            case 'd': return "4";
            case 'm': return "4";
            case 'v': return "4";
            case 'e': return "5";
            case 'ö': return "5";
            case 'n': return "5";
            case 'w': return "5";
            case 'f': return "6";
            case 'o': return "6";
            case 'x': return "6";
            case 'g': return "7";
            case 'p': return "7";
            case 'y': return "7";
            case 'h': return "8";
            case 'q': return "8";
            case 'z': return "8";
            case 'i': return "9";
            case 'ü': return "9";
            case 'r': return "9";
            default: return string.Empty;
        }
    }

    public static int ConvertStr(string str)
    {
        StringBuilder bu = new StringBuilder(str.Length);
        foreach (char c in str) bu.Append(GetConvertedChar(c));

        int result;
        int.TryParse(bu.ToString(), out result);
        return result;
    }
}
Editováno 2.10.2016 21:58
 
Nahoru Odpovědět
2.10.2016 21:55
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 21:58

.ToString() skutečně zabralo, ale kam prosím dosadit přičítání?

 
Nahoru Odpovědět
2.10.2016 21:58
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 22:02

Hele pokud to není domácí úkol, tak sem klidně dáš ukázku svého kódu ať ti můžu poradit, v opačném případě ti to dávám za domácí úkol já ;)

 
Nahoru Odpovědět
2.10.2016 22:02
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 22:13

Domácí úkol to není :-)

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Prvni_program
{
        public partial class MainForm : Form
        {
                string txt1 = "Zde bude text.";
                public MainForm()
                {
                        InitializeComponent();
                        label1.Text = txt1;
                }

                public static string RemoveDiacritics(String s)
                {
                        s = s.Normalize(System.Text.NormalizationForm.FormD);
                        System.Text.StringBuilder sb = new System.Text.StringBuilder();
                        for (int i = 0; i < s.Length; i++)
                        {
                                if (System.Globalization.CharUnicodeInfo.GetUnicodeCategory(s[i]) != System.Globalization.UnicodeCategory.NonSpacingMark)
                                {
                                        sb.Append(s[i]);
                                }
                        }
                        return sb.ToString();
                }

                private static string GetConvertedChar(char c)
                {
                        switch(c)
                        {
                                        case 'a': return "1";
                                        case 'j': return "1";
                                        case 's': return "1";
                                        case 'b': return "2";
                                        case 'k': return "2";
                                        case 't': return "2";
                                        case 'c': return "3";
                                        case 'l': return "3";
                                        case 'u': return "3";
                                        case 'd': return "4";
                                        case 'm': return "4";
                                        case 'v': return "4";
                                        case 'e': return "5";
                                        case 'ö': return "5";
                                        case 'n': return "5";
                                        case 'w': return "5";
                                        case 'f': return "6";
                                        case 'o': return "6";
                                        case 'x': return "6";
                                        case 'g': return "7";
                                        case 'p': return "7";
                                        case 'y': return "7";
                                        case 'h': return "8";
                                        case 'q': return "8";
                                        case 'z': return "8";
                                        case 'i': return "9";
                                        case 'ü': return "9";
                                        case 'r': return "9";
                                        default: return string.Empty;
                        }
                }
                public static int ConvertStr(string str)
                {
                        StringBuilder bu = new StringBuilder(str.Length);
                        foreach (char c in str) bu.Append(GetConvertedChar(c));
                        int result;
                        return int.TryParse(bu.ToString(), out result) ? result : 0;
                }

                void TextBox1TextChanged(object sender, EventArgs e)
                {
                        string tx;
                        if(textBox1.Text != "ü" && textBox1.Text != "ö") tx = ConvertStr(RemoveDiacritics(textBox1.Text).ToLower()).ToString();
                        else tx = ConvertStr(textBox1.Text.ToLower()).ToString();
                        int soucet = 0;
                        soucet = ConvertStr(tx) + soucet;;
                        label1.Text = tx
                        if(textBox1.Text == "")
                        {
                                label1.Text = txt1;
                        }
                }
        }
}
 
Nahoru Odpovědět
2.10.2016 22:13
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 22:32

V tom případě nevím jestli jsem to pochopil správně:

//int celkem = 0;
void TextBox1TextChanged(object sender, EventArgs e)
{
    if (textBox1.Text == "") label1.Text = txt1;
    else
    {
        int val;
        if (textBox1.Text != "ü" && textBox1.Text != "ö") val = ConvertStr(RemoveDiacritics(textBox1.Text).ToLower());
        else val = ConvertStr(textBox1.Text.ToLower());
        //celkem += val;
        label1.Text = val.ToString();
        //label2.Text = celkem.ToString();
    }
}

verzi s celkovým součtem jsem zakomentoval //

 
Nahoru Odpovědět
2.10.2016 22:32
Avatar
HONZ4
Člen
Avatar
HONZ4:2.10.2016 22:38

textBox1.Text != "ü"

tato část mi napovídá, že znaky do editu zadáváš maximálně po jednom. Pokud je to tak, tak by se to mohlo celé udělat jinak.

 
Nahoru Odpovědět
2.10.2016 22:38
Avatar
Frestyle
Člen
Avatar
Frestyle:2.10.2016 22:50

Do inputu vypisuji slovo a to převádím na čísla. Ty čísla potom chci přičíst aby mi vyšel součet. To co jsem narovinu okopíroval mi vypisuje pokud se přičítá po 1 (1,2,3,4). Myslel jsem si, že to bude lehčí a budu to mít za den napsaný. V PHP by jsem to měl za pár minut :-(

 
Nahoru Odpovědět
2.10.2016 22:50
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 23:15

takto nějak:

static int GetConvertedCharValue(char c)
{
    switch (c)
    {
        case 'a': return 1;
        case 'j': return 1;
        case 's': return 1;
        case 'b': return 2;
        case 'k': return 2;
        case 't': return 2;
        case 'c': return 3;
        case 'l': return 3;
        case 'u': return 3;
        case 'd': return 4;
        case 'm': return 4;
        case 'v': return 4;
        case 'e': return 5;
        case 'ö': return 5;
        case 'n': return 5;
        case 'w': return 5;
        case 'f': return 6;
        case 'o': return 6;
        case 'x': return 6;
        case 'g': return 7;
        case 'p': return 7;
        case 'y': return 7;
        case 'h': return 8;
        case 'q': return 8;
        case 'z': return 8;
        case 'i': return 9;
        case 'ü': return 9;
        case 'r': return 9;
        default: return 0;
    }
}

public static string ConvertStr(string str, out int hodnota)
{
    int i, val = 0;
    StringBuilder bu = new StringBuilder(str.Length * 2);
    foreach (char c in str)
    {
        i = GetConvertedCharValue(c);
        val += i;
        bu.Append(i.ToString());
        bu.Append(',');
    }
    hodnota = val;
    return bu.ToString();
}

void TextBox1TextChanged(object sender, EventArgs e)
{
    if (textBox1.Text == "") label1.Text = txt1;
    else
    {
        int soucet;
        if (textBox1.Text != "ü" && textBox1.Text != "ö") Text = ConvertStr(RemoveDiacritics(textBox1.Text).ToLower(), out soucet);
        else Text = ConvertStr(textBox1.Text.ToLower(), out soucet);
        label1.Text = soucet.ToString();
    }
}

pokud jsem to zase nepochopil tak zkos uvést konkrétní příklady zadání a výsledek toho co se má vypočítat a zobrazit

 
Nahoru Odpovědět
2.10.2016 23:15
Avatar
Odpovídá na Frestyle
Marian Benčat:2.10.2016 23:19

A presne takto vznikaji velmi povrchni nazory na PHP a na konkurenci.. V PHP by si neudelal hlavne ani konzolovou aplikaci, která je event based.., natož desktopovou. Ten kod co potrebujes udělat jsi schopný i v .NET udělat na pár řádek pomocí Dictionary a primitivniho eventu, To ale neznamená, že to tak bude správné...

Doporučili ti tady například něco, čemu se říká StringBuilder, což je na první pohled "zbytečných" X řádek navíc.. Ale má to svůj důvod.. String je immutable, jako ve velkém počtu jazyků a tak se při každé změně vytváří nová instance, alokuje se paměť a ta se pak někdy musí i uvolnit..

Navíc pokud ten string bude opravdu dlouhý (>84kb), tak se s tou pamětí zachází jinak, protože jde do jiného místa.. Z toho důvodu existuje něco jako stringbuilder...

PHP má téměř vše "superefektivně" uložené vnitřně jako dictionary.. Protože v php No one gives a fuck, že to mohlo jet 100ms, když 5 vteřin je přeci "v pohodě".

Já tě jen prosím ať se vyvaruješ podobných názorů :-)

Zkus sepsat celé zadání čeho se snažíš docílit a společně ti poradíme jak to udělat. Případně hoď klině někam zdrojáky a někdo ti to tam dopíše (třeba já).

Nahoru Odpovědět
2.10.2016 23:19
Totalitní admini..
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:2.10.2016 23:24

pokud nestojíš o výpis toho formátovaného textu ale pouze o součet, tak se to dá zjednodušit:

....
                case 'z': return 8;
                case 'i': return 9;
                case 'ü': return 9;
                case 'r': return 9;
                default: return 0;
            }
        }

        public static int ConvertStr(string str)
        {
            int hodnota = 0;
            foreach (char c in str) hodnota += GetConvertedCharValue(c);
            return hodnota;
        }

        void TextBox1TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text == "") label1.Text = txt1;
            else
            {
                if (textBox1.Text != "ü" && textBox1.Text != "ö") label1.Text = ConvertStr(RemoveDiacritics(textBox1.Text).ToLower()).ToString();
                else label1.Text = ConvertStr(textBox1.Text.ToLower()).ToString();
            }
        }
Editováno 2.10.2016 23:25
 
Nahoru Odpovědět
2.10.2016 23:24
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 0:07

Děkuji všem moc mi to pomohlo při vývoji a něco nového jsem se přiučil

 
Nahoru Odpovědět
3.10.2016 0:07
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 20:57

Chci se jen zeptat ještě na rozložení celého čísla. Třeba je součet 25, tak jak můžu rozdělit ještě tyhle dvouciferná čísla na jednociferná aby jsem je mohl případně sečíst? Omlouvám se, že se vracím k tomuto vláknu, ale myslím si, že to sem ještě patří. Děkuji

 
Nahoru Odpovědět
3.10.2016 20:57
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:3.10.2016 21:33

Takže pokud chceš mít z čísla 25 číslo 7, tak třeba takto:

static int Sum(int val)
        {
            string str = val.ToString();
            int result = 0;
            foreach(char c in str)
            {
                result += (c - '0');
            }
            return result;
        }
Editováno 3.10.2016 21:34
 
Nahoru Odpovědět
3.10.2016 21:33
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 21:39

Mi to vypisuje: Typ int nelze implicitně převést na typ string. (CS0029)

 
Nahoru Odpovědět
3.10.2016 21:39
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:3.10.2016 21:40

.ToString()

 
Nahoru Odpovědět
3.10.2016 21:40
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 21:43

jj, funguje to správně a jen se chci zeptat na poslední věc. Pokud je součet třeba 10, tak jak z toho udělat jen jedničku? Můžu to dělat pomocí podmínky, ale chci se zeptat zda to nejde přímo v té funkci. Omlouvám se, ale zajímá mě to

 
Nahoru Odpovědět
3.10.2016 21:43
Avatar
HONZ4
Člen
Avatar
HONZ4:3.10.2016 21:46

však ta funkce z 10ti přece udělá jedničku..

 
Nahoru Odpovědět
3.10.2016 21:46
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 21:47

to ano, ale když je třeba 28, tak mi to vypíše 10. Myslím to tak, že by nevypsal 10,ale 1

 
Nahoru Odpovědět
3.10.2016 21:47
Avatar
HONZ4
Člen
Avatar
HONZ4:3.10.2016 21:53

můžeš to přece zavolat 2x:

int total = Sum(199914);
if (total > 9) total = Sum(total);
Label1.Text = total.ToString();
Editováno 3.10.2016 21:55
 
Nahoru Odpovědět
3.10.2016 21:53
Avatar
Frestyle
Člen
Avatar
Frestyle:3.10.2016 21:56

To je pravda. Děkuju a přeji příjemný večer

 
Nahoru Odpovědět
3.10.2016 21:56
Avatar
HONZ4
Člen
Avatar
Odpovídá na Frestyle
HONZ4:3.10.2016 22:00

ještě se to dá dát přímo do té metody:

static int Sum(int val)
{
    string str = val.ToString();
    int result = 0;
    foreach(char c in str)
    {
        result += c - '0';
    }
    return result<10 ? result : Sum(result);
}
 
Nahoru Odpovědět
3.10.2016 22:00
Avatar
Frestyle
Člen
Avatar
Frestyle:4.10.2016 15:40

Už je mi to trapný, ale mám ohledně těhle věcí poslední dotaz a to: Jak si vytáhnout jen první písmeno. Například napíšu bumerang a jak vytáhnu jen b? Vím, že jsem už otravný a určitě už dostanu adresu do patřičných míst, ale zajímá mě to.

 
Nahoru Odpovědět
4.10.2016 15:40
Avatar
Odpovídá na Frestyle
Neaktivní uživatel:4.10.2016 15:43

Co třeba si pročíst místní tutoriály? Jak chceš programovat bez základních znalostí?

string txt = "bumerang";
//se stringem se pracuje jako s polem
char pismenoB = txt[0];
Nahoru Odpovědět
4.10.2016 15:43
Neaktivní uživatelský účet
Avatar
Frestyle
Člen
Avatar
Frestyle:4.10.2016 16:05

Ještě jednou děkuji. Obdobně jsem to psal, ale vyhazovalo mi to chybu.

 
Nahoru Odpovědět
4.10.2016 16:05
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 44 zpráv z 44.