sábado, 28 de janeiro de 2023

Rodando códigos Python no navegador

 Olhem esse código e rodem, deu umas modificadas : 


<html>

    <head>

    Diga seu salario

    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />

    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>

   </head>

  <body> 

     <py-script> print("Ola, primeiro programa!!!") </py-script>

     <py-script> print("Carregando...") </py-script>


<py-script> soma = 90 + 80 </py-script>


     <py-script> salario = int(input("O salario é.:")) </py-script>

     <py-script> print(salario) </py-script>

     <py-script> print("Soma") </py-script>

     <py-script> print(soma) </py-script>

    </body>


Fontes:

https://tecnoblog.net/noticias/2022/05/03/pyscript-e-um-projeto-que-roda-programas-em-python-diretamente-no-navegador/

https://www.edivaldobrito.com.br/pyscript-permite-executar-programas-python-no-navegador/#:~:text=A%20linguagem%20Python%20j%C3%A1%20bastante,nenhum%20requisito%20baseado%20em%20servidor.


quarta-feira, 18 de janeiro de 2023

Categorias de Cabos de Par-Trançado

 É comum no cotidiano dos profissionais de infraestrutura que atuam com cabeamento estruturado a utilização dos tradicionais cabos metálicos de cobre de par-trançado, sendo atualmente os dois mais populares: (i) Cat5e e (ii) Cat6



O nome par-trançado vem de um processo natural de blidagem eletromagnética que é empregado nesses cabos - o trançamento entre os pares de fios. Essa blindagem natural consiste na transmissão repetida da mesma informação nos dois fios de um par com polaridades invertidas. Ao fazê-lo, cada sinal (corrente elétrica) irá geral a sua volta seu respectivo campo magnético e ambos serão idênticos, no entanto com as polaridades invertidas - ou seja, os campos se ANULAM! A figura abaixo ilustra esse processo.


O tradicional cabo UTP Cat5e opera em frequências de 100MHz e são comumente empregados com a tecnologia Fast-Ethernet para trafegar dados com taxas de transmissão de 100Mbps, respeitando o limite nominal de 100m no comprimento dos cabos. Embora o cabo de par-trançado Cat5e seja recomendado para taxas de 100Mbps (100BASE-TX) onde o limite nominal do comprimento é 100m, muitos devem saber que somente os pares 1-2 (TX) e 3-6 (RX) são efetivamente utilizados na comunicação (vide figura abaixo).


 
É possível utilizar esse mesmo sistema de cabeamento para conseguir taxas de transmissão de 1 Gbps (1000BASE-T), desde que todos os quatro pares de fios sejam utilizados na transmissão/recepção (half-duplex), no entanto essa prática não é recomendada porque a proximidade entre os pares aumenta a incidência de diafonia e limita bastante o comprimento nominal do cabo que pode decair para cerca de 20m apenas.

Para esse fim o cabo de par-trançado Cat6 é recomendado nas redes que operam a 1Gbps, já que agora sua frequência de operação é da ordem de 250MHz. Isso ocorre porque esse cabo é construído com tranças não uniformes entre seus pares e também existe um "balizador" interno que separa os quatro pares, mecanismos que evitam a interferência entre os pares (diafonia ou crosstalk), funcionando como blindagem adicional à clássica blindagem natural das tranças.  Ou seja, na prática, através da adoção do cabo Cat6 é possível operar com taxas de 1 Gbps (1000BASE-TX) em full-duplex e com limite nominal do comprimento do cabo em 100m! 

Outro detalhe importante que as pessoas têm que ficar atentas diz respeito aos conectores utilizados na terminação dos cabos. Embora os terminais sejam padronizados para fins de compatibilidade entre as diferentes categorias de cabos, o terminal RJ45 do Cat6 é diferente do terminal RJ45 do Cat5e. Reparem na figura abaixo (à esquerda) que no terminal do cabo Cat6 os fios não ficam posicionados de maneira paralela, outro mecanismo para diminuir a incidência de interferência já que todos os fios estão sendo utilizados para transmitir informação. Terminar um cabo Cat6 com o conector errado pode ser suficiente para diminuí-lo operacionalmente ao Cat5e! Fiquem realmente atentos em relação a isso...


 

O último padrão de cabo metálico de par-trançado foi oficialmente publicado em fevereiro de 2008 na Norma ANSI/TIA-568-C e é denominado Cat6A (figura abaixo) - "A" de Augmented ou Aumentado. Esse tipo de cabo é mais grosso do que o Cat6 e possui maior espaçamento interno entre os pares de fios, o que permite sua operação em frequências da ordem de 500MHz por haver menos interferência. Com essa frequência esse cabo pode ser empregado em backbones prediais para suportar taxas de transmissão de 10Gbps (10GBASE-T) com comprimentos nominais que variam entre 37m e 55m, podendo inclusive chegar aos 100m.


Além da alta taxa de transmissão, outra grande vantagem do cabo de par-trançado Cat6A é que ele possui menor incidência à interferência de Alien Crosstalk, ou seja, a diafonia entre pares de cabos distintos - fenômeno da interferência que um cabo gera em outro cabo, conforme pode ser observado na figura abaixo. Isso é uma vantagem em conduítes que possuem vários cabos próximos uns dos outros, o que é comum. No entanto sua desvantagem, além do preço mais caro, é que esses cabos são mais grossos.




Os próximos esforços de paronização caminham para aquilo que serão os cabos de par-trançado Cat7 (taxas de 40Gbps em cabos de até 50m) e Cat7A (taxas de 100Gbps em cabos de até 15m). No entanto, nenhuma dessas categorias ainda é formalmente definida em norma pela ANSI/TIA, embora haja fabricantes no mercado vendendo essas soluções.


Para finalizar esse artigo, trago um breve resumo com as principais categorias:

Fonte:

http://labcisco.blogspot.com/2013/04/categorias-de-cabos-de-par-trancado.html

terça-feira, 17 de janeiro de 2023

Estrutura de um Pacote IPv4 – Redes de Computadores

 

Estrutura de um Pacote IPv4

Na camada de Internet da pilha TCP/IP, os dados provenientes da camada de transporte são empacotados em PDUs denominadas pacotes.


Na camada física, esses pacotes serão encapsulados em quadros (frames) para envio pelo meio de transmissão.

Um pacote IPv4 é composto por um cabeçalho e um campo de dados, que contém os dados provenientes da camada superior (transporte). A estrutura de um pacote IPv4, incluindo cabeçalho e campo de dados,  é mostrada na figura a seguir:






A seguir, vamos descrever cada um dos campos encontrados no pacote IPv4.

Campos do pacote IP

  • Versão: Indica a versão do protocolo IP que está sendo usado. Para o protocolo IPv4, o valor 4 é utilizado neste campo.
  • Tamanho do cabeçalho (IHL, Internet Header Length): Indica o comprimento do cabeçalho do pacote em número de palavras de 32 bits (bits existentes no cabeçalho / 32). Como o campo de opções pode ter tamanho variável, é importante registrar aqui o tamanho do cabeçalho, para que seja possível definir onde ele termina, e onde se inicia o campo de dados. Para um pacote que não usa nenhuma opção, o valor do IHL será de 160 / 32 = 5, sendo que 160 é o somatório de bits que compõem o cabeçalho do pacote.
  • DSCP: Differentiated Services Code Point. Esse campo originalmente era definido como ToS (Type of Service / Tipo de Serviço). É utilizado por tecnologias que necessitem de streaming de dados em tempo-real, como por exemplo VoIP (Voz sobre IP).
  • ECN: Explicit Congestion Notification, este campo permite uma notificação fim-a-fim de congestionamento de rede sem descartar pacotes. É um campo de uso opcional.
  • Tamanho Total: Define o tamanho total do pacote em bytes, incluindo o cabeçalho e o campo de dados.
  • Identificação: Identifica o Datagrama (pacote) IP por meio de um número de identificação sequencial.
  • Flags: Usado para controlar a fragmentação dos pacotes. Possui 3 bits, com o seguinte significado (do maior para o menor):
    • Bit 0: O primeiro bit é sempre 0 (reservado).
    • Bit 1: DF (Don´t Fragment), quando ativado indica que o datagrama não pode ser fragmentado. Se a fragmentação for requerida na rede e este bit estiver ativado, o pacote será descartado.
    • Bit 2: MF (More Fragments):Indica o último fragmento: quando o bit for 1, há mais fragmentos depois dele; quando for 0, ele é o último fragmento do conjunto do pacote.
  • Offset do Fragmento: Determina a ordem dos fragmentos. Especifica o deslocamento relativo de um fragmento em particular em relação ao início do pacote IP original, sem fragmentação. O primeiro fragmento possui offset igual a zero.
    É medido em blocos de oito bytes.
  • Tempo de Vida (TTL): Tempo de vida máximo do Datagrama. Impede que um pacote se perca em uma rede (Internet) e entre em loop infinito entre os roteadores. Atualmente seu valor corresponde a saltos de roteadores (hops). Toda vez que um pacote passa por um roteador, o valor desse campo é decrementado (subtrai-se 1). Quando um roteador recebe um pacote cujo TTL é igual a 0, o pacote é descartado, evitando sua permanência infinita na rede.
  • Protocolo: Indica o protocolo (presente no campo de dados) que pediu o envio do datagrama, através de um código numérico. Os códigos são definidos pela RFC 790.
  • Checksum do Cabeçalho: Usado para verificação de erros no cabeçalho do datagrama. Quando um pacote chega em um roteador, o roteador calcula o checksum do cabeçalho e compara o valor obtido com o valor armazenado nesse campo. Se os valores não baterem, significa que houve erro durante a transissão dos dados, e o pacote é descartado.
    Toda vez que um pacote passa por um roteador, um novo checksum deve ser calculado e armazenado neste campo, pois os roteadores alteram o conteúdo do cabeçalho IP ao decrementar o campo de TTL.
  • Endereço IP de Origem: Endereço IP do remetente do pacote. Esse endereço pode ser alterado por um roteador se for utilizado um serviço de tradução de endereços, como o NAT.
  • Endereço IP de Destino: Endereço IP do destinatário do pacote. Esse endereço também pode ser alterado por um roteador se for utilizado um serviço de tradução de endereços, como o NAT.
  • Opções + Pad: Campo opcional. Usado em situações de teste e verificação de erros na rede. As duas funções mais importantes desse campo são traçar a rota de rede que está sendo usada da origem até o destino (traceroute) e marcar o horário com que o datagrama passa por cada roteador da origem até o destino (timestamp)
  • Dados: São os dados que o datagrama está carregando, com o limite de 64 kB. Os dados não fazem parte do cálculo do checksum do cabeçalho. Os protocolos mais comuns encontrados no campo de dados são o TCP, UDP, ICMP, IGMP e OSPF, entre outros.
Fonte:

http://www.bosontreinamentos.com.br/redes-computadores/estrutura-de-um-pacote-ip-redes-de-computadores/

O modelo OSI e suas camadas

 O processo de enviar uma requisição para um servidor é parecido com o de enviar um pacote pelos correios, isto é, os pacotes enviados pelo computador passam por algumas etapas até chegar ao destino final. Esses passos são o que chamamos de modelo OSI.

Quando fazemos uma requisição para um servidor web, essa percorre um longo caminho da sua máquina até o servidor.

Essa requisição que saí do seu computador por um cabo de rede, ou pelo ar, caso use um Wi-Fi. Passa pelo seu provedor de internet e por diversos outros servidores até chegar no destino. Quando o servidor manda uma resposta, esse caminho se repete.

Mas como a requisição sabe qual caminho seguir? Como ela sai do meu computador e chega ao servidor?

Conhecendo melhor o modelo OSI: Quais são as 7 camadas de rede?

O modelo OSI é um padrão para os protocolos de rede. Protocolos nada mais são do que regras de comunicação usadas para conectar dois ou mais computadores. O que o modelo OSI faz é agrupar esses protocolos em grupos específicos, ou camadas.

Camada 1 - Física

A primeira camada do modelo OSI é a camada física. Voltando para o exemplo dos correios, a camada física seriam as estradas, ou seja, o caminho que os pacotes percorrem para chegar ao destino.

Nesta camada são especificados os dispositivos, como hubs e os meios de transmissão, como os cabos de rede. Os dados são transmitidos por esses meios e processados na próxima camada.

Camada 2 - Enlace ou Ligação

Fazendo um paralelo com os correios, essa camada funciona como um fiscal. Ele observa se o pacote tem algum defeito em sua formatação e controla o fluxo com que os pacotes são enviados.

Nesta camada, os dados recebidos do meio físico são verificados para ver se possuem algum erro e,se possuírem, esse erro pode ser corrigido. Dessa forma, as camadas superiores podem assumir uma transmissão praticamente sem erros. Esta camada também controla o fluxo que os dados são transmitidos.

Nesta camadas que são definidas as tecnologias como as VLans, ou topologias como a Token ring, ou a ponto-a-ponto. Também é nesta camada que dispositivos como os switches funcionam.

Esta camada é dividida em duas subcamadas: A camada MAC e a camada LLC.

A subcamada MAC

É nesta camada que possibilita a conexão de diversos computadores em uma rede. Cada máquina conectada na rede tem um endereço físico, conhecido como endereço MAC. É esse endereço que a camada utiliza para identificar e enviar os pacotes.

Essa camada atua como uma interface entre a camada física e a subcamada LLC.

Já a subcamada LLC

É nesta camada que temos o controle de fluxo dos dados na rede. É por conta dessa camada que conseguimos ter vários protocolos da próxima camada convivendo dentro de uma mesma rede.

Camada 3 - Rede

Quando estamos enviando uma carta, os correios verificam quem é destinatário e quem é o remetente da mensagem. Se existirem muitas mensagens para serem enviadas, eles podem priorizar quais serão enviadas primeiro e qual é o melhor caminho para enviar essa carta.

Isso é justamente o que a camada 3 faz, ela atua como uma central dos correios. Esta é talvez a camada mais atuante nas redes, principalmente na internet.

É nesta camada que temos o endereçamento IP de origem e de destino, ela também pode priorizar alguns pacotes e decidir qual caminho seguir para enviar seus dados.

Essa camada basicamente controla o roteamento entre a origem e destino do pacote.

"Mas por que utilizar o endereço IP se já temos o endereço MAC?”

O endereço MAC é o endereço físico de quem envia o pacote. Ou seja, se enviarmos um pacote e esse pacote passar por cinco dispositivos diferentes (roteadores, switches, ou servidores, por exemplo) o endereço MAC é alterado no processo. Já o endereço IP não sofre essa alteração.

O endereço IP é a identificação da sua máquina na rede. É aquele endereço como 192.168.0.1.

É nessa camada que temos protocolos como o IP ou o ICMP.

Bem, as cartas chegaram a central dos correios, agora elas precisam ser transportadas.

Camada 4 - Transporte

Se na camada um temos as estradas e os caminhos que os dados percorrem, na camada quatro temos os caminhões e os carteiros.

É esta camada que garante o envio e o recebimento dos pacotes vindos da camada 3. Ela gerencia o transporte dos pacotes para garantir o sucesso no envio e no recebimento de dados.

Esta camada lida muito com a qualidade do serviço para que os dados sejam entregues com consistência, isto é, sem erros ou duplicações. Porém nem todos os protocolos desta camada garantem a entrega da mensagem.

Protocolos muito comuns dessa camada são os protocolos TCP em UDP. O primeiro garante a entrega da mensagem, diferente do segundo. Por não garantir a entrega da mensagem, o protocolo UDP é um pouco mais rápido que o TCP.

Bem, mas para ocorrer o transporte de um pacote entre os computadores, é necessário que as máquinas consigam se comunicar. Isso é função da próxima camada.

Camada 5 - Sessão

Está camada é responsável por estabelecer e encerrar a conexão entre hosts. É ela quem inicia e sincroniza os hosts.

Além de realizar o estabelecimento das sessões, esta camada também provém algum suporte a elas, como registros de log e realizando tarefas de segurança.

Recebemos os pacotes, vamos checá-los para ver que dados tem dentro?

Ainda não podemos. Os dados ainda precisam ser tratados para serem usados. Como a camada de sessão só é responsável por estabelecer a conexão entre os hosts, o tratamento dos dados é de responsabilidade da próxima camada.

Camada 6 - Apresentação

Está é a camada responsável por fazer a tradução dos dados para que a próxima camada os use. Nesta camada temos a conversão de códigos para caracteres, a conversão e compactação dos dados, além da criptografia desses dados, caso necessite.

Depois de tratados, esses dados estão prontos para serem usados na próxima camada.

Camada 7 - Aplicação

A última camada do modelo OSI é a camada para consumir os dados. Nesta camada temos os programas que garantem a interação humano-máquina. Nela conseguimos enviar e-mails, transferir arquivos, acessar websites, conectar remotamente em outras máquinas, entre outras coisas (Falando em conectar remotamente, você conhece as diferenças entre Telnet e SSH?).

É nesta camada que temos os protocolos mais conhecidos como o HTTP, FTP, além de serviços como o DNS.

Para saber mais

Quando falamos das camadas do modelo OSI, costumamos falar na ordem inversa, isto é, a camada mais alta é a camada 7, enquanto que a camada 1 é a camada mais baixa:

Além do modelo OSI, outro modelo utilizado em redes é o TCP/IP. Esse modelo, que leva o nome de dois protocolos, busca agrupar os protocolos da mesma forma que o modelo OSI, porém com menos camadas.

Conhecer os protocolos é uma das skills de quem trabalha com infra. Não é necessário saber todos, mas conhecer alguns pode ajudar na hora de resolver alguns problemas na rede.

Se quiser aprender um pouco mais sobre esses protocolos, temos aqui na Alura uma formação em redes.

Nela você aprenderá sobre os protocolos, como criar e configurar uma rede local, sobre VLans, além de segurança.

Se você é um desenvolvedor web, conhecer os protocolos por trás de seus projetos podem ajudar a otimizar o código e melhorar os serviços.

Na web o principal protocolo é o HTTP e aqui na Alura temos um curso sobre este protocolo. Nele você aprenderá como utilizar tudo que o protocolo HTTP tem para oferecer.

Fonte:

https://www.alura.com.br/artigos/conhecendo-o-modelo-osi?gclid=Cj0KCQiAq5meBhCyARIsAJrtdr5PkhH6GEj4NgFG8pl0JpBb2tNkjRlHfhBmHIgV87bVjZDnsvb7r7oaAiQYEALw_wcB

sexta-feira, 13 de janeiro de 2023

Eletricidade humana: Nosso corpo produz eletricidade ?


Certamente alguma vez na sua vida você se perguntou: o nosso corpo humano produz eletricidade? Para saber mais detalhes desta curiosidade um tanto quanto estranha, confira as informações abaixo e veja como o nosso corpo humano pode ser perigoso.

 

A composição corporal

Nosso corpo é composto de aproximadamente 60% de solução salina, a medicina denomina esta solução de soro fisiológico, sendo assim é um ótimo condutor de eletricidade. A cada pulsação nossa, ou seja, a cada batida do nosso coração, é produzida uma corrente de um clico por segundo que produz um watt de potência elétrica.

Esta potência varia de pessoa para pessoa, e dependem exclusivamente da constituição orgânica das células e da condutibilidade do corpo. Sendo assim, a resposta para a nossa pergunta é: sim, nosso corpo produz eletricidade.

Esta eletricidade, que no caso é denominada de bioeletricidade é visualizada com muita facilidade através de um eletrocardiograma ou do eletrocenfalograma. É através de uma placa metálica colocada na mão de uma pessoa que é possível visualizar as leituras da bioeletricidade que variam de 5.000 a 20.000 volts eletrostáticos.

Como o corpo conduz a eletricidade?

Sobre a condutibilidade do corpo, ela é diferente de acordo com o tipo de pele dos indivíduos. A pele seca, por exemplo, é a que acumula maior resistência, enquanto a pele úmida apresenta baixa resistência.

Pessoas que possuem alta resistência não podem trabalhar com materiais inflamáveis e nem mesmo entrar em salas de cirurgia, porque nas substâncias anestésicas encontramos substâncias que podem explodir espontaneamente em contato com eletricidade estática. Na história da humanidade já foram registrados vários acidentes envolvendo pessoas de alta resistência em contato com produtos inflamáveis!

O interessante de tudo isso, é que os cientistas já estudam a possibilidade de usar a energia humana para gerar eletricidade, porém até agora eles conseguiram acumular pouquíssima energia, por isso podemos dizer que os estudos ainda estão “engatinhando”, mas as pesquisas estão em andamento, para que em um futuro não muito distante, possamos reunir energia suficiente para as nossas necessidades de uma maneira muito sustentável.

O corpo humano funciona por meio de impulsos elétricos. Desde os sinais químicos emitidos pelas células até as contrações musculares são controladas por pequenas correntes elétricas.

A eletricidade usada pelo nosso corpo é produzida a nível celular por meio de uma diferença na concentração de eletrólitos positivos e negativos: o sódio e o potássio, presentes no interior e no exterior das células em suas formas iônicas. A diferença de concentração de íons positivos e negativos produz uma corrente elétrica conhecida como bomba de sódio potássio.

Fonte:

https://blog.portaleducacao.com.br/eletricidade-humana-nosso-corpo-produz-eletricidade/


A história dos microcontroladores

 O microcontrolador foi inventado pela Texas Instruments no início da década de 1970, aproximadamente na mesma época que o primeiro microprocessador foi inventado pela Intel. Os primeiros microcontroladores eram basicamente microprocessadores com memória incorporada tal como RAM e ROM. Posteriormente, eles evoluíram para uma vasta variedade de dispositivos adaptados para aplicações específicas de sistemas embarcados tais como carros, telefones sem fio e eletrodomésticos.

O primeiro microcontrolador

Em 1971, o primeiro microcontrolador foi inventado por 2 engenheiros na Texas Instruments, de acordo com o Instituto Smithsoniano. Gary Boone e Michael Cochram criaram o TMS 1000, que era um microcontrolador de 4 bits com ROM e RAM incorporados. Esse microcontrolador era utilizando internamente pela empresa nas suas calculadoras, de 1972 a 1974, e foi melhorado ao longo dos anos. Em 1974, ele foi colocado à venda para as indústrias eletrônicas. O TMS 1000 estava disponível em várias configurações de tamanhos de RAM e ROM. Em 1983, cerca de 100 milhões de dispositivos TMS 1000 haviam sido vendidos.

Microcontroladores Intel

Além de produzir o primeiro microprocessador, a Intel também desenvolveu muitos microcontroladores importantes, dois deles sendo o 8048 e o 8051. Introduzido em 1976, o 8048 foi um dos primeiros microcontroladores da Intel e foi utilizado como o processador no teclado do computador da IBM. É estimado que mais de um bilhão de dispositivos 8048 tenham sido vendidos. O 8051 o seguiu em 1980, e se tornou uma das famílias mais populares de microcontroladores. Variantes da arquitetura do 8051 ainda são produzidas atualmente, tornando o 8051 um dos projetos eletrônicos mais duradouros da história.

Memória eletricamente apagável

Durante os anos 90, se tornaram disponíveis microcontroladores com memórias ROM (EEPROM) eletricamente apagáveis e programáveis, tal como a memória flash. Esses microcontroladores poderiam ser programados, apagados e reprogramados utilizando somente sinais elétricos. Antes desses dispositivos eletricamente reprogramáveis, geralmente era necessário programação especializada e hardwares para tal, sendo que o dispositivo tinha que ser removido do circuito, retardando o desenvolvimento de software e tornando-o mais caro. Ao se remover essa limitação, os microcontroladores puderam ser programados e reprogramados enquanto que em circuito, fazendo com que seus dispositivos pudessem ser atualizados com novos softwares sem a necessidade de serem devolvidos ao fabricante. Muitos microcontroladores atuais, como os da Microchip e da Atmel, incorporam a tecnologia de memória flash.

Microcontroladores modernos

Além de dispositivos de uso geral, microcontroladores especializados estão sendo produzidos para áreas como automotiva, iluminação, comunicação e dispositivos de baixo consumo de energia. Eles também têm se tornado menores e mais potentes. Por exemplo, em 2010, a Atmel anunciou um microcontrolador flash em um pacote medindo 2 mm por 2 mm. Estes dispositivos minúsculos são pequenos e baratos o suficiente para serem utilizados em produtos como brinquedos e escovas de dentes.


Fonte: https://www.ehow.com.br/historia-microcontroladores-info_42970/

sábado, 7 de janeiro de 2023

Níveis de programação





Fonte:
https://www.researchgate.net/figure/Figura-1-Niveis-de-linguagens-de-programacao-Fonte-Carlos-de-Oliveira-2020_fig1_355007669




As linguagens de programação são divididas em 3 níveis, alto nível, médio nível e baixo nível.

As linguagens de alto nível são as mais simples, são as linguagens que todos começam aprendendo. Elas exigem menos do conhecimento do software do programador, porque trabalha com estruturas simples, e tem uma sintaxe bem amigável, fazendo com que todos possam entender.

Vantagens: podem ser executados em várias plataformas sem grandes alterações no código. Desvantagens: geram rotinas genéricas e complexas, portanto, ocupam mais espaço na memória. Exemplos de linguagensPHPC#Visual BasicPythonperl etc.

Médio nível são um pouquinho mais complexas. Elas têm componentes de linguagens de alto nível e de baixo nível então são um meio-termo entre os dois. A sintaxe pode ser tanto simples quanto complicada, isso depende de como você vai programar.

Vantagens: ter mais poder sobre o computador, permitindo a criação de jogos e programas mais complexos, com qualidade profissional.
Desvantagens: alguns comandos são complicados para serem entendidos. Exemplos de linguagensCC++, etc.

Baixo nível são bem mais complexas, são voltadas totalmente para a máquina, ou seja, são escritas usando instruções do processador do computador. Seus códigos são bem mais complexos e permitem que você execute direito no processador.

Vantagens: programas são executados com maior velocidade de processamento, ocupando menos espaço na memória.
Desvantagens: os softwares não têm muita portabilidade. Um programa compilado em um determinado processador pode não rodar em um processador diferente.
Exemplos de linguagensAssemblyCobol, etc.

Imagino que você entendeu sobre programação, mas ainda está em dúvida sobre qual linguagem escolher. Por isso vou mostrar abaixo algumas coisas que podem ser feitas, e as linguagens que você pode utilizar para fazê-las. 

Desenvolvimento web: PHPJava scriptASPJSP;
Criação de crypters: VB6VB.netAutoITPascal;
Criação de exploits: CC++perlpythonRuby;
Criação de jogos: javascriptpythonCC++C#HTML 5;
Manipulação de dados na memória e no processador: AssemblyC++Python;

Desenvolvimento de apk para smartphone:

android: java, Javascript, kotlin, PHP;
IOS: Objective C, Swift,(criada pela própria apple);

Programação desktop: todos citados acima. C/C++javaVB, e pascal estão no mercado;


Fonte:

https://pt.wikibooks.org/wiki/Guia_do_hacker/N%C3%ADveis_de_programa%C3%A7%C3%A3o


Código - Rotina de Delay - Assembly 8051

 ;Rotina de delay. Aproximadamente 20 segundos, isso removendo a linha ( MOV R4,#10 ) 


DELAY:  MOV R4,#10;   O registro R4 ficando sendo um ajuste de tempo aqui na rotina de Delay

                                      ;   Faça testes, aumente ou diminua o valor de R4

                MOV TMOD,#01

                 MOV TCON,#00

REPETE: MOV TH0,#08

               ;MOV TL,#DB      

                SETB TR0

AQUI:   JNB  TF0,AQUI

              CLR   TF0

              DJNZ  R4,REPETE

             CLR   TR0

  

RET 


Obs.:  A rotina de Delay foi testada no Simulador Proteus.

sexta-feira, 6 de janeiro de 2023

Código - Acionando LEDS - Assembly 8051

 ;Inicia Programa


ini:


mov p1.0,#0001b;

lcall DELAY;

clr p1.0;

;mov p1.1,#0010b;


setb p1.1;

lcall DELAY;

clr p1.1;


setb p1.2;

;mov p1.2,#0011b;

lcall DELAY;

clr p1.2


setb p1.3;

;mov p1.3,#0100b;

lcall DELAY;

clr p1.3;


lcall ini;


;Rotina de delay. Aproximamente 20 segundos


DELAY:  MOV TMOD,#01

        MOV TCON,#00

REPETE: MOV TH0,#08

       ;MOV TL,#DB      

        SETB TR0

AQUI:   JNB  TF0,AQUI

  CLR   TF0

  DJNZ  R4,REPETE

  CLR   TR0

  RET 



Código - Rotina de Delay em assembly

Teoria :  

Se o cristal for de 12Mhz:

1 ciclo de máquina = 1/12MHZ * 12 => 1uS (1 microsegundo).

a Instrução "djnz r0,espera" gasta 02 ciclos de máquina (24 pulsoa de clock = 2uS).

Mas para uma contagem de 1 segundo, melhor usar um dos contadores Timer0 ou Timer1, como no exemplo abaixo:


Código : 


	MOV TMOD,#11H 		;AMBOS OS TIMERS NO MODO1=TEMPORIZADOR SINAL INT.
MOV TCON,#00 ;AMBOS 16 BITS RECARGA AUT - INICIALM. DESLIGADOS

DELAY1S:MOV R7,#20 ;ATRASO DE 1000 MS SE R7=20(USAR R7 COMO MULTIPLICADOR DE 50)
RET: MOV TH0,#HIGH(65535-50000) ;Contador conta 50.000 vezeS X 1uS = 50mS
MOV TL0,#LOW(65535-50000) ;
SETB TR0 ;AQUI O CONTADOR É LIGADO E COMEÇA A CONTAR
JNB TF0,$ ;ENQUANTO TF0=0 AINDA NÃO CONTOU 50mS
CLR TF0 ;RESETA O FLAG DE OVERFLOW = COMPLETOU A CONTAGEM DE 50mS
DJNZ R7,RET ;REPETE A CONTAGEM DE DE 50mS POR MAIS 20 VEZES (VALOR DE R7)
CLR TR0
RET
Outro código de delay :

DELAY:  MOV TMOD,#01
        MOV TCON,#00
REPETE: MOV TH0,#08
       ;MOV TL,#DB      
        SETB TR0
AQUI:   JNB  TF0,AQUI
  CLR   TF0
  DJNZ  R4,REPETE
  CLR   TR0
  RET 
Fonte: 
https://www.clubedohardware.com.br/forums/topic/900206-delay-1s-como-calcular-assembly-8051/

terça-feira, 3 de janeiro de 2023

Código - Simulador financeiro em Java

 package simulador;


import java.util.Scanner;


public class simulador {


public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner entrada = new Scanner(System.in);


int salario;

int internet;

int energia;

int comida;

int diversao;

int aluguel;

int otc;

int gastos;

int resta;

System.out.print("Salario.:");


salario = entrada.nextInt();


System.out.print("Internet.:");


internet = entrada.nextInt();

System.out.print("Energia.:");


energia = entrada.nextInt();


System.out.print("Comida.:");


comida = entrada.nextInt();

System.out.print("Diversão.:");


diversao = entrada.nextInt();


System.out.print("Aluguel.:");


aluguel = entrada.nextInt();

System.out.print("Outros gastos.:");


    otc = entrada.nextInt();

gastos = internet + energia + comida + diversao + aluguel + otc;

resta = salario - gastos;

System.out.println("Os gastos são igual a R$ "+ gastos);

System.out.println("Valor sobrando R$ "+ resta);



}


}


Código - Simulador Financeiro em Javascript

 <!DOCTYPE html>

<html>

 <head>

   <title>Simulador Financeiro</title>


   <script type="text/javascript">


    alert("Carregando simulador...")

    var num1 = prompt("Digite o salario: ");

    num1 = parseInt(num1);

    

    var num2 = prompt("Digite Internet: ");

    num2 = parseInt(num2);


    var num3 = prompt("Digite Energia: ");

    num3 = parseInt(num3);


    var num4 = prompt("Digite Comida: ");

    num4 = parseInt(num4);


    var num5 = prompt("Digite Diversão: ");

    num5 = parseInt(num5);


    var num6 = prompt("Digite Aluguel: ");

    num6 = parseInt(num6);


    var num7 = prompt("Digite Outros: ");

    num7 = parseInt(num7);

   

    var soma = num2+num3+num4+num5+num6+num7;

    var calc = num1-soma;     

               

    document.write("Resultado");    

    

    document.write("<br>");

 

    document.write("Despesas -  R$      = ", soma, "<br>");


    document.write("Saldo    - Resta R$      = ", calc, "<br>");

    alert("Despesas");

    alert(soma);

    alert("Saldo Resto");

    alert(calc);

          

   </script>


 </head>

</html>

Translate | Tradutor

Loja

Loja
Nossos Produtos Digitais


EBOOKS

Deseja anunciar aqui. Fale comigo !!!

Nome

E-mail *

Mensagem *

Tecnologia do Blogger.

Arquivo