C Progressivo
()
Sobre este e-book
Relacionado a C Progressivo
Ebooks relacionados
Laboratório Técnico Linguagem C Nota: 0 de 5 estrelas0 notasProgramação Didática com Linguagem C Nota: 4 de 5 estrelas4/5Laboratório Técnico Nota: 0 de 5 estrelas0 notasPython Progressivo Nota: 5 de 5 estrelas5/5Laboratório Técnico Parte Ii Nota: 0 de 5 estrelas0 notasProgramação Em Python Nota: 0 de 5 estrelas0 notasJava Progressivo Nota: 0 de 5 estrelas0 notasProgramação Básica Com Visualg Nota: 0 de 5 estrelas0 notasAlgoritmos Em C Nota: 0 de 5 estrelas0 notasProgramação em C# Para Iniciantes Nota: 5 de 5 estrelas5/5Algoritmos E Lógica De Programação Com Python Nota: 0 de 5 estrelas0 notasApp Inventor: Seus primeiros aplicativos Android Nota: 0 de 5 estrelas0 notasIntrodução à programação em C: Os primeiros passos de um desenvolvedor Nota: 4 de 5 estrelas4/5Aplicações mobile híbridas com Cordova e PhoneGap Nota: 0 de 5 estrelas0 notasProgramação Para Internet Nota: 0 de 5 estrelas0 notasLógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Nota: 0 de 5 estrelas0 notasJavaScript: Um Guia para Aprender a Linguagem de Programação JavaScript Nota: 5 de 5 estrelas5/5Apostila Técnica Linguagem C# Modo Console Nota: 0 de 5 estrelas0 notasDesenvolvendo Aplicativos Com Lazarus Nota: 0 de 5 estrelas0 notasHtml5 E Css3 Com Farinha E Pimenta Nota: 0 de 5 estrelas0 notasAlgoritmos em Java: Busca, ordenação e análise Nota: 5 de 5 estrelas5/5Falando Sobre Hardware Nota: 0 de 5 estrelas0 notasAprenda A Programar Computadores Nota: 0 de 5 estrelas0 notasJavascript Progressivo Nota: 0 de 5 estrelas0 notasJava O Guia Completo Nota: 0 de 5 estrelas0 notasDesenvolvimento De Software - Aplicativo Comercial Com C# E Camadas Nota: 0 de 5 estrelas0 notasDesenvolvimento de Jogos em HTML5 Nota: 5 de 5 estrelas5/5Html+css Progressivo Nota: 0 de 5 estrelas0 notasFundamentos De Programação Java Nota: 0 de 5 estrelas0 notasDicas Profissionais Para Linha De Comando Bash Nota: 0 de 5 estrelas0 notas
Matemática para você
Como passar concursos CEBRASPE -Raciocínio Lógico, Matemática e Informática Nota: 0 de 5 estrelas0 notasTestando Componentes Eletrônicos Nota: 0 de 5 estrelas0 notasRaciocínio Lógico Para Concursos Nota: 0 de 5 estrelas0 notasMatemática Básica Para Concursos Nota: 0 de 5 estrelas0 notasSou péssimo em matemática Nota: 0 de 5 estrelas0 notasMatemática Passo A Passo Vol.1 Nota: 0 de 5 estrelas0 notas+1000 Questões De Matemática Nota: 0 de 5 estrelas0 notasPython - 20% Que Eu Preciso Saber Para Ter 80% De Resultados Nota: 0 de 5 estrelas0 notasAprenda Na Prática Comandos Sql De Consulta Para Banco De Dados Nota: 5 de 5 estrelas5/5História bizarra da matemática Nota: 5 de 5 estrelas5/5Caderno De Questões | Matemática Nota: 5 de 5 estrelas5/5Matemática com aplicações tecnológicas - Volume 2: Cálculo I Nota: 0 de 5 estrelas0 notasMinha Luta Nota: 5 de 5 estrelas5/5Matemática com aplicações tecnológicas - Volume 1: Matemática básica Nota: 3 de 5 estrelas3/5Matemática com aplicações tecnológicas - Volume 3: Cálculo II Nota: 5 de 5 estrelas5/5Segurança Da Informação Descomplicada Nota: 0 de 5 estrelas0 notasMatemática Para Concursos Nota: 0 de 5 estrelas0 notasA Química Do Dia A Dia Nota: 0 de 5 estrelas0 notasGuia De Química Para O Enem Nota: 0 de 5 estrelas0 notasEstratégias E Macetes Matemáticos Para Concurseiros Nota: 0 de 5 estrelas0 notasCaderno De Exercícios De Matemática Do 9º Ano Nota: 0 de 5 estrelas0 notasMatemática divertida e curiosa Nota: 5 de 5 estrelas5/5Física Simples E Objetiva Nota: 0 de 5 estrelas0 notasCálculo I Nota: 0 de 5 estrelas0 notasDeus é matemático? Nota: 4 de 5 estrelas4/5O Mínimo Que Você Precisa Saber Sobre Astronomia Nota: 0 de 5 estrelas0 notasAlgoritmos Em C Nota: 0 de 5 estrelas0 notasCandlesticks Nota: 0 de 5 estrelas0 notasPython Para Iniciantes Nota: 0 de 5 estrelas0 notasOs Segredos Da Lotofácil Nota: 3 de 5 estrelas3/5
Avaliações de C Progressivo
0 avaliação0 avaliação
Pré-visualização do livro
C Progressivo - Francisco J M Matos
Apostila
C
Progressivo
Figura48www.cprogressivo.net
Sobre o livro C Progressivo
Antes de mais nada, duas palavrinhas: parabéns e obrigado.
Primeiro, parabéns por querer estudar, aprender, por ir atrás de informação. Isso é cada vez mais raro hoje em dia.
Segundo, obrigado por ter adquirido esse material em www.cprogressivo.net
Mantemos neste endereço um website totalmente voltado para o ensino da linguagem de programação C.
O objetivo dele é ser bem completo, ensinando praticamente tudo sobre C, desde o básico, supondo o leitor um total leigo em que se refere a absolutamente tudo sobre computação e programação.
Ele é gratuito, não precisa pagar absolutamente nada. Aliás, precisa nem se cadastrar, muito menos deixar e-mail ou nada disso. É simplesmente acessar e estudar.
E você, ao adquirir esse livro, está incentivando que continuemos esse trabalho.
Confiram nossos outros trabalhos:
www.programacaoprogressiva.net
www.javaprogressivo.net
www.pythonprogressivo.net
www.htmlprogressivo.net
www.javascriptprogressivo.net
www.excelprogressivo.net
www.cmmprogressivo.net
Certamente, seu incentivo $$ vai nos motivar a fazer cada vez mais artigos, tutoriais e novos sites!
Este livro é composto por todo o material do site. Assim, você pode ler no computador, no tablet, no celular, em casa, no trabalho, com ou sem internet, se tornando algo bem mais cômodo.
Além disso, este livro contém mais coisas, mais textos e principalmente mais exercícios resolvidos, de modo a te oferecer algo mais, de qualidade, por ter pago pelo material.
Aliás, isso não é pagamento, é investimento. Tenho certeza que, no futuro, você vai ganhar 10x mais, por hora trabalhada, graças ao conhecimento que adquiriu aqui.
Sumário
Para os iniciantes ou que querem aprender bem mesmo, que siga os seguintes tutoriais na ordem que é colocada.
Para ler um tutorial avulso, a gente assume que você tenha lido ou tenha os conhecimentos de todos os artigos anteriores.
Estude no seu próprio tempo, sem pressa, com calma, leia e releia quantas vezes forem necessárias.
Qualquer dúvida, estamos lá no site a disposição para dúvidas e debates.
Se preferir, também temos nosso grupo no Facebook:
Programação Progressiva
Bons estudos!
Índice
Sobre o livro C Progressivo 2
Sumário 3
Como começar a programar 12
Básico 14
O necessário para programar em C 14
Ferramentas Necessárias para programar em C 14
Que programa escolher para programar em C 15
Dev-C++: desatualizado e com muitos erros 15
Microsoft Visual Studio: bom, poderoso e pago 15
Code::Blocks: gratuito, leve, open source e cross plataform 16
Porque usaremos o Code::Blocks no curso de Programação C 18
Como começar a programar em C: baixando o necessário para a Apostila C Progressivo 18
Criando e compilando seu primeiro programa na Linguagem C 19
Como criar e compilar um programa em linguagem C 19
Código comentado do nosso primeiro programa em C 22
Como criar seu primeiro programa em C 22
Hello world em C 22
O que é e para que serve #include 23
O que é e para que serve int main(void) { } 24
O que é e para que serve printf(Meu primeiro programa - C Progressivo!\n
); 24
\n: New line, adicionando uma linha em branco 25
A função printf() e alguns caracteres especiais 26
Caracteres Especiais 26
Por que o C não exibe esses caracteres? 27
Como exibir o caractere \ 27
Sinais sonoros e outros caracteres especiais 28
Carriage return: \r 28
Tabulação horizontal (TAB): \t 29
Sons: \7 e \a 29
Como comentar seus códigos em C - Comentários e Delimitadores 30
Comentando códigos em C - Usando // 30
Como usar os delimitadores /* */ em linguagem de programação C 32
Use comentários com moderação 34
O tipo de dado inteiro (int) na Linguagem C 34
Como declarar variáveis inteiras na linguagem C 34
Como imprimir um número inteiro na tela, usando a linguagem C 35
Como inicializar variáveis inteiras na linguagem C 36
Modificadores do tipo inteiro - short, long, signed e unsigned 38
O tamanho que cada variável em C pode ocupar em memória 38
Tendo um maior controle sobre o tamanho dos inteiros - short e long 40
Controlando a faixa de valores dos inteiros através do sinal: signed e unsigned 40
Quando usar short, long, signed e unsigned 41
Quando usar o short int em C 42
Quando usar o long int em C 42
Quando usar unsigned int em C 42
Exercício: 42
Os tipos float e double - números decimais (ou reais) em C 43
O que são e para que servem os tipos float e double 43
Como declarar e inicializar variáveis do tipo float e double na linguagem C 44
Qual a diferença entre float e double 45
Imprimindo números reais float e double na tela através do printf 46
Como imprimir números na forma exponencial em C 47
O tipo char 49
Como declarar o tipo char em C 49
Como inicializar variáveis char em C 50
Como imprimir caracteres e textos na tela 50
A tabela ASCII em C 51
A função scanf - recebendo números do usuário 54
Recebendo números inteiros com a função scanf 54
Exemplo de código- Como usar a função scanf() 55
Recebendo mais de um número dentro de uma única scanf 56
Recebendo números reais ou decimais com a função scanf 56
Recebendo letras do usuário - As funções scanf, getchar, fgetc e getc 57
Recebendo caracteres em C através da função scanf() 58
Recebendo caracteres em C através da função getchar() 58
Recebendo caracteres em C através das funçoes fgetc e getc 59
Buffer: o que é, como limpar e as funções fflush e __fpurge 60
O problema de usar scanf, getchar, getc e fgetc para receber caracteres em C 61
Limpando o buffer em C: fflush e __fpurge 62
Operações matemáticas em C - Soma, subtração, multiplicação, divisão e módulo (ou resto da divisão) e precedência dos operadores 64
Símbolos matemáticos em C 65
O que é módulo ou operador resto da divisão 66
Precedência dos operadores matemáticos em C 67
Usando parênteses para evitar confusão com a precedência 67
Atalhos com símbolos matemáticos em C: += , -=, *=, /= e %= 68
Fazendo contas com o valor antigo da variável 69
Atalhos matemáticos: += , -= , *= , /= e %= 70
+= 70
-= 70
*= 71
/= 71
%= 71
Sistema binário e Valores lógicos true ou false 71
Computadores e o sistema binário 72
Valores lógicos: true ou false, 1 ou 0 72
Exemplo prático dos valores lógicos em computação 73
Operadores Lógicos E (&&), OU (||) e de Negação (!) 73
Operador lógico 'E' em linguagem C: && 74
Operador lógico 'OU' em linguagem C: || 74
Operador lógico de negação em linguagem C: ! 75
Exercícios básicos sobre a linguagem C 75
Testes condicionais e controle de fluxo em C 78
O teste condicional IF ELSE 79
O que é, para que serve e como usar o teste condicional IF em C 80
Exemplo de código: Condição sempre verdadeira 80
Exemplo de condição: Condição sempre falsa 81
O que é, para que serve e como usar o ELSE em C 81
Exemplo de código: rodando o ELSE 82
Exercício de C: 83
Fazendo testes e comparações - operador de igualdade (==), maior (>), menor (=), menor igual (<=), de diferença (!=) e de módulo, ou resto da divisão (%) 84
Testar e comparar, testar e comparar...a essência da programação 84
O operador de igualdade em C: == 85
Exemplo de código: 85
O operador maior que em C: > 86
O operador menor que em C: < 87
O operador maior igual a em C: >= 88
Exemplo de código: 88
O operador menor igual a em C: <= 90
Exemplo de código: 90
O operador diferente de em C: != 91
Exemplo de código: 91
O operador módulo ou resto da divisão em C: % 92
Exemplo de código: 93
Erro comum de iniciantes em programação C 93
Exercícios sobre operadores de comparação em C: 94
Questões sobre IF e ELSE 95
Exercícios sobre IF e ELSE em C 95
Operadores de Incremento (++) e Decremento (--) - Diferença entre a=b++ e a=++b 115
Contando em linguagem C 115
Somando e Subtraindo variáveis em C 116
Diferença entre os operadores entre a=++b e a=b++ 118
O que é e como usar o laço WHILE em C 120
Repetir e repetir: o que são e para que servem os laços em C 120
O laço while: definição e sintaxe 121
Exemplo comentado de código: 122
Programa em C que conta de 1 até 10 usando o laço while 122
Exemplo comentado de código: 123
Crie um aplicativo em C que peça ao usuário o primeiro elemento de uma P.A, a razão da P.A e o número de elementos a serem exibidos. 123
Exemplo comentado de código: 124
Questões sobre o laço WHILE em C 126
Exercícios sobre o laço WHILE 126
Questões resolvidas sobre laço WHILE em C 129
O laço FOR: o que é, para que serve e como usar o FOR - Cast em C: o que é e como usar o Casting 140
O que é o laço FOR 140
A sintaxe do laço FOR: como usar o for 141
Exemplo: Contando de 1 até 10 com o laço FOR 141
Exemplo: 142
Contagem regressiva de 10 até 1, usando o laço FOR 142
Exemplo: Contagem progressiva e regressiva no mesmo laço FOR 143
Exemplo: 143
Exemplo: 144
Questões sobre o laço FOR 146
Exercícios sobre o laço FOR 146
Soluções das questões sobre o laço FOR 148
Os comandos CONTINUE e BREAK: pausando e alterando o fluxo de laços e testes condicionais 155
O comando BREAK em C: como usar 155
Exemplo de código comentando em C 155
Exemplo de código comentado em C 157
O comando CONTINUE em C: como usar 158
O teste condicional SWITCH 160
SWITCH em C: o que é e como usar o comando 160
Exemplo de código: 161
O switch sem o break 162
Exemplo: 164
O que é o laço DO WHILE 167
Para que serve o laço DO WHILE em C 167
Como declarar e usar o laço DO WHILE em C 167
Exemplo de uso do laço DO WHILE: Criando um MENU 168
Exercício de C: 170
Criando uma calculadora em C 171
Como criar uma calculadora em C 171
A lógica de uma calculadora na linguagem C 172
Exercícios sobre testes condicionais e laços 175
Soluções 177
Funções em C 188
O que são funções, para que servem e como usá-las em C 189
O que é uma função em linguagem C 189
Para que serve uma função em C? 189
Como declarar funções em C 191
Exemplo de código: 191
Criando um menu usando funções em C 193
Exemplo de código em C 193
Argumentos e Parâmetros de funções em C - Funções aninhadas 195
O que são e como usar parâmetros e argumentos em C 195
Exemplo de código 196
Funções aninhadas - Invocando uma função dentro de outra função 199
O comando return - obtendo resultados das funções 203
O que é e como usar o comando return em C 203
Exemplo de código C 204
Exemplo de código 205
Variáveis Locais - Protótipo de uma função em C 206
Variáveis Locais em C 206
Como alterar o valor de uma variável passada como argumento 208
Protótipos de uma função em C: o que é e como declarar 209
Gerando números aleatórios em C: rand, srand e seed 211
Números aleatórios em C 211
A função rand() - Gerando números aleatórios 212
Alimentando a rand() com a srand() : seed 213
Escolhendo uma faixa de números aleatórios em C 213
Como criar um Jogo em linguagem C 214
Jogo em C: Adivinhe o número que o computador sorteou 215
Como criar um jogo simples em C 215
Recursão 219
Recursividade em C 219
Exemplo de código usando Recursão 219
Exemplo de código usando recursão em C 221
Exercícios sobre funções em C 223
Soluções 225
Programa que calculas raízes de equação do segundo grau, até as complexas, em C 225
Vetores 231
O que são vetores, como declarar e quando usar 232
O que é um vetor em C... E para quê serve? 232
Como declarar um vetor em C 232
A contagem dos índices começa sempre do 0 233
Como usar acessar os elementos de um vetor em C 233
Inicializando vetores – Vetor de caracteres e Lixo 238
Inicializando vetores 238
O que é o Lixo, em linguagem C 239
Não use números, use constantes: const e #define 241
Por que se deve evitar usar números em programação C 241
Definindo e usando constantes em C 242
Vetores multidimensionais (Matrizes) em C: vetor de vetores 244
Vetores multidimensionais, ou Matrizes: o que são e para quê servem 244
Como declarar e trabalhar com Matrizes em C 244
Exemplo de código C: Criar e exibir uma matriz 3x3 247
Exemplo 2: Como calcular o traço de uma matriz em C 248
Como passar vetores, ou arrays, e Matrizes (vetores multidimensionais) para funções em C 250
Como passar um vetor parar uma função em C 250
Como passar matrizes (vetores multidimensionais) para funções 252
Exemplo de código: Como preencher, exibir uma matriz e seu traço, passando a matriz para uma função em C 252
Passagem por Referência - Como copiar vetor e matriz em C 254
Vetor e Matriz: Passagem por referência 254
O que é uma referência, em linguagem C? 254
Como copiar vetores e matrizes em C 255
Exemplo de código: Como copiar uma matriz em linguagem C 257
Exercícios sobre Vetores e Matrizes em C 259
Exercícios sobre vetores (arrays) e Matriz em C 259
Jogo da Velha em C 261
O Famoso Jogo da Velha 261
Como jogar o Jogo da Velha 261
Recomendações 262
Código completo do Jogo da Velha em C 263
Lógica do Jogo da Velha em C 269
As funções do Jogo da Velha em C 269
Ponteiros 273
Introdução ao uso dos ponteiros - Endereços de memória 274
O que são ponteiros em C ? 274
Como saber o endereço de memória de uma variável: & 275
Exemplo de código: Vendo o valor e endereço de uma variável 276
A função sizeof() e os blocos vizinhos de memória 278
Quando cada variável ocupa em memória: A função sizeof() 278
Exemplo de código: Como saber quantos bytes cada variável ocupa em memória 279
Exemplo: Mostrar o endereço e número de bytes que cada variável ocupa 279
Endereço de um bloco de variáveis 280
Exemplo de código: Mostrando as posições dos blocos de variáveis 281
Como declarar, inicializar e usar ponteiros em C - A constante NULL 283
Como declarar ponteiros em C 283
Ponteiros e Vetores em C 284
Exemplo de código em C 285
Como inicializar um ponteiro em C – A constante NULL 286
Exemplo de código: Como usar ponteiros 287
Variáveis apontadas - A Passagem por Referência em C 288
Obtendo o valor apontado pelo ponteiro: * 288
Exemplo de código: Mostrando o valor das variáveis apontadas por ponteiros 288
O que é e como fazer a Passagem por referência em C 289
Exemplo de código: Passagem por referência em C 290
Exemplo de código: Trocar o valor de dois números em C 291
Operações Matemáticas com Ponteiros em C 293
Incremento, Decremento e Comparando ponteiros em C 293
Exemplo de código: Calcular os termos de uma P.A usando Ponteiros em C 294
Strings 296
Introdução as strings 297
O que são Strings em linguagem C 297
O caractere especial delimitador de strings: \0 298
Como declarar e inicializar Strings em C 298
Como inicializar strings em C 299
Lendo e Escrevendo Strings em C 301
Strings em C: %s 301
Como ler strings com a função scanf() 301
Exemplo: Programa que pede o nome e sobrenome em C 302
Como receber strings do usuário com a função gets() 303
Como exibir strings com a função puts() e printf() 303
Exemplo de código: Programa em C que pede os dados cadastrais completos 304
Problemas com a gets() - A função fgets() 305
Que função usar para ler strings, então? 306
Como criar uma biblioteca em C 307
Por que criar uma biblioteca / header (.h) em C? 307
Como criar uma biblioteca / header (.h) em C 307
A biblioteca string.h e suas funções 309
A biblioteca string.h e suas funções: quais existem, para quê servem e como usá-las 309
Funções de exame de strings: 310
strlen: size_t strlen( const char *str ); 310
strcmp: int strcmp( const char *lhs, const char *rhs ); 310
strncmp: int strncmp( const char *lhs, const char *rhs, size_t count ); 310
strchr: char *strchr( const char *str, int ch ); 310
strrchr: char *strrchr( const char *str, int ch ); 310
strspn: size_t strspn( const char *dest, const char *src ); 310
strcspn: size_t strcspn( const char *dest, const char *src ); 311
strpbrk: char* strpbrk( const char* dest, const char* str ); 311
strstr: char *strstr( const char* str, const char* substr ); 311
Funções de manipulação de strings 311
strcpy: char *strcpy( char *dest, const char *src ); 311
strncpy: char *strncpy( char *dest, const char *src, size_t count ); 311
strcat: char *strcat( char *dest, const char *src ); 311
strncat: char *strncat( char *dest, const char *src, size_t count ); 311
memset: void* memset( void* dest, int ch, size_t count ); 311
memcpy: void* memcpy( void* dest, const void* src, size_t count ); 312
memcmp: int memcmp( const void* lhs, const void* rhs, size_t count ); 312
memchr: void* memchr( const void* ptr, int ch, size_t count ); 312
Como implementar as funções da biblioteca string.h 313
Exercícios resolvidos sobre strings em C 313
int strlen(char *str) - Calcule quantos caracteres uma string possui 313
char *strcpy(char *dest, char *orig) - Copie a string orig para a string dest 314
char *memcpy(char *dest, char *orig, int n) - Copia os 'n' primeiros termos da string orig para a dest 315
int *memcmp(char *str1, char *str2, int n) - Diz se os 'n' primeiros termos de uma string é maior, menor ou igual aos 'n' primeiros termos da outra string 315
Exercícios sobre Strings 317
Structs 318
O que são, para que servem e onde são usadas as Structs 319
Para que serve uma struct em C 319
O que é uma struct em C 320
Onde as structs em C são usadas 321
Como declarar uma struct em C 322
Como declarar uma struct em C 322
O tipo struct 322
Como acessar, alterar e ler os elementos de uma struct em C 324
Como escrever e ler elementos de uma struct em C 324
Exemplo: Como declarar, preencher e acessar elementos de uma struct em C 324
typedef: Como 'declarar' seus próprios tipos 327
O que é typedef 327
Como declarar tipos com typedef 327
Como usar typedef para structs 328
Exemplo: Como declarar, preencher e acessar elementos de uma struct em C 329
Como enviar uma struct para uma função 331
Como passar uma struct por argumento para uma função em C 331
Exemplo de código C: Passando uma struct para função 332
Passando structs por referência para funções - O operador -> 334
Como alterar uma struct em uma função 334
O operador -> 336
Exemplo: Alterando e exibindo structs através de funções em C 337
Exercícios sobre structs em Linguagem C 339
Alocação dinâmica de memória 340
O que é e para que serve a Alocação Dinâmica de memória em C 341
A alocação estática e seus problemas 341
Quanto de memória devo usar? 342
O que é alocação dinâmica de memória em linguagem C 343
Onde a alocação dinâmica é usada 344
A função malloc - Como alocar memória na linguagem C 345
Como usar a função malloc da stdlib.h 345
Dica: usar sizeof() 347
Exercício: Calculando a média de qualquer quantidade de números com malloc() 348
A função free() - Liberar e evitar vazamento de memória 349
Memory leak (vazamento de memória) em linguagem C 349
free(): A função que libera memória 351
A importância do bom gerenciamento de memória 352
Alocação de memória, free() e segurança 353
Exercício resolvido: Usando malloc() e free() 354
A função realloc(): realocando memória dinamicamente e a calloc() 358
Problemas com a malloc() 358
A função realloc(): O que é, para que serve e como usar 359
Memória não alocada 360
Exemplo de código: Como usar a função realloc() em C 361
A função calloc() 365
Diferença entre calloc() e malloc() 366
Exercícios propostos com calloc() e realloc() 366
Estruturas de dados dinâmicas 368
Listas, Filas, Pilhas e Árvores 368
O que é Estrutura Dinâmica de Dados em Linguagem C 368
O que é uma Lista em C (Lists) 369
Filas em C (Queue) 370
Pilhas em C (Stack) 371
Árvores em C (Tree) 372
Conceitos básicos de uma estrutura dinâmica de dados 372
Listas em C - O que é e como funciona uma List 375
Lista encadeada - O nó 375
Conectando os nós de uma lista 376
Inserindo nó ao final da lista 377
Conectando nós no início da lista 378
Inserindo um nó no meio da lista 379
Excluindo um nó da lista 380
Lista simplesmente encadeada com cabeça em C: Inserindo nós no início e no fim 382
Tipos de Listas em C 382
Lista encadeada com cabeça 382
Como inserir um nó no início da lista 384
Como inserir um nó ao final da lista 384
Como exibir os elementos de uma lista 386
Liberando a memória armazenada para uma lista 387
Código em C de uma lista encadeada 388
Considerações sobre listas em C 392
Exercícios sobre listas 393
Lista simplesmente encadeada: Retirando nós no início e no fim 394
Retirando nós da uma lista em C 394
Retirando um nó do início da lista 394
Como excluir um elemento ao final da lista 395
Código C da uma Lista encadeada 397
Exercício de C 402
Lista simplesmente encadeada: Inserindo e retirando nós de qualquer posição 402
Como criar uma lista completa em C 402
Alterações em nossa lista 403
Como inserir nós em qualquer posição da lista 403
Como retirar estruturas de uma lista 405
Código completo de uma Lista em C 406
Pilhas (Stack) em C - O Que é e Como Implementar 415
Pilha em C - O Que É e Para Que Serve 415
Como Programar Uma Pilha em C 416
Struct e Cabeçalhos de Funções 416
Função main() 416
Função menu() e opcao() 417
Função inicia() 417
Função vazia() 417
Função aloca() 417
Função libera() 418
Função exibe() 418
Função push() 418
Função pop() 419
Código Completo De Uma Pilha em C 420
Considerações sobre a Estrutura de Dados Dinâmica Pilha 425
Filas em C - Como Programar 426
Filas em C - Tutorial de Queue 426
Filas em C - Como Programar a Estrutura de Dados 427
Função main(), opcao() e menu() 427
Função aloca() e inicia() 427
Função vazia() 428
Função insere() 428
Função retira() 428
Função exibe() 429
Função libera() 430
Fila em C - Código Fonte Completo 430
Arquivos 435
Arquivos (Files) em C 436
Dados temporários x Dados permanentes 436
Arquivos em C - O que são e para que servem 437
Comandando um Sistema Operacional através do uso de Arquivos 438
Operações com arquivos: Modos de abertura (FILE e fopen), fechamento (EOF, fclose e fcloseall), modo texto e binário 440
O que são arquivos 440
Modo texto e binário 441
Como abrir um arquivo: A função fopen() e o ponteiro FILE 441
Nome de um arquivo 442
Modos de abertura: read (r), write (w) e append(a) 443
read(r) - Leitura de arquivo 443
r 443
r+ 443
rb 443
write(w) - Escrita em arquivo 444
w 444
w+ 444
wb 444
append(a) - Escrevendo ao final do arquivo (anexando) 444
a 444
a+ 444
ab 444
EOF (end of file), final do arquivo - Fechando arquivos com fclose() e fcloseall() 445
Erros em abertura de arquivos 445
Escrevendo em arquivos - As funções fputc(), fprintf() e fputs() 447
Arquivos padrões - Standard stdin, stdout e stderr 447
fputc() - Como escrever um caractere em um arquivo 448
Exemplo de código - Escrevendo um caractere em um arquivo 449
Exemplo de código - Adicionando caractere com o modo a
(append) 450
fprintf() - Escrevendo textos (strings) em arquivos 452
Exemplo de código - Armazenando notas, calculando a média e escrevendo no arquivo 452
Exercício sobre escrita de dados em C 453
Lendo arquivos em C: As funções fgetc, fscanf e fgets 454
fgetc() - Como ler caracteres de um arquivo 454
Exemplo de código C - Programa que lê o conteúdo de um arquivo, caractere por caractere 455
Exercício resolvido - Contando o número de linhas de um arquivo 456
fscanf() - Lendo uma entrada formatada 457
Exemplo de código - Como usar a fscanf 458
Exemplo de código - Nomes, notas e média 459
fgets() - Capturando linha 460
Como começar a programar
Sempre que alguém fala em programador, cientista da computação, engenheiro de software e coisas do tipo, no imaginário popular vem logo a imagem de alguém nerd, gênio ou vulgo CDF (como chamamos aqui no nordeste).
Não, não precisa ser um gênio pra isso.
Não precisa tirar só 10 na escola pra aprender a programar
Não precisa ir pra faculdade pra aprender computação
Aliás, sabia que muito dos gênios desse ramo, abandonaram a faculdade?
Muitos donos de empresa de tecnologia, começaram programando, estudando sozinho e hoje são muito bem sucedidos, e alguns só tem ensino médio?
Pois é, se essa galera, antigamente, sem internet, sem Youtube, sem livro e PDF, aprenderam, não tenha dúvidas: você pode e vai aprender também.
Não precisa ser inteligente nem ter conhecimento prévio algum.
Mas depois de aprender a programar, se prepare: sua mente vai mudar completamente.
O raciocínio muda.
A criatividade muda.
Sua lógica muda.
Sua mente muda totalmente, é algo incrível.
Mas vamos te dar algumas orientações, talvez não goste de algumas, mas te falo com sinceridade e mando a real na lata:
1. Você precisa se esforçar. Programar é simples, mas não simplório. Vai precisar ler, reler, pensar, pensar de novo, tentar e tentar. Isso, as vezes, é desgastante.
2. Precisa arranjar tempo. Muitos que querem programa estão na escola, faculdade, outros até trabalham e tem família. Você vai precisar de tempo. Boa parte do que aprendi, foi estudando em ônibus (não tinha smartphone, imprimia mesmo os livros e ia lendo no ônibus).
3. Precisa de sacrifícios. As vezes da vontade de ver uma série na Netflix, mas vá estudar. As vezes dá vontade de ficar dando refresh no Instagram e não fazer nada, mas estude. Você vê um vídeo no Youtube e ele te indica 20 outros legais, eu sei como é, mas estude. Se você continuar agindo como todos, se esforçando como todos, gastando seu tempo como todos...vai ser como todos. Quer algo diferente? Precisa agir diferente, amigão.
4. Tente de novo. As vezes, você vai ver exercícios aqui que você vai ler, tentar e vai falhar. No começo, vai ser sempre. Outras vezes, vai tentar tentar...e nada. Dá vontade de ver a resposta, a solução, mas tente mais. Dê uma volta, saia, vá passear, comer algo, namorar e depois tente novamente com a cabeça fresca. Programação é isso, todo dia você vai precisar solucionar algo, tem que quebrar a cabeça, até chorar em posição fetal no banheiro. FAZ PARTE. Só assim se vira um bom programador, ok? Tentando de novo.
5. Você vai se frustrar. Você vai passar 1 mês em um projeto, vai suar, quebrar a cabeça e resolver tudo em 5 mil linhas. Depois descobre que um filho de uma mãe resolveu de maneira melhor, mais rápida, completa e eficiente em 500 linhas. Você ficar pistola, com vontade de desistir e com vontade de decorar uns livros de leis e artigos pra passar num concurso e nunca mais ter que estudar e quebrar a cabeça. Mas se parar pra estudar, ver a solução e como funciona a mente dos outros, você vai ficar cada vez mais e mais fodástico.
6. Você vai sempre precisar estudar. Não importa o quanto estude, vai sempre precisar estudar. Sempre tem uma coisa nova pra aprender, algo que ainda não sabe, sempre vai precisar ler uma documentação de alguma API ou alguma dúvida em algum fórum. Faz parte, tem ter que gana e vontade de aprender. Não se admire se estiver trabalhando programando em um empresa e quando chegar em casa tu do que vai querer é...programar naquele seu projeto pessoal.
7. Estude inglês. Não sabe?