ERRO: Referência de objeto não definida para uma instância de um objeto.

Bom dia a todos,

 Estou escrevendo um código para a faculdade em C#, pouco conheço a linguagem.

 Tenho que usar POO para calcular a série de Fibonacci até o 60º termo.

 Na linha em negrito que aparece o erro, já tentei de tudo, mas não consigo resolver.

 

Escrevi o seguinte código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Fibonacci2
{
class Fibonacci //Classe Fibonacci
{
private int x; //Posição do termo na série de Fibonacci
private UInt64 res; //Valor do termo

public Fibonacci() { } //Construtor
public void setFibonacci(int n) //Método para receber a posição do termo e calcular a série
{
x = 3;
if (x == 1 || x == 0)
res = 1;
else if (x < 0)
res = 0; //Verifica se a o número lido é um intero positivo, 0 não pertence a série de Fiboinacci
{ //Declaração de variáveis de 64bits auxiliares
UInt64 aux1 = 0;
UInt64 aux2 = 1;

for (int i = 0; i < x - 1; i++) //Série de Fibonacci
{
res = aux1 + aux2;
aux1 = aux2;
aux2 = res;
}
}
}
public void PrintFibonacci()
{
Console.WriteLine("Fib({0}) = {1}", x, res);
}

}

class program
{
static void Main(string[] args)
{

int n, m;
Fibonacci[] clFib;

Console.WriteLine("Entrada:");
n = int.Parse(Console.ReadLine()); //Leitura da Quantidade de linhas
clFib = new Fibonacci[n]; //Criação dos objetos

for (int i = 0; i < n; i++) //Leitura das Linhas
{
m = int.Parse(Console.ReadLine());
clFib[i].setFibonacci(m);
}
Console.WriteLine("\nSaída:");
for (int i = 0; i < n; i++) //Impressão
{
clFib[i].PrintFibonacci();
}
}

}
}

Exibições: 44

Anexos

Respostas a este tópico

Boaaaas... Eu faria isso com um List<T> ao invés de array. Assim:

clFib = new Fibonacci[n];

Com esse comando vc cria um array de Fibonacci, mas são todos nulls

você precisa criar eles:

clFib[i] = new Finbonacci();

RSS

© 2019   Criado por Ramon Durães.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço