Ir ao conteúdo
  • Cadastre-se

C# Aplicação para realizar Cálculo de polinômios


david nilo

Posts recomendados

Olá, boa noite a todos amigos do Clube do Hardware, galera preciso de uma grande ajuda, estou desenvolvendo uma aplicação em c# que resolva polinômios. Ex: 2x+3xy^2-x-4xy^2, a forma de resolver esse polinômio, deve se pega os termos iguais, ex 3xy^2-4xy^2=-1xy. Deve se fazer jogo de sinal.

O algoritmo deve separa os termos e unir com a parte literal igual e fazer a adição ou subtração dos mesmo, sei q ficou meio confuso.

Maso algoritmo deve fazer isso: 2x+3xy^2-x-4xy^1

2x-x e 3xy^2-4xy^2

2-1xy

Já tentei separa com método split 

Mas não conseguo junta os termos iguais e fazer o cálculo, desde já agradeço pela ajuda..

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá, boa tarde.

Você terá que pensar de algum jeito para dividir e juntar cada pedaço da expressão.

Ex:

20 horas atrás, david nilo disse:

2x-x e 3xy^2-4xy^2

Dividindo fica:

2x

3xy^2

2

x

4xy^1

Pode armazenar em variáveis para realizar os cálculos.

Qualquer dúvida pode perguntar, o ideal seria se você colocasse também o seu código do quê você já fez.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Em 07/01/2019 às 17:31, david nilo disse:

Vou postar, o que eu fiz..

O maior problema deste código e que quando armazeno ele em um string, ele não realiza os cálculos. Até amanhã posto o que já fiz..

Você precisa fazer um Parser! Não é algo trivial, mas se quer fazer algo robusto, para receber qualquer entrada e processá-la, o Parser será necessário.

Parsing-example.png.d028f924aa2fcf8ab28ca2b4ef8419b1.png

https://pt.wikipedia.org/wiki/Análise_sintática_(computação)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Boa tarde, eu estava tendo fazer desta forma:

string polOrig = "2x+5x";//string original
            int calcPol;
            string[] split = polOrig.Split(new Char[] { 'x', ' ', '.', ':' });// funcao splint p separa caracterer delimitado

            foreach (string novoPol in split) {

                if (novoPol.Trim() != "") {

                    Console.WriteLine(novoPol);// string separada 
                    calcPol = Convert.ToInt32(novoPol);// converte string em int para calcular os valores da string
                    Console.WriteLine(calcPol);//deveria somar os itens da string convertida em int
                    Console.ReadLine();

o porém e que ele retira a parte literal "x", mas deveria soma o resto. esse e o problema ele não soma, você sabe alguma forma de pega o termo 2 e soma com o termo 5 ??

desde já agradeço...

adicionado 1 minuto depois

@Plástico Bolha

boa tarde, irei pesquisar este método, obrigado..

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

package main

import (
	"fmt"
	"strconv"
	"strings"
)

func main() {
	var term string = "2x+5x"
	var expression []string = strings.Split(term, "+")
	var tmpExp int
	var counter int = 0
	var err error
	var idx int = 0
	var _length int = len(expression)
	for idx < _length {
		if strings.Index(expression[idx], "x") != -1 {
			tmpExp, err = strconv.Atoi(strings.Split(expression[idx], "x")[0])
			if err == nil {
				counter += tmpExp
			}
		}
		idx++
	}
	fmt.Println("Soma de", term, ":", counter)
}

Veja que fiz exatamente o que pediu (alguma forma de pega o termo 2 e soma com o termo 5), a soma de 2 + 5 ... Mas esta solução é extremamente frágil . . . Para criar algo robusto, que funcione para qualquer entrada, para qualquer equação, um Parser será necessário, mais está aí a "lógica" (não em C) que faz exatamente o que foi pedido rsrs . . .

https://play.golang.org/p/aHZXd_5zVYT

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!