Home › Fóruns › Programação Básica › Duvida enorme sobre ex. 25
- Este tópico contém 5 respostas, 5 vozes e foi atualizado pela última vez 3 anos, 8 meses atrás por IcaroFilho.
-
AutorPosts
-
-
21 de março de 2021 às 00:57 #63543Felipe gomes GonçalvesParticipante
olá gostaria de uma explicação melhor sobre como fazer o calculo para saber o maior meio e menor pois nao entendi quase nada entre um monte de letras a , b e c não sei pq sem o c tem que ser maior q os outros. se existir uma maneira mais fácil de explicar gostaria eu ja assisti o video 5 vezes e isso não entro na minha cabeça.
-
23 de março de 2021 às 17:21 #63701FRANCISCO TADEU PEZZIParticipante
Olá Felipe vou tentar, Quando você cria as variáveis inteira, sejam elas a, b e c ou v1, v2, v3 ou n1, n2 ou n3 Quais que lhe agrade dentro de uma lógica,
e atribuímos a elas valores aleatório e neste caso nos utilizamos de uma estrutura aninhada para testar as possibilidades. Começando com o caso:se (a > b) { // Primeira condição externa se(c > a) { // alocando na sequencia c > a > b - 1º condição interna aninhada maior = c inter = a menor = b }senao se (c > b){ // alocando que c não > a e c > b e a > b só pode ser a > c > b - 2º condição interna aninhada maior = a inter = c menor = b } senao { restando do primeiro se a>b a possibilidade de a>b>c - caso as duas primeiras não correspondam. maior = a inter = b menor = c } }senao se (c>b){ // a não > b temos está configuração: c > b > a - 2º condição externa maior = c inter = b menor = a } senao se (c>a) { // a não > b temos a configuração b > c > a - 3º condição externa maior = b inter = c menor = a } senao { // resta a configuração a não > b : b > a > c - Caso nenhuma das anteriores se encaixem maior = b inter = a menor = c }
Desculpe se confundi mais do que ajudei, essa é minha interpretação! Bons estudos e não desista nunca!
Persistência tem que ser nosso lema! -
23 de março de 2021 às 18:04 #63702IcaroFilhoModerador
Caro 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. -
24 de março de 2021 às 21:13 #63775Tutora MaylaMestre
Felipe, vamos falar um pouco sobre as possibilidades na hora de ordenar números.
Se tivermos apenas um valor X, as possibilidades são:
- X é o maior valor
- X é o menor valor
Pois como temos um só valor, ele ocupa essas 2 posições.
Agora se tivermos 2 valores, X e Y, temos 2 possibilidades:
- X > Y
- Y > X
Se tivermos 3 valores(X, Y e Z), como diz a questão, temos 6 possibilidades:
- X > Y > Z
- X > Z > Y
- Y > Z > X
- Y > X > Z
- Z > Y > X
- Z > X > Y
Da forma que escrevi acima, poderia ser feita uma sequencia de
se senao
, testando as 6 possibilidades para então dizer qual delas é verdadeira. Porém como podemos notar existem mais de um caso onde uma comparação como X > Y é verdadeira. Logo para evitar duplicar esse teste podemos utilizar blocosse
aninhados. Ressalto que fazer os 6 testes não estaria errado, porém além de ser uma questão onde é possível exercitar condições aninhadas, o seu uso é bom pois ajuda a entender melhor a lógica para em que situações onde a ordenação seja com maior quantidades de números o código não fique muito extenso e trabalhoso. Por exemplo se fossem para ordenar 4 números seriam 24 possibilidades, enquanto para ordenar 5 números seriam 120 possibilidades.Voltando a duplicação de código. Como poderíamos evitar de duplicar o teste de X > Y ?
se (X > Y) { //aqui contempla as opções abaixo onde X > Y //X > Y > Z //X > Z > Y //Z > X > Y } senao { //aqui contempla as opções onde X < Y, pois consideramos aqui que se X não é maior que Y, ele entrará no grupo de menor (se desejado pode ser feita a opção para ambos serem iguais) //Y > Z > X //Y > X > Z //Z > Y > X }
De forma semelhante, dentro do
se
, podemos testar se Y > Z adicionando umse senao
:se (X > Y) { //aqui contempla as opções abaixo onde X > Y se(Y > Z) { //X > Y > Z } senao se (Z > X){ //Z > X > Y } senao se (Z > Y) { //X > Z > Y } } senao { //aqui contempla as opções onde X < Y, pois consideramos aqui que se X não é maior que Y, ele entrará no grupo de menor (se desejado pode ser feita a opção para ambos serem iguais) //Y > Z > X //Y > X > Z //Z > Y > X }
Dentro do bloco
senao
a lógica é semelhante ao blocose
, basta pensar quais são os testes que devem ser feitos.
Ressalto que o testesenao se (Z > Y)
não é necessário, pois não sendo nenhuma das 2 ordens acima só resta como opção o terceira ordem. Aqui poderia ser feito apenas osenao
por ultimo, mas também não há problema em realizar o teste se ajuda a entender melhor.Minha resolução foi diferente da do Professor Guanabara, mas como ele mesmo diz no vídeo não existe apenas uma resposta correta. Espero que explicando de outra forma outra resolução seu entendimento da questão tenha sido melhor, mas caso a dúvida ainda persista volte a entrar em contato conosco que continuaremos te ajudando.
-
25 de março de 2021 às 22:04 #63850Antonio Carlos Belemel da CruzParticipante
Fala pessoal,
Obrigado pela força, só gente fera, consegui fazer o exercicio com base no código do Francisco, porém só entendi mesmo depois da explicação do Icaro simulando mentalmente com números.Obrigado a todos tava a dois dias travado já…rs
-
26 de março de 2021 às 10:03 #63865IcaroFilhoModerador
Estamos 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…
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.