Ir ao conteúdo
  • Cadastre-se

isrnick

Membro Pleno
  • Posts

    1.543
  • Cadastrado em

  • Última visita

posts postados por isrnick

  1. @Matheus Maldi

    Você não considerou o último comando da imagem da entrada onde está escrito "cod" esse comando serve para dizer que deve ordenar pelo código (idade no seu caso), alternativamente ao invés de "cod" poderia escolher digitar "nome" e nesse caso indicaria para o programa ordenar por nome.

     

    Leia o enunciado completo postado pela Julia Leite:

     

    image.png

     

    Note também que cod é um identificador único, então não terá 2 cods iguais (o que não é o caso de idade).

     

  2. @arfneto Eu penso na bolha de sabão e a direção muda dependendo do gás que põe dentro.

     

    E quem deu o nome foram os americanos que usam bolha (Bubble) cotidianamente para indicar isolamento, tem até uma expressão "living in a bubble" (vive numa bolha) para indicar alguém vivendo fora da realidade.

    • Curtir 1
    • Haha 1
  3. @arfneto Uma bolha não necessariamente flutua para cima, bolhas também podem afundar, depende da diferença de densidade entre os 2 fluidos.

     

     

    A característica que define a existência de uma bolha é a separação/isolamento dos fluidos, ou seja o fato deles não se misturarem, e não importa a direção que se move ou se fica estática.

     

    • Curtir 2
  4. 2 horas atrás, arfneto disse:

    Foi nesse tópico que falei aqui desse lance âncora/bolha que eu não consigo aceitar!

    Tem mais de um jeito de interpretar o nome Bubble Sort . Pode considerar que os elementos maiores vão flutuando para o fim da lista a cada ciclo do loop.

     

    Ou também dá para considerar o fato de que somente 1 par de elementos adjacentes é considerada a cada operação de ordenação, ignorando o restante da lista, com se houvesse uma bolha isolando/destacando os 2 elementos adjacentes do resto da lista. Esse GIF até ilustra a suposta "bolha" em vermelho:

     

    Bubble-sort-example-300px.gif

     

    • Curtir 1
  5. Não é complicado, como sempre na programação faça por partes, e vá testando o programa a cada adição/alteração que fizer.

     

    Primeiro crie um vetor de 20 posições, e faça o código do loop que pede 20 vezes para o usuário digitar um valor e vai preenchendo o vetor.

     

    Faz o loop para imprimir os 20 valores do vetor.

     

    Depois faça a parte que usa um algoritmo de ordenação para ordenar os valores no vetor, basta pesquisar e vai achar vários algoritmos de ordenação, um algoritmo bem simples e muito usado por iniciantes é o Bubble Sort (ordenação por flutuação).

     

    E faz o loop para imprimir os 20 valores do vetor que devem estar ordenados.

     

    Se tiver problemas poste sua tentativa ou dúvidas para podermos ajudar.

    • Curtir 1
  6. 3 minutos atrás, Mauro Britivaldo disse:

    Para testa se na memória reservada há espaço para mais um elemento. 

     

    Essa função não indica se tem espaço para mais um elemento, ela só indica se está vazia, a função para checar se tem espaço é a que checa se está cheia.

     

    Na verdade ela seria usada quando estiver removendo elementos da lista, para indicar se ainda tem elementos para serem removidos.

     

    (E quando lista é NULL não tem items para serem removidos. hahahaha 😆 )

  7. @Mauro Britivaldo  Não há dúvidas, o -1 na função do professor é para indicar VERDADEIRO.

     

    Afinal se fosse para indicar um erro então no escopo que chamou a função, teria que pegar o retorno da função e fazer um if else if para verificar se retornou -1, 0 ou 1, e se vai ter que fazer isso para que a função foi criada? Nesse caso seria melhor não usar a função e testar direto no escopo original se é NULL e se está vazia.

     

    A única vantagem dessa função é possibilitar fazer isso:

    if( lista_vazia(lista) ){
        //faz algo
    }

    Então só tem uma possibilidade o -1 é para indicar VERDADEIRO.

    • Curtir 1
  8. Aliás a título de curiosidade o argumento para usar -1 ao invés de 1 para indicar quando é VERDADEIRO é por causa da forma binária.

     

    -1 fica como ..111111111 (todos os bits igual 1) na forma binária.

     

    Enquanto 1 fica como ..00000001 (só 1 bit fica igual a 1).

     

    E o 0 obviamente é ..0000000  (todos os bits iguais a 0).

     

    Então dá para dizer que -1 é o total oposto de 0 na forma binária, enquanto o 1 só é diferente em 1 bit do 0. Logo, -1 representa melhor o estado oposto de 0 == FALSO.

     

    Tem até uma discussão de que usando -1 teria menos risco de uma falha na memória mudar o estado de VERDADEIRO para FALSO e vice-versa, e gerar resultados oposto ao esperado na execução do programa, pois seria necessário que a falha invertesse todos os bits para transformar um -1 em um 0 e vice-versa.

    • Curtir 1
  9. Não é que está em direção ao centro, é que todos os valores são diferentes (não tem repetidos), e todos os valores estão inclusos no intervalo (não pula nenhum número entre o maior e o menor número), e a altura de cada ponto indica qual é maior, então acaba que o maior fica no canto superior direito e o menor no canto inferior esquerdo, com todos os outros em ordem crescente no meio (ou seja estão ordenados), o que acaba formando uma reta na diagonal.

    • Curtir 1
    • Obrigado 1
  10. 7 minutos atrás, Brendo Washingtonn disse:

    ah, acho que por enquanto ainda é muito avançado para mim ,minha professora ainda não nos instruiu quanto a isso

     

    Não é complicado, seria algo parecido com isso:

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
        int qtdSim = 0;
        string s;
        
        cout<<"Telefonou para a vitima? ";
        cin>>s;
        if(s == "Sim" || s == "sim" || s == "SIM"){
            qtdSim = qtdSim + 1;
        }
        
        cout<<"voce esteve no local do crime? ";
        cin>>s;    
        if(s == "Sim" || s == "sim" || s == "SIM"){
            qtdSim = qtdSim + 1;
        }
        
        cout<<qtdSim<<endl;
        
        return 0;
    }

    Observe que s não é um int mas sim uma string.

    • Curtir 1
    • Amei 1
  11. 5 minutos atrás, Brendo Washingtonn disse:

    então em geral, não é necessário o uso de "{}"  ou se for usar, colocar em tudo?

     

    Só pode deixar sem { } quando dentro do bloco só tem 1 única linha de comando, se tiver mais de 1 é obrigatório colocar o { }.

     

    if (a == b) {
        c = 4 * d;
    }
    
    //é igual a:
    
    if (a == b)
        c = 4 * d;
    
    //e também:
    
    if (a == b) c = 4 * d;

     

    Mas não pode fazer neste caso:

    if (a == b) {
        c = 4 * d;
        d++;
    }

    Pois:

    if (a == b)
        c = 4 * d;
        d++;
    
    //na verdade é igual a:
    
    if (a == b) {
        c = 4 * d;
    }
    d++;
    //Que faz algo bem diferente do original

     

     

    Algumas pessoas até preferem sempre colocar { } em todos os casos só manter a consistência, mas aí é uma questão de preferência.

    • Obrigado 1
  12. 6 minutos atrás, Brendo Washingtonn disse:

    mas, nesse caso ele não acusaria qualquer numero abaixo de 4 como cúmplice também?

    adicionado 0 minutos depois

    mesmo 2, que seria Suspeito?

     

    Não pois ele só testaria esse if se os ifs anteriores foram ambos falsos, é exatamente para isso que serve o else (=senão) que tem no else if, então já testou que qtdSim não é <= 1 nem ==2, logo só vai entrar nesse if se for 3 ou 4.

    • Curtir 1
    • Amei 1
  13. 9 minutos atrás, Simon Viegas disse:

    Apenas faltou o 3!!! Exemplo:

     

    
    if (qtdSim <= 1){
        cout<<"Inocente ";
    }
    else if ((qtdSim == 2) || (qtdSim == 3)){
        cout<<"Suspeito ";
    }
    else if (qtdSim <= 4){
        cout<<"Cumplice ";
    }
    else {
        cout<<"Assassino ";
    }

     

    Não faltou não, meu código já considera o 3, segundo o enunciado para 3 ou 4 ele é Cúmplice, que é o que meu código faz.

    • Curtir 1
    • Amei 1
  14. Gif do Bubble Sort:

    Bubble-sort-example-300px.gif

     

    11 minutos atrás, arfneto disse:

    Não é necessário: só há dois critérios e poderia ser um único bit: 0 para COD e 1 para nome por exemplo. 

     

    Sim, tecnicamente é desnecessário, mas o exemplo de entradas usa o texto "cod" ao invés de um número.

    (Principalmente se a resposta for testada por um programa ao invés do professor, qualquer mudança é considerada um erro pelo programa.)

    • Curtir 1
  15. Bubble Sort é bem simples, você percorre a lista várias vezes do começo até a penúltima, e compara o item atual da lista com o próximo, se o próximo for menor que o atual então deve trocar os items de posição, assim os menores vão sendo movidos para o começo da lista, para uma lista com N items percorre a lista inteira N-1 vezes fazendo trocas e vai obter a lista ordenada, ou então pode parar de percorrer se percorrer a lista inteira uma vez sem fazer nenhuma troca.

    • Curtir 1
  16. Tem sérios problemas de recursão descontrolada no código, seu programa chama as funções mas nunca finaliza e retorna delas, pois ao invés de usar return ou deixar chegar ao fim do código da função (quando a função é void) você faz uma chamada para uma nova instancia da função do nível anterior.

     

    Veja um exemplo do que seu programa pode fazer ao chamar novamente as funções (ao invés de retornar):

     

    main -> Menu -> Gamemode -> VersusCOM -> GameMode -> Menu -> GameMode -> VersusHuman

     

    Observe que toda vez você chama a função e então no exemplo acima tem 3 funções Gamemode carregadas, 2 Menu, e 1 VersusCom carregados na memória, incluindo as variáveis criadas nelas que não está mais usando, enquanto está jogando no VersusHuman.

    • Curtir 2

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...