Mensagens enviadas por: entanglement
Índice dos Fóruns » Perfil de entanglement » Mensagens enviadas por entanglement
Autor Mensagem
caio_sope wrote:Pessoal, dei uma pesquisada no fórum e não encontrei.


De fato, saber as palavras corretas é metade da resposta.

O conceito está correto (guardar algo no cache do navegador) mas as palavras (cookie) é que você não sabia.

Isso se chama "cookie". Existe uma vasta literatura sobre cookies
Hoje em dia, é interessante aprender sobre assembly de microcontroladores ou então sobre assembly de processadores mais modernos.
Bom, o conteúdo da revista portuguesa é interessante mas um bocadinho antigo - ele fala de processadores de 8 bits (Z80) e de 16 bits (8088 ) - e realmente eu sabia bem os de 8 e os de 16 (e mais ou menos eu sei o de 32, que é o 80386, mas náo sei muito bem o de 64, que é o conjunto EMT64 / AMD64).
O seu problema é que, se for testar esse código em um Windows de 64 bits, você vai ter problemas para rodá-lo (porque ele não consegue mais rodar programas de 16, exceto se for em uma máquina virtual).
Além disso, as ferramentas citadas são bem antigas (EXE2BIN etc.) e têm problemas de disponibilidade (se procurar no site da Microsoft, no Platform SDK, ele vai ter uma versão do MASM e do LINK que compila só a partir de 32 bits). Você iria ter de desencavar um TASM ("Turbo Assembler") de 16 bits em algum lugar.
digaoneves wrote:
GabbiRold wrote:Olá pessoal, eu tenho que fazer um exercicio de vetores utilizando o math.radom() mas eu não sei direitinho como ele funciona. Alguem aí tem um artigo ou uma explicação simples, só pra eu entender a funcionalidade dele e ta. Obrigado aí.


O Math.random() te gera um número aleatório entre 0 e 1, aí eu geralmente multiplico pra ficar com a quantidade de números que eu quero.

Ex: Quero um número aleatório de 6 dígitos
Creio que devem haver maneiras mais eficientes.
Lembre-se também que o número gerado é um double. Eu não tratei os decimais no exemplo, mas você pode precisar.


A conta efetuada está errada, O correto, para um número de 6 digitos (que vai de 0 até 999999 - note que o número de alternativas possíveis é 1000000, não 999999) é:

(int) (Math.random() * 1000000)

Eu dei o exemplo do dado, só para perceber que é necessário contar quantas sáo as alternativas possíveis, em vez de só achar o maior número.
O nome do método é "random" e basicamente ele lhe retorna um número qualquer que está entre 0.0 e 1.0.

O que você faz com esse número?

Por exemplo, se você quiser sortear um valor entre 1 e 6, como em um jogo de dados:

- Pegue o tal valor retornado por Math.random
- Multiplique por 6 (que é a quantidade de alternativas possíveis - 1, 2, 3, 4, 5, 6 - em um jogo de dados)
- Some 1 (que é o primeiro elemento)
- E então ache o valor inteiro dessas contas.

Se precisar sortear um valor entre 0 e 99:
- Pegue o valor retornado por Math.random
- Multiplique por 100 (que sáo as alternativas 0, 1, 2, 3, ... 98, 99 )
- Some 0 (o primeiro elemento é zero)
- Ache o valor inteiro.

Para achar o valor inteiro, use um cast para (int)
Eu na verdade recomendo fazer o seguinte: ler mais livros e escrever mais programas (não é "uma coisa excluindo a outra"). Isto é porque deixar de usar programação procedural é coisa que só vem com o tempo e a prática, e ler mais livros quer dizer que vocë vai aprender mais coisas diferentes, que podem lhe ajudar com esses problemas que você mencionou.
Ambos os livros têm exercícios, não? Já resolveu alguns desses exercícios?

Mal comparando, é como ler um livro sobre "aprender a andar de bicicleta" e não treinar nem um pouquinho.
Você é que tem de definir seu período, por exemplo usando um timer ou o framework Quartz. O JavaMail não se responsabiliza por isso (as rotinas que consultam a caixa de email consultam imediatamente).
Andr?a wrote:O meu programa tem um método para gerar um .jar, mas eu só consigo executar o .jar gerado depois de fechar o meu programa.


Você está fechando o arquivo jar corretamente, após criá-lo?
Vou dar um exemplo bobo dos truques que um compilador C consegue fazer. Como você faz uma conversão de binário para decimal? Basicamente você pensaria em usar uma instrução que está disponível em vários processadores e que faz uma divisão e calcula o resto. Como vocës também devem saber, ou a divisão não é implementada no processador (em alguns processadores RISC ha'uma instrucao esquisita, que é "passo da divisão", não a divisão completa), ou então é uma operacáo lenta.
Mas eu vi que o compilador da Microsoft pega a sequencia de código em C que tem uma divisão por 10 e cálculo de resto por 10 e transforma isso em apenas uma multiplicação simples por um numero cabalistico (nao lembro se era 0x66666666666666666 ou coisa parecida, e mais um shift. Ambas as operaçoes, em processadores Intel, costumam gastar muito menos tempo que uma unica divisão se não me engano, a multiplicacao costuma gastar um único ciclo em processadores mais modernos porque a multiplicacao é feita por um circuito lógico ("multiplicador por hardware") específico para isso.
Eu diria que, para os processadores RISC modernos, é muito difícil escrever um programa Assembly que seja demonstravelmente mais rápido que um programa em C equivalente, isso porque é um pouco difícil para o ser humano levar em conta todas as interdependências entre os operandos necessárias para evitar algumas coisas esquisitas que ocorrem nos processadores RISC modernos.

Por exemplo, um compilador C normalmente reordena operações de modo que eventuais carregamentos de dados da memória tenham tempo de executar, enquanto são processadas outras coisas que não dependem desse valor da memória. Como você deve ter aprendido, a memória é um recurso muito lento e eventuais acessos a ela devem ser minimizados, além de você ter de acessá-la de modo que aproveite o máximo os valores que já estão (ou devem estar) no cache. Isso é algo que é muito difícil de fazer manualmente porque a sua capacidade cerebral de levar essas coisas em conta acaba antes - mas o compilador usa alguns algoritmos para poder fazer essa reordenação sem problemas. Até o JIT da máquina virtual Java, para ter uma idéia, consegue fazer alguns desses truques (mas não todos os que o compilador C consegue fazer).
assembler wrote:
drsmachado, por favor, me responda, mas só você ao que pergunto agora!
Se é verdade que C pode fazer uma série de coisas(talvez tudo) que assembly faz e que o C é mais fácil que o Assembly, para que usar C?

Você perguntou quando é que C vai sobrepor assembly.
Veja este texto que consegui do PROGRAMAR EM ASSEMBLY (PARTE I) camarony.tripod.com/sitebuildercontent/sitebuilderfiles/assembler.doc

Esse texto diz ou não que o C e as outras linguagens de médio nível substituem em muitas situações o Assembly? Você me diz que este texto está errado?


Como você deve saber, nada é preto ou branco (a vida tem vários tons de cinza).

Eu posso escrever um programa razoavelmente grande usando um "Macro Assembler", que basicamente converte macros para conjuntos de instruções específicas.
Posso, usando alguns macro assemblers, criar automaticamente um loop "do while" ou um loop "while", ou então ter "ifs" aninhados - como você deve ter percebido, qualquer programa com uma lógica um pouco mais complexa fica muito chato de escrever em assembler - se vocë náo fizer um fluxograma completo de seu programa antes de codificar qualquer instrução, você se perde - e isso é coisa para gente que é muito metódica, não para gente que quer programar só de sentar na frente do computador.
Outras macros permitem simular a passagem e a recuperação de parâmetros em funções, usando as convencoes (mais conhecidas como ABI, Application BInary Interface) da linguagem C ou alguma outra.

Houve uma vez, na faculdade, em que escrevi um driver de impressora usando um Macro Assembler com esses recursos. (Eu fiz antes um pseudo-código desse driver em Pascal - naquele tempo, o Turbo Pascal era disparado a melhor linguagem em termos de rapidez de desenvolvimento, e é por isso que a primeira versão foi em Pascal e não em C. )

Hoje em dia, não usaria um Macro Assembler mas um compilador C que aceitasse blocos de instruçÕes em Assembler. Mas dependendo da qualidade do compilador para a arquitetura alvo, eu teria de usar um Macro Assembler mesmo
Não vou listar as "escolas de nome" até porque:
- Há rankings disponíveis
- Depende muito do tipo de coisa que você for fazer
- Mudam bastante, de modo geral - e é por isso que há rankings anuais
- Se você for fazer um curso no estrangeiro, o que é de "nome" lá pode ser completamente desconhecido aqui. Por exemplo, não tenho razões para duvidar que a Iran University of Science & Technology seja uma escola de nome lá no Irã (uma vez até houve uma pessoa de lá que se inscreveu no GUJ e tentou postar algumas coisas em inglês) - pela Wikipedia ela é uma das quatro grandes no Irã, mas aqui ela é completamente desconhecida.

De modo geral, muitas universidades e faculdades públicas aqui do Sudeste (como USP, Unicamp, ITA, IME etc.) sáo as tais "escolas de nome" que disse genericamente.
Eu disse que o "Q.I" é importante - por exemplo, há uns 30 anos atrás (não sei se hoje ainda é assim) a FAAP não era exatamente conhecida por ser uma escola "de renome" mas porque havia muita gente rica estudando lá e você poderia conseguir bons contatos - e como o pessoal costuma dizer, "o pior problema do pobre é que seus amigos também são pobres". Não sei como isso ficou hoje em dia.
Use qualquer coisa que atenda a essas teclas (JTextField, JTextArea, JLabel ou sei lá o quê - basta ter um KeyListener funcionando).
O que eu disse para fazer é um programa do tipo "use para testar, e jogue fora" (embora, obviamente, você não vá querer jogar fora esse programinha de teste )
A saída do programa, provavelmente, é só um toString do evento que foi capturado pelo KeyListener, e desse toString você pode verificar qual é o KeyStroke correspondente.
 
Índice dos Fóruns » Perfil de entanglement » Mensagens enviadas por entanglement
Ir para:   
Powered by JForum 2.1.8 © JForum Team