Respostas no Fórum
-
AutorPosts
-
Nuno SousaParticipante
Boa tarde.
Peço desculpa pelo trabalho de editar os meus posts mas ainda não sabia como fazer a formatação do código como está no Portugol Studio.
Segui todos os conselhos que me deu e funcionou tudo na perfeição, só a passagem da variável “r” para real gerou um problema nos resultados das outras operações mas penso que ficou bem resolvido com a conversão desses valores para real. Deixo aqui o resultado final para o caso de poder ajudar alguém:programa { /*Exercício 26: Super Tabuada V1.0 Autor: Nuno Sousa*/ inclua biblioteca Tipos --> t funcao inicio() { //Declaração de Variáveis caracter op cadeia tipo = "" inteiro n1 = 0, n2 = 0 real r = 0.0 //Entrada de dados escreva("\n=========================") escreva("\n + Adição") escreva("\n - Subtração") escreva("\n * Multiplicação") escreva("\n / Divisão") escreva("\n=========================") escreva("\nDigite uma opção => ") leia(op) //Saída de dados escreva("\nDigite o primeiro número: ") leia(n1) escreva("Digite o segundo número: ") leia(n2) escolha(op){ caso '+': escreva("Você escolheu a operação [+]") r = t.inteiro_para_real(n1 + n2) tipo = "SOMA" pare caso '-': escreva("Você escolheu a operação [-]") r = t.inteiro_para_real(n1 - n2) tipo = "SUBTRAÇÃO" pare caso '*': escreva("Você escolheu a operação [*]") r = t.inteiro_para_real(n1 * n2) tipo = "MULTIPLICAÇÃO" pare caso '/': escreva("Você escolheu a operação [/]") r = t.inteiro_para_real(n1 / n2) tipo = "DIVISÃO" pare caso contrario: escreva("Você digitou uma operação inválida!") pare } escreva("\n...........................") escreva("\nA calcular o valor de " + n1 + op + n2) escreva("\nResultado da " + tipo + " = " + r) escreva("\n\n") } }
Obrigado pela paciência e dedicação.
Nuno SousaParticipanteO módulo 00 não é propriamente para te ensinar já a construir um programa nem para digitar comando, esse módulo é apenas uma introdução ao estudo da programação, a sua história, o propósito da programação e apresentado o programa Portugol Srtudio, só no módulo 01 começa a criação de pequenos comandos e eles vão aumentando a complexidade a cada aula, por isso não desesperes. Vai por mim, não tenhas pressa em aprender, aprende com calma mas bem, acredita que se seguires todos os vídeos de todos os módulos vais conseguir.
Nuno SousaParticipanteBom dia Orlando.
Melhor conselho que acho que posso dar é assistires aos vídeos todos do curso Programação Básica desde o módulo 00 até ao 05, lá aprendes todos os passos para trabalhar com essa ferramenta.Nuno SousaParticipanteBoa tarde!
Obrigado pelos conselhos, percebi melhor a questão das variáveis, também percebi que a repetição do código para digitar o valor era desnecessária e assim diminui bastante o tamanho do código colocando fora do escolha como me tinha dito. Em relação à realização dos cálculos, corrigi isso logo após ter feito o primeiro post, percebi que essa era a melhor opção. Neste momento o código encontra-se assim:programa { /*Exercício 26: Super Tabuada V1.0 Autor: Nuno Sousa*/ inclua biblioteca Tipos --> t funcao inicio() { //Declaração de Variáveis caracter op inteiro n1, n2, r //Entrada de dados escreva("\n===========================") escreva("\n+ Adição") escreva("\n- Subtração") escreva("\n* Multiplicação") escreva("\n/ Divisão") escreva("\n===========================") escreva("\nDigite uma opção => ") leia(op) r = 0 n1 = 0 n2 = 0 //Saída de dados escreva("\nDigite o primeiro número: ") leia(n1) escreva("Digite o segundo número: ") leia(n2) escolha(op){ caso '+': caso '1': escreva("Você escolheu a operação [+]") r = (n1 + n2) pare caso '-': caso '2': escreva("Você escolheu a operação [-]") escreva("\n\nDigite o primeiro número: ") r = (n1 - n2) pare caso '*': caso '4': escreva("Você escolheu a operação [*]") r = (n1 * n2) pare caso '/': caso '5': escreva("Você escolheu a operação [/]") r = t.inteiro_para_real(n1) / n2 pare caso contrario: escreva("Você digitou uma operação inválida!") pare } escreva("\n...........................") escreva("\nA calcular o valor de " + n1 + op + n2) escreva("\nResultado da " + + " = " + r) escreva("\n\n") } }
Agora o meu problema é a conversão de um dos valores na divisão para dar um número real, conforme tenho o código agora dá-me um aviso de que a expressão (r = t.inteiro_para_real(n1) / n2) será truncada. Para finalizar em relação à minha ideia com as varáveis (s = “SOMA”, sub =”SUBTRAÇÃO”
m = “MULTIPLICAÇÃO”, d = “DIVISÃO”) que não estavam a ser utilizadas era com o objetivo de integrar no caso e no final puxar esse nome para ser exibido o nome da operação realizada. Como por exemplo: escreva(“\nResultado da ” + SOMA + ” = ” + r).
Neste momento são os dois únicos problemas que tenho para finalizar o programa.
Obrigado pela ajuda!Nuno SousaParticipanteBoa noite.
Obrigado pela ajuda já está resolvido!
Acho que agora já percebi, quer dizer que sempre que tenha variáveis que vão trabalhar dentro de um qualquer bloco elas têm que inicializadas ao declarar?Nuno SousaParticipanteBoa noite.
A função de arredondamento tem de ser colocada antes do valor que vai ser arredondado, o valor tem de ser colocada entre parênteses seguido de uma vírgula e o número de casas decimais que se pretende. No exemplo de baixo o valor vai ser arredondado para ter apenas 2 casa decimais.
Exemplo:
escreva(“O valor é ” + Metamatica.arredondar(valor, 2)) -
AutorPosts