none
ordem decrescente usando a estrutura for RRS feed

  • Pergunta

  • eae galera blz,

    Eu tenho 2 texts, o usuario vai digitar um valor me uma e outro na outra, por exemplo 5 na primeira e 1 na segunda, se ele marcar a opção "decrescente" ele deve exibir em 2 list diferentes(uma par e outra impar) os números entre 1 e 5, o crescente eu consegui fazer usando o for, mais o decrescente eu não estou conseguindo, alguem poderia me ajudar?

    eu fiz isso:a parte do crescente está funcionando só falta decrescente, oque está errado?obrigado pela atenção e aguardo resposta!

        int i = Convert.ToInt32(txtN1.Text);
                int j = Convert.ToInt32(txtN2.Text);
                Int32 A = 0;

                if (i > j)
                {
                    A = i;
                }
                else
                {
                    A = j;
                }

                if (rbtCrescente.Checked == true)
                {
                    for (i = 0; i <= A; i++)
                    {
                        if (i % 2 == 0)
                        {
                            lstPar.Items.Add(i);
                        }
                        else
                        {
                            lstImpar.Items.Add(i);
                            
                            }
                        }

                        {
                            

                             if (rbtDecres.Checked == true)
                                {
                                    for (i = 0; i <= A; i++)
                                    {
                                        if (i % 2 == 0)
                                        {
                                            lstPar.Items.Add(i);

                                        }
                                        else
                                        {
                                            lstImpar.Items.Add(i);
                                        }
                                    }

                                }

    quarta-feira, 25 de fevereiro de 2015 22:03

Respostas

  • Cara o decrescente não está dando certo, poderia fazer só o decrescente novamente?sem o crescente,vlws

    Aqui está funcionando perfeitamente, veja:

    Definindo o parâmetro ascendente para false a ordem será decrescente...


    Herbert Lausmann

    quinta-feira, 26 de fevereiro de 2015 10:51
  • Olá,

    Criei um código para fazer o que você precisa:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
            public IEnumerable<int> Par(int min, int max, bool ascendente)
            {
                if (ascendente)
                {
                    for (int i = min; i <= max; i++)
                    {
                        if (i % 2 == 0)
                            yield return i;
                    }
                }
                else
                {
                    for (int i = max; i >= min; i--)
                    {
                        if (i % 2 == 0)
                            yield return i;
                    }
                }
            }
            public IEnumerable<int> Impar(int min, int max, bool ascendente)
            {
                if (ascendente)
                {
                    for (int i = min; i <= max; i++)
                    {
                        if (i % 2 != 0)
                            yield return i;
                    }
                }
                else
                {
                    for (int i = max; i >= min; i--)
                    {
                        if (i % 2 != 0)
                            yield return i;
                    }
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
                listBox2.Items.Clear();
                foreach(int item in Par((int)numericUpDown1.Value, (int)numericUpDown2.Value, checkBox1.Checked))
                {
                    listBox1.Items.Add(item);
                }
                foreach (int item in Impar((int)numericUpDown1.Value, (int)numericUpDown2.Value, checkBox1.Checked))
                {
                    listBox2.Items.Add(item);
                }
            }
        }
    
    }
    

    Espero ter ajudado.


    Herbert Lausmann

    quinta-feira, 26 de fevereiro de 2015 09:43

Todas as Respostas

  • Olá,

    Criei um código para fazer o que você precisa:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
            public IEnumerable<int> Par(int min, int max, bool ascendente)
            {
                if (ascendente)
                {
                    for (int i = min; i <= max; i++)
                    {
                        if (i % 2 == 0)
                            yield return i;
                    }
                }
                else
                {
                    for (int i = max; i >= min; i--)
                    {
                        if (i % 2 == 0)
                            yield return i;
                    }
                }
            }
            public IEnumerable<int> Impar(int min, int max, bool ascendente)
            {
                if (ascendente)
                {
                    for (int i = min; i <= max; i++)
                    {
                        if (i % 2 != 0)
                            yield return i;
                    }
                }
                else
                {
                    for (int i = max; i >= min; i--)
                    {
                        if (i % 2 != 0)
                            yield return i;
                    }
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
                listBox2.Items.Clear();
                foreach(int item in Par((int)numericUpDown1.Value, (int)numericUpDown2.Value, checkBox1.Checked))
                {
                    listBox1.Items.Add(item);
                }
                foreach (int item in Impar((int)numericUpDown1.Value, (int)numericUpDown2.Value, checkBox1.Checked))
                {
                    listBox2.Items.Add(item);
                }
            }
        }
    
    }
    

    Espero ter ajudado.


    Herbert Lausmann

    quinta-feira, 26 de fevereiro de 2015 09:43
  • Cara o decrescente não está dando certo, poderia fazer só o decrescente novamente?sem o crescente,vlws
    quinta-feira, 26 de fevereiro de 2015 09:56
  • Cara o decrescente não está dando certo, poderia fazer só o decrescente novamente?sem o crescente,vlws

    Aqui está funcionando perfeitamente, veja:

    Definindo o parâmetro ascendente para false a ordem será decrescente...


    Herbert Lausmann

    quinta-feira, 26 de fevereiro de 2015 10:51