Anonymní profil Patrik – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Patrik – Programujte.comAnonymní profil Patrik – Programujte.com

 

Příspěvky odeslané z IP adresy 89.177.20.–

Patrik
C / C++ › Generátor příkladů (zjednodu…
6. 6. 2014   #190819

Dobrý den,

vytvořil jsem kód na generování náhodných příkladů s náročností pro druhou třídu, které se zapíší do textového souboru. Řešení se mi zdá zdlouhavé, ale nevím jak bych ho zjednodušil. Příklady jsou jen na +-*/ přičemž násobilka je jen malá.

Zde přikládám zdrojový kód

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;

namespace SeznamPrikladu
{
    class Program
    {
        static void Main(string[] args)
        {
            int v=0;
            int pocet = 0;
            int max = 0;
            string priklady = "";

            try
            {
                Console.Write("Počet příkladů: ");
                pocet = int.Parse(Console.ReadLine());
                Console.Write("Do kolika se dítě učí­: ");
                max = int.Parse(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("Nevyplněná hodnota...");

            }

            Random random = new Random();
            using (StreamWriter sw = new StreamWriter(@"soubor.txt"))
            {
                
            }

            
            using (StreamWriter sw = new StreamWriter(@"soubor.txt", true))
            {
                
                for(int iterator=0;pocet >= iterator;iterator++)
                {
                    int randomNumberA = random.Next(0, max);
                    int randomNumberB = random.Next(0, max);

                    if (priklady != "")
                    {
                        sw.WriteLine(priklady);
                        priklady = "";
                        sw.WriteLine(priklady);
                        sw.Flush();
                    }


                    if (randomNumberA < randomNumberB && randomNumberA+randomNumberB<= max)
                    {
                        priklady =  randomNumberA + "+" + randomNumberB + "= ";
                    }

                    if (randomNumberA > randomNumberB)
                    {
                        priklady =  randomNumberA + "-" + randomNumberB + "= ";
                    }

                    for (int i = 0; i < 20; i++)
                    {
                        if (randomNumberA <= 10 && randomNumberB <= 10 )
                        {
                            priklady = randomNumberA + "·" + randomNumberB + "= ";
                            break;
                        }
                        randomNumberA = random.Next(0, max);
                        randomNumberB = random.Next(0, max);
                    }

                    

                    for (int i = 0; i < 20; i++)
                    {
                        if (randomNumberA <= 10 && randomNumberB <= 10 && randomNumberA<randomNumberB && randomNumberB>0)
                        {
                            v = randomNumberA * randomNumberB;
                            
                            priklady = v + ":" + randomNumberB + "= ";
                            break;
                            
                        }
                        randomNumberA = random.Next(0, max);
                        randomNumberB = random.Next(0, max);
                    }
                }
                sw.Close();
            }
            Console.WriteLine("Zapsáno do souboru");
            Console.ReadLine();
        }
    }
}

Byl bych rád za každé zjednodušení kódu, případně o odkaz na nějaký článek s popisem jak text zapsat do Wordu (3 sloupce).

Předem děkuji.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý