Respostas no Fórum
-
AutorPosts
-
IcaroFilhoModerador
Bom dia.
programa { inclua biblioteca Tipos --> ti funcao inicio() { inteiro c = 1, num, s = 0 cadeia valid, valid2 caracter resp
Basta atribuir um valor nulo ao
num
->num = 0
depois que fizer isso, ele vai dar o mesmo erro para o resp. inicie ele vazioresp = ' '
ja houve 2 debates no forum de programação básica a respeito de variaveis nao inicializadas.
Procure por ela que ha uma explicação muito boa da tutora a respeito disso.Espero ter ajudado !
1 de abril de 2021 às 15:29 em resposta a: Módulo01A05 – Entrada e Saída de Dados – Exercício 1 e 2 #64177IcaroFilhoModeradorBoa tarde Jose.
Seus códigos estão funcionais… alguma duvida ?31 de março de 2021 às 20:00 em resposta a: Como inserir simbolo de qualquer numero elevado ao quadrado. #64140IcaroFilhoModeradorBoa noite.
me desculpe mas não entendi sua duvida. vc quer saber como poem o expoente 2 em cima do metros(m²
) ?
se o caso for esse, o comando éALT + 2
no seu código seria:
escreva(" Total de area a ser pintada e de : " , area, " m²")
Só uma observação. vc usar
,
e+
para concatenar.
ex.:escreva(" Total de area a ser pintada e de : " , area, "m²") litro = area / 2 escreva(" \n Precisaremos de : " + litro + " de latas de tinta")
Tente utilizar apenas um método. Vai sentir mais fluidez ao ler seus próprios códigos (quando se tornarem mais longos)
IcaroFilhoModeradorMuito boa noite Carlos.
um detalhe antes de começar as consideração.
lembre-se de utilizar a biblioteca para fazer as conversões. O Portugal perdoa devido a tipagem, mas outras linguagens não.
so um exemplo:
real total_vida_perdida = (anos_fumando*365)/24
→real total_vida_perdida = (tp.inteiro_para_real(anos_fumando)*365)/24
Agora vamos la dar uma analisada:
O exercício pede quantos anos você fumou e quantos cigarros.logo no inicio temos um divergencia.
o ano possui 365 dias e em seu programa temos 360 (mes (12) * dias (30))real mes_cigarro = cigarros_por_dia*30 real ano_cigarro = mes_cigarro*12
vamos primeiro nos embasar nas informações.
ele nos informa que cada cigarro retira 10 minutos de vida e ele quer os dias, logo precisamos descobrir quantos minutos há no dia.1h = 60min 1dia = 24h = (24*60) = 1440 min.
sendo assim, cada cigarro nos tira 10/1440.
com esse numero temos que descobrir o total de cigarros consumido durante todo o tempo de fumante.Ao invés de:
real mes_cigarro = cigarros_por_dia*30 real ano_cigarro = mes_cigarro*12 real anos_totais_fumando = ano_cigarro*anos_fumando
nos teremos:
total = nº Cigarros * qt anos * 365
inteiro total = cigarros_por_dia * anos_fumados * 365
isso nos dará o total de cigarros ao longo da vida, agora com esse numero nois pomos na formula dos minutos. (10/1440)
real total_vida_perdida = (anos_fumando*365)/24
passa a ser:
real total_vida_perdida = total * 10 /1440
, sabemos que temos que por a equação em ordem, logo:
real total_vida_perdida = (total * 10) /1440
, e todos os números são inteiros, parecíamos passar pelo menos 1 para real:inclua biblioteca Tipos --> tp real total_vida_perdida = (tp.inteiro_para_real ( total ) * 10) /1440
Esta tudo pronto, agora basta arrendodar para nao exibir uma dizima gigantesca.
escreva(“Estima-se que você já perdeu “, total_vida_perdida,” dias de vida! Pare de fumar. “)
passa para,inclua biblioteca Matematica --> m escreva("Estima-se que você já perdeu ", m.arredondar(total_vida_perdida,2)," dias de vida! Pare de fumar. ")
Espero ter ajudado, qualquer coisa so postar que estamos ai pra somar !!!
IcaroFilhoModeradorestá aparecendo algum erro ?
31 de março de 2021 às 17:57 em resposta a: Modulo 3, exercício 54 – Fundamentos da programação #64132IcaroFilhoModeradorBom dia Katia, eu já postei uma explicação no forum a respeito de variável não inicializada.
Conforme Francisco falou, você provavelmente criou uma variável sem valor e quando o programa inicializa e faz a verificação, ele se depara com isso.
Então basta inicializa-las conforme dito pelo amigo.
Caso isso não ocorra, por favor poste o código completo para verificarmos junto a você.
PS: Use a formatação CODE no forum para postar os códigos, assim não precisaremos corrigir os espaços e aspas caso precisemos polo no Portugal Studio.IcaroFilhoModeradorBom dia Wilson,
Vou tentar te ajudar a partir da minha linha de pensamento.
No primeiro teste (recurso disponível na ferramenta Portugol Studio, recomendo que sempre use pois te ajuda a visualizar e entender melhor os códigos que escreve) de mesa vc já pode perceber que você esta atribuindo todos os primeiros dados a primeira pessoa:se (c == 1) { idvelha = id idnova = id idvelho = id idnovo = id nomejovem = nome nomevelha = nome nomenovo = nome nomevelho = nome
ou seja, se eu escrever apenas pessoas de um sexo, o sexo oposto será preenchido.
Então a primeira peneira seria separar por sexo.se (sx == "F"){ Bloco } se (sx == "M"){ Bloco }
dentro de cada bloco sim, vc deve comparar se é a primeira entrada ou não. a partir dai você pode fazer por dois métodos.
1º Metodo – Contador
Cria um contador para cada sexo.
O motivo é que se utilizar um único contador, quando fizer a primeira entrada de homem, o seu contador que iniciou com 1 fara a comparação e receberá mais 1. Quando for fazer a primeira entrada da mulher, seu contador será diferente de 1, logo nao fara a primeira entrada feminina e o codigo desanda.
Logo dentro de cada bloco vc irá utilizar o contador correspondente.
ex.: inteiro c_masc = 0, c_fem = 02º Metodo – nomes
vc pode usar o nome para saber se é a primeira entrada ou não.
quando seu programa inicializar, eles terão os nomes vazios (nomevelha,nomejovem…)
Ou seja, sempre que seu nome nao possuir valor, será a primeira entrada.
Então pode criar um checador para saber se esta vazio ou não. Caso esteja vazio você pode atribuir o valor do nome ao nome mais velho e mais novo.Depois de ter as primeiras entradas atribuídas, terá apenas que checar as proximas idades serão maior ou menor que as atuais. (lembrando que isso ocorrerá dentro do seu respectivo bloco M/F)
PS: vc atribuiu valores 1000 as idades. isto não é necessário tendo em vista que você esta atribuindo os valores da idade velho/novo na primeira checagem.
Veja bem, eu postei 2 métodos de se fazer. vc estava pelo método 1, eu vou postar pelo método 2.
depois dessas correções tente refaze-lo pelo seu método de contador.
Abaixo deixo meu codigo para que posso visualizar melhor a ideia que tentei passar.programa { inclua biblioteca Texto --> txt funcao inicio() { cadeia nome = "vazio", nome_mulher_jovem = "vazio", nome_mulher_velha = "vazio", nome_homem_jovem = "vazio", nome_homem_velho = "vazio", sx inteiro idade = 0, m_mais_velha = 0, m_mais_jovem = 0 , contador = 1 , h_mais_velho = 0, h_mais_jovem = 0, rep escreva("Quantas pessoas serão cadastradas? ") leia(rep) enquanto (contador <= rep){ escreva(contador,"ª PESSOA\n") escreva("NOME: ") leia(nome) escreva("SEXO: ") leia(sx) sx = txt.caixa_alta(sx) escreva("IDADE: ") leia(idade) escreva("--------------------\n") se (sx =="F"){ se (nome_mulher_jovem == "vazio"){ nome_mulher_jovem = nome m_mais_jovem = idade } se ( idade < m_mais_jovem ){ nome_mulher_jovem = nome m_mais_jovem = idade } se (nome_mulher_velha == "vazio"){ nome_mulher_velha = nome m_mais_velha = idade } se ( idade > m_mais_velha ){ nome_mulher_velha = nome m_mais_velha = idade } } se (sx =="M"){ se (nome_homem_jovem == "vazio"){ nome_homem_jovem = nome h_mais_jovem = idade } se ( idade < h_mais_jovem ){ nome_homem_jovem = nome h_mais_jovem = idade } se (nome_homem_velho == "vazio"){ nome_homem_velho = nome h_mais_velho = idade } se ( idade > h_mais_velho ){ nome_homem_velho = nome h_mais_velho = idade } } contador += 1 } escreva("\n----------------------------------------------------------------------") escreva ("\nA mulher mais jovem é a ",nome_mulher_jovem," com ",m_mais_jovem," anos.") escreva ("\nA mulher mais velha é a ",nome_mulher_velha," com ",m_mais_velha," anos.") escreva ("\nO homem mais jovem é o ",nome_homem_jovem," com ",h_mais_jovem," anos.") escreva ("\nO homem mais velho é o ",nome_homem_velho," com ",h_mais_velho," anos.") } }
IcaroFilhoModeradorOBS: eu botei um separador na linha 44 , se não vai juntar tds os números e dará a impressão que é um numero só.
IcaroFilhoModeradorBoa noite Gabriel,
a meu ver, este erro acontece pois a variável ainda não tem valor e o programa esta tentando executa-la (seria o lance de escopo, no caso a linha escreva(44) →escreva("Números em ordem: ", maior,"-", meio,"-", menor)
).. mas posso estar enganado.
De qualquer modo, eu trato este erro apenas atribuindo um valor nulo a variável.
inicializa as variáveis maior, menor, meio com valores 0IcaroFilhoModeradorBom dia Wesley,
Eu acho que tudo depende do intuito do código.
Por exemplo, se vc sabe que todo o programa terá a saída arredondada em 4 casas, assim como no exercício 6, acredito que seja o mais pratico (até pq se precisar chamar a variável mais uma vez, não ira precisar mandar arredondar novamente).
Mas se vc usar apenas em parte do programa (caso vc necessite fazer cálculos mais precisos com a mesma variável dentro do mesmo programa, vc terá que refazer os cálculos), vai acabar dando mais trabalho.
Não sei se consegui transmitir o meu conceito …IcaroFilhoModeradorEstamos ai pra ajudar um ao outro !!!
Com certeza sua duvida pode ser a duvida de muitos outros e as vezes o fato de postar aqui e outros usuários ajudarem com maneiras diferentes, pode ser o essencial para facilitar sua maneira de visualizar outras questões!
Sempre que tiver duvidas, poste.. e se quiser saber se há outros modos de resolver, acho valido postar tbm…IcaroFilhoModeradorCaro Felipe,
eu acredito que ja tenha um tópico com este assunto. De qualquer forma vamos la..
Este exercício não é tão difícil quanto parece, mas precisa de atenção pois ele requer atenção (vai escrever bastante)
Como o amigo de cima postou o código (embora ele tenha feita a indentação e aninhamento, como ele copiou e colou sem formatar aqui, saiu td junto), vou argumentar baseado no código prescrito.
Vc terá que testar as possibilidades uma a uma, fazendo os alinhamentos das condições.
ou seja, vai encher de “se” o seu código, um dentro do outrose (n1 > n2){ se (n3 > n1) { maior = n3 (pois n3 é maior que n1, e n1 é maior que n2) inter = n1 (pois n1 é maior que n2, e n1 é menor que n3) menor = n2 (pois n3 é maior que n1, e n2 é menor que n1) ...
Para não sair escrevendo o código no IDE que escolheu e acabar se confundindo…
Recomendo que faça um organograma com as possibilidades (vai te ajudar a visualizar melhor) e depois transcrever pra a sua IDE.IcaroFilhoModeradorBom dia.
Eu acredito que não tenha nenhum problema usar o VSC, tanto que existe a extensão para ele.
eu não cheguei a fazer os cursos do Curso em Video mas eu acredito que ele utilize o Visual Studio por ele criar automaticamente as dependências iniciais.IcaroFilhoModeradorsim, Eu só mencionei o “<=” pq eu estava simplificando utilizando apenas o acumulador dentro do laço.
IcaroFilhoModeradorshow, agora entendi o que vc fez =)
como eu fiz direto pelo jeito que postou no ultimo código, eu acabei ficando sem entender o seu código inicial.
e realmente a questão do “<=” não se encaixaria no seu quadro e por isso vc tinha feito com “<”
Obrigado pela explicação !IcaroFilhoModeradorvc testou e deu certo ?
não sou nenhum especialista em JS (muito tempo q n uso) mas observe os pontos q vou mencionar q serve ate para mim como duvida.
1-
for (var i = 0; i < num; i++){
Neste caso o num seria o numero inserido, correto ?
caso seja, ele nao será lido pois o programa correrá até 1 numero antes do num (se for 10, irá até 9)
no caso, se vc quer digitar por exemplo 4 e deseja o resultado 10
vc tem q usar “<=” ->for (var i = 0; i <= 4; i++ ){
2-
suml += i
este é o seu acumulador, ele te dará o resultado.
Não compreendi pq da variável total
total = num + sumI
pq seu ultimo loop será a soma do acumulador + o numero que vc digitou.
Ex¹.: se vc digitar 4
a soma 1 + 2 + 3 + 4 = 10, logo:
sum = 10
total = 14
Ex².: se digitar 10
sum = 55
total = 65OBS: n posso dizer q esta errado pois não sei exatamente o que planeja com aquele total.
na explicação que lhe dei eu usei um while com contador regressivo.
mas vc também fez verto usando for …
como vc vai ver… há diversas maneiras de se chegar a um objetivo.IcaroFilhoModeradorBoa noite.
Sua observação esta correta. (quanto a questão das topologias logicas/fisicas)
Quanto a imagem vou fazer um teste aqui.
Se a imagem sair eu fiz este procedimento:
1-hopedei em um site qlqr que hospeda imagens
e postei o link pelo prompt q abre quando se clica em IMG aqui no forum (OBS: to usando chrome)
IcaroFilhoModeradorVou tentar te guiar. Este exercício não é tão complexo.. mas é “trabalhoso” por ser grande.
vc terá que testar as possibilidades uma a uma para fazer o preenchimento.
ou seja, vai encher de “se” o seu código, um dentro do outrose (n1 > n2){ se (n3 > n1) { maior = n3 (pois n3 é maior que n1, e n1 é maior que n2) inter = n1 (pois n1 é maior que n2, e n1 é menor que n3) menor = n2 (pois n3 é maior que n1, e n2 é menor que n1) ...
para te ajudar a visualizar, recomendo que faça um esboço das possibilidades no papel depois escreva em código/algoritmo para não se perder.
IcaroFilhoModeradorsó uma correção
num = num -1 ou num -= 1IcaroFilhoModeradorUma maneira simples e rápida (não que seja a certa) é através do laço de repetição.
vc cria uma variável acumuladora com valor 0. -> Ex.: somacria uma variável para o usuário dar a entrada do numero -> Ex.: num
cria um laço que com a condição de que seja verdadeiro enquanto num >= 0 e dentro do bloco ponha num -1 (que ele fara uma contagem regressiva, além de servir como o próprio contador) e a variável soma irá receber ela mesma e num.
fora do laço mande exibir a variável soma, que será o que deseja.
Espero ter ajudadoIcaroFilhoModeradorprograma -> flowgorithm
so pesqusiar no google.IcaroFilhoModeradortente utilizar o simet e o brasilbandalarga. trabalhei com assistência técnica na net e por padrão testávamos no brasilbandalarga (mas eu tinha preferencia de testar pelo simet).
IcaroFilhoModeradoro fórum não permite o envio de links =/
IcaroFilhoModeradorSe entendi bem, vc quer um site que teste a velocidade da sua internet.
se for este o caso, eu utilizo os 2:Vou fazer um resumo do texto q postei.
Faça o teste direto no modem (pego seu notebook/pc e conecte-o diretamente no modem da operadora. E se houver outros dispositivos conectados via cabo de rede, desconecte-os, deixando apenas o seu computador)
Entre no modem e altere a senha ( acrescente um ‘0’ no final da senha apenas para derrubar os periféricos que tiverem conectados via Wi-Fi)
Tenha certeza que não esteja rodando nenhum programa em seu computador que utilize a banda de internet (gerenciados de downloads por exemplo)
rode o teste em um desses sites.
Após os testes, mude a senha para a original (retirando o ultimo ‘0’) e reconecte os cabos (se tiver desconectado)Considerações finais:
Vale lembrar de que sua velocidade é de 150, logo sua placa de rede deve ser uma 10/100/1000. se for apenas 10/100 ela ira bugar e ler no maximo entre 90~100 Mbps..
E a qualidade do cabo utilizado influencia em altas velocidades.IcaroFilhoModeradortentei te responder 3x mais o foram nao esta postando as minhas respostas…
IcaroFilhoModeradorBoa noite Lucas.
Vou tentar te mostrar o caminho sem te dar a resposta de cara… se continuar travado só falar que eu posto algo mais explicito aqui , ou então alguém postará…
Seu código esta correto, mas vc pode otimizar…
ao invés de escreveranos_fumo = (anos_fumo * 365) // aqui vc esta dando um novo valor para a variável para usa-la em sequencia quantidade = (anos_fumo * cigarros_dia)
Pode simplesmente escrever
quantidade = anos * 365 * cigarros_dia //vc pode inserir tudo em uma unica linha
Então, no caso desse exercício ele te passa a informação que cada cigarro reduz 10 min de vida. É ai que esta o pulo do gato.
vc precisa achar a razão entre minutos e dias. (se pergunte quantos minutos tem no dia)
vc estruturou bem o começo. Acredito que se esteja te faltando esse numero para fechar seu raciocínio.Abraço e bons estudos…
IcaroFilhoModeradorBom dia andre.
o primeiro passo é importar a biblioteca. -> assim como nicollas fez, importando a biblioteca Matemática (se atente a letra “M” maiúscula).
vc pode dar um encurtador a ela para ficar mais fácil de ‘chama-la’, (ele chamou de ‘m’)quando for utilizar vc primeiro ira chama a biblioteca e depois o modulo dentro da biblioteca (ligadas por um ponto), neste caso: m.arredondar()
agora irá por dentro das chaves 2 parâmetros, o primeiro é o valor/variável/operação que deseja arredondar e o outra a quantidade de casas decimais após a virgula.programa { inclua biblioteca Matematica --> m funcao inicio() { real a = 10.0 real b = 9.0 real conta = a/b real resultado1 = m.arredondar(conta,1) real resultado2 = m.arredondar(conta,3) escreva(conta,"\n") escreva(resultado1,"\n") escreva(resultado2,"\n") } }
Saida:
1.111111111111111112
1.1
1.111lembrando que o valor tem que ser “real” para poder funcionar o arredondar.
IcaroFilhoModeradorBom dia. posta o seu codigo para orienta-lo de acordo com a sua linha de pensamento.
23 de fevereiro de 2021 às 19:11 em resposta a: Como trocar o background por img em vez de color #61668IcaroFilhoModeradorBoa noite amigo,
Manda o seu codigo css pra dar uma olhada.IcaroFilhoModeradorJoão, boa noite.
Abre um novo TOPICO que explico por lá.. se não irá bagunçar o forum…
Este poste esta solucionado para a duvida do ex.01se postar aqui dentro sua duvida do exercício 52, quem tiver a mesma duvida não ira visualizar e irá questionar novamente no fórum.
-
AutorPosts