Home › Fóruns › Programação Básica › questões 6 e 8 do modulo 1 programação
Marcado: EXERCICIOS 007
- Este tópico contém 29 respostas, 14 vozes e foi atualizado pela última vez 1 ano, 7 meses atrás por Tutora Jessica.
-
AutorPosts
-
-
1 de junho de 2021 às 17:46 #68467Jonas MotaParticipante
nas questões 6 e 8 do modulo 1 é pedido para usar a função de arredondamento. Não consegui usar.
ela é colocado na parte em que se escreve:
escreve(” “Matematica.arrendondar(;
ou quando você declara inteiro e real -
1 de junho de 2021 às 21:45 #68478Nuno SousaParticipante
Boa 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)) -
2 de junho de 2021 às 12:28 #68503Jonas MotaParticipante
Deixei como comentario a forma que tentei fazer e não deu certo.
É a ultima linhaprograma { inclua biblioteca Matematica funcao inicio() { real v //real r = Matematica.arredondar(v, 3) escreva("Qual o preço do produto? ") leia(v) escreva("Com 5% de desconto, o produto sai por R$" +(v-(v*5/100))+ " ") //escreva("Com 5% de desconto, o produto sai por R$" +Matematica.arredondar(v,2)(v-(v*5/100))+ " ") } }
- Esta resposta foi modificada 3 anos, 5 meses atrás por IcaroFilho. Razão: formatar indentação
-
2 de junho de 2021 às 18:23 #68531IcaroFilhoModerador
Boa noite.
Atualmente seu código esta dando erro por falta de fechamento “(” na linha 12.
Matematica.arredondar(v,2)
(v-(v*5/100))
-> Falta uma conexão aqui. (seja um operador aritmético ou uma concatenação)Concertando o fechamento dará erro por falta de inicialização da variável v.
Isto porque já esta executando a variavel antes mesmo de declarar seu valor. Para corrigir pode atribuir um valor nulo a ela em sua declaração.
real v = 0.0
Corrigindo essas etapas seu exercicio continuará fora do padrão devido a desorganização. vamos arrumar por etapas.- Declaramos as variaveis que prentede usar. (no caso v e r)
real v, r
- depois fazemos a solicitação do valor ao usuário.
escreva("Qual o preço do produto? ") leia(v)
- Agora que temos o valor de v. podemos calcular o desconto.
r = v - (v *0.05)
(OBS: so simplifiquei a conta, que também pode ser r = v – (v * 5 / 100) ) - agora que temos todos os parâmetros podemos dar a saída:
escreva("Com 5% de desconto, o produto sai por R$ ", Matematica.arredondar(r, 2) )
- Código completo:
programa { inclua biblioteca Matematica funcao inicio() { real v, r escreva("Qual o preço do produto? ") leia(v) r = v - (v *0.05) escreva("Com 5% de desconto, o produto sai por R$ ", Matematica.arredondar(r, 2) ) } }
- Esta resposta foi modificada 3 anos, 5 meses atrás por IcaroFilho.
- Declaramos as variaveis que prentede usar. (no caso v e r)
-
4 de junho de 2021 às 15:25 #68651Jonas MotaParticipante
Beleza, essa questão 8 eu entendi, mas levando o mesmo raciocínio para a questão 6, ficaria assim:
programa
{
inclua biblioteca Matematica
inclua biblioteca Util
funcao inicio()
{
real n, k, h // Faltou fazer o arredondamentoescreva(“Distância em metros: “)
leia(n)
escreva(“\n——— CONVERTENDO ———–\n”)k = (n /1000)
escreva(+Matematica.arredondar(k, 2)+ ” Km \n “)h = n /100
escreva(+Matematica.arredondar(k, 2)+ ” Hm \n”) // hectómetroescreva(+ (n / 10)+ ” Dam \n”) // decametro
escreva(+ (n * 10)+ ” dm \n”) // decimetro
escreva(+ (n * 100)+ ” cm \n”)
escreva(+ (n * 1000)+ ” mm \n”)
}
}-
10 de junho de 2021 às 11:23 #69125Tutora MaylaMestre
Jonas, algumas considerações sobre o seu código:
- `
k = (n /1000)
escreva(+Matematica.arredondar(k, 2)+ ” Km \n “)Não é necessário colocar o <code>+</code> no inicio do <code>escreva</code>, pois por ser o inicio não há necessidade de concatenação. </li> <li>
h = n /100
escreva(+Matematica.arredondar(k, 2)+ ” Hm \n”) // hectómetro
`
Aqui está sendo chamada a variávelk
no lugar da variávelh
. - Para manter o padrão de casas decimais, seria uma boa arredondar também os demais valores. Além da forma como foram feitos os anteriores, há também outra forma de fazer sem a necessidade de criar uma variável para cada:
escreva(Matematica.arredondar((n/10), 2)+ ” Dam \n”)
Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.
- `
-
-
17 de junho de 2021 às 09:18 #69606Jonas MotaParticipante
olá, eu entendi, porém gostaria de verificar se esta tudo certo com o código.
programa
{
inclua biblioteca Matematica
inclua biblioteca Util
funcao inicio()
{
real n, k, hm, dam, dm, cm // Faltou fazer o arredondamentoescreva(“Distância em metros: “)
leia(n)
escreva(“\n——— CONVERTENDO ———–\n”)
Util.aguarde(1200)
k = n/1000
escreva(+Matematica.arredondar(k, 2)+ ” Km \n”)
Util.aguarde(1200)
hm = n/100
escreva(+Matematica.arredondar(hm, 2)+ ” Hm \n”) // hectómetro
Util.aguarde(900)
dam = n/10
escreva(+Matematica.arredondar(dam, 2)+ ” Dam \n”) // decametro
Util.aguarde(1200)
dm = n*10
escreva(+Matematica.arredondar(dm, 1)+ ” dm \n”) // decimetro
Util.aguarde(600)
cm = n*100
escreva(+ (n * 100)+ ” cm \n”)
Util.aguarde(600)
escreva(+ (n * 1000)+ ” mm \n”)}
}-
18 de junho de 2021 às 04:56 #69664Antonio Cesar Ferreira NevesParticipante
Bom dia, Jonas Mota o raciocínio da sua resolução está correto ,porém esse + no início do parenteses
escreva(+Matematica.arredondar(hm,2))
assim como moderador escreveu, não é necessário. ficaria melhor assim: `escreva(Matematica.arredondar(hm,2) + ” Hm\n”) quando utilizamos o simbolo de + para trabalharmos com frases, ele serve para unir duas strings
ao invés de escrevermosescreva(Matematica.arredodar(dam,2)) escreva(" Dam\n") //Utilizamos o + para concatenar (unir) as strings escreva(Matematica.arredondar(dam,2) + " Dam\n") //Outro exemplo cadeia fruta = " Abacate", fruta2 = " Pimenta" escreva(fruta ) escreva(fruta2) escreva(fruta1 + fruta2)
talvez eu te deixe confuso pq não sei explicar direito ,mas no caso a união não seria com a variável dam ,mas com a escrita do que sai dela que é uma frase ou caracter … seria como
// nesse 1° caso não tem a necessidade de concatenar mas pra fins de exemplo escreva("Pedro tirou ") escreva("10") escreva("Pedro tirou " + "10") //2° Caso inteiro numero = 10 escreva("Pedro tirou ") escreva(numero) escreva("Pedro tirou " + numero)
-
18 de junho de 2021 às 13:57 #69697Tutora MaylaMestre
Jonas, o aluno Antonio explicou perfeitamente o que falta de últimos ajustes para o seu código. Fora isso o seu código está muito bom!
-
-
10 de setembro de 2021 às 22:42 #75175Thiago DuarteParticipante
Boa noite tutores e colegas :),
Estou realizando os exercícios 6 e 10,
Fiz relativamente rápido ambos porem fiquei com duvida a respeito da função arredondamento, e gostaria se possível de uma validação, para verificar no que posso estar melhorando. Muito obrigado 😉ex 6 –
programa
{inclua biblioteca Matematica –> mat
funcao inicio()
{
real d, k, h, da, dm, c, m
escreva(“Distância em metros: “)
leia(d)
escreva(“———CONVERTENDO———\n”)
k= d/1000
escreva( mat.arredondar(k,2) + ” Km \n “)
h= d/100
escreva( mat.arredondar(h,2) + ” Hm \n “)
da= d/10
escreva( mat.arredondar(da,2) + ” Dam \n “)
dm= d*10
escreva( mat.arredondar(dm,2) + ” dm \n “)
c= d*100
escreva( mat.arredondar(c,2) + ” cm \n “)
m= d*1000
escreva( mat.arredondar(m,2) + ” mm \n “)}
}ex 10 –
programa
{inclua biblioteca Matematica –> mat
inclua biblioteca Tipos –> tip
funcao inicio()
{
real an, pd, atf, pdv
escreva(“Cada cigarro reduz 10 minutos de vida \n”)
escreva(“————————————- \n”)
escreva(“Há quantos anos você fuma? “)
leia(an)
escreva(“Quantos cigarros você fuma por dia? “)
leia(pd)
escreva(“————————————- \n”)
atf=(pd*365)*an
escreva(“Ao todo, até agora você ja fumou ” + tip.real_para_inteiro(atf))
pdv=(atf*10)/1440
escreva(“\n Estima-se que você já perdeu ” + mat.arredondar(pdv,2) + ” dias”)}
}-
11 de setembro de 2021 às 10:05 #75213IcaroFilhoModerador
Bom dia Thiago.
Os exercícios estão corretos. Podemos só adicionar algumas coisas para ir dando uma polida neles. Entre as dicas estão boas praticas que já é bom ir se habituando.- Para ambos os exercícios.
Tente criar nomes de variáveis mais sugestíveis. Por mais que faça logica pra você, crie o hábito de “codar” para outros programadores lerem. - Ex6
Tendo em vista que o programa apenas irá mostrar os resultados. não precisa criar uma variável para cada item. (pois terá perca de desempenho por uso de memoria em programas maiores)
Pode fazer a operação dentro do próprio arredondar.
Ex.: KM:escreva( mat.arredondar ( (d / 1000) , 2 ) + ” Km \n “)
- Ex10
atf=(pd*365)*an
–> Por se tratar de multiplicação, não é necessário a utilização de parênteses.
- Para ambos os exercícios.
-
11 de setembro de 2021 às 10:20 #75218Thiago DuarteParticipante
Bom dia Icaro,
Obrigado pelo feedback.
Era essa linha que você enviou a respeito do arredondamento que eu estava procurando, muito obrigado.
Os nomes das variáveis ficaram meio que rushado devido ao tempo que tenho rsrsrsrs, mas irei corrigir e ficar mais atento sobre.
Agradeço pela resposta 🙂
-
-
22 de setembro de 2021 às 14:04 #75970Luiz Samuel Santos SilvaMembro
OI! Estou com uma dúvida aqui. Eu fiz um cálculo que é este: 50*365*8*1/1440 e o valor é este: 101,3888888888889 … no entanto o meu programa insiste em dizer que a resposta é 101,0!!!! Porque ele não está me dando 3 casas depois da vírgula como eu pedi? Aqui em baixo está meu código:
programa { inclua biblioteca Matematica --> mat funcao inicio() { real cigarro_por_dia real anos_fumando real cigarros real dias_perdidos_pelo_cigarro real dppc_arredondado escreva("----------------Não fume----------------") escreva("\n Cada cigarro reduz 10 minutos de vida") escreva("\n Quantos cigarros você fuma por dia?" ) leia(cigarro_por_dia) escreva("\n Há quantos anos você fuma? ") leia(anos_fumando) cigarros = 5*365*8 dias_perdidos_pelo_cigarro = 50*365*8*1/1440 dppc_arredondado = mat.arredondar(dias_perdidos_pelo_cigarro, 3) escreva("Ao todo, até agora você já fumou ", cigarros," cigarros no total!\n") escreva("Estima-se que foram perdidos ", dppc_arredondado, " dias de vida") } }
Desde já agradeço!
-
22 de setembro de 2021 às 18:28 #75991Luiz Samuel Santos SilvaMembro
OI! Meu amigo disse que o problema pode ser de Type Casting que é basicamente quando o programa não te obedece. Eu em nenhum momento usei o valor das variáveis como sendo inteiro, mas pelo problema de Type Casting ele (sabe-se lá porquê?!) simplesmente considera os números (qual deles?) como sendo inteiro. Assim talvez isso explique a minha situação. No entanto eu tentei resolver este problema importando da biblioteca tipos a expressão inteiro_para_real. Mas mesmo assim ele continua dando a resposta de tempo de vida para 101.0 dias!!!!!!!
Aqui está meu código atual:
programa { inclua biblioteca Matematica --> mat inclua biblioteca Tipos --> t funcao inicio() { real cigarro_por_dia real anos_fumando real cigarros real dias_perdidos_pelo_cigarro real dppc_arredondado escreva("----------------Não fume----------------") escreva("\n Cada cigarro reduz 10 minutos de vida") escreva("\n Quantos cigarros você fuma por dia?" ) leia(cigarro_por_dia) escreva("\n Há quantos anos você fuma? ") leia(anos_fumando) cigarros = t.inteiro_para_real(5*365*8) dias_perdidos_pelo_cigarro = t.inteiro_para_real(50*365*8*1/1440) dppc_arredondado = mat.arredondar(dias_perdidos_pelo_cigarro, 3) escreva("Ao todo, até agora você já fumou ", cigarros," cigarros no total!\n") escreva("Estima-se que foram perdidos ", dppc_arredondado, " dias de vida") } }
-
22 de setembro de 2021 às 19:45 #76015Tutora MaylaMestre
Luiz, na conta
50*365*8*1/1440
os dividendos e divisores são inteiros e uma divisão entre números inteiros irá retornar um número inteiro. Como a variável a qual esse resultado está sendo atribuído é real, ele irá adicionar o.0
para torna-lo real, mas já terá perdido os decimais pois a conversão para real só será feita depois da conta ter terminado.
Para que o resultado seja do tipo real, uma dos números deve ser real, para isto acontecer basta fazer algo como:t.inteiro_para_real(50*365*8*1)/1440
. Desta forma os valores decimais serão levados em conta na realização da operação. E na linha de baixo será feito o arredondamento com 3 casas decimais como desejado.Espero ter ajudado, quaisquer dúvidas estamos a disposição.
-
-
25 de setembro de 2021 às 19:25 #76216Marcos MissoneParticipante
Boa Noite
Peco a vossa obresercao nos exercicios 008 e 009
alguns comandos nao funcionam suspeito que seja meu erroprograma { /// Exercicios 008 inclua biblioteca Matematica funcao inicio() { real preco, npreco escreva("Qual e preco de produto ? ") leia(preco) npreco=preco-(preco*5/100) escreva(" com 5% de desconto o produto sai por " + npreco ) //escreva(" com 5% de desconto o produto sai por " + npreco + matematica.arredondar(npreco, 2)) } }
-
26 de setembro de 2021 às 22:26 #76300Michel SouzaParticipante
Marcos o seu código do exercício 8 está correto, a sua dúvida é sobre o arredondamento que não tá funcionando, é isso? Por isso colocou como comentário.
//escreva(" com 5% de desconto o produto sai por " + npreco + matematica.arredondar(npreco, 2))
Aqui você colocou npreco 2 vezes, sem necessidade.
E colocou matematica com letra minúscula, coloca em maiúscula, assim:
Matematica.arredondar(npreco, 2).
Recomendo usar um apelido:
inclua biblioteca Matematica –> mat
mat.arredondar(npreco, 2)
-
28 de setembro de 2021 às 13:24 #76427Tutora MaylaMestre
Marcos, quanto ao exercício 008 o aluno Michel já apontou perfeitamente qual pode ser o problema, caso a dúvida persista volte a entrar em contato com mais detalhes por favor.
-
-
25 de setembro de 2021 às 19:26 #76217Marcos MissoneParticipante
`programa
{
///Exercicios 009
funcao inicio()
{
real salario, nsalario, reajuste
cadeia nome
escreva(“Nome do Funcionario: “)
leia(nome)
escreva(“Salario: “)
leia(salario)
escreva(“Reajuste (%): “)
leia(reajuste)
nsalario=salario+(salario*3/100)
escreva(“\n———————RESULTADO——————–“)
escreva(“\n” + nome + ” ganhava ” + salario + ” depios de ganhar ” + reajuste)
escreva(“\nde aumento vai passar a ganhar ” + nsalario)-
28 de setembro de 2021 às 13:26 #76428Tutora MaylaMestre
Marcos, na conta do novo salário a porcentagem está fixa como 3, falta utilizar a variável de reajuste que define essa porcentagem, para isto faça:
nsalario=salario+(salario*reajuste/100)
Fora isto o código está perfeito, parabéns!
-
-
26 de setembro de 2021 às 19:42 #76289Marcos MissoneParticipante
Boa Noite
Solicito analise do exercicio
programa
/// EXERCICIOS 007 – PINTANDO PAREDE
// Inf. Import: um litro de tinta pinta 2m²
{
funcao inicio()
{
real largura, altura, m
escreva(“largura da parede: “)
leia(largura)
escreva(“Altura da parede: “)
leia(altura)
m=(altura*largura)
escreva(“Uma parede de ” + altura + ” X ” + largura + ” tem uma area de ” + m + ” m² “)
m=(altura*largura)/2
escreva(“\nPrecisamos de ” + m + ” latas de tinta “)`-
26 de setembro de 2021 às 22:58 #76301Michel SouzaParticipante
Marcos, bom o seu programa tá funcionando. Porém tem algumas ressalvas.
você colocou uma mesma variável “m” pra receber tanto a área da parede quanto a quantidade de tintas/litros.
Até funciona, mas não é bom. O ideal é usar uma variável para a área da parede e outra para a quantidade de tinta, Por exemplo:
real area, tinta
O cálculo poderia ficar assim:area = (largura * altura) tinta = area / 2 // como eu já tenho o valor da area posso colocar direto no cálculo. escreva("Uma parede " + largura + " x " + altura + " tem uma área(texto) de: " + area //(variável)) escreva("\nPrecisamos de " + tinta + " litros de tinta para conseguir pintar.")
Entendeu.
ou poderia fazer assim também:escreva("Uma parede " + largura + " x " + altura + " tem uma área de: " + (largura * altura) + "m²" escreva("\n Precisamos de " + (largura * altura / 2) + " litros de tinta para conseguir pintar.")
Com a operação/cálculo direto no escreva.
Apesar que eu não gosto de trabalhar assim. Prefiro separar cada coisa em seu devido lugar.
Valeu, espero ter ajudado. -
28 de setembro de 2021 às 13:29 #76429Tutora MaylaMestre
Marcos, o Michel aqui apontou muito bem os pontos de melhoria do código, ressalto que está funcionando da forma que está feito.
Parabéns pela dedicação e esforço, quaisquer dúvidas basta entrar em contato.
-
-
31 de março de 2022 às 20:42 #89939Marcos GleickParticipante
Boa noite dev’s estou com dúvida em relação como que irei arredondar estes números, já tentei diversas formas mais não consegui, preciso de ajuda. Aguardo o retorno obrigado.
programa
{funcao inicio()
{real km,hm,dam,m,dm,cm,mm
escreva(“Distância em metros: “)
leia(m)
escreva(“——–CONVERTENDO——–\n”)
km=m/1000
escreva(km,” Km \n”)
hm=m/100
escreva(hm,” hm \n”)
dam=m/10
escreva(dam,” dam \n”)
dm=m*10
escreva(dm,” dm \n”)
cm=m*100
escreva(cm,” cm \n”)
mm=m*1000
escreva(mm,” mm \n”)}
}-
1 de abril de 2022 às 12:48 #89984IcaroFilhoModerador
Marcos, movi seu tópico pois o mesmo já foi criado.
Antes de abrir um novo tópico, procure pelo forum se alguem ja não teve a mesma duvida.Aqui tem bastante conteúdo referente ao que deseja. se ainda permanecer com duvida, fale por aqui que ajudaremos.
-
-
3 de junho de 2022 às 02:10 #94692Matheus Vidal TenórioParticipante
exercicio 08 mod01
fiz assim, fiquei brincando depois.
mas essa parte de arrendondamento fica meia chata mesmo, até pegar, mas vai dar certo.programa
{inclua biblioteca Matematica –> m
inclua biblioteca Util –> j
funcao inicio()
{real prod, r
escreva(“Qual é o preço do produto? “)
leia(prod)
r = prod-(prod*5/100)
escreva(“\n\n————— RESULTADO —————“)
escreva(“\n\nValor sendo gerado…\n”)
Util.aguarde(2000)
escreva(“\nCom 5% de desconto, o produto sai por R$”+ m.arredondar(r, 2)+”\n\n”)
Util.aguarde(2000)
escreva(” Finalizando processo…\n\n”)
Util.aguarde(2000)
escreva(” \n——————————————-\n”)
escreva(” Fim”)
escreva(” \n——————————————-\n”)}
}
` -
25 de março de 2023 às 18:09 #112739ClaudiaParticipante
`programa
{
inclua biblioteca Matematica –> matfuncao inicio()
{escreva(“{ EXERCÍCIO 006 – Conversor de Medidas} \n” )
escreva(” \n——–CONVERTENDO———\n”)
escreva ( “\n Distância em metros: \n”)real m, resp, arredondado
leia (m)
resp = m/1000
arredondado = mat.arredondar(resp, 2)escreva (“\n” + (m) + ” m, é igual: \n”)
escreva (“\n” + (m/1000) + ” km \n”)
escreva ((m/100) + ” hm \n”)
escreva ((m/10) + ” dam \n”)
escreva (m + ” m \n”)
escreva (( m * 10) + ” dm \n”)
escreva ((m * 100) + ” cm \n”)
escreva ((m * 1000) + ” mm \n”)}
} -
27 de março de 2023 às 10:53 #112814Tutora JessicaModerador
Ola Claudia, trouxe a sua dúvida para uma dúvida já existente no fórum com algumas explicações que acho que pode lhe ajudar, no fórum tem outras explicações desse exercício também falando sobre arredondamento, veja se com as explicações acima você consegue resolver a sua questão, caso não consiga, só retornar ao fórum que iremos lhe ajudar 🖖
-
4 de abril de 2023 às 17:00 #113231ClaudiaParticipante
Jessica, não funcionou! Até por que, muitos exercícios são diferentes! O unico parecido, tinha alguns erros que mais me deixaram confusa que ajudou.
Não estou pedindo a resposta, gostaria apenas de saber como chamar o arredondamento para o meu código.
Assisti algumas explicações no YouTube, mas como são antigas, não bate com o novo formato do Portugol.
Mesmo assim obrigada por tentar ajudar!
-
-
4 de abril de 2023 às 18:03 #113239Tutora JessicaModerador
Ola Claudia, você precisa usar a variável arredondado em algum lugar, você apenas ditou que ela leva a biblioteca matematica.
Veja o exemplo acima do aluno Matheus, ele usa diretamente a biblioteca dentro do código, você vai usar a variável arrendodado.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.