Prévia do material em texto
Resumo: Lógica com C — Introdução à Programação Autor: Maurício Aniche | Editora: Casa do Código Sobre o livro O livro ensina programação do zero usando a linguagem C, sem exigir conhecimento prévio. A proposta é diferente da maioria dos livros técnicos: em vez de exemplos matemáticos ou projetos genéricos (como uma agenda), o aprendizado acontece através da construção de três jogos completos, do início ao fim: 1. Jogo de adivinhação — o computador pensa em um número e o jogador tenta acertar. 2. Jogo da forca — o computador escolhe uma palavra e o jogador tenta descobri-la letra por letra. 3. Foge-foge (estilo Pac-Man) — um herói foge de fantasmas em um mapa. Cada jogo introduz novos conceitos de forma prática, e o código vai sendo escrito, testado e melhorado ao longo dos capítulos — assim como um programador faz de verdade. Parte 1 — Jogo de adivinhação (fundamentos) Variáveis: são “caixinhas” que guardam valores na memória. Em C, toda variável precisa de um tipo declarado (int, float, char etc.), diferente de linguagens mais modernas. O livro mostra como declarar, atribuir e ler variáveis do teclado com scanf, e explica o papel do compilador: ele traduz o código-fonte para linguagem de máquina e aponta erros de sintaxe antes de o programa rodar. Controle de fluxo: os blocos if/else permitem tomar decisões; o for e o while permitem repetir ações (loops). O livro explica o escopo de variáveis (onde cada variável “existe” dentro do código), como interromper loops com break e pular iterações com continue, a diferença entre else if encadeados, e o uso de #define para criar constantes e evitar “números mágicos” espalhados pelo código. Tipos de dados e matemática: além de int, existem tipos para casas decimais (float, double) e para caracteres (char). O livro explica conversões de tipo (casting), operadores matemáticos, funções da biblioteca matemática (como potência e raiz) e como gerar números aleatórios — essencial para o jogo de adivinhação sortear um número. Finalizando o jogo: o comando switch/case é apresentado como alternativa a vários ifs encadeados. O jogo de adivinhação é concluído, reforçando o uso de variáveis, escopo e uma interface de texto mais “arrumada” para o jogador. Parte 2 — Jogo da forca (estruturas de dados e organização) Arrays: um array guarda várias posições de um mesmo tipo em sequência. O livro mostra como strings em C são, na prática, arrays de caracteres (char) terminados por um caractere especial (\0). Também introduz laços encadeados (um loop dentro do outro), úteis para percorrer estruturas mais complexas. Números binários: explica como o computador representa números e letras internamente em bits (0 e 1), o significado de 8, 16, 32 e 64 bits, notação hexadecimal, e como imagens também são, no fundo, sequências de bits. Funções e ponteiros: um dos capítulos mais importantes do livro. Ensina a criar funções para organizar e reaproveitar código, como passar parâmetros, e a diferença entre passagem por valor (uma cópia) e passagem por referência (o endereço original). Introduz ponteiros — variáveis que guardam o endereço de memória de outra variável — peça fundamental da linguagem C. Também mostra como arrays se relacionam com ponteiros e como funções podem retornar valores. Entrada e saída (I/O): ensina a organizar código em múltiplos arquivos usando header files (.h), e a ler e escrever arquivos em disco — usado no jogo da forca para carregar a lista de palavras. Finalizando o jogo da forca: o livro reforça boas práticas: evitar repetição de código, extrair funções menores e mais específicas, e usa o operador ternário (condição ? valor1 : valor2) como forma resumida de escrever if/else simples. Parte 3 — Foge-foge (estruturas avançadas e boas práticas) Matrizes: arrays de duas dimensões (linhas e colunas), essenciais para representar o “mapa” do jogo. O livro explica ponteiros de ponteiros e a alocação dinâmica de memória (malloc), que permite criar estruturas de tamanho definido durante a execução do programa, e não apenas no código-fonte. Structs: permitem agrupar várias variáveis diferentes (por exemplo, posição X e Y de um personagem) dentro de um único tipo criado pelo próprio programador. O capítulo também trata de ponteiros para structs e faz uma introdução simples à análise de algoritmos (ideia de eficiência de código). Programando como um profissional: um capítulo mais conceitual, sobre responsabilidade única (cada função/estrutura deve fazer uma coisa bem definida), uso de constantes, criação de estruturas auxiliares para organizar o código, uma introdução simples a inteligência artificial (o comportamento dos “fantasmas” perseguindo o herói) e conceitos de acoplamento, encapsulamento e boas assinaturas de função — ideias que preparam o leitor para linguagens orientadas a objetos no futuro. Recursividade: funções que chamam a si mesmas para resolver problemas que podem ser divididos em partes menores e iguais. O livro explica a lógica por trás da recursão e como ela pode simplificar (ou complicar, se mal usada) um algoritmo. Diretivas de compilação: comandos como #ifdef e #ifndef, usados para controlar quais partes do código são compiladas em diferentes situações. Encerramento O livro termina com um capítulo sobre próximos passos (para onde ir depois de terminar), um apêndice com instruções de instalação do compilador C, e um apêndice com o código-fonte completo dos três jogos desenvolvidos. Conclusão “Lógica com C” é um livro voltado a quem nunca programou antes. Em vez de teoria isolada, ensina lógica de programação e a linguagem C construindo projetos divertidos e reais, cobrindo desde o básico (variáveis, condicionais, loops) até conceitos mais avançados e essenciais em C (ponteiros, alocação de memória, structs, recursão), sempre reforçando boas práticas de organização de código.