Respostas no Fórum
-
AutorPosts
-
IcaroFilhoModerador
Boa noite Pedro.
tentarei de resumir de forma bem simples.
vc utilizará o “se”, sempre determinada situação tiver mais de uma opção.
ex.: Supondo que passa com um veiculo por um radar:programa { funcao inicio() { inteiro vel = 60 se (vel > 70){ escreva("Velcidade superior a 70 km/h") // bloco 1 } senao { escreva("Velocidade inferior a 70 km/h") // bloco 2 } } }
Ou seja, se o veiculo estiver acima de 70, executará o bloco 1 e não executará o resto de se.
Neste exemplo, o valor de vel é inferior a 70, logo ele faz o teste no se, como a condição é falsa ele executa automaticamente o senaoSe nos criássemos vários ” SE “. todas as condições verdadeiras seriam atendidas.
por exemplo.: Suponha que queiramos que o programa nos informe que o veiculo esta abaixo de determinada velocidade. se utilizarmos apenas o se:inteiro vel = 30 se (vel < 10){ escreva("Velocidade menor que 10\n") } se (vel < 20){ escreva("Velocidade menor que 20\n") } se (vel < 40){ escreva("Velocidade menor que 40\n") } se (vel < 50){ escreva("Velocidade menor que 50\n") }
isso nos daria uma saida:
Velocidade menor que 40 Velocidade menor que 50
sabendo que 40 é menor que 50, fica desnecessário continuar os testes lógicos. Sempre que utilizarmos múltiplas opções, usaremos senao se:
inteiro vel = 30 se (vel < 10){ escreva("Velocidade menor que 10\n") } senao se (vel < 20){ escreva("Velocidade menor que 20\n") } senao se (vel < 40){ escreva("Velocidade menor que 40\n") } senao se (vel < 50){ escreva("Velocidade menor que 50\n") }
output:
Velocidade menor que 40
Com isso, quando o teste logico for verdadeiro, irá encerrar.IcaroFilhoModeradorBom dia Orlando,
Acabei de testar a versão web, e funcionou normalmente.
Pode por gentileza mandar um print da tela contendo o código de erro e seu script?IcaroFilhoModeradorBoa 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, 6 meses atrás por IcaroFilho.
IcaroFilhoModeradorBom dia Henrique,
Sabendo que um número fatorial é um número natural inteiro positivo calculado pela multiplicação desse número por todos os seus antecessores até chegar ao número 1.
Podemos proceder da seguinte maneira:- Uso de biblioteca.
O Python vem nativamente com a biblioteca math, com diversas “ferramentas” prontas, bastando apenas importa-las.
tratando-se da utilização de uma unica função, podemos chamar apenas o “factorial” do modulo “math”.
from math import factorial
para calcular basta chamar a função.num = int(input("Digite um número: ")) f = factorial(num)
Para configurarmos a saída de modo a ficar – ex.: 5! = 5 x 4 x 3 x 2 x 1 = 120
precisamos criar um laço.
utilizei o range(x,y,z) onde: x = valor inicial, y = valor final, z = passo (negativo = decrescente)for n in range(num,0,-1): if n ==1: print(n, f" = {f}") else: print(n, end=" x ")
esta condição foi criada para que seja substituído o ultimo “x” por “=”.
Segue o codigo copleto:from math import factorial num = int(input("Digite um número: ")) f = factorial(num) print(f"calculando {num}! =", end =" ") for n in range(num,0,-1): if n ==1: print(n, f" = {f}") else: print(n, end=" x ")
- Na mão
Para variar, iremos , ao inves de usar for, utilizar o while (sabendo-se que também é possível usar o for).
Neste processo iremos ter que criar um contador e um acumulador, tendo as seguintes variaveis.num = int(input("Digite um número: ")) cont = num fat = 1
O acumulador fat será um por se tratar de uma multiplicação. Caso fosse um acumulador para soma, seria 0.
Agora precisamos criar nosso laço.
Ele terá inicio no número informado e ocorrerá ate chegar a 1, ou seja:
while cont > 0:
agora teremos que fazer o acumulador trabalhar: ele receberá ele mesmo multiplicado pelo valor do contador.
fat = cont * fat
após executar o primeiro trecho dentro do while, faremos quem que exiba o valor do contador para montar a equação na tela (da mesma forma que o processo anterior).if cont == 1: print(f'{cont} = {fat}') else: print(f'{cont} x ', end ="")
Agora no final do bloco temos que decrescer 1 do nosso contador para que o loop tenha um fim.
cont -= 1
Segue o codigo completo:
num = int(input("Digite um número: ")) cont = num fat = 1 print(f"calculando {num}! =", end =" ") while cont > 0: fat = cont * fat if cont == 1: print(f'{cont} = {fat}') else: print(f'{cont} x ', end ="") cont -= 1
26 de maio de 2021 às 13:40 em resposta a: Dúvidas no Exercício 006 do Módulo 001 – Conversor de Medidas #67766IcaroFilhoModeradorBoa tarde Douglas.
Existe um tópico aberto por um aluno sobre este exercício Aqui
Sempre, antes de abrir um tópico, procure no fórum se não há algo referente a sua duvida. Neste caso sobre o mesmo exercício.Referente a sua duvida.
você esta pegando o valor em metros m e multiplicando por mil. (10*10*10)O correto seria dividir por mil -> 1 km = 1000 m
nesta operação de multiplicar por 1000, vc esta encontrando os milímetros.
IcaroFilhoModeradorBoa tarde Francisco,
Qual o intuito deste projeto? (irá realizar na sua residência, passando de um quarto para outro?)
Quais as categorias dos cabeamentos utilizados? (coaxial rg59 – rg6 – rg11 … e o de rede Cat5, Cat5e, Cat6)IcaroFilhoModeradorBom dia Marcos,
Primeiramente, antes de postar suas duvidas, tente procurar no fórum se a mesma duvida já não foi perguntada. Se houver e ainda continuar com duvidas, poste dentro do mesmo. Isto evita que o fórum fique poluído com muitas postagem do mesmo assunto | exercício.
LINK do mesmo exercício.Referente a sua duvida.
Tem-se que traçar mentalmente o passo-a-passo do que é necessário para realizar.
A questão te pede para exibir apenas o primeiro nome, ou seja, ele te pede para extrair parte de string.
Ao pesquisar na biblioteca encontramos um metodo de extração:
funcao cadeia extrair_subtexto(cadeia cad, inteiro posicao_inicial, inteiro posicao_final)
sabemos que: cad => nome | posicao_inicial ==> 0 | posicao_final => índice final da string
Então nos falta saber qual é este índice. Para descobrirmos temos que saber a posição da ultima letra do primeiro nome.
e como sabemos como separar? simples, toda separação vem com uma coisa em comum, o espaço.
faremos uma busca para encontrarmos onde se tem o primeiro espaçamento pelo metodo:
funcao inteiro posicao_texto(cadeia texto, cadeia cad, inteiro posicao_incial)
sabemos que: texto => ” “ | cad => nome | posicao_inicial => 0
isto nos retornará o índice do espaçamento. Este índice que teremos que informar na extração do texto.
Segue abaixo o código refeito. Tente fazer antes de replica-lo.
programa { inclua biblioteca Texto --> txt funcao inicio() { inteiro pos cadeia nome escreva("Digite seu nome completo: ") leia (nome) pos = txt.posicao_texto(" " , nome ,0) escreva("Seu primeiro nome é: " + txt.extrair_subtexto(nome,0,pos) ) } }
Bons estudos !!
IcaroFilhoModeradorBom dia Marcos.
acontece que na divisão real r, você esta convertendo o quociente da divisão em numero real (ela já esta em formato inteiro).Para efetuar esta operação e ter o quociente em formato real, temos que converter uma parte em real antes de realizar a operação.
real r= t.inteiro_para_real (n/n1)
Passa parareal r= t.inteiro_para_real(n)/n1
Podemos também importar a biblioteca matemática para efetuarmos o arredondamento em caso de dizima.
inclua biblioteca Matematica --> m
E subistituimos o output:
DE:escreva ("Divisão real =" + r +"\n")
PARA:escreva ("Divisão real =" + m.arredondar(r,2) +"\n")
IcaroFilhoModeradorBom dia Antônio,
Primeiramente, não há necessidade de escrever todo o código em apenas uma linha.
Menor numero de linhas não quer dizer o código é melhor ou pior. E devido a linha ser extensa, a probabilidade de errar por falta de atenção e numa revisão é maior (tanto que isso ocorreu na sua DIFERENÇA, onde a operação seria subtração e realizou uma nova soma).Quanto a sua divisão inteira, basta dividir um numero pelo outro (dividendo pelo divisor) que o resultado da divisão inteira será o quociente.
numero1/numero2
, Contudo, por se tratar de dois números reais, sua divisão será em formato decimal. Para obtermos o quociente de forma inteira, necessitamos importar a biblioteca Tipos para podermos converter de formato real para inteiro.inclua biblioteca Tipos --> tp . . escreva("\n DIVISÃO INTEIRA = " + tp.real_para_inteiro(numero1/numero2))
Em ultimo lugar, não é que o portugol não esteja aceitando o %. O fato é que ele esta realizando a operação até o resto ser zero (por isso o quociente retornará , em sua maioria, com virgula).
Sendo assim tem-se que passa-los individualmente para inteiro e depois realizar a operação.
escreva("\n RESTO DA DIVISAO = " + tp.real_para_inteiro(numero1) % tp.real_para_inteiro(numero2))
Segue o código completo:
programa { inclua biblioteca Tipos --> tp funcao inicio() { real numero1, numero2 escreva(" { EXercício 004 - Operações Aritiméticas basicas }\n" + "Digite um valor: ") leia(numero1) escreva("Digite outro valor: ") leia(numero2) escreva("---------RESULTADO---------") escreva("\n SOMA = " + (numero1 + numero2)) escreva("\n DIFERENÇA = " + (numero1 - numero2)) escreva("\n PRODUTO = " + (numero1*numero2)) escreva("\n DIVISÃO INTEIRA = " + tp.real_para_inteiro(numero1/numero2)) escreva("\n DIVISÃO REAL =" + (numero1/numero2)) escreva("\n RESTO DA DIVISAO = " + tp.real_para_inteiro(numero1) % tp.real_para_inteiro(numero2)) } }
IcaroFilhoModeradorBom dia. Nenhum de seus exercícios possui erros. apenas pequenos ajustes.
– Exercício 1:
escreva("Tudo bem, " + nome + " ?" + " É um grande prazer te conhecer")
Tendo em vista que esta escrevendo uma frase única, não é necessário concatenar (juntar pelo símbolo de soma (+) ) ? com É um grande prazer te conhecer
Basta escreve-las dentro das mesmas aspas.
escreva("Tudo bem, " + nome + "? É um grande prazer te conhecer")
– Exercício 2:
você pode declarar as variáveis do mesmo tipo primitivo na mesma linha separando-as por virgula, assim, reduzindo o nº de linhas.cadeia nomeFuncionario cadeia cadeia nomeFuncionario, cargoFuncional inteiro anoNascimento => inteiro anoNascimento cadeia cargoFuncional real salarioBase real salarioBase
vc também pode realizar a quebra de linha dentro da string, assim, diminuindo a operação da concatenação.
escreva("Data de Nascimento: " + anoNascimento + "\n")
passa para –>escreva("\nData de Nascimento: " + anoNascimento")
Ja que pediu para corrigir, falta a quebra de linha na ultima separação do seu formulário.
Continue assim e bons estudos!IcaroFilhoModeradorBoa tarde Gabriel,
vc tem que comparar o valor do input a sua string. o JS tem a propriedade .valueif (nacao.value != 'Brasil') {
Contudo, ocorrerá um outro problema. E se o Usuário escrever brasil ao invés de Brasil.
acontecerá da condição ser falsa (no seu caso, verdadeiro ja que esta utilizando “!=“)
Para isso não ocorrer, faça a comparação ou com td maiúsculo ou tudo minúsculo pelo metodo .toUpperCase() ou .toLowerCase()
if (nacao.value.toLowerCase() != 'brasil') {
Espero ter ajudado,
Bons estudos !IcaroFilhoModeradorBoa tarde.
Aqui vai um método que fiz para criar o triangulo para a direita. Basicamente segmentei em 2 etapas. Uma parte crescente e outra decrescente.
Fiz umas observações no código para tentar orientar a minha logica. Qualquer duvida basta perguntar. espero ter ajudado.programa { funcao inicio() { // DECLARAÇÕES inteiro andar, lado , altura , tot = 1 // INPUT escreva ("Quantos Andares deseja? ") leia(andar) // LAÇO PARA BASE CRESCENTE para (lado = 1; lado <= andar -1; lado += 1){ //LAÇO PARA BASE DO TRIÂNGULO (EIXO VERTICAL) para (altura = 1; altura <= tot; altura += 1){ //LAÇO PARA ALTURA DO TRIÂNGULO (EIXO HORIZONTAL) escreva("*") } tot += 4 // RAZÃO DA ALTURA DO TRIANGULO escreva("\n")// QUEBRA DE LINHA D } // LAÇO PARA BASE DECRESCENTE para (lado = andar; lado > 0; lado -= 1){ para (altura = tot; altura >= 1; altura -= 1){ escreva("*") } tot -=4 escreva("\n") } } }
PS: O valor da soma de tot aletra o comprimento do triângulo. Alterando vc terá um triango de altura maior ou menor.
IcaroFilhoModeradorBoa tarde Gustavo.
1- A variável jogadores é uma lista. vc esta chamando com keys (dicionário) em vez de index.2- Quando vc copiar da sua IDE para o forum siga o seguinte processo:
1- na primeira linha do código, antes do primeiro caractere, ponha o cursor e pressione CODE que se encontra na barra de formatação de texto.
2- depois posicione o cursor após o ultimo caractere e pressionei novamente oCODE
3- vc notará que aparecerá uma crase` no inicio e no final do código, isso significa que tudo que tiver neste intervalo permanecerá com a formatação original.
IcaroFilhoModeradorcopia e cola todo o código do Pycharm pra ca.
Aqui mantem a seleção e no menu, aperteCODE
, ele vai abrr e fechar a formatação de uma vez sóIcaroFilhoModeradorBoa tarde Luiz.
1-Sbore a biblioteca:
Quando vc abre a aba ajuda, ele te mostra a lista de bibliotecas disponíveis. Quantas consegue ver (eu contei 14 aqui) ?2-Sobre a lentidão e versão:
Utilizo a versão atual também (v2.7.5) e roda de boa. Qual a configuração do seu computador e o sistema operacional ?IcaroFilhoModeradorBoa tarde Bruna,
Então… não desista. Programação é feita sobre desafios. utilize as dificuldades como impulso para melhorar e ampliar o conhecimento. Nunca busca por atalhos ou ache que já sabe de algo e não precisa praticar. Programação também é baseada em repetição. se não escrever vai acabar esquecendo.Quanto a biblioteca, acredito que queria desenhar um retângulo na tela, correto ? A questão é que e esta biblioteca se destina a Ambientes Gráficos (Interface gráfica). vc realmente queria fazer um retângulo dentro do ambiente gráfico ou estava apenas querendo desenhar um retângulo ?
IcaroFilhoModeradorBoa tarde Bruna.
O arquivo que deseja copiar esta dentro de um pasta ? (digo que esta no campo folder)
se não estiver conseguindo com CTRL+C | CTRL+V, vc consegue manualmente ? (botão direito → copy ; botão direito → paste)
IcaroFilhoModeradorBom dia. sua duvida é a respeito do exercício 11 ou 12 ?
IcaroFilhoModeradorQual a sua duvida em si ? qual parte do programa conseguiu concretizar ?
IcaroFilhoModeradorBoa noite. Então, eu aprendi aqui mesmo =)
é que eu fiz programação básica. depois JS, depois C# e por fim Python (que é a linguagem que resolvi ficar pelo fato de ser uma linguagem no meu ver, mais abrangente (consigo fazer a parte web, alguns softwares, bigdata e data science), embora tenha gostado muito do C# ).
Foram os únicos cursos de programação que fiz.
Eu acredito que tudo é o jeito que se estudar…
você tem q descobrir qual o melhor método de estudo pra você. Eu estudo da seguinte maneira.Assisto as aulas na sequencia (tratando-se de programação básica acho que é aula com um exercício no final) e durante a aula faço as anotações de tudo em um rascunho qualquer. depois faço os exercícios propostos (e não assisto a resolução dada, apenas quando encerro todos as aulas). por fim eu arrumo um tempo e passo todo o rascunho pra um arquivo de texto (word no caso). Isso me ajudou muito a fixar.
Assim na verdade o rascunho vira um e-book (tipo uma apostila bem organizada e estruturada).
toda vez que preciso achar alguma informação, vou no word e acho facilmente o que procuro.
Ou seja, eu fiz uma apostila para cada linguagem que estudei aqui.Sobre sua pergunta de testes condicionais. a resposta é simples. Exercício!
quanto mais você praticar, mais fluido as coisas ficam. Por isso o Guanabara fala para não copiar e colar trechos de código.
tente sempre digitar o máximo possível. além de te ajudar a fixar, vai melhorar seu raciocínio e sua coordenação motora (vai digitar mais rápido com o tempo)IcaroFilhoModeradorBoa tarde Antônio.
Primeiro uma dica, tente mandar seus códigos formatados.
-> copie e cole o seu código normalmente aqui.
-> em seguida selecione ele todo.
-> clique em CODE na barra de formatação de texto.
(isto fará com que as tags sejam postas tanto no começo quanto no final).Quanto ao seu código:
realmente ele esta rodando sem nenhum problema e o método feito não esta errado. Contudo, esta gastando memoria desnecessariamente criando 2 variáveis para armazenar valores replicados em outras variáveis. Além de estar fazendo mais testes lógicos dentro dos condicionais.
(n1<n2 ou n1>n2 ou n2<1 ou n2>n1)
n1 < n2 -> n1 menor que n2
n1 > n2 -> n1 maior que n2
n2 < n1 -> n2 menor que n1
n2 > n1 -> n2 maior que n1
Se n1 é menor q n2 (n1 < n2), pode se afirmar que n2 é maior que n1 (n2 > n1)
se n1 é maior que n2 (n1 > n2), pode se afirmar que n2 é menor que n1 (n2 < n1)
ou seja, dos 4 testes lógicos, 2 são repetidos.Quando vamos para os testes condicionais vc primeiro cria uma condição para determinar uma ordem. se não for esta ordem, ela inverte.
dai uma condição para escrever a primeira ordem e se não encaixar, dar a mensagem de iguais. total de 4 condições.
Sendo mais simples determinar a primeira condiçãon1 > n2
depois uma outra condiçãon1 < n2
e a terceira seria a sobra. (que só poderia um numero ser igual ao outro).Não sei qual a resolução do professor. Mas baseado no seu, escrevi um código para vc analisar.
programa { funcao inicio() { inteiro num1, num2 escreva("Escreva um número: ") leia(num1) escreva("Escreva um segundo número: ") leia(num2) se (num1<num2) { escreva ("Es numeros em ordem são:", num1 ," - ",num2) }senao se (num2<num1) { escreva ("Es numeros em ordem são:", num2 ," - ",num1) }senao { escreva("Não tem como colocar esses valores em ordem, eles são iguais!") } } }
IcaroFilhoModeradorBom dia.
1- A formatação os princípios da programação. se abre uma chave necessita fechar.
quando postou seu código apenas abriu a chave da formatação'
, então ele não sabe onde termina e não formata.
eu faço de uma maneira mais pratica.
1- Eu copio o código, colo aqui.
2- Seleciono todo o código.
3- Com ele selecionado, aperto apenas um vez no CODE que ele já abre e fecha nas extremidades.
2- Quanto a sua duvida, tem algumas maneiras.
1- Tem por meio de validação que se aprende aqui. (mesmo método que se permite o uso de virgula para o seu peso sem ‘crashar’)
2 – Pode se tratar os erros pelas exceções (try…except)para te ajudar na tentativa, pense o seguinte.
Vc fez o programa, o usuário ira utilizar. A partir dai sua linha de pensamento será: ‘Se o usuário fizer isso acontecerá isso’, ‘E se ele fizer isso acontecerá isto’ ,…IcaroFilhoModeradorfala irmão. Ótima pratica essa que esta fazendo de pegar os exercícios propostos e “por mais carga de dificuldades nele”
Continue com isso e verá que escreverá com mais fluidez…Vamos as consideração e me desculpe qualquer erro… ( a tutora vai me corrigir e ponderar caso tenha algum/muitos erros da minha parte =) )
Antes de tudo utilize a formatação
CODE
para postar seus códigos aqui no fórum. isto permite que a formatação venha sem alterações, ficando muito mais legível. E caso seja a ponto de procurar uma falha, fica melhor para te dar um feedback.
Outra coisa é que não há muito o que questionar, pois o principal de uma aplicação é atender aos requisitos.Eu estava escrevendo um monte de coisa, mas não iria adiantar muito pois você esta limitado pela nível matéria ainda. (dicionários, módulos, etc…)
Já que disse se tratar de um nível mais profissional, tente pegar o programa e aumentar o nível de validações para diminuir o erro no programa.
Ex. nome aceitar apenas letras (atualmente, se vc disser que o nome é 22 ele vai aceitar).
permita que o usuário digite ‘,’ (virgula) no peso ( a maioria das pessoas normalmente digita virgula ao invés do ponto)IcaroFilhoModeradorBom dia Antônio.
Assim fica meio vaga para eu conseguir te ajudar.
1º – Poste aqui o seu código (de preferencia formatado (copie e cole o código do Portugal Studio e selecione ele todo aqui. Em seguida clique em “CODE” na aba de formatação de texto. Já saira formatado com os espaços))2º vamos ver se consigo te ajudar.
A respeito de criar os 2 contadores individuais, vc lembra que terá que testar se é ou não a primeira entrada para cada sexo, correto?
Logo essas variáveis serão postas dentro de cada sexo para contar individualmente a entrada.
elas são variáveis acumuladorasvar = var + var2
, no caso,c_masc = c_masc + 1
,c_fem = c_fem + 1
.
Sua única função aqui será checar se é ou não a primeira entrada ( ou saber quantas pessoas de cada sexo foram inseridas, td depende do que deseja fazer)se (sx =="F"){ c_fem += 1 se (c_fem == 1){ nome_mulher_jovem = nome m_mais_jovem = idade } senao { BLOCO
Novamente, se continuar com duvidas, pose seu código aqui que tento te explicar em cima dele.
IcaroFilhoModeradorTodo equipamento vem com manual e descrição. em alguma parte vai estar escrita qual o padrão dele.
ai basta comprar o padrão dos seus equipamentos com o padrão da sua rede.
se seu equipamento for 802.11b e sua rede 802.11n, seu equipamento vai ser limitado pelo próprio hardware.
o contrario a mesma coisa, se seu equipamento wifi for 802.11g e sua internet for de 120, seu próprio equipamento esta limitando a velocidade. (o mesmo vale para as frequências 5.0GHz e 2.4 GHz)IcaroFilhoModeradorBom dia Lizender,
vc pode usar outras bibliotecas como:-
playsound
from playsound import playsound playsound('audio.mp3')
-
pydub
from pydub import AudioSegment from pydub.playback import play song = AudioSegment.from_wav("sound.wav") play(song)
-
Pode usar o tkSnack dentro do Tkinter
from Tkinter import * import tkSnack root = Tk() tkSnack.initializeSnack(root) snd = tkSnack.Sound() snd.read('sound.wav') snd.play(blocking=1)
dentre outras bibliotecas… para o desafio 21 o mais pratico e fácil é a primeira opção.
IcaroFilhoModeradorMuito bom dia Paulo.
Este exercício trata da utilização da estrutura de controle dentro da estrutura de repetição (para te exemplificar usarei enquanto, mas pode fazer com para ou faça).
vamos começar com a estrutura de repetição:
O exercício pede uma contagem que inicia no 1 e pede que informemos o fim.
sendo assim, precisaremos a variável de começo e de fim (como este exercício pede que seja escrito a progressão, podemos utilizar a variável ‘inicio’ como acumulador também (vai entender quando visualizar )).inteiro start = 1 inteiro end
a variável
end
terá q ser informada pelo comandoleia
agora a estrutura do enquanto ficara:
enquanto (start <= end){ // enquanto o start for menor ou igual a end, irá realizar o bloco. bloco //será nossa condição. }
o enquanto irá fazer a contagem até o numero informado (end)
Agora ele nos pode para que todo numero múltiplo de 4 seja substituído por PIN!
para isso criaremos a condição
Como sabemos que o numero é divisível por 4? Todo numero que for divisível terá resto 0, então:se ( start % 4 == 0 ) { bloco }senao { bloco }
se lembra do acumulador? ele será o numero que será dividido por 4, logo o
start += 1
sempre que o bloco for executado. e dentro do bloco que for divisível por 4 irá escrever PIN e o que não for escreverá o acumulador
Abaixo segue o código (esta cru, sem as formatações… tente olhar ele após vc conseguir resolver o seu ou para tirar duvidas).inteiro start = 1 inteiro end escreva("\nonde termina a contagem? ") leia (end) enquanto (start <= end){ se (start % 4 == 0) { escreva ("PIN\n") start += 1 } senao { escreva (start, " ") start += 1 } } escreva("\nFIM DO PROGRAMA!\n")
IcaroFilhoModeradorPela ordem de precedência, deve-se fazer primeiro os parênteses
(a > b)
,(c % 2 == 10)
vc n informa A e B , mas ja afirma que é Falso.
Também não passa o valor de C mas afirma que o resto é 0, logo temos a afirmação 0 igual a 10, FALSO
até aqui temos:x = (F) ou nao (F)
agora vamos na ordem de precedêncianão
→e
→ou
→
nao (F)
, o que não é falso, é verdadeiro.
→x = F ou V
, basta um operador ser verdadeiro para o resultado ser verdadeiro.
→x = v
Não tem como ter dado falso.
por favor poste o seu codigo completo2 de abril de 2021 às 19:04 em resposta a: M04A18 – Busca Binária em Vetores – Módulo 04: Variáveis compostas #64253IcaroFilhoModeradorEu geralmente faço o seguinte.
Copio o codigo normalmente do IDLE para o forum (ele vai vir com os espaços certinhos.
seleciono todo o codigo e clico em CODE na aba de formatação.
isso fara com que seja posto a abertura e fechamento da formatação de uma vez (serve para todos as formatações)2 de abril de 2021 às 11:58 em resposta a: M04A18 – Busca Binária em Vetores – Módulo 04: Variáveis compostas #64227IcaroFilhoModeradorBom dia. não entendi o que quis dizer.
Esta falando que na resolução do exercício, o método proposto acarreta em falha caso o ultimo item seja a chave ?
e que fez um outro código que corrige este fator ?Por favor, posta ele em formato de código. Pq desse modo ai da muito trabalho pra corrigir e por no portugol
- Declaramos as variaveis que prentede usar. (no caso v e r)
-
AutorPosts