Edson Luiz França Senne Primeiro Curso de Programação em C 3 a Edição Visual Books
Sumário Prefácio da Terceira Edição 9 Prefácio da Primeira Edição 11 Aula 1 13 Regras de sintaxe de uma linguagem de programação... 13 Programa compilador... 13 Linguagem de máquina... 13 Erros de sintaxe e erros de lógica... 14 Arquivos de cabeçalho e bibliotecas... 15 Programa-fonte, programa-objeto e programa executável... 15 Função principal (main)... 16 Tipos de valores... 16 Representação de dados numéricos... 17 Representação de números inteiros... 17 Representação de números de ponto flutuante... 19 Representação de dados não-numéricos... 20 Variáveis... 21 Tipos de variáveis (char, int, float, double)... 21 Funções... 22 A função printf... 23 Diferença entre função e procedimento... 25 Conceitos importantes desta aula... 28 Exercícios... 28 Aula 2 31 Limites máximo e mínimo para os valores inteiros... 32 Modificadores de tipo... 32 Avaliação de expressões aritméticas... 34 Formatação de valores numéricos... 36 Endereços de variáveis e ponteiros... 37 Operadores de incremento e decremento... 39 Operações combinadas com a atribuição... 41 Operações bit-a-bit... 41 Processamento condicional... 44 Como são interpretados os valores Verdadeiro e Falso... 44 Operadores relacionais... 44 Operadores lógicos... 45 O operador condicional... 46 A atribuição e o teste de igualdade... 46 Comando if... 47 Conceitos importantes desta aula... 47 Exercícios... 58 Aula 3 51 A leitura de dados e a função scanf... 52 Diferença entre valor atribuído estaticamente e dinamicamente... 53 O comando if-else... 54 A sintaxe para escrever conjuntos de instruções... 55
A importância dos recuos... 57 Parâmetros formais e parâmetros reais de uma função... 60 Repetições... 62 O comando while... 62 A possibilidade de a execução de um programa ser infinita... 64 O comando do-while... 64 A diferença entre os comandos while e do-while... 65 Conceitos importantes desta aula... 66 Exercícios... 67 Aula 4 69 Algoritmos estruturados... 70 Representação de algoritmos com diagramas de blocos (fluxogramas)... 70 Programação estruturada... 72 Entrada (parâmetros) e saída (valor de retorno) de uma função... 76 A execução de um programa para vários dados de entrada... 77 As funções getche e toupper... 77 A função putch... 78 A função system... 79 O comando switch... 81 O comando break... 82 O comando continue... 85 Conceitos importantes desta aula... 87 Exercícios... 87 Aula 5 91 Representação de strings... 92 Variáveis indexadas... 93 Alocação de memória para variáveis indexadas... 93 A representação de índices... 93 O comando for... 94 Definição de constantes... 95 Pré-processamento e a expansão de constantes e macros... 97 Constantes já definidas pelo pré-processador... 100 Novos arquivos de cabeçalho... 101 Expressões múltiplas... 104 Conceitos importantes desta aula... 105 Exercícios... 106 Aula 6 109 Geração de números aleatórios... 110 A classificação de dados... 114 Variáveis indexadas como parâmetros de funções... 116 Vetores e matrizes... 116 Conceitos importantes desta aula... 120 Exercícios... 121 Aula 7 125 Protótipos de funções... 128 Escopo e visibilidade de variáveis... 129 Escopo de bloco... 129 Variáveis locais... 131 Escopo de parâmetro de função... 131 Escopo de arquivo... 132
Variáveis globais... 132 A passagem de parâmetros... 135 A passagem por valor... 136 Passagem de parâmetros por referência... 137 Definição de novos tipos de dados... 139 Estruturas de dados... 141 Conceitos importantes desta aula... 141 Exercícios... 142 Aula 8 147 Variáveis automáticas e variáveis estáticas... 149 Funções com número variável de parâmetros... 151 A equivalência entre nomes de vetores e ponteiros... 154 Nome de vetor como parâmetro de função (passagem por referência)... 157 A declaração const em parâmetros formais... 159 Ponteiros para funções... 160 As funções qsort e bsearch... 161 Funções recursivas... 164 Conceitos importantes desta aula... 170 Exercícios... 170 Aula 9 173 Alocação estática e alocação dinâmica de memória... 174 As funções calloc e malloc... 175 A função realloc... 177 Alocação de vetores dentro de funções... 179 Strings como ponteiros... 180 Alocação dinâmica de memória para matrizes... 181 A função fflush... 186 A entrada de dados com buffer... 186 Representação de matrizes esparsas... 187 Conceitos importantes desta aula... 191 Exercícios... 192 Aula 10 195 Leitura de dados a partir de arquivos... 196 Arquivos textuais... 199 A função fopen... 199 Modos de abertura de um arquivo... 200 A função fscanf... 201 Fechamento de arquivos e a função fclose... 201 Os dispositivos padrões vistos como arquivos... 203 A função fprintf... 204 Processamento de arquivos que contêm somente valores numéricos... 205 Processamento de arquivos que contêm strings... 207 A função fgets... 207 A função strtok... 207 As funções de conversão de tipo atoi e atof... 208 Como modificar informações contidas em um arquivo textual... 215 As funções remove e rename... 216 A função rewind... 216 Argumentos da linha de comando e parâmetros da função main... 220 As funções strcmp, strcpy e strcat... 223
Conceitos importantes desta aula... 224 Exercícios... 224 Aula 11 229 Arquivos binários... 233 Diferenças entre arquivos binários e arquivos textuais... 233 Abertura de arquivos binários... 234 As funções fread e fwrite e os acessos de leitura e escrita... 235 A função feof... 237 A função fseek e o acesso aos registros do arquivo... 238 Funções de baixo nível para tratamento de arquivos... 239 Funções que utilizam serviços do sistema operacional... 240 Estruturas de dados e uniões... 249 Campos de bits... 254 As funções memset, memmove, memcpy e memcmp... 255 A função ftell... 255 Conceitos importantes desta aula... 256 Exercícios... 256 Aula 12 257 Listas ordenadas e vetores... 260 Estruturas de dados contendo ponteiros... 262 Estruturas de dados dinâmicas... 262 Ordenação física e ordenação lógica de elementos... 262 Listas encadeadas simples... 262 Operações de inserção e de exclusão em listas ordenadas... 263 A função free para liberar memória alocada... 265 Listas com elementos especiais do tipo list head... 268 Listas duplamente encadeadas... 273 Inserção e exclusão em listas duplamente encadeadas ordenadas... 273 Listas circulares... 276 Conceitos importantes desta aula... 280 Exercícios... 280 Aula 13 283 A estrutura de pilha... 285 As operações de empilhar e desempilhar... 285 A estrutura de fila... 291 As operações de inclusão e exclusão em filas... 291 Filas de prioridade... 292 Estruturas encadeadas não-lineares... 297 A estrutura de árvore binária... 297 Árvores binárias de procura... 300 Travessias em árvores... 302 Árvores de expressão... 303 A notação polonesa para expressões... 308 Procura em espaços de estados... 309 A procura cega e a procura informada... 309 A estrutura de árvores gerais... 314 Busca em largura e busca em profundidade... 314 Conceitos importantes desta aula... 316 Exercícios... 316 Indíce Remissivo 319