O que você gostaria que tivessem ensinado na primeira aula sobre ponteiros?

Olha. Eu gostaria de ter aprendido as diversas maneiras de se exibir tanto o endereço de memória como o conteúdo de memória apontado por um ponteiro.

Resumindo, seria mais ou menos o código abaixo. Se faltar alguma coisa, irei adicionando.

#include <stdlib.h>
int main()
{

    char ponteiro[5]="ABCDE";

    printf("Comandos equivalentes em C\n\n");

    printf("Considerando 'char ponteiro[5]=\"ABCDE\";'\n\n");

    printf("Primeiro endereco do ponteiro:%p \n\n",ponteiro);

    printf("Primeiro conteudo de ponteiro[0]: %c\n",ponteiro[0]);
    printf("Primeiro conteudo de   *ponteiro: %c\n\n",*ponteiro);

    printf("Conteudo de ponteiro[1]  : %c\n",ponteiro[1]);
    printf("Conteudo de *(ponteiro+1): %c\n\n",*(ponteiro+1));

    printf("Endereco de memoria de (&ponteiro[1]):%p\n",(&ponteiro[1]));
    printf("Endereco de memoria de (&ponteiro+1) :%p\n\n",(ponteiro+1));

  return 0;
}

O print de tela fica assim:

Postado em 13/01/2023 por Renato de Pierri.

Dica Linux

Vou mandar uma dica aqui para quem resolveu instalar o Linux e volta e meia apanha quando instalando alguma coisa e ou compilando um pacote. Coisa simples, que eu gostaria muito que tivesse me ensinado quando comecei a mexer com Linux.

Abra o terminal e dê o seguinte comando:

sudo apt install build-essential 
re@re-VirtualBox:~$ sudo apt install build-essential Lendo listas de pacotes... Pronto Construindo árvore de dependências        Lendo informação de estado... Pronto Os NOVOS pacotes a seguir serão instalados:   build-essential 0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados. É preciso baixar 4.664 B de arquivos. Depois desta operação, 21,5 kB adicionais de espaço em disco serão usados. Obter:1 https://atl.mirrors.clouvider.net/ubuntu focal-updates/main amd64 build-essential amd64 12.8ubuntu1.1 [4.664 B] Baixados 4.664 B em 1s (4.156 B/s)           A seleccionar pacote anteriormente não seleccionado build-essential. (Lendo banco de dados ... 203071 ficheiros e directórios actualmente instalados.) A preparar para desempacotar .../build-essential_12.8ubuntu1.1_amd64.deb ... A descompactar build-essential (12.8ubuntu1.1) ... Configurando build-essential (12.8ubuntu1.1) ... re@re-VirtualBox:~$
Instalando o pacote build-essential

O comando acima instala um conjunto de pacotes chamado “build-essentials”, que são um conjunto de pacotes necessários para compilar softwares no Linux.

Esse comando instala automaticamente o depurador GNU, os compiladores g++/GNU e mais algumas ferramentas e bibliotecas necessárias para compilar um programa.

Ao instalar os pacotes build-essential, alguns outros pacotes como G++, dpkg-dev, GCC e make, etc. também são instalados em seu sistema.

Não resolve tudo, mas na prática ter esse conjunto de ferramentas ajuda e muito na instalação de pacotes e eu considero uma boa pedida o ter instalado no sistema.

Autor: Renato de Pierri.
Publicado em 24/08/2022.

Assim Nelson Zart disse

No começo de minha carreira eu tive o prazer de trabalhar com um técnico de computadores, senior, na antiga Burroughs Eletrônica. Isso foi nos idos de 1985 e muitos de vocês sequer pensavam em nascer kkkk.

Então, ele tinha um bordão que utilizava quando a gente se enrolava em consertar os mainframes que era o seguinte:

“Quando tudo o mais falhar, siga o manual”

Nelson Zart

Pois é. hoje me lembrei dele em dois momentos.

Um deles eu estava configurando o Apache Directory Studio para acessar o LDAP do Google Workspace Enterprise e tive de configurar o Stunnel seguindo o manual e em outro caso, meu colega estava se batendo para fazer o agente GLPI subir o status no servidor do GLPI.

Em ambos os casos, só conseguimos resolver esses problemas após lermos a documentação e proceder com a configuração, conforme indicado nos respectivos manuais.

Nada de fórum, Stack Overflow e adivinhação. Definitivamente foi a leitura do manual que resolveu o perrengue.

Obrigado Nelson!

Como eu faço para que uma impressora sempre pegue o mesmo endereço de IP, mas que a configuração de rede da impressora seja para ela sempre obter dinamicamente um endereço de IP do servidor de DHCP?

Resposta publicada no Quora em 16/10/2021

Fácil.

Se você precisa que um dispositivo de rede sempre obtenha dinamicamente o mesmo endereço de IP cada vez que for ligado, saiba que é possível fazer essa configuração direto no equipamento que fornece o serviço de DHCP.

Utilizar esse tipo de configuração pode ser interessante para impressoras, servidores, centrais telefônicas e demais equipamentos, que se mudarem o endereço de IP, as coisas podem eventualmente vir a parar de funcionar e também serve para evitar que usuários finais fiquem configurando endereços errados nos equipamentos.

Usuário: “Qual é a configuração da impressora?

Técnico: “Deixe o DCHP ON, tudo automático e não me enche o saco”

Técnico anônimo

Para instalações domésticas, normalmente quem fornece o serviço de DHCP é o roteador da casa ou do pequeno escritório.

Como é que faz?

Basta configurar no roteador, que um determinado endereço de IP seja associado com o endereço de MAC Address do equipamento que desejamos fixar seu endereço de IP.

Como exemplo, mostro uma fonte de alimentação que pode ser acessada pela rede, mas o mesmo é válido para outros equipamentos, incluindo impressoras.

O endereço que eu quero fixar para ela é 192.168.2.101

Eu entro nas configurações de rede da fonte de alimentação e procuro pelo endereço de MacAddres do equipamento conforme destacado com a seta.

Note também que o equipamento está configurado com o DHCP on, para sempre pegar o endereço de IP do provedor DHCP, que no caso é o roteador de casa.

Encontrando o Mac Address

Ainda conforme a foto acima, o MacAddress da fonte de alimentação é 00:27:00:00:15:26 e o DHCP ficou ligado, assim a fonte sempre irá se configurar automaticamente.

Configurando o roteador:

No roteador, temos que garantir que o serviço DHCP nunca irá utilizar o endereço que eu quero atribuir para a fonte.

Isso é feito, informando para o servidor DHCP qual é o endereço inicial que ele deve trabalhar.

No meu caso e conforme indicado abaixo, o meu roteador vai fornecer endereços de IP para os equipamentos da casa, a partir do endereço 192.168.2.150. Tudo o que vier abaixo disso, de 192.168.2.1 até 192.168.2.149, embora funcionais, são endereços reservados.

Definindo o endereço de IP inicial. O que vem antes, está reservado.

Conforme dito acima, irei utilizar o endereço 192.168.2.101, que é um endereço que é menor que o endereço inicial, portanto trata-se de um endereço reservado.

O servidor DHCP nunca irá atribuir esse endereço para qualquer equipamento, a menos que isso seja explicitamente indicado.

Toque final:

Para explicitamente indicar ao roteador para quem ele deve atribuir o endereço de IP 192.168.2.101, conforme figura abaixo, basta ir na aba “Reserva de Endereço” e associar o MacAddress da fonte de alimentação 00:27:00:00:15:26, com o endereço de IP 192.168.2.101 que a fonte deve sempre pegar.

Associando o Mac Address com o endereço de IP

Dessa forma o roteador irá saber que o endereço 192.168.2.101 está reservado para o MacAddress 00:27:00:00:15:26 e toda vez a fonte de alimentação for ligada e ela solicitar um endereço de IP na rede, ela sempre irá receber o mesmo endereço de IP.

E dessa forma, eu tenho paz e tranquilidade enquanto saboreio um delicioso sorvete de ouro, na costa do mediterrâneo:

https://pt.quora.com/Em-que-lugar-do-mundo-um-sorvete-custa-70-Euros/answer/W-Klein

Por que se usa tanto o hexadecimal na ciência da computação, quando decimal é mais fácil de entender?

Resposta publicada no Quora em 19/04/2021

Em computação, hexadecimal é muito mais fácil de entender.

Quando um programador que manja de hardware olha para um código hexadecimal, ele sabe exatamente como o hardware está se comportando, apenas fazendo contas de cabeça.

Por isso que o hexadecimal é utilizado.

Não leia o resto.

Modo nerdice on.

Computador trabalha com lógica binária.

Pensando em um computador de 8 bits, sabemos que ele consegue manusear 8 bits por vez em sua linha de dados.

No diagrama abaixo temos um computador simplificado:

  • Do lado esquerdo tem o processador e do lado direito tem a memória. Deixei de fora alguns detalhes para ficar mais fácil a explicação.
  • O processador e a memória são interligados pelo barramento de endereçamento, de dados e as linhas de controle.
  • O barramento de dados está detalhando os 8 bits que o compõe.
  • Cada seta no barramento de dados representa um bit de dados.
  • O processador consegue ler e escrever na memória, 8 bits de dados por vez, pois trata-se de um computador de 8 bits.

Os bits, são essas linhas que podem assumir valores binários de zero ou um.

Eletronicamente falando:

Essas linhas dos bits de dados podem estar energizadas ou não.

As linhas que estiverem energizadas terão o valor lógico VERDADEIRO (1 – um) e as que não estiverem energizadas terão o valor lógico FALSO (0 – zero).

Onde entra o hexadecimal:

Note que o barramento de dados foi separado em dois conjuntos de 4 bits.

  • Um conjunto de 4 bits engloba os bits de 0 a 3
  • O segundo conjunto de 4 bits engloba os bits de 4 a 7

A pergunta que a gente faz agora é: Quantas combinações a gente consegue fazer de bits ligados e desligados aqui?

Já dou a resposta, que são 256 combinações indo de todos os 8 bits com valor FALSO – desligados até termos todos os 8 bits com o valor VERDADEIRO – ligados.

Acompanhe, analisando os 4 primeiros bits:

https://qph.fs.quoracdn.net/main-qimg-85eaffbadd3963c04251e5859084f219

Os caras fizeram o seguinte, os quatro primeiros bits, dá para fazer 16 combinações indo do valor decimal zero até o valor decimal 15. Basta continuar com a tabela adicionando os bits que faltam e iremos chegar em 256 combinações, podendo representar os números de zero a 255..

Mais um detalhe: A posição do bit corresponde a um valor decimal. Se os bits zero e dois forem verdadeiros, significa que temos o número 5 nas notações decimal e hexadecimal, por exemplo.

Conforme dito, se pegar o segundo conjunto de 4 bits, também dá para fazer essas dezesseis combinações.

Juntando o primeiro e o segundo conjunto de 4 bits, dá para fazer 16 X 16 combinações, ou seja, dá para fazer 256 combinações, que é capaz de representar os valores decimais indo de zero a 255.

No fim de tudo é isso o que realmente importa:

Para simplificar isso aí, os bits são separados em grupos de 4 bits que são representados pelos símbolos indo de “0” até “F”.

Um código indicando quais linhas de cada conjunto de 4 bits estão ligadas ou desligadas.

Simples e brilhante.

Desenvolvendo computadores:

Agora, se coloque no lugar do desenvolvedor de computadores.

O cara tem que lidar com o circuito elétrico. Tem que olhar para um código e decodificar de cabeça quais linhas do barramento de dados estão energizadas ou não.

É muito mais fácil para um engenheiro de hardware:

  • Separar a linha de dados em grupos de 4 bits.
  • Trabalhar com a notação hexadecimal, 3A por exemplo.
  • Converter esse número, de cabeça para o binário “0011 1010”.
  • E identificar no barramento quais linhas de dados que estão energizadas ou não…

Do que fazer a conversão do número 58 (decimal) para seu correspondente binário, que é bem mais complicado.

É por isso que se utiliza o hexadecimal.

Hexadecimal é para humanos falarem com máquinas, enquanto que decimal é para máquinas falarem com humanos.

Recomendo que seja lido o livro do Tocci, que já indiquei em outras respostas por aqui.

Fontes:

Livro do Tocci:https://loja.grupoa.com.br/sistemas-digitais-principios-e-aplicacoes-12ed9788543025018-p1005546?tsid=34

Demais tabelas e infográficos: Acervo pessoal.

Como é que o Led acende

Olha, a teoria de como um led acende está escrita por ai, aos montes.

O que eu faço aqui é complementar toda a teoria, mostrando uma sequência de fotos de led, nas cores azul, verde e vermelho, com diferentes voltagens, mostrando o aumento do brilho à medida que aumenta a corrente circulando no mesmo.

O resistor do led vermelho é de 180 ohms e o dos outros leds é 120 ohms e cada “led – resistor” foram alimentados com uma tensão que foi ajustada entre 2 e 3 volts.

As fotos foram tiradas com uma Nikon D3200, lente macro 85mm, focando a objetiva do estereoscópio. Temos, no final, a foto do setup utilizado.

Quando não especificado, foi utilizada abertura f/5.6, tempo de exposição 1/40, ISO 800.

Clique nas fotos para ampliar ou botão direito -> ver imagem.

Divirta-se:

Publicado em 28/03/2021, por Renato de Pierri

Como fazer pudim de Leite Moça?

O que tem a ver uma tradicional receita de pudim e a contagem binária de 8 bits, indo de zero a 255?

Pergunta respondida originalmente no Quora em 25/02/2021

Pudim de 8 bits:

Foto: Acervo pessoal

Ingredientes:

  • 1 lata de leite moça
  • 2 medidas de leite da lata de leite moça.
  • 4 ovos (tire a pele da gema).
  • 8 colheres de sopa, bem cheias de açúcar.

Modo de preparo:

  • Por 16 minutos aqueça o açúcar em uma forma de pudim até formar o caramelo de açúcar. Cuidado para não queimar o açúcar. Espalhe esse caramelo pela forma até ela ficar bem amarelinha.
  • Por no máximo 32 minutos, bata em um liquidificador a 1 medida de leite moça, as 2 medidas de leite e os 4 ovos.
  • Coloque, na forma caramelizada, o conteúdo previamente batido no liquidificador.
  • Asse o pudim em Banho Maria por 64 minutos em um forno pré aquecido a 128°C, assim que colocar a forma no forno, ajuste a temperatura do forno para que fique em torno de 255°C.

Programadores entenderão a receita.

127 e 220Volts, de onde eles vêm?

Esse post veio da seguinte pergunta no Quora:

Os fios de energia tem duas fases de 127V, essas fases estão em sentido opostos? Se não, como eles são somados para formar 220V?

A resposta que vou dar aqui é baseada na energia elétrica que é fornecida em minha residência. Para outras unidades consumidoras, a resposta pode ser diferente, ok?

Olhando a conta de energia elétrica:

Olhando a conta de energia elétrica de minha casa, conforme figura 1 abaixo, podemos ver que o tipo de fornecimento de energia elétrica é monofásico (guarde essa informação).

Figura 1: Conta de energia monofásica.

Com essa informação dá para falar com segurança que a energia elétrica que chega em minha residência é monofásica a 3 fios.

Pera lá e a pergunta:

É exatamente aqui que entra a pergunta do Quora: Como a energia fornecida pode ser monofásica se chegam 3 fios na residência?

Como se a gente medir do neutro para cada uma das supostas fases dá 127Volts e se a gente medir entre as duas supostas fases temos 220Volts?

Que mutreta é essa?

Me explica isso aí que preciso saber 🙂

O transformador no poste:

Como sempre sem entrar em muitos detalhes, podemos dizer que o transformador lá da rua é um monte de fio enrolado de tal maneira que seja possível reduzir a alta tensão da rua para os 220Volts que utilizamos em casa.

A parte do transformador que recebe a alta tensão da rua é chamada de primário do transformador e a parte que entrega os 220V para as residências é chamada de secundário do transformador.

Focando no secundário do transformador.

A grosso modo, podemos dizer que o secundário do transformador, nesse caso, é composto por 3 enrolamentos ligados conforme figura 2 abaixo, que compõem as 3 fases de um sistema trifásico:

Figura 2: Ligação delta do secundário.

Esse diagrama de ligação do secundário do transformador é chamado de ligação delta. Também tem a ligação estrela que não vou abordar nessa resposta.

Note que os enrolamentos do transformador são ligados “no formato” de um triângulo e que temos as seguintes tensões de fases:

  • Tensão de fase 1 entre o ponto A e C, fornecendo 220Volts.
  • Tensão de fase 2 entre o ponto B e C, fornecendo 220Volts.
  • Tensão de fase 3 entre os pontos A e B, fornecendo 220Volts.

Agora as coisas começam a ficar interessantes:

Os fios que saem dos pontos A, B e C se chamam “fase” e muitos técnicos confundem o fio de fase com a tensão de fase que é algo totalmente diferente.

A tensão de fase é medida, nesse caso, entre dois fios de fase. Um fio de fase está saindo do ponto A e o outro fio de fase está saindo do ponto C.

Quando eu meço a voltagem entre os fios de fase que saem do ponto A e C, eu estou medindo apenas uma tensão de fase, que nesse caso é a tensão de fase 1.

Na minha residência não tem como ter as outras 2 tensões de fase porque está faltando o fio de fase que sai do ponto B. Simplesmente não dá para usar as outras duas tensões de fase.

Por isso é que o sistema é monofásico. Ele é monofásico porque está chegando na unidade consumidora apenas uma tensão de fase.

Eu tenho o neutro e 2 fios de fase que me permitem utilizar apenas uma tensão de fase ;-).

Ok, ainda está faltando o neutro. De onde vem o neutro?

Ainda olhando na figura 2, dá para ver que tem um fio saindo do meio do enrolamento do transformador que faz a fase 1. Ele é o neutro.

Abaixo segue o detalhe da fase 1, mostrando a ligação do fio neutro na rua e nos fios que chegam em casa:

Figura 3: A origem do fio neutro

O fio neutro é uma derivação bem no meio do enrolamento do transformador.

Por isso que a voltagem sai meio a meio, mas mesmo assim a tensão não muda de fase.

Explicando melhor:

Digamos que esse enrolamento entre os pontos A e C tenha 220 espiras (voltas).

Podemos dizer que os 220Volts estão distribuídos entre o ponto A e C do enrolamento do transformador.

Como esse enrolamento tem 220 espiras, podemos dizer que cada espira é responsável por fornecer 1 volt.

À medida que vou subindo as espiras, a voltagem vai subindo até eu chegar na última espira e enxergar os 220Volts entre o ponto A e C.

Não há mudança de fase quando eu caminho do ponto A para o ponto C do enrolamento e vou medindo a tensão das espiras, ou vice versa. A tensão medida apenas aumenta ou diminui, mas sempre permanece em fase. Por isso que é monofásico.

Se eu parar na metade do caminho entre A e C e fizer uma derivação naquele ponto e o chamar de neutro, a tensão de saída do neutro para o ponto A ou C será exatamente a metade da tensão entre o ponto A e C.

Aí o que os caras fazem?

  • “Eles” aterram essa derivação central do transformador da rua, justamente aquele fio que sai do meio do enrolamento.
  • Então eles “batizam” de neutro essa derivação central que foi previamente aterrada.
  • Dizem que “não dá choque”,
  • Nos dizem que ele é o ponto de referência para medir tensão
  • E aí a gente mede do meio do enrolamento do transformador para cada uma das pontas e encontra os 110Volts
  • E aí a gente mede entre os pontos A e C e encontra os 220Volts
  • E fica pensando que são duas fases, só que não é isso por conta da maneira que o enrolamento do transformador foi construído.

É só uma bobina com uma derivação central no enrolamento do transformador, cuja derivação central, “por acaso” foi aterrada.

De quebra, temos que dentro da casa, o neutro e terra tem o mesmo ponto de origem.

Enquanto o terra serve para proteger dispositivos elétricos e pessoas, o neutro permite que a residência seja alimentada com uma tensão menor e mais segura.

Note também que o neutro é aterrado tanto no poste como na caixa de medição de energia elétrica e o aterramento dentro da unidade consumidora deve ter uma origem única.

É isso. Espero que tenha conseguido esclarecer essa dúvida.

Fonte:

MARTIGNONI, Alfonso. Transformadores. 8. ed. São Paulo: Globo, 1969. 307 p. (ISBN: 85-250-0223-2).

High-leg delta – Wikipedia

LIG BT 12° edição – 2014

Publicado por Renato de Pierri em 15/02/2021

Last updated by at .