Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro ao executar o algoritmo

Copiei os mesmos códigos da aula, achando que possivelmente tivesse digitado algo errado, mas segue o mesmo erro. Alguém consegue me dar uma luz? Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

6 respostas

Boa tarde Felipe, tudo bom?

De acordo com sua imagem o problema está no método ExibeLista, não está sendo criada a instâncias de algum objeto, você pode postar o código da sua classe ListaDeContasCorrentes?

No aguardo.

Segue o código professor:

   public class ListaDeContasCorrentes
    {
        private ContaCorrente[] _itens = null;
        private int _proximaPosicao = 0;
        public ListaDeContasCorrentes(int tamanhoInicial = 5)
        {
            _itens = new ContaCorrente[tamanhoInicial];
        }

        public void Adicionar(ContaCorrente item)
        {
            Console.WriteLine($"Adicionando item na posicao {_proximaPosicao}");
            VerificarCapacidade(_proximaPosicao + 1);
            _itens[_proximaPosicao] = item;
            _proximaPosicao++;
        }

        private void VerificarCapacidade(int tamanhoNecessario)
        {
            if (_itens.Length >= tamanhoNecessario)
            {
                return;
            }
            Console.WriteLine("Aumentando a capacidade da lista");
            ContaCorrente[] novoArray = new ContaCorrente[tamanhoNecessario];

            for (int i = 0; i < _itens.Length; i++)
            {
                novoArray[i] = _itens[i];
            }

            _itens = novoArray;
        }

        public void VerificaMaiorSaldo()
        {
            double maiorSaldo = 0.0;
            for (int i = 0; i < _itens.Length; i++)
            {
                if (!(maiorSaldo > _itens[i].Saldo))
                {
                    maiorSaldo = _itens[i].Saldo;
                }
            }

            Console.WriteLine($"O maior saldo entre as contas é de: {maiorSaldo}");
        }

        public void Remover(ContaCorrente conta)
        {
            int indiceItem = -1;
            for (int i = 0; i < _proximaPosicao; i++)
            {
                ContaCorrente contaAtual = _itens[i];
                if (contaAtual == conta)
                {
                    indiceItem = i;
                    break;
                }
            }
            // 0         1       2
            //[conta1][conta2][conta4][conta5][null]
            for (int i = indiceItem; i < _proximaPosicao - 1; i++)
            {
                _itens[i] = _itens[i + 1];
            }
            _proximaPosicao--;
            _itens[_proximaPosicao] = null;
        }
        public void ExibeLista()
        {
            for (int i = 0; i < _itens.Length; i++)
            {
                ContaCorrente conta = _itens[i];
                Console.WriteLine($" Indice[{i}] = Conta:{conta.Conta} - N° da Agência: {conta.Numero_agencia}");
            }
        }

        public ContaCorrente RecuperarContaNoIndice(int indice)
        {
            if (indice < 0 || indice >= _proximaPosicao)
            {
                throw new ArgumentOutOfRangeException(nameof(indice));
            }
            return _itens[indice];
        }

        public int Tamanho
        {
            get
            {
                return _proximaPosicao;
            }
        }

        public ContaCorrente this[int indice]
        {
            get
            {
                RecuperarContaNoIndice(indice);
            }
        }

    }
}

Felipe,

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não consegui simular o erro com o código que vc postou, para mim está tudo Ok. Você tem esse projeto no git? Se sim, posta o link para eu poder baixar aqui.

Att.

Desculpe a demora professor, tive que aprender a usar o git kkkk segue o link: https://github.com/felipekal/alura-csharp-listaDeContasCorrentes

solução!

Bom dia Felipe, tudo bom?

Mestre baixei seu projeto e compilando, acusou que estava faltando um return:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade No program.cs eu comentei e deixei somente o método e a chamada para TestaArrayDeContasCorrents() e rodou belezinha!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado professor !