Ir ao conteúdo
  • Cadastre-se

AnsiC

Membros Plenos
  • Total de itens

    1.851
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

1.151

Sobre AnsiC

  • Data de Nascimento 7 de novembro

Informações gerais

  • Cidade e Estado
    Jurema/PE
  • Sexo
    Masculino

Meu Notebook

  • Marca
    DELL
  • Modelo
    INSPIRON 15R
  • Tamanho da tela
    15'
  • Processador
    Core i3
  • Chip gráfico
    3000M
  • Memória
    4 GB
  • HD
    300 Gb
  • SSD
    150 Gb
  • Sistema Operacional
    Windows 10 Home
  • Browser
    Maxthon & Chrome
  • Antivírus
    Windows Defender

Meu Smartphone

  • Marca e modelo
    Motorola moto G Clássico

Outros

  • Biografia
    ...
  • Ocupação
    Funcionário no departamento Público de Informática
  • Interesses
    Programação na Linguagem C-Like
  1. Olá @LucasCBSouto O que você pode fazer é adaptar as coisas, a lógica é bem essa mesma. Revisar o assunto e os apontamentos ajuda muito na aprendizagem.
  2. @Gabriel_Moro Quando você entende que matriz[ 2 ][ 2 ] é equivalente a matriz[ 4 ] ou matriz[ 2 * 2 ]; Por que prefere o último caso? Vejo o último caso como forçar duas notações (a de ponteiros e de vetores) isso é interessante porque explicitas as operações interna as matrizes, que na verdade, são realizadas sobre dados lineares na memória, ou seja, as matrizes não são quadrados de memória, e sim um linha de tamanho igual ao produto de suas dimensões (y * x).
  3. c= ((struct cadastro *) malloc(n * (sizeof *c))); Caso 0: Essa declaração tem sentido, o sentido a que me refiro é aquele que complemento literal da variável c, pois havendo esta pergunta quem é c? O casting imediatamente comunica é do tipo. c= malloc( sizeof (struct cadastro[ n ]) ); /*: Alocar memória de n-cadastros */ Caso 1: Outra maneira que acredito ser interessante. Tem a mesma função que a anterior que deixa também claro que tipo é o tipo c. Caso 2: Agora um contra exemplo a tudo isso, observe: struct cadastro * c= (struct cadastro *) malloc( n * sizeof(struct cadastro) ); Temos o exagero da declaração. Quando no caso 1 o tipo aparece didaticamente um vez, aqui ele aprece todas as vezes. Se adequarmos, fica semelhante ao que propõe os colegas. struct cadastro * c= malloc( n * (sizeof *c) ); Fica suficientemente claro. Obrigado.
  4. Olá, tudo certo!? Então ... Eu não entendi as suas razões, se for algum projetor maior recomendo voltar atrás nesse decisão de não usar math, porém no caso de um exercício; recomendo pensar um pouco mais, pois é bem simples de entender. Por exemplo, aqui vem uma simplificação a custo de performance do método de newthon. Calcule a raiz de n, para n não quadrado. Para provar que n não é quadrado, ingenuamente, basta multiplicar um número por si até que o produto seja menor ou igual n, √(n= 10) 1 x 1= 1 < 10 ✔ 2 x 2= 2 < 10 ✔ 3 x 3= 9 < 10 ✔ 4 x 4= 16 > 10 ✘, logo a está 3 < √10 < 4 float raiz_quadrada_de( float numero ) { float r= 1; /*: Menor raiz exata aproximada de n */ while( numero > (r * r) )r+= 1E+0; /*: Calcular a raiz inteira aproximada */ while( numero < (r * r) )r-= 1E-6; /*: Cacular a raiz a fração aproximada */ return r; /*: Retorna raiz de n */ }
  5. AnsiC

    C arquivos em c m

    @Mayycon0707 Se eu, coloco cada conta em um arquivo *.Conta. Assim, quando quero um conta, abro a leitura com uma chamada fopen; se a função não retorna o stream do arquivo é porque a conta não existe. Por exemplo: /* É só um exemplo */ unsigned char us_cpf[ 12 ]= {""}; /*: Salvar o CPF da conta */ unsigned char us_link[]= {"Banco\\Contas\\00000000000.Conta"}; /*: String para estabelecer a ligação com a base de contas */ FILE * pf_banco__conta; /*: guardar o ponteiro do stream de arquivo da base de contas */ puts( "Bem vindo! Digite o CPF da conta" ); /*: Instrução do procedimento a seguir */ gets( us_cpf ); /*: Pegar um string que é o cpf da conta */ sprintf( us_link, "Banco\\Contas\\%s.Conta", us_cpf ); /*: Criar a string que é o atalho para o arquivo *.conta, se existir */ pf_banco__conta= fopen( us_link, "rb" ); /*: Solicitar abertura do aquivo */ if( NULL == pf_banco__conta ) /*: Testar, para o CPF, se a conta existe e fechar se não. */ { printf( "Titulo de n. %s inexistente", us_link ); exit(1); }
  6. Olá, tudo certo!? Então ... A resposta é 32 porque o n vai se multiplicar x + 1 vezes na recursão. A função chama a si mesma, subtraindo 1 de x até que recebe um valor de x menor que 0, ou seja -1, daí a função retorna 1. A resposta final é uma sucessão de multiplicações em cadeia do valor em n. Seja, n= 2, x= 4 : nx × (n) = 2(2(2(2(2)))) é a mesma coisa que 25
  7. Olá, tudo certo!? Então ... Eu entendi um pouco do enunciado assim, veja: Faça uma struct Ordem_Producao com os campos: codigo, descricao, peca e quantidade (a produzir); /* Struct Ordem_Producao com os campos: codigo, descricao, peca e quantidade (a produzir); */ struct Ordem_Producao { unsigned int ui_codigo; unsigned char us_descricao[ 164 ]; unsigned int ui_peca; unsigned int ui_quantidade; } Depois implemente as operações: inserir, retirar e listar para o conjunto. Cada conjunto é uma fila ou um vetor de no máximo 10 struct Ordem_Producao.
  8. Observe @AdrianoSiqueira que, seja: a < b 0 9 = Ok ... 4 5 = Ok 5 4 = Err, porém o problema é que já terá efeito a troca, ou melhor destroca. É um erro bem fácil de corrigir basta inverte o procedimento de interrupção de recursividade.
  9. @Simon Viegas É isso aceitou da maneira correta. O mecânica de leitura e escrita é perfeita, pois todo declaração é avaliada aqui distitamente em dois tipo o lvalue, rvalue @Jardelt com isso a máquina sabe quem cede e quem recebe a informação em transito no código.
  10. Porque esse foi o valor retornado pela variável antes de receber o decremento. O decremento acontece na esquerda para depois receber o 10 que já estava na direita.
  11. Claro que ocorreu, antes de x receber o valor 10 ele é 9. O valor foi modificando quando a variável foi lida pela segunda vez na esquerda. Ou seja, a primeiro vez é na direita e a segunda vez é na esquerda x= x--; é a mesma coisa que x= x - 1, x= 10;
  12. Claro que sim. O enunciado: Mais distantes do quê? Não ficou claro se é da origem, a suposição mais obvia que sim, pior, qual é o limiar do distante e do não? Enfim, aproximadamente, se deve mostra os pontos com maior distância, ou seja, do mais distante até o menos distante, para isso vai ter que salvar, as distância, em um vetor depois ordenar o vetor a medida que ordena o vetor de pontos, ou ainda, pode salvar somente os pontos em um vetor de pontos e ordenar apenas esse vetor.
  13. Olá, tudo certo!? Então ... Desculpa, mais seu código é pura confusão! Precisa repensar sua lógica.
  14. Olá, tudo certo!? Então ... Não entendo, que tipo é Set?
  15. Olá, tudo certo!? Então ... Aqui ninguém dá nada, nós instruímos a luz das dúvidas a medida que o autor evolui em seu código. Não é o local para de lógica, e não sei se existe um, ainda sim discuto lógica aqui no fórum de C quando na verdade meu maior interesse é a linguagem. É importantíssimo que o autor do tópico no mínimo saiba o que quer, primeiro nos mostrando uma tentativa sincera de solução para uma das partes do problema, assim saberemos o seu nível, já que o nível da discussão é estabelecido pelo problema. O tema me interessa muito, estive adiando faz é anos, mas veremos se isso é o que eu estou precisando também. Obrigado. @AnsiC

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×