r/AulasProgramacao • • 2d ago

Racket Aula 2

Thumbnail
youtube.com
1 Upvotes

🚀 Bem-vindo à Aula 2 de Racket!

Nesta aula, aprofundamos os conceitos fundamentais da linguagem Racket explorando como funcionam as variáveis, identificadores, valores e expressões.

Se você está começando agora ou já tem experiência em outras linguagens, este código demonstra na prática como o define estabelece vínculos (bindings) essenciais, a diferença entre avaliar valores literais e resultados de procedimentos, e como o ambiente lida com efeitos colaterais e expressões no REPL.

📌 O que você vai ver neste script:

Vinculação de Identificadores: Como usar o define para associar nomes a valores literais (números e strings) e a resultados de expressões matemáticas (+).

Efeitos Colaterais: Entenda o comportamento de procedimentos como o displayln durante a própria fase de definição.

Avaliação e Retorno: A diferença entre imprimir valores explicitamente na tela e o retorno padrão do módulo.

Conceitos abordados: define, displayln, escopo básico e avaliação de expressões.

#SeFlavioVenceVocêPerde


r/AulasProgramacao • • 6d ago

Perl Aula 2

Thumbnail
youtube.com
1 Upvotes

Perl — Aula 2: Refatoração de Código e Desenvolvimento Remoto no PlayStation 2 (BlackRhino Linux)

Nesta segunda aula da série de Perl, elevamos o nível do nosso ambiente de desenvolvimento! Em vez de programar localmente, transformamos um PlayStation 2 rodando BlackRhino Linux em um servidor remoto e realizamos todo o fluxo de trabalho via rede a partir do Lubuntu.

O que você vai ver nesta aula:

Workflow Remoto via SSH e SCP: Copiamos o script inicial (aula1.pl) do Lubuntu para o PS2 usando scp, acessamos o ambiente via ssh para editar o código diretamente no console do BlackRhino e enviamos a versão final (aula2.pl) de volta para o cliente.

Refatoração do Código Perl: Ajustes práticos no script para deixar a saída de terminal mais limpa e legível.

Simplificação e Limpeza de Sintaxe: Removidos comentários e ajustada a estrutura dos caracteres de escape de linha (\n\n) diretamente ao final dos prints.

Interpolação de Variáveis: Análise do comportamento das variáveis escalares ($SAUDACAO, $nome) e das sequências de cores ANSI ($GREEN, $RESET, $YELLOW, $INVERT).

Sintaxe de Chaves vs. Escalares Simples: Demonstração prática de quando as chaves ${VAR} são realmente necessárias e quando podemos usar diretamente a forma simplificada $VAR dentro de strings com aspas duplas sem causar ambiguidade na interpolação.

#Perl #PlayStation2 #Linux #BlackRhino #Lubuntu #SSH #programação


r/AulasProgramacao • • 14d ago

Python Aula 12

Thumbnail
youtube.com
1 Upvotes

Aprofundando Condicionais em Python: Múltiplas Vias (elif) e Operador Walrus (:=) 🎯

Nesta aula (Aula 12), avançamos no estudo das estruturas de controle condicional em Python, evoluindo do if/else simples para cenários de múltiplas vias com if/elif/else.

Continuando com nosso jogo de adivinhação, analisamos quatro abordagens avançadas para tratar os diferentes resultados da jogada (Acertou, Passou ou Faltou), focando em legibilidade, redução de duplicidade de código e recursos modernos da linguagem:

Estrutura if/elif/else de 3 Vias: Tratando múltiplos cenários de decisão de forma clara.

Eliminação de Repetições (DRY): Uso do parâmetro end="" no print() para desacoplar a mensagem de status da exibição do valor final.

Abstração com Variáveis de Mensagem: Armazenamento da string condicional para um único ponto de saída.

Atribuição na Condição com Operador Walrus (:=): Atribuindo o resultado booleano (True/False) diretamente dentro da expressão do if em Python 3.8+.

💡 Ideal para:

Iniciantes e Curiosos: Para aprender a tratar mais de duas condições em um programa e entender a importância de evitar código repetido.

Devs & Experts: Para analisar padrões de formatação de saída e o uso prático do operador de atribuição de expressão (:=).

💻 Ambiente utilizado: Fedora Linux + VS Code


r/AulasProgramacao • • 15d ago

Python Aula 11

Thumbnail
youtube.com
1 Upvotes

Estruturas de controle condicional - controle de fluxo por seleção, decisão.


r/AulasProgramacao • • 21d ago

Python Aula 10

Thumbnail
youtube.com
1 Upvotes

Operador Ternário em Python: 5 Formas de Usar Expressões Condicionais Aprenda a escrever código Python mais limpo e conciso usando Expressões Condicionais (o famoso "operador ternário").

Python Aula 10 https://youtu.be/VnVlaCTnZ8Y?si=9xgUlagT5taI9Jgy via u/YouTube


r/AulasProgramacao • • 29d ago

Assembly Z80 Aula 6

Thumbnail
youtube.com
1 Upvotes

Somando Registradores e Integrando com o BASIC do ZX81!
🚀Neste vídeo, exploramos um exemplo prático de programação em Assembly Z80, mostrando como realizar operações aritméticas de 16-bits e como preparar os dados para interagir diretamente com o sistema operacional e a linguagem BASIC.
Você vai entender o papel do registrador HL como o principal acumulador para operações de 16-bits e a importância de transferir o resultado para o par BC para retornar valores ao BASIC.

🎯 O que você vai aprender:

Endereçamento Imediato: Como carregar valores diretos nos registradores par DE e HL (ld de, N e ld hl, N).

HL como Acumulador de 16-bits: Entenda por que HL funciona como o "depositário" principal da soma na instrução add hl, de, recebendo o resultado da operação.

Integração com o ZX81 (USR): Como a transferência do resultado para o par BC (ld b, h e ld c, l) permite que o valor calculado seja devolvido diretamente à função PRINT USR(...) do Sinclair ZX81 / TK85.

Retorno de Execução: Encerrando a rotina com ret.

⚙️ Resumo do Fluxo e Arquitetura (Para Experts):

Entrada: DE = 4080h (16512) | HL = 80C0h (32960)

Operação (add hl, de): O par HL atua como acumulador de 16-bits. A soma 80C0h + 4080h é depositada diretamente em HL (C140h / 49472 em decimal).

Conexão com o BASIC do ZX81: No ZX81, a função USR do BASIC lê o conteúdo do registrador par BC ao término da rotina em código de máquina. Copiar HL para BC garante que o valor 49472 seja o retorno impresso pela instrução PRINT USR(30000).

#Assembly #Z80 #Sinclair #ZX81 #TK85 #Retrocomputing #LowLevel #BASIC #Programacao


r/AulasProgramacao • • Sep 10 '26

JavaScript Aula 11

Thumbnail
youtube.com
1 Upvotes

Operadores, Recursão e Event Loop no CLI

Aprenda a construir um jogo interativo de adivinhação no terminal usando Node.js do zero! Nesta aula, analisamos um código simples por fora, mas recheado de conceitos fundamentais e avançados do JavaScript.

🟢 Para Iniciantes

Módulo readline: Como capturar dados digitados pelo usuário no terminal via process.stdin e process.stdout.

Operadores Relacionais: Entenda na prática o retorno booleano (true/false) de comparações como ==, !=, >, >=, < e <=.

Geração Aleatória: Como usar Math.random() e Math.floor() para gerar números inteiros em um intervalo definido.

🟡 Para Curiosos

Fluxo Assíncrono via Callbacks: Veja como a execução do código não "para" esperando o usuário, mas sim reage quando a resposta é enviada.

Recursão Direta: A própria função adivinhar chama a si mesma como callback do rl.question até que o acerto aconteça.

Coerção de Tipos: A conversão explicita de strings para números usando Number().

🔴 Para Experts

Recursão vs. Stack Overflow: Como o callback é passado para o readline (gerenciado pela libuv e Event Loop), esta estrutura consome a pilha de chamadas (Call Stack) como uma recursão tradicional ou não?

Igualdade Ampla vs. Estrita: O uso de == em vez de === na comparação Number(par2) == K. Quais as implicações?

Escopo e Estado Global: O uso de variáveis externas (tentativas, K, n) em relação ao encerramento do recurso com rl.close().

#NodeJS #JavaScript #CLI #Programacao #Devs #Backend0


r/AulasProgramacao • • Sep 09 '26

Assembly Z80 Aula 4

Thumbnail
youtube.com
1 Upvotes

Assembly Z80: Entenda os Registradores B, C e o par BC na Prática!

Aprenda como funcionam os registradores no processador Z80 e como a organização de memória afeta a manipulação de dados em Assembly!

Neste vídeo, comparamos o comportamento dos registradores individuais de 8 bits (B e C) com o registrador combinado de 16 bits (BC). Veja na prática, utilizando a janela de Debug do emulador Z80, como os dados são alocados em memória e por que LD BC, 42 se comporta de maneira específica em arquiteturas Little-Endian.

📌 O que você vai aprender neste vídeo:

- Diferença na prática entre Byte (8 bits) e Word (16 bits) no Z80.

- Como os registradores B (byte mais significativo) e C (byte menos significativo) se fundem para formar o registrador BC.

- Acompanhamento passo a passo dos registradores pela Debug Window.

#Assembly #Z80 #Retrocomputing #Programacao #SistemasEmbarcados


r/AulasProgramacao • • Sep 06 '26

Assembly Z80 Aula 3

Thumbnail
youtube.com
1 Upvotes

Assembly Z80 no ZX81: POKE e Op-codes (Do Pasmo ao Hexloader)
#Assembly #Z80 #Retrocomputing #ZX81 #TK85 #Programming


r/AulasProgramacao • • Sep 04 '26

JavaScript Aula 10

Thumbnail
youtube.com
1 Upvotes

JavaScript no Terminal: Refatorando Callbacks para o Padrão Matrioska (via SSH Linux-Windows)

Acompanhe na prática como refatorar um código Node.js no terminal, migrando de callbacks nomeadas declaradas separadamente para o modelo de callbacks aninhadas (efeito Matrioska), mantendo o fluxo assíncrono controlado com o módulo readline.
Nesta aula, realizamos todo o processo em um ambiente real de administração remota: acessando o prompt do Windows via SSH a partir do Lubuntu, editando o código com o editor micro e analisando o comportamento dos caracteres e encoding diretamente na linha de comando.
Conteúdo abordado:

  • Refatoração JS: Transição do fluxo plano para callbacks aninhadas dentro das chamadas do rl.question().
  • Entrada e Saída Assíncrona: Manipulação de dados interativos do usuário via terminal com Node.js.Técnicas de Código: Conversão de tipos (Number()), operadores relacionais, operador ternário e encadeamento com operador de vírgula.
  • Ambiente Hands-on: Conexão SSH Linux-Windows, uso do editor CLI micro e inspeção do comportamento de encoding no prompt.

r/AulasProgramacao • • Sep 04 '26

Bem-vindo ao r/AulasProgramacao: Guia Inicial e Conteúdo das Aulas

1 Upvotes

Seja bem-vindo ao espaço oficial de Aulas de Programação!

Este fórum foi criado para concentrar todo o acervo das nossas videoaulas, scripts, exercícios e repositórios de código. Nosso foco abrange desde a arquitetura e baixo nível até linguagens de alto nível e automação:

  • Baixo Nível & Arquitetura: Assembly (x86, Z80, ARM) e Linguagem C.
  • Lógicas, Scripts & Web: Python, JavaScript (Node.js), Perl e BASIC.
  • Ambiente & Ferramentas: BASH, linha de comando (CLI) e Algoritmos.

Como aproveitar o fórum:

  1. Dúvidas em Exercícios: Crie um post indicando a aula e a linguagem para que possamos discutir nos comentários.
  2. Código-fonte: Os links diretos dos repositórios no GitHub serão incluídos nas publicações de cada aula.
  3. Sugestões: Fique à vontade para comentar nos posts das aulas.

Bons estudos e boa programação a todos!