Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
c:start [2023/10/24 17:17] mazieroc:start [2024/07/09 17:23] (atual) – [Material de apoio] maziero
Linha 1: Linha 1:
 +====== Programação em Linguagem C ======
 +
 +{{  program-bart.png?250|}} Estas páginas visam unificar e organizar melhor o conteúdo de programação em Linguagem C desenvolvido para as disciplinas de //Oficina de Computação//, //Programação 1// e //Programação 2// ao longo dos últimos anos.
 +
 +Este conteúdo tem como objetivo servir como referência em C para quem já sabe programar em alguma linguagem.
 +
 +===== Conteúdo =====
 +
 +FIXME em reorganização
 +
 +Primeiros passos:
 +
 +  * [[Introdução à Linguagem C]]
 +  * [[Controle de fluxo]]
 +  * [[Tipos de dados]]
 +  * [[Operadores]]
 +  * [[Edição e compilação C em UNIX]]
 +
 +Mais conceitos básicos:
 +
 +  * [[Entrada e saída padrão]]
 +  * [[Vetores]]
 +  * [[Funções]]
 +  * [[Estruturas]]
 +  * [[Definição de tipos]]
 +
 +Ponteiros e alocação de memória:
 +
 +  * [[Ponteiros]]
 +  * [[Alocação de memória]]
 +  * [[Alocação dinâmica de matrizes]]
 +
 +Strings:
 +
 +  * [[Strings]]
 +  * [[Codificação de caracteres]]
 +  * [[Strings multibyte]]
 +
 +Arquivos:
 +
 +  * [[Acesso a arquivos]]
 +  * [[Arquivos binários]]
 +
 +Programas maiores:
 +
 +  * [[Organização de código]]
 +  * [[O preprocessador C]]
 +  * [[O sistema Make]]
 +  * [[Depuração]]
 +
 +Tópicos avançados:
 +
 +  * [[A função main]]
 +  * [[Tipos enumerados]]
 +  * [[Conversão de tipos]]
 +  * [[Ponteiros para funções]]
 +  * [[Uniões]]
 +  * [[Operações com bits]]
 +
 +Bibliotecas:
 +
 +  * [[Bibliotecas]]
 +  * [[Construção de bibliotecas]]
 +
 +FIXME Conteúdo em preparação:
 +
 +  * [[Variáveis]]
 +  * [[Tratamento de erros]]
 +  * [[Funções variádicas]]
 +  * [[pua:operacoes_em_diretorios|Manipulação de diretórios]]
 +  * [[Arquivos mapeados em memória]]
 +  * [[C e Assembly]]
 +  * [[Doxygen]]
 +  * [[pua:Gerência de tempo]]
 +  * [[Comparação entre C89, C99 e C11]]
 +
 +===== Projetos =====
 +
 +Projetos de programação propostos nos últimos anos:
 +
 +  * Números racionais:
 +    * [[Números racionais]]
 +    * [[Números racionais - ponteiros]]
 +    * [[Números racionais - malloc]]
 +  * [[Geração de números aleatórios]]
 +  * [[Verificador ortográfico]]
 +  * [[Processamento de imagens]]
 +  * [[Fotomosaico]]
 +  * [[Processamento de áudio]]
 +  * [[Visualização de modelos 3D]]
 +  * [[Jogo ASCII]]
 +  * [[Jogo Gráfico]]
 +  * [[Planilha ASCII]]
 +  * [[Editor de texto ASCII]]
 +  * [[Colossal Cave]]
 +  * [[Arquivador VINA]]
 +  * [[theboys|The Boys]]
 +
 +===== Material de apoio =====
 +
 +Programação em C:
 +
 +  * [[http://publications.gbdirect.co.uk/c_book/|The C Book]], Banahan M., Brady D., and Doran M., 1991.
 +  * [[http://beej.us/guide/bgc|Beej's Guide to C Programming]]
 +  * [[http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/index.htm|Practical Programming in C]], MIT OpenCourseWare (slides).
 +  * [[http://www1.cs.columbia.edu/~naliniv/teaching/2010-fall-3101-2.php|C Programming]], Columbia University (slides)
 +  * [[http://www.learn-c.org|Learn C Online]]
 +  * [[http://www.tutorialspoint.com/cprogramming/index.htm|C Programming Tutorial]]
 +  * [[https://www.doc.ic.ac.uk/lab/cplus/cstyle.html|Recommended C Style and Coding Standards]]
 +  * [[http://www.c-faq.com/|FAQ de programação em C]]
 +  * {{crefcard.v2.2.pdf|C Reference Card}} :!:
 +  * [[https://www-s.acm.illinois.edu/webmonkeys/book/c_guide/|The C Library Reference Guide]]
 +  * [[http://www.advancedlinuxprogramming.com|Advanced Linux Programming]]
 +  * [[http://www.ime.usp.br/~pf/algoritmos/|Projeto de Algoritmos]] do prof. Paulo Feofiloff, IME/USP
 +  * [[https://www.youtube.com/user/russo84/videos|Canal do prof. Bruno Ribas - UnB]]
 +
 +Apostilas:
 +
 +  * {{apostila_c_-_ufpr.pdf|DINF UFPR}} (2008)
 +  * {{apostila_c_-_ufpr_pet-cc.pdf|PET-CC UFPR}} (2006)
 +  * {{apostila_c_-_nce.pdf|NCE UFRJ}} (2016)
 +  * {{apostila_c_-_ufmg.pdf|EEL UFMG}} (2001)
 +  * {{apostila_c_-_unicamp_gacli.pdf|GACLI UNICAMP}} (2000)
 +  * {{apostila_c_-_ctm_caxias.pdf|CTM Caxias do Sul}} (1997)
 +
 +Having Fun with C:
 +
 +  * [[http://www.ioccc.org|Obfuscated C Code Contest]]
 +  * [[http://www.underhanded-c.org/|Underhanded C Code Contest]]
 +
 +Diversos:
 +
 +  * [[https://www.alpharithms.com/tabs-vs-spaces-the-timeless-debate-581511/|Devo usar TABs ou espaços?]]
 +