Ir ao conteúdo
  • Cadastre-se

Boko Moko

Membro Pleno
  • Posts

    149
  • Cadastrado em

  • Última visita

Tudo que Boko Moko postou

  1. Acho que a ideia é usar a exibição de resultados usando letras gregas. Para fins de lógica dos programas, não recomendo usar letras gregas para nomear as variáveis Por exemplo, o delta. No seu programa você poderia colocar deltat = temperaturafinal - temperaturainicial; printf("O Δt foi %f", deltat);
  2. Vamos por partes Primeira dica que foi dada : inicializar uma variável que vai ter o total da soma. Soma , contador, tudo isso se inicializa com zero. Como faz isso ? Escolha um nome a variável que vai conter a soma e inicialize ela com 0. Consegue fazer isso ? Depois se faz um laço que começa no valor inicial e termina no valor maior, dentro do laço, soma os valores ao somatório. Se lembra como faz um laço ? um for ? Dá um chute aí ... Não tenha vergonha de tentar, de experimentar.
  3. aqui a ideia é inicializar uma variável que vai ter o total da soma. Soma , contador, tudo isso se inicializa com zero. produtório se inicializa com 1. Depois se faz um laço que começa no valor inicial e termina no valor maior, dntro do laço, soma os valores ao somatório. Consegue fazer agora ? Esse aqui é fácil demais. Ler dois números e fazer a comparação. Qual comando se usa para fazer comparação ? Dica, é o IF aqui a dica é que você pode exibir os valores trocados apenas. Ou , se quiser complicar, troca o valor de uma variável pela outra. Para fazer da primeira forma é simples: ler um valor (A) ler outro valor (B) exibir o outro valor primeiro (B) depois exibir o um valor (A) Ou ler um valor (A) ler outro valor (B) trocar A por B (para isso vai precisar de uma variável auxiliar) exibir A exibir B Desconfio que é isso que seu professor quer. Ë um exercício clássico em cursos de programação porque tem que aprender essa manha de usar a variável auxiliar.
  4. Professor bom é aquele que deixa o aluno bolar a solução original. Assim tem chance de aprender com o aluno. Fica a dica: não se limite ao que o professor de programação ensina.
  5. aproveitando o código do ISRNICK #include <stdio.h> /* printf() */ void codigo() { int x,contador=1; int menorNumero; printf("Digite um número: "); scanf("%d",&menorNumero); /* como a variável i só servirá para contar o loop, é bom declarará-la no bloco do for */ for (int i=1;i<=4;i++) { /* já que não estamos indexando vetor algum, para ficar mais claro o for use de 1 até o limite */ printf("Digite um número: "); scanf("%d",&x); if (x<menorNumero) { //se o número lido for menor que o menor atual menorNumero=x; //atualiza o menor contador=0; //zera o contador } contador += (x==menorNumero) { //se o númerido lido é igual ao então menor } } printf("O menor número é %d e %d números são iguais ao menor número lido\n",menorNumero,contador); } int main() { codigo(); return 0; }
  6. Nesse caso dá para fazer dois métodos estáticos. Um para converter de decimal para binário e outro para fazer o inverso. Só lembrando, o algoritmo para converter de decimal para binário é dividir por 2 e tirar o resto 187 dividido por 2 = 93 resta 1 93 dividido por 2 = 46 resta 1 46 dividido por 2 = 23 resta 0 23 dividido por 2 = 11 resta 1 11 dividido por 2 = 5 resta 1 5 dividido por 2 = 2 = resta 1 2 dividido por 2 = 1 resta 0 1 dividido por 2 = 0 resta 1 entào pegamos os restos de baixo para cima 10111011, aqui o resultado pode usar string, já que não vai fazer conta com ele Para converter de decimal para binário o algoritmo é 0 + 1 = 1 * 2 = 2 2 + 0 = 2 * 2 = 4 4 + 1 = 5 * 2 = 10 10 + 1 = 11 * 2 = 22 22 + 1 = 23 * 2 = 46 46 + 0 = 46 * 2 = 92 92 + 1 = 93 * 2 = 186 186 +1 = 187 aqui o parametro pode ser string e o resultado inteiro. Para pegar uma parte de uma string pode usar o método charAt() que recebe como parametro uma posição Por exemplo "10111011".charAt(0) retorna o primeiro "1" já charAt(7) retorna o último "1" adicionado 0 minutos depois Precisa de mais alguma dica ?
  7. Recomendo ler as linhas de texto e colocar numa árvore binária. Lê uma linha, insere-a na árvore binária. Depois de lido o arquivo, percorre a árvore binária e a cada nó, escreve a linha. A árvore binária já coloca as linhas em ordem. O argumento para comparação durante a inserção seria as colunas usadas para classificação. O nó da árvore seria algo assim class Nó { String linha ; Nó maior ; Nó menor ; } Aí criaria uma classe árvore assim classe Arvore { Nó raiz; } public void insere( Arvore raiz , String novalinha) { if (raiz == null) { Nó novonó = new Nó(); novonó.String = novalinha; novonó.maior = null; novonó.menor = null; raiz = novonó; } else { int compara = strcmp(novalinha,raiz.linha); if (compara >=0) { insere(raiz.maior, novalinha); } else { insere(raiz.menor, novalinha) ; } } public void percorre( Arvore raiz) { if (raiz == null) { return; } percorre(raiz.menor); System.out.println( raiz.linha) ; percorre(raiz.maior); } adicionado 0 minutos depois Realmente, bem mais simples. parabens
  8. acho que devemos começar pelo algoritmo genérico e depois implementar. Primeiro, uma rotina para gerar novos aviões. Ela vai gerar de 0 a 3 números pares. É a fila de pouso. Em seguida ela enfileira cada um desses aviões numa pista para pouso. Para isso é preciso fazer um "round robin". Como são 3 pistas, numere-as de 1 a 3 (1, 2 e 3). Então se aparecerem 2 aviões para pousar, a terceira pista fica livre para decolagem. Quando terminar os pousos (ou seja, vai tirando da fila de pousos para 1,2,3, depois 1,2,3 de novo e assim por diante ou seja, (x-1) %3 + 1; Adicione aviões a fila de decolagem, agora com números ímpares. Tira quantos aviões da fila quantas forem as pistas disponíveis e depois volta para a primeira pista. Quando a fila de pousos ficar vazia, está na hora de tratar a fila de decolagens. Ou seja, vai tirando de
  9. Não importei biblioteca alguma E tente abrir mais a cabeça ok ? De fato, o código do Devair é mais didático. Mesmo assim é bom pensar fora do envelope. Programador que só faz o que o professor pede não aprende.
  10. Precisa estudar mais os métodos setters (e os getters)
  11. Isso mesmo Eu citei a temperatura da água justamente por causa disso que você falou. Em condições normais, variará de 0 a 100 porém, submetida a pressão alta ou muito baixa ... pode-se ter água em muitas outras temperaturas. Concordo novamente. Por isso que acho que o debate é bom. O argumento do Oliveira é "ahhh mas se o cara digitar um valor maior" ... portanto, abrimos a porteira e fugimos do escopo como você mencionou. Podemos supor que o usuário digitará letras e nào só algarismos, e por aí vai. O que importa é a técnica demonstrada. Se usar um valor grande para inicializar a variável o algoritmo fica mais simples e mais eficaz e está dentro do escopo. adicionado 14 minutos depois excelente dica. No COBOL velho de guerra tinha o famigerado "high value"
  12. Certamente, o código do Devair tá muito mais didático É que com o Python, voltou a moda de fazer oneliners Era um desafio na época do tk82
  13. Dentro de toda análise de função é preciso saber o domínio. Por exemplo, qual temperatura da água ? então saberemos que é algum valor entre 0 e 100 portanto 9999 seria impossível. Se for uma idade ? 200 seria um valor impossível Porém, a gente nunca pode subestimar a estupidez dos usuários, né mesmo ? Para esse caso, os testes que tornariam o programa a prova de débil-mental o tornariam bastante complicados. Por exemplo, o usuário está usando input de valores inteiros. Entào devolvo a pergunta. E se o usuário digitar uma palavra em vez de um número ?
  14. Eu usaria um menor número artificial, 99999 Assim o codigo fica mais simples menor = 99999 A primeira comparaçào que fizzer, o número digitado sera menor, aí reinicia o contador. No mesmo lugar Se número for menor que o menor, o número passa a ser o menor e o contador volta a 1 se o número for igual ao menor, conta mais um se o número num for menor que o menor, nem for igual, faz nada ... testa o próximo número
  15. Nesse caso, teria que multiplicar por -1 e não por 1 if(vet[x]<0){ vet[x]=vet[x]*-1; } ou if(vet[x]<0){ vet[x] *= -1; } adicionado 1 minuto depois O que você tem que fazer é pegar a diferença de cada par. calcular todos os pares possíveis e calcular a diferença entre eles. Em seguida, salvar o que tiver diferença maior.
  16. A ideia de perguntar é justamente para fazer o autor pensar. Provavelmente ele copiou/colou e não entendeu qual era a ideia. Talvez a partir do questionamento surgisse ...
  17. Toda vez que o menor número mudar, tem que voltar o contador, concorda ? Para que valor o contador deve voltar ?
  18. Qual e a ideia por traz desse código aqui? o que você pretendia fazer?
  19. Oneliner print( sum( [ i for i in range(int(input("Informe o primeiro valor")),int(input("Informe o segundo valor"))+1) if i%2==0 ])) adicionado 3 minutos depois https://repl.it/@bokomoko/Soma-dos-pares-num-intervalo
  20. A pergunta permanece Porque usou throws Excepction ?
  21. Porque no case 2 : você deu esse comando case 2: novo = new Lista(); ? Não entendi. adicionado 27 minutos depois Lista menor = new Lista(); aux = inicio; if (inicio == null ) { /* lista vazia */ System.out.println("Lista vazia"); break; } else { menor = inicio ; } while(aux != null ) { if ( aux.num < menor.num ) { menor = aux } aux = aux.prox; } if (menor.ant != null) { menor.ant.prox = menor.prox; } if (menor.prox != null) { menor.prox.ant = menor.ant ; } menor.ant = null; menor.prox = inicio; inicio = menor; System.out.println("O menor valor é "+);
  22. Porque usou isso ? não vejo o que falta no seu programa.
  23. Acho que não é isso que seu professor vai querer. Fique ligado. C só trabalha com passagem de parâmetros por valor. Um vetor seria um monte de valores empilhados. Tem que passar por referência. Mas como ? Passa o valor de um apontador.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!