tópicos estudados pela turma 1

This commit is contained in:
Blau Araujo 2025-05-07 09:55:40 -03:00
parent 60d0d0a598
commit 61786342d4

235
contents.org Normal file
View file

@ -0,0 +1,235 @@
* Tópicos estudados
** Aula 0: Sobre o curso
- Do que vamos precisar...
- Requisitos...
- O que vamos aprender...
- Como vamos aprender...
- Aulas divididas em 3 estágios:
- Repositório do curso:
- Por que aprender...
- Como clonar o repositório do curso...
- Importante!
- Como atualizar o repositório do curso...
** Aula 1: História
- Resumo do vídeo...
- Conceitos abordados na aula...
- O que é um programa de computador?
- O que é linguagem de máquina?
- O que é uma linguagem de programação?
- O que são linguagens de baixo e alto nível?
- O que é compilação?
- O que são implementações?
- O que são arquiteturas orientadas a palavras?
- O que são arquiteturas orientadas a bytes?
- Características da linguagem C...
- Implementação GNU/Linux...
- Compilador:
- Biblioteca C Padrão:
- Obter a especificação padrão do gcc...
- Compilação...
- Etapas:
- Exemplo de um programa em C...
- Compilação:
- Execução:
** Aula 2: Dados e instruções
- Instruções
- Dados
- Exemplo (=x10.c=)
- O que temos aqui:
- Outro exemplo (=x10const.c=)
- O que há de novo:
- Mais um exemplo (=quadrado.c=)
- O que há de novo desta vez:
- Dúvidas
- Para que serve a função =main=?
- Qual é o significado de =void=?
- Por que o tipo do retorno de =main= é =int=?
- A função =main= poderia retornar outros tipos de dados?
- A função =main= poderia retornar uma string?
- Por que o cabeçalho =stdio.h= foi incluído no programa?
** Aula 3: Tipos de dados
- Exemplo da última aula (=quadrado.c=)
- Tipos são tamanhos de dados na memória
- Maior número que se pode escrever com 4 bytes (32bits):
- O que aconteceu?
- Exemplo corrigido (=quadrado-long.c=)
- Tipos primitivos
- Qualificador =unsigned= (sem sinal):
- Qualificador =long=:
- Tipos customizados
- Exemplos:
- Expressões constantes (valores literais)
- O tipo =void=
- Funções sem valor de retorno:
- Funções que não recebem argumentos:
- Ponteiros de dados de tipo indeterminado:
- Modelagem de tipos (type casting)
** Aula 4: Variáveis e ponteiros
- Declaração e definição
- Por que isso aconteceu?
- Como evitar esse erro?
- Atributos das variáveis
- Escopo de variáveis
- Ponteiros
- Declaração do ponteiro
- Perguntas da aula
- A cada execução do programa, os endereços das variáveis mudam?
- O ponto da declaração de uma variável global faz diferença?
** Aula 5: Estruturas de controle de fluxo
- Controle de fluxo
- O loop =for=
- Sintaxe
- Exemplo do vídeo
- Loop =while=
- Sintaxe
- Exemplo do vídeo
- Loop =do..while=
- Sintaxe
- Exemplo do vídeo
- Estrutura de decisão =if..else if..else=
- Sintaxe
- Exemplo do vídeo
- Dica: =else if= abreviado
- Estrutura =switch..case=
- Sintaxe
- Exemplo do vídeo
- Bônus: expressão condicional (ternária)
** Aula 6: Vetores
- Utilidade dos vetores
- Declaração e inicialização de vetores
- Tamanho de um vetor em tempo de compilação
- Inicialização parcial
- Acesso aos elementos de um vetor
- Iteração pelos elementos
- Vetores e funções
- Relação entre vetores e ponteiros
- Vetores de caracteres (strings)
- Mais diferenças entre vetores e ponteiros
** Aula 7: Vetores, ponteiros e strings
- Notações de acesso
- Exemplo
- Vetores e funções
- Strings são vetores de caracteres
- Inicializadores escalares e agregados
- Vetores de comprimentos variáveis (VLA)
** Aula 8: Processos e layout de memória
- Filosofia UNIX
- Primeiro princípio: especialização
- Segundo princípio: modularidade
- Terceiro princípio: fluxos de texto
- A interface de linha de comando (CLI)
- Operadores de controle do shell
- O que são processos
- Como programas são executados
- Layout de memória
- Conteúdo do binário executável
- Região do HEAP
- Região da pilha (stack)
** Aula 9: Argumentos e ambiente
- Vetores e strings
- Vetores de "ponteiros"
- Vetores de strings
- Vetor de strings terminado com NULL
- Parâmetros da função =main=
- Conversão de strings para números
- Exemplo: programa =soma.c=
** Aula 10: Entrada e saída de dados
- Tabela de descritores de arquivos
- Fluxos de dados padrão
- Uma nota sobre dispositivos
- Representação em /proc
- Um exemplo em C
- Redirecionamentos e pipes
- Redirecionamentos
- Pipes
- Acumuladores (buffers)
- Buffers de entrada e saída do programa
- Buffer de saída do programa
- Buffer de entrada do programa
- Entrada padrão não bufferizada
** Aula 11: Leitura da entrada padrão com =scanf=
- Leitura interativa da entrada padrão
- Leitura formatada de linhas com =scanf=
- Para reduzir as chances de erro
- Descarregando o buffer de entrada
- Inicialização de valores numéricos
- Buffer overflow
** Aula 12: Leitura da entrada padrão com =fgets=
- A função =fgets=
- Uma nota sobre o tipo ponteiro para FILE
- O problema da quebra de linha
- Retorno nulo ambíguo
- Conversão para números
- Conversão para inteiros com =sscanf=
- Conversão para inteiros longos com =strtol=
- Outras funções de conversão
** Aula 13: Leitura da entrada padrão com =read=
- A função =read=
- Conversão para string incluindo o terminador nulo
- Quando não converter os bytes lidos em string
- O buffer do terminal
- Descarga do buffer do terminal
- Implementação de =flush_stdin= com a chamada =read=
- Descarga condicional do buffer do terminal
- Definindo um prompt
** Aula 14: Abertura de arquivos para leitura
- Diferença entre streams e descritores de arquivos
- Descritores de arquivos (tipo =int=)
- Streams (tipo ponteiro para =FILE=)
- Procedimento geral de acesso a arquivos para leitura
- Abertura
- Processamento
- Fechamento
** Aula 15: Abertura de arquivos para escrita
- Modos de abertura de arquivos
- Modos complementares
- Modos texto e binário
- Modos de escrita
- Abertura de um arquivo para escrita ("w")
- Abertura de um arquivo para append ("a")
- Notas gerais
** Aula 16: Abertura de arquivos para leitura e escrita
- Modos de abertura para leitura e escrita
- Manipulação do ponteiro interno
- A função =fseek=
- Pontos de origem de =fseek=
- Abertura de arquivos com "r+"
- Abertura de arquivos com "a+"
- Procedimentos úteis
- Quantidade de linhas
- Obter o tamanho do arquivo
- Testar se um arquivo está vazio (0 bytes)