private List <TProgram> GetPrograms(DataSet ds)
        {
            List <TProgram> list = new List <TProgram>();

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                TProgram tp = new TProgram();
                tp.ID      = Convert.ToInt32(dr[0].ToString());
                tp.Content = dr[1].ToString();
                tp.Answer  = dr[2].ToString();

                list.Add(tp);
            }

            return(list);
        }
        public void Run <TProgram>() where TProgram : ProgramBase, new()
        {
            IProgram problem = new TProgram();

            Solve(problem);
        }