IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Ondrej Zadrapa:22.4.2020 14:57

Vezmete program na vypis násobilky a upravte jej tak, aby umoznil procviceni nasobeni. Namisto prostého vypisu násobilky se vždy uzivatele zepta, kolik je prislusny násobek, například vypise 1 * 5 = ? a uživatel napise odpověď. Pokud je odpověď spravna, program vypise další priklad a takto to pokracuje přes celou malou násobilku. Pokud uživatel zada spatnou odpověď, ukoncete pomoci prikazu break jak vnoreny, tak vnejsi cyklus. Na zaver program vypise, kolik prikladu uživatel vypocital spravne, nez se dopustil chyby.

Zkusil jsem:

for (int x = 1; x <= 10; x++)
           {

             for (int y = 1; y <= 10; y++)
             {


             }
             Console.WriteLine();

           }

Chci docílit: Nemam se od ceho odpíchnout, v knizce je akorát ukazany tenhle program + je k nemu akorát pripsana varianta, jak zrusit vnejsi a vnitrni cyklus, tot vse. Chci nekoho poprosit, aby mi vysvetlil, jak z programu na vypis násobilky udelam regulerni program na procviceni násobilky.

 
Odpovědět
22.4.2020 14:57
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Ondrej Zadrapa
Tadeáš Burda :22.4.2020 15:24

Po prvé: Nadpis komentáru bych volil iný, pretože takto sa ti nato každý vyprdne a ani to nerozklikne :-`
Podruhe: Cemu nechápes? Ty dva cykly budú počítať tu násobilku a výsledok si niekam uložíš. Iniciačne premenne tých cyklu použiješ abys do konzole vypisoval zadaní pro užívateľa. No a niekde budeš mnet premennú ktorá sa bude násobiť +1 vždy keď vstup od užívateľa je rovný násobku x*y z for cyklu. Ak mu to nevide použijes break abys ukončil for cykly, vypíšeš čo máš a koniec. Mam ti to zas napísať? Takto to sa to nenaučíš a očividne sas nad tým moc nezamýšľal.

 
Nahoru Odpovědět
22.4.2020 15:24
Avatar
Odpovídá na Tadeáš Burda
Ondrej Zadrapa:22.4.2020 16:29

Abych byl uprimny, sedim nad tim od jedenacti a neudelal jsem ani krok, listuju k knize jak idiot a jedine co vim, jedine co z te knizky vim, je to, co jsi tu napsal, ze temi cykly si to vynasobim a když se spletu, pripisu bool, pod to dam prikaz break + nejakou vetu, bohužel tim si moc nepomuzu. Ja nevim, do kterého z tech bloku mam co napsat, s vsemi ukoly jsem se dokazal jakz takz poprat + ten, co jsi mi pomohl dokoncit, ale tady ja se nemam od ceho odpíchnout, ale vůbec.

int soucin = 0;
            for (int x = 1; x <= 10; x++)
            {

                for (int y = 1; y <= 10; y++)
                {
                    x *= 1;
                    soucin = x * y;

                }
                Console.WriteLine();

            }


To je tak jedine, co me napadlo, ze by tam mohlo patrit, ale Tobe se to mozna zda prilis snadne, ale ja si vůbec nevim rady, ale vůbec.
 
Nahoru Odpovědět
22.4.2020 16:29
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Ondrej Zadrapa
Tadeáš Burda :22.4.2020 17:24
int pocetSpravnychOdpovedi = 0; // Tu si ukladas ked user spravne odpovie

/* Teraz musis prejst celu nasobylku, takze kazde cislo od 1-10 vynasobit 1-10
 * Pouzivaj racej a, b vysledek c. Jednoduchsi ti to dopne lebo to mas v matike */
bool ukonciProgram = false;
for(int a = 1; a <= 10; a++)
{
    for(int b = 1; b <= 10; b++)
    {
        int c = a * b; // c je visledek pre nasobeni

        // vstup od uzivatela
        Console.Write($"{a} * {b} = ");
        int uzivatelZadal = int.Parse(Console.ReadLine());

        // Porovnani visledku
        if (c == uzivatelZadal) // sa zhoduje
            pocetSpravnychOdpovedi++; // pripocitas bod
        else // sa nezhoduju
        {
            ukonciProgram = true; // true aby ukoncil cyklus do ktoreho si vnoreny
            break; // ukonci tento cyklus
        }
    }

    if (ukonciProgram) // ak sa ma ukoncit tento cyklus
        break;
}

// Vypis kolko krat sa trefil
Console.WriteLine("------------------");
Console.WriteLine("Spravne si trafil - " + pocetSpravnychOdpovedi);

Console.ReadKey(); // Aby ti to hned nezavrelo cmd
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
22.4.2020 17:24
Avatar
Tadeáš Burda
Brigádník
Avatar
Odpovídá na Ondrej Zadrapa
Tadeáš Burda :22.4.2020 17:29

Mnelo by to asi fungovat, ked tak napis. No a ktemu ostatnemu, ocividne ti chyba to "programatorske myslenie". Bud vtej knihe je to naprd, alebo ty to steho proste nechapes. Takze...este raz ti odporucam spravit si tady tutoriale, vsetko tu je(ja sam zacinal tady :-) ). Kazdopadne na konci kazdej kapitoli su 3 ulohy na cvicenie a musis odovzdat kod. To ta nuti natem makat jak mas + ked nevis kde je chyba tak vzdy to bude v tej kapitole lebo inak by si nepostupil. Ak sa chces stale ucit s tej knihy tak budis, tvoja volba, ale ocividne ti to fakt nejde.

 
Nahoru Odpovědět
22.4.2020 17:29
Avatar
Bugmaster
Člen
Avatar
Odpovídá na Ondrej Zadrapa
Bugmaster:22.4.2020 20:57

Můj skromný názor:

Nesnaž se hledat v knize odpověď, jak to vyřešit.

Rozděl si problém na dvě části:

  1. Představ si, co je třeba udělat. Nejdřív dej dohromady posloupnost kroků, jak postupovat (v hlavě nebo třeba na papíře). Nepřemýšlej nad tím, jak to zapsat v programovacím jazyce.
  2. Jak se to konkrétně zapisuje zjišťuj až v moměntě, kdy máš představu, jak ro řešit. V knize nebo na internetu hledej konkrétní konstrukce (myslím, třeba, jak se zapisuje for cyklus, pokud to nevíš z hlavy), které potřebuješ, né řešení.

To hlavní je první bod. Druhý bod je jen "implementační detail" :)

 
Nahoru Odpovědět
22.4.2020 20:57
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 6 zpráv z 6.