none
Dúvida sobre como achar a maior diferença dos elementos de um determinado vetor RRS feed

  • Pergunta

  • Boa noite galera da MSDN, tudo bem?

    Estou começando a apreender programação, e em um exercício estou com uma dúvida.

    Acho que o algorítimo está correto, porém ao tentar fazer a parte do cálculo da maior diferença entre os elementos de um determinado vetor, dá erro ao tentar efetuar esta ação.

    Alguém pode me ajudar a solucionar o problema.

    Segue abaixo o código:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    /*
    2) Faça um programa para calcular a maior diferença entre dois elementos consecutivos de um vetor A, com N elementos. 
       O tamanho do vetor e seus elementos deverá ser lido via teclado.
    */
    
    namespace Carlos_Vetor_02
    {
        class Carlos_Revisao_Vetor_02
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Informe o tamanho do seu vetor: ");
                int tl = int.Parse(Console.ReadLine()); //Definindo a quantidade de elementos do vetor.
                int[] v = new int[tl];
                int diferenca = 0;
    
                Console.WriteLine("Informe os valores para o vetor de tamanho " + tl);//Coletando os valores do vetor
                for (int i = 0; i < tl; i++)
                {
                    v[i] = int.Parse(Console.ReadLine());
    
                    //Testar se o número é positivo.
                    if (v[i] < 0)
                    {
                        Console.WriteLine("Numero negativo. Favor informar somente número positivo! Digite o número:");
                        i--;
                    }
    
                }
    
    
    
    //========================Esta é a dúvida, aonde inserir esta parte que calcula a maior diferenca??? ==================
                for (int i = 0; i < tl; i++)
                {
                    //Calculando a maior diferença entre os elementos do vetor.
                    if (v[i] < v[i + 1]) //Verifica qual vetor é maior, pra fazer a diferença do maior pro menor
                    {
                        if (v[i + 1] - v[i] > diferenca)
                        { diferenca = v[i + 1] - v[i];
                        } 
                    }
    
                        if ((v[i] - v[i - 1]) > diferenca)
                        { diferenca = v[i] - v[i + 1];
                          break;
                        } 
                }
    
    //======================================================================================================================
    
                Console.WriteLine("\nImprimindo os valores final do vetor:");
                for (int i = 0; i < tl; i++)
                {
                    Console.Write("[" + v[i] + "]  ");
                }
    
                Console.WriteLine("\n\nA maior diferenca entre os elementos do vetor é: " + diferenca);
    
                Console.WriteLine("\n\n... FIM DO PROGRAMA!!! ...\n\n");
                Console.ReadKey();
            }
        }
    }
    
                                    


    terça-feira, 9 de agosto de 2016 02:44

Respostas

  • Bom dia solrachc_BR,

    Obrigado por sua participação no Fórum MSDN.

    Para encontrar a diferença entre o maior e menor item do vetor, você pode criar duas variáveis, uma para armazenar o maior valor do vetor e outra para armazenar o menor valor. Inicie essas variáveis com o valor da primeira posição do vetor, que até o momento é o menor e o maior. Depois percorra o vetor testando se os próximos valores são menores or maiores que os da primeira posição, se maior, armazene na variável para o maior valor, se menor, na variável para o menor valor. Por último é só apresentar o maior menos o menor para ver a diferença.

    Abaixo, segue um exemplo:

    static void Main(string[] args)
            {
                int[] myArray;
                int arraySize;
                int largestValue;
                int smallestValue;
                int difference;
                int check = 0;
    
                Console.WriteLine("Qual o tamanho do vetor? \n");
                arraySize = int.Parse(Console.ReadLine());
                myArray = new int[arraySize];
    
                for (int i = 0; i < arraySize; i++)
                {
                    Console.WriteLine("\nDigite os numeros do vetor: ");
                    check = int.Parse(Console.ReadLine());
                    if (check >= 0)
                    {
                        myArray[i] = check;
                    }
                    else if (check < 0)
                    {
                        Console.WriteLine("Somente positivos");
                        i--;
                    }
    
                }
    
    
                largestValue = smallestValue = myArray[0];
    
                for (int i = 0; i < myArray.Length; i++)
                {
    
                    if (largestValue < myArray[i])
                    {
                        largestValue = myArray[i];
                    }
                    if (smallestValue > myArray[i])
                    {
                        smallestValue = myArray[i];
                    }
                }
    
                difference = largestValue - smallestValue;
                Console.WriteLine("\n" + difference);
            }
    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 9 de agosto de 2016 13:40
    Moderador