Jump to content

Fernando Mercês

Administrators
  • Posts

    1,523
  • Joined

  • Last visited

  • Days Won

    173

Posts posted by Fernando Mercês

  1. Que pergunta boa. ?

    Eu só consigo responder de forma leviana pois tenho zero experiência na programação de compiladores, engines, etc. O que sei é que em JavaScript os arrays são objetos, logo, não são simplesmente tipos primitivos em sequência na memória como em C.

    Agora a parte que eu acho (por não conhecer os internals do JavaScript):

    Quando você declara um array em JS, você está criando um objeto (alocando memória para ele) da classe Array. Portanto, provavelmente quando você coloca nele algum elemento, você tá na real chamando um método dessa classe. A diferença é que o programador faz isso sem ver. Por exemplo:

    frutas = ['melão', 'maçã']

    O código acima cria um objeto, uma instância da classe Array.  Acredito que seja equivalente ao seguinte (passando os elementos para o método construtor):

    frutas = Array('melão', 'maçã')

    Poderia também usar o método push:

    frutas = Array()
    frutas.push('melão')
    frutas.push('maçã')

    No entanto, é mais comum utilizar a notação como no primeiro código, o que pode dar a ilusão de que o array é similar ao do C, mas não é.

    Em todos os casos, se você fizer typeof(frutas), vai ver que o retorno é object. Agora, os detalhes internos dessa implementação eu não faço ideia - e também imagino que depende do engine usado, porque poderia ser feito de diferentes maneiras, com diferentes estruturas de dados (listas encadeadas, hashmaps, etc) para armazenar o endereço dos tipos primitivos e objetos que são elementos do array.

    Aqui tem detalhes da classe Array, mas ainda não responde sua dúvida. Recomendaria você:

    1. Implementar, em C, um tipo Array que suporte push e pop de elementos. Pode ser só do tipo int ou só do tipo char* pra ficar mais legal. Você pode usar ponteiro para funções para simular os métodos.
    2. Buscar o código-fonte de algum engine de JavaScript pra ver como eles fazem. Certamente vai ser diferente de como você fez, mas o fato de você ter feito o seu próprio "gerenciador de arrays" vai te dar uma solidez no assunto, mesmo que você escolha caminhos pouco otimizados e tal.

    Isso pelo menos seria o que eu faria se eu quisesse entender isso profundamente, mas pode ser que alguém com conhecimento no assunto ajude mais aqui.

    De qualquer forma, adoraria ver aqui o teu progresso neste estudo, para todos podermos aprender contigo. ?

    Um abraço e boa sorte!

    • Agradecer 1
  2. Olá!

    Tem muitos erros que você precisa corrigir. Vamos por partes, ok? ?

    Você declara a variável aleatorio e a utiliza para ler a opção digitada pelo usuário, mas antes mesmo que ela assuma qualquer valor, você verifica se seu valor é menor que 1 ou maior que 6 e isso está errado. Você não pode comparar o valor de uma variável com nada antes de inicializá-la com algum valor. Te recomendo:

    1. Renomear essa variável para opcao, que faz mais sentido já que ela vai conter a opção digitada pelo usuário.
    2. Usar um bloco do...while ao invés de while. Na verdade você pês um do...while dentro de um while, o que também é desncessário neste caso.

    Tem muitos outros erros, mas é preciso corrigir um por vez. Aplica aí as sugestões no código e responde este tópico com o código atualizado que a gente segue. ?

    Boa sorte!

  3. Seria o caso de essa conta custom_123 não ter privilégios administrativos no Windows? A opção anterior deve utilizar a conta SYSTEM, que é de sistema e é usada pela maioria dos serviços. Eu imagino que o serviço do MySQL requeira privilégios administrativos. Por que não você não quer usar a opção anterior (Standard System Account)?

    Abraço!

    • Agradecer 1
  4. Davi,

    Dica: ao postar, você pode formatar o seu texto. Se for código, é legal formatar como código clicando no botão <>. Olha a diferença. Sem formatação como código:

    if (var)

    var = 10;

    Com formatação como código (mais realce em C):

    if (var)
    	var = 10;

    É bem mais fácil que colar prints. ?

    O botão fica no editor:

    image.thumb.png.439dd481720226627d73743df997b1b8.png

    Outra dica: você pode editar sua mensagem original. Não precisa responder de novo. ?

    Abraço!

  5. Opa, se você precisar dos números que leu fora do loop que tá lendo, vai precisar colocá-los num array. ?

    Outra dica: por favor, indente seu código e use o botão se inserir código aqui do fórum. Olha a diferença:

    Sem indentação, nem formatação:

    for(i=1;i<=10;i++)
    {
    printf("\n%d\t%.2f",i,n);    
    }
    m=t/u;
    sleep(2);
    return 0;

    Indentado e formatado como código:

    for(i=1;i<=10;i++)
    {
    	printf("\n%d\t%.2f",i,n);    
    }
    m=t/u;
    sleep(2);
    return 0;

    Fica bem melhor pra gente ler. ?

    Um abraço.

  6. Opa, tudo bem?

    Muito boas suas perguntas. ?

    Essas diretivas definem dados. Por exemplo, da documentação do FASM:

    image.png.bde3e873655efe39d98dbedde04b2fd2.png

    Mas elas não estão limitadas apenas ao tamanho de um dado. Você também pode definir vários dados, que serão armazenados em sequência (conceito de array). Por exemplo, a seguinte diretiva define três bytes em sequência e associa o rótulo dados a ele (essa associação é como o nome de uma variável: só existe no código-fonte):

    dados: db 0x41, 0x42, 0x43

    Outra sintaxe possível para definição dos mesmos três bytes é:

    dados: db 'A', 'B', 'C'

    Ou ainda:

    dados: db 'ABC'

    Ou:

    dados: db 'AB', 'C'

    Ou:

    dados: db 'AB', 0x43

    E por aí vai...

    É o mesmo que, em C, fazer algo como:

    char *dados = "ABC";

    Ou seja, o rótulo em Assembly será somente o endereço no segmento de dados do programa.

    Abraço!

  7. Oi Vinicius, tudo bem?

    Olha, se você não sabe começar, acho que o ideal então é eu te recomendar leituras. Aqui vai:

    Você vai precisar estudar bastante para poder concluir este trabalho. O quanto você sabe de C? Variáveis, funções, ponteiros, isso você já sabe? Se não souber, vai precisar de um material básico de programação também.

    Abraço!

     

     

    • Curtir 1
×
×
  • Create New...