Ir para conteúdo
Fórum Script Brasil
  • 0

Papiros Misteriosos


Guest Computeiro_iniciante

Pergunta

Guest Computeiro_iniciante

Estou aqui neste momento para apenas pedir para que algúem disponível possa me dar uma luz nesse problema o qual tenho quebrado minha cabeça há alguns dias, mas nada saiu... o problema é seguinte:

"Durante escavações no deserto do Saara foram encontrados papiros com símbolos misteriosos provenientes de uma antiga civilização.

Depois de longas investigações, os cientistas descobriram que estes símbolos faziam parte de expressões matemáticas, embora os únicos símbolos encontrados fossem dígitos e sinais de igualdade. Sabe-se, no entanto, que eles só conheciam as operações de adição,multiplicação e subtração, e não usavam precedência de operadores, avaliando as expressões da esquerda para a direita. Assim uma equação como 3 + 3 * 5 seria igual a 30 e não 18. A hipótese colocada pelos cientistas é de que os operadores desapareceram dos papiros ao longo do tempo, deixando apenas os dígitos e o sinal de igualdade. Para testar esta hipótese desenvolva uma aplicação que verifique se uma determinada expressão num papiro é válida ou não, ou seja, se colocando os operadores +, -, * nos espaços entre os operandos o resultado é correto. Por exemplo, se num papiro existisse 18 = 7 5 3 2, poderia corresponder à expressão 18 = 7 + 5 – 3 * 2. No entanto a expressão 5 = 3 3 não

corresponde a nenhuma operação válida. Implemente um programa em C que receba uma expressão como entrada e diga se a expressão é válida ou não. Em caso positivo apresente no mínimo uma expressão válida correspondente."

Qualquer ajuda será aceita... pelo menos uma idéia de como fazer isso...

Agradeço a sua atenção.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

hehe sera q é de verdade essa historia da civilizacao??

zuera, mas é bem foda em... mas a logica no geral nem tanto, o dificil é transforma em codigo

tipo, o modo como eu vi aqui, seria, o seguinte. primero, obviamente, você teria q ler a string e vai ter q separar os numeros e guardar os espacos em brancos pra saber o q por la.

ai tipo, você teria q primero contar qtos numeros tem na expressao e qtos operadores você precisa por, essa seria a parte mais chata. ai depois disso você define os arrays. exemplo, se são quatro numeros, serao 3 operadores. ai você cria um array de 4 posicoes pra guardar os numeros existentes e um de 3 pra guardar os operadores (q ainda não existem mas você vai preenche).

na segunda parte você teria então q testar cada uma das combinacaos possiveis. ai pra isso você faria um for de 1 ao numero de espacos em branco, e pra cada espaco você poe otro for pra ir preenchendo com cada operador possivel. ai você simula a conta e se bater, você retorna a expressao e da um break pra sai do for. se nenhum bater e chega no final e ai você sabe q a expressao é invalida.

mais ou menos isso, mas é bem interessante o exercicio. ve ai se minhas ideia ajudam e se tem dificuldade com o codigo, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...