Você está na página 1de 29

a

Folh ola
Comeando a Programar em C Para Leigos de C

A melhor maneira de aprender a programar comear com uma linguagem fundamental como C.
Quase todas as outras linguagens populares de hoje pegam algo emprestado de C. Caso voc seja
curioso sobre programao, precisa passar em um curso da faculdade ou quer comear seu prprio
negcio de aplicativos, aprender C o jeito certo de comear.

Entendendo o Esqueleto de Linguagem C


A maioria das codificaes comeam com uma estrutura de linguagem C. Este esqueleto inclui os
ossos bsicos sobre os quais a maioria dos programas so escritos. Use este simples esqueleto para
comear:
#include <stdio.h>
int main()
{
return(0);
}
Tradicionalmente, o programa comea com diretivas de pr-processamento mais prottipos. As
declaraes #include trazem arquivos de cabealho, como stdio.h, o arquivo cabealho
padro de entrada/sada.
A funo primria em todo o cdigo C main(), que a primeira funo que executa quando o
programa comea. A funo main() uma funo int, ento deve retornar um valor inteiro. Todas
as declaraes de funes esto inclusas entre chaves.

Palavras-chave de Linguagem C
As palavras-chave de linguagem C representam a base da linguagem. Com a reviso C11 para a
linguagem, vrias palavras-chave novas foram adicionadas. Elas so exibidas iniciando com o
sublinhado (underscore) na tabela seguinte:
_Alignas break float signed
_Alignof case for sizeof
_Atomic char goto static
_Bool const if struct
_Complex continue inline switch
_Generic default int typedef
_Imaginary do long union
_Noreturn double register unsigned
_Static_assert else restrict void
_Thread_local enum return volatile
auto extern short while
Lembre-se dos seguintes pontos quando comear a programar em C:
No nomeie nenhuma funo ou varivel da mesma maneira que uma palavra-chave.
Voc usa apenas algumas palavras-chave de linguagem C no seu cdigo. Algumas delas
voc provavelmente nunca usar.

A maioria do trabalho no seu cdigo feita por funes, no por palavras-chave.

Para Leigos: A srie de livros para iniciantes que mais vende no mundo.

BOOK_PF_2rg_beg_prog_c_fd.indb 1 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
a
Folh ola
Comeando a Programar em C Para Leigos de C

Lembre-se dessas observaes sobre tipos de variveis:


Garanta que voc escolha o tipo de varivel adequado para os valores que voc
precisa armazenar.
O tipo _Bool armazena apenas dois valores, 0 e 1, que podem representar
VERDADEIRO ou FALSO ou Ligado e Desligado em qualquer condio binria.
A varivel tipo char armazena valores de caracteres, embora tambm possa ser
usada para armazenar inteiros.
Inteiros, ou nmeros inteiros, so armazenados nas variveis tipo int.
Qualquer tipo de valor, do maior para o menor, e qualquer valor fracionrio so
armazenados nos tipos float e double.
Lembre-se de usar valores int para funes que geram inteiros, como getchar().
fcil supor que a funo retorna um valor char por causa do nome da funo.
C no possui um tipo de varivel string. Em vez disso, um array de variveis char
usado.

Outros tipos de variveis incluem estruturas e ponteiros.

Sequncias de Escape Comuns em C


Quando voc no pode digitar caracteres em sua string, use as sequncias de escape para inserir
caracteres no-imprimveis em suas strings de texto, variveis char e arrays. Aqui esto algumas
sequncias de escape em C:

Caracteres O que Representa ou Exibe


\a Alarme (beep!)
\b Barra de espao, no destrutivo
\f Feed de formulrio ou limpa a tela
\n Newline (nova linha)
\r Cdigo de fim de linha
\t Tab
\v Tab vertical
\\ Caractere de contrabarra
\? Ponto de interrogao
\ Aspas simples
\ Aspas duplas
\xnn Cdigo de caractere hexadecimal nn
\onn Cdigo de caractere octal nn
\nn Cdigo de caractere octal nn

Para Leigos: A srie de livros para iniciantes que mais vende no mundo.

BOOK_PF_2rg_beg_prog_c_fd.indb 2 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Comeando a
Programar em C

por Dan Gookin

Rio de Janeiro, 2016

BOOK_PF_2rg_beg_prog_c_fd.indb 5 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sobre o Autor
Dan Gookin escreve sobre tecnologia h mais de 25 anos. Ele combina seu
amor por escrever com a fascinao por dispositivos para criar livros que so
informativos, interessantes e divertidos. J tendo escrito mais de 130 ttulos,
com 12 milhes de cpias impressas traduzidas em mais de 30 lnguas, Dan
pode provar que seu mtodo de criar livros de computao funciona.

Talvez, seu ttulo mais famoso seja o original DOS For Dummies, publicado em
1991. Ele se tornou o livro de computao de venda mais rpida do mundo,
vendendo mais cpias por semana de uma s vez que o best-seller nmero
um do New York Times (embora, como livro de referncia, ele no possa ser
listado na Lista de Best Sellers do jornal). Esse livro gerou uma linha inteira de
livros For Dummies, que se mantm como fenmeno de publicao at os dias
de hoje.

Os ttulos mais populares de Dan incluem PCs Para Leigos, Notebooks e


Laptops Para Leigos, Word For Dummies e Android Phones For Dummies.

Dan possui graduao em Comunicao/Artes Visuais pela Universidade


da Califrnia, San Diego. Mora no noroeste Pacfico, onde gosta de passar
o tempo com seus filhos, jogando videogames dentro de casa, enquanto
apreciam as madeiras suaves de Idaho.

BOOK_PF_2rg_beg_prog_c_fd.indb 7 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Agradecimentos
Gostaria de agradecer a Jon Rossen por seu feedback e reviso deste livro.
Jon tem lido meus livros de C h muito tempo. De vez em quando, ele me
mandava um e-mail com uma pergunta ou sugesto. Eu aproveitei nossa
comunicao e o jeito que ele olha as coisas e por isso que estou muito
agradecido por sua reviso. O resultado final foi muito melhor do que seria
sem ele. Jon, obrigado por suas contribuies.

BOOK_PF_2rg_beg_prog_c_fd.indb 9 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio Resumido
Introduo.............................................................................1

Parte I: Comeando a programar em C.....................................7


Captulo 1: Um Incio Rpido Para os Impacientes.....................................................................9
Captulo 2: O Segredo da Programao......................................................................................21
Captulo 3: Anatomia do C..........................................................................................................31

Parte II: Introduo Programao C....................................45


Captulo 4: Testes e Erros..............................................................................................................47
Captulo 5: Valores e Constantes..................................................................................................59
Captulo 6: Um Lugar para Colocar Coisas.................................................................................71
Captulo 7: Entrada e Sada..........................................................................................................83
Captulo 8: Tomando Decises.....................................................................................................97
Captulo 9: Loops, Loops, Loops.................................................................................................113
Captulo 10: Diverso com Funes..........................................................................................129

Parte III: Construa Sobre o que Voc Sabe............................143


Captulo 11:O Captulo Inevitvel Sobre Matemtica..............................................................145
Captulo 12: Me d Arrays ..........................................................................................................163
Captulo 13: Diverso com Texto................................................................................................181
Captulo 14: Estruturas, as Multivariveis...................................................................................199
Captulo 15: Existe Vida no Prompt de Comando....................................................................209
Captulo 16: Variveis Sem Noo..............................................................................................219
Captulo 17: Mania de Binrios..................................................................................................231

Parte IV: A Parte Avanada................................................249


Captulo 18: Introduo a Ponteiros..........................................................................................251
Captulo 19: Nas Profundezas da Terra dos Ponteiros..............................................................267
Captulo 20: Listas Ligadas..........................................................................................................287
Captulo 21: J era Hora..............................................................................................................307

Parte V: E o Resto?.............................................................315
Captulo 22: Funes de Armazenamento Permanente..........................................................317
Captulo 23: Gerenciamento de Arquivos.................................................................................335
Captulo 24: Alm de Projetos de Meros Mortais.....................................................................345
Captulo 25: Fora, Bugs!...............................................................................................................355

BOOK_PF_2rg_beg_prog_c_fd.indb 11 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
xii Comeando a Programar em C Para Leigos________________________

Parte VI: A Parte dos Dez....................................................367


Captulo 26: Dez Errinhos Comuns............................................................................................369
Captulo 27: Dez Lembretes e Sugestes...................................................................................377

Posfcio............................................................................385

Apndice A: Cdigos ASCII.................................................387

Apndice B: Palavras-chave................................................393

Apndice C: Operadores......................................................395

Apndice D: Tipos de Variveis............................................397

Apndice E: Sequncias de Escape.......................................399

Apndice F: Converso de Caracteres...................................401

Apndice G: Ordem de Precedncia......................................403

ndice................................................................................405

BOOK_PF_2rg_beg_prog_c_fd.indb 12 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio
Introduo.............................................................................1
A Linguagem C Relevante?.............................................................................................1
A Abordagem de Comeando a Programar em C Para Leigos......................................2
Como Este Livro Funciona.................................................................................................2
cones Utilizados Neste Livro.............................................................................................4
Pensamentos Finais.............................................................................................................4

Parte I: Comeando a programar em C.....................................7


Captulo 1: Um Incio Rpido Para os Impacientes........................................9
O Que Voc Precisa para Programar.................................................................................9
Obtendo ferramentas de programao......................................................................9
Adquirindo um Ambiente de Desenvolvimento Integrado (IDE).........................10
Eis o IDE Code::Blocks.....................................................................................................10
Instalando o Code::Blocks.........................................................................................10
Um tour pela rea de trabalho do Code::Blocks.....................................................12
Seu Primeiro Projeto.........................................................................................................14
Criando um novo projeto...........................................................................................14
Examinando o cdigo-fonte......................................................................................16
Montando e executando o projeto...........................................................................18
Salvando e fechando..................................................................................................19

Captulo 2: O Segredo da Programao..........................................................21


A Histria da Programao..............................................................................................21
Revisando o incio da histria da programao.....................................................22
Apresentando a linguagem C....................................................................................22
O Processo de Programao...........................................................................................23
Entendendo a programao......................................................................................23
Escrevendo o cdigo-fonte........................................................................................24
Compilando para cdigo objeto...............................................................................26
Vinculando biblioteca C.........................................................................................27
Executando e testando..............................................................................................28

BOOK_PF_2rg_beg_prog_c_fd.indb 13 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
xiv Comeando a Programar em C Para Leigos________________________

Captulo 3: Anatomia do C................................................................................31


Partes da Linguagem C.....................................................................................................31
Palavras-chave.............................................................................................................32
Funes........................................................................................................................33
Operadores..................................................................................................................34
Variveis e valores......................................................................................................35
Declaraes e estrutura.............................................................................................35
Comentrios................................................................................................................36
Observe um Tpico Programa em C................................................................................38
Entendendo a estrutura de um programa em C......................................................39
Definindo a funo main().......................................................................................39
Retornando alguma coisa para o sistema operacional..........................................40
Adicionando uma funo..........................................................................................41

Parte II: Introduo Programao C....................................45


Captulo 4: Testes e Erros..................................................................................47
Exiba Algo na Tela.............................................................................................................47
Exibindo uma mensagem cmica............................................................................47
Introduzindo a funo puts()....................................................................................48
Adicionando mais texto.............................................................................................49
Comentando uma declarao..................................................................................50
Errando de propsito.................................................................................................51
Exibindo Mais Algumas Coisas........................................................................................53
Exibindo texto com printf()......................................................................................53
Introduzindo a funo printf()..................................................................................54
Entendendo a quebra de linha.................................................................................55
Empregando sequncias de escape.........................................................................55
Errando de propsito de novo..................................................................................57

Captulo 5: Valores e Constantes......................................................................59


Um Local para Vrios Valores...........................................................................................59
Entendendo valores....................................................................................................60
Exibindo valores com printf()...................................................................................60
Preocupando-se com os zeros extras.......................................................................62
O Computador Faz a Conta.............................................................................................63
Fazendo aritmtica simples.......................................................................................63
Revendo a jogada do float-inteiro.............................................................................65
Sempre o Mesmo..............................................................................................................66
Utilizando o mesmo valor repetidas vezes..............................................................66
Introduzindo constantes............................................................................................67
Utilizando constantes.................................................................................................68

BOOK_PF_2rg_beg_prog_c_fd.indb 14 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio xv

Captulo 6: Um Lugar para Colocar Coisas.....................................................71


Valores que Variam............................................................................................................71
Configurando um exemplo rpido...........................................................................72
Introduzindo os tipos de variveis............................................................................72
Utilizando variveis....................................................................................................73
Variveis Muito Loucas!....................................................................................................76
Utilizando tipos mais especficos de variveis........................................................77
Criando mltiplas variveis.......................................................................................78
Agregando valor criao........................................................................................80
Reutilizando variveis................................................................................................80

Captulo 7: Entrada e Sada...............................................................................83


Caractere I/O.....................................................................................................................83
Entendendo os dispositivos de entrada e sada......................................................83
Lendo caracteres com getchar()..............................................................................84
Utilizando a funo putchar()..................................................................................86
Trabalhando com variveis do tipo caractere........................................................87
Texto I/O, mas principalmente I.......................................................................................88
Armazenando strings..................................................................................................88
Introduzindo a funo scanf()..................................................................................90
Lendo uma string com scanf( ).................................................................................91
Lendo valores com scanf( ).......................................................................................92
Utilizando fgets() para entrada de texto..................................................................93

Captulo 8: Tomando Decises.........................................................................97


Se o Qu?...........................................................................................................................97
Fazendo uma comparao simples..........................................................................97
Introduzindo a palavra-chave if................................................................................99
Comparando valores de vrias maneiras.................................................................99
Percebendo a diferena entre = e ==......................................................................101
Esquecendo onde colocar o ponto e vrgula........................................................102
Decises Mltiplas..........................................................................................................103
Tomando decises mais complexas......................................................................103
Adicionando uma terceira opo...........................................................................104
Comparaes Mltiplas com Lgica............................................................................105
Construindo uma comparao lgica....................................................................106
Adicionando operadores de lgica........................................................................106
O Velho Truque do Switch Case.....................................................................................107
Fazendo uma seleo de mltipla escolha...........................................................108
Entendendo a estrutura do switch-case.................................................................109
Sem fazer pausas.......................................................................................................110
A Estranha Estrutura de Deciso ?:................................................................................111

BOOK_PF_2rg_beg_prog_c_fd.indb 15 15/02/2016 11:28:35


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
xvi Comeando a Programar em C Para Leigos________________________

Captulo 9: Loops, Loops, Loops......................................................................113


Um Pequeno Dj Vu......................................................................................................113
A emoo dos Loops for................................................................................................114
Fazendo alguma coisa x nmero de vezes............................................................114
Introduzindo o loop for............................................................................................115
Contando com a declarao for.............................................................................117
Letras em looping.....................................................................................................118
Aninhando loops for................................................................................................119
A Alegria do Loop while.................................................................................................120
Estruturando um loop while....................................................................................120
Utilizando um loop do-while...................................................................................122
Coisas de Loop................................................................................................................123
Fazendo loops infinitos............................................................................................123
Fazendo loops infinitos, mas de propsito............................................................124
Saindo de um loop...................................................................................................125
Estragando um loop.................................................................................................126

Captulo 10: Diverso com Funes...............................................................129


Anatomia de uma Funo.............................................................................................129
Construindo uma funo.........................................................................................130
Prototipar (ou no)..................................................................................................132
Funes e Variveis.........................................................................................................134
Utilizando variveis em funes.............................................................................135
Enviando um valor a uma funo..........................................................................136
Enviando mltiplos valores a uma funo............................................................138
Criando funes que retornam valores..................................................................138
Retornando antes......................................................................................................141

Parte III: Construa Sobre o que Voc Sabe............................143


Captulo 11:O Captulo Inevitvel Sobre Matemtica................................145
Operadores Matemticos
de Alm do Infinito......................................................................................................145
Incrementando e decrementando..........................................................................146
Pr-fixando os operadores + + e - -..........................................................................148
Descobrindo o resto (mdulo)...............................................................................149
Ganhando tempo com operadores
de atribuio...........................................................................................................150
Mania de Funes Matemticas....................................................................................151
Explorando algumas funes
matemticas comuns.............................................................................................152
Sofrendo com trigonometria...................................................................................154
Totalmente Aleatrio...................................................................................................156
Descarregando nmeros aleatrios........................................................................157
Tornando os nmeros mais aleatrios...................................................................158
A Sagrada Ordem da Precedncia................................................................................160
Recebendo a ordem correta...................................................................................160
Forando ordem com parnteses...........................................................................161

BOOK_PF_2rg_beg_prog_c_fd.indb 16 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio xvii

Captulo 12: Me d Arrays ..............................................................................163


Contemple o Array..........................................................................................................163
Evitando arrays..........................................................................................................163
Entendendo arrays....................................................................................................164
Inicializando um array.............................................................................................167
Brincando com arrays de caracteres (strings)......................................................167
Trabalhando com arrays char vazios.....................................................................169
Ordenando arrays.....................................................................................................170
Arrays Multidimensionais...............................................................................................173
Fazendo um array bidimensional...........................................................................173
Enlouquecendo com arrays tridimensionais.........................................................176
Declarando um array multidimensional inicializado...........................................177
Arrays e Funes.............................................................................................................178
Passando um array para uma funo.....................................................................178
Retornando um array de uma funo....................................................................180

Captulo 13: Diverso com Texto....................................................................181


Funes de Manipulao de Caracteres......................................................................181
Introduzindo os CTYPEs...........................................................................................182
Testando caracteres.................................................................................................183
Mudando caracteres.................................................................................................185
Abundncia de Funes String.....................................................................................186
Revisando funes string.........................................................................................186
Comparando texto....................................................................................................187
Construindo strings...................................................................................................189
Diverso com Formatao printf()...............................................................................190
Formatando ponto flutuante...................................................................................190
Configurando a largura da sada.............................................................................192
Alinhando a sada.....................................................................................................193
Descendo o Fluxo Tranquilamente...............................................................................194
Demonstrando o fluxo de entrada..........................................................................195
Lidando com o fluxo de entrada............................................................................195

Captulo 14: Estruturas, as Multivariveis....................................................199


Ol, Estrutura...................................................................................................................199
Introduzindo a multivarivel...................................................................................199
Entendendo struct....................................................................................................201
Preenchendo uma estrutura....................................................................................203
Fazendo um array de estruturas..............................................................................204
Conceitos estranhos sobre estruturas...........................................................................206
Colocando estruturas dentro de estruturas............................................................206
Passando uma estrutura para uma funo............................................................207

Captulo 15: Existe Vida no Prompt de Comando........................................209


Invoque uma Janela de Terminal..................................................................................209
Inicializando uma janela de terminal....................................................................209
Executando cdigo no modo texto........................................................................210

BOOK_PF_2rg_beg_prog_c_fd.indb 17 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
xviii Comeando a Programar em C Para Leigos________________________

Os Argumentos da Funo main ()..............................................................................211


Lendo a linha de comando.....................................................................................212
Entendendo os argumentos do main ().................................................................214
Hora de Cair Fora............................................................................................................215
Saindo do programa.................................................................................................215
Executando outro programa...................................................................................216

Captulo 16: Variveis Sem Noo.................................................................219


Controle de Variveis......................................................................................................219
Typecasting em descrena......................................................................................219
Criando coisas com typedef....................................................................................221
Criando variveis estticas......................................................................................223
Variveis,Variveis em Todo Lugar................................................................................225
Utilizando variveis globais.....................................................................................226
Criando uma varivel de estrutura global..............................................................227

Captulo 17: Mania de Binrios......................................................................231


O Bsico dos Binrios....................................................................................................231
Entendendo binrios................................................................................................231
Exibindo valores binrios........................................................................................233
Manipulao de Bit........................................................................................................235
Utilizando o operador bitwise (bit-a-bit) |..............................................................235
Utilizando o operador bitwise (bit-a-bit) &............................................................237
Operando exclusivamente com XOR.....................................................................238
Entendendo os operadores ~ e !.............................................................................240
Mudando valores binrios.......................................................................................241
Explicando a funo binbin ()...............................................................................243
A Alegria do Hex.............................................................................................................245

Parte IV: A Parte Avanada................................................249


Captulo 18: Introduo a Ponteiros..............................................................251
O Maior Problema com Ponteiros.................................................................................251
Avaliando o Armazenamento
de Variveis....................................................................................................................252
Entendendo o armazenamento de variveis.........................................................252
Lendo o tamanho de uma varivel.........................................................................253
Checando a localizao de uma varivel..............................................................257
Revisando as informaes de armazenamento de variveis...............................260
O Tpico Terrivelmente Complexo
dos Ponteiros.................................................................................................................260
Introduzindo o ponteiro...........................................................................................260
Trabalhando com ponteiros....................................................................................263

Captulo 19: Nas Profundezas da Terra dos Ponteiros...............................267


Ponteiros e Arrays............................................................................................................267
Pegando o endereo de um array..........................................................................267

BOOK_PF_2rg_beg_prog_c_fd.indb 18 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio xix
Trabalhando com o ponteiro matemtico em um array.....................................269
Substituindo ponteiros por notao array.............................................................273
Strings so Tipo Ponteiros............................................................................................274
Utilizando ponteiros para exibir uma string..........................................................275
Declarando uma string atravs da utilizao de um ponteiro............................276
Construindo um array de ponteiros........................................................................277
Classificando strings.................................................................................................280
Ponteiros em Funes....................................................................................................282
Passando um ponteiro para uma funo...............................................................282
Retornando um ponteiro de uma funo..............................................................283

Captulo 20: Listas Ligadas..............................................................................287


D-me Memria!..............................................................................................................287
Introduzindo a funo malloc ()............................................................................288
Criando armazenamento de string.........................................................................289
Liberando memria..................................................................................................290
Listas que Ligam..............................................................................................................293
Alocando espao para uma estrutura....................................................................293
Criando uma lista ligada..........................................................................................295
Editando uma lista ligada........................................................................................300
Salvando uma lista ligada........................................................................................305

Captulo 21: J era Hora...................................................................................307


Que horas so?................................................................................................................307
Entendendo o calendrio........................................................................................308
Trabalhando com tempo em C...............................................................................308
Hora de Programar.........................................................................................................310
Checando o relgio..................................................................................................310
Visualizando uma timestamp..................................................................................312
Cortando a string de tempo.....................................................................................312
Cochilando................................................................................................................314

Parte V: E o Resto?.............................................................315
Captulo 22: Funes de Armazenamento Permanente..............................317
Acesso Sequencial a Arquivos.......................................................................................317
Entendendo o acesso a arquivos em C..................................................................318
Escrevendo texto em um arquivo...........................................................................319
Lendo texto de um arquivo.....................................................................................320
Anexando texto a um arquivo................................................................................322
Escrevendo dados binrios.....................................................................................323
Trabalhando com arquivos de dados binrios.....................................................324
Acesso Aleatrio a Arquivo............................................................................................327
Escrevendo uma estrutura em um arquivo............................................................327
Lendo e voltando......................................................................................................330
Encontrando um registro especfico......................................................................332
Salvando uma lista ligada em um arquivo............................................................333

BOOK_PF_2rg_beg_prog_c_fd.indb 19 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
xx Comeando a Programar em C Para Leigos________________________

Captulo 23: Gerenciamento de Arquivos.....................................................335


Diretrios Muito Loucos.................................................................................................335
Chamando um diretrio..........................................................................................335
Reunindo mais informaes de arquivo................................................................337
Separando arquivos de diretrios...........................................................................339
Explorando a rvore de diretrios..........................................................................340
Diverso com Arquivos...................................................................................................341
Renomeando um arquivo........................................................................................342
Copiando um arquivo..............................................................................................343
Deletando um arquivo.............................................................................................344

Captulo 24: Alm de Projetos de Meros Mortais.......................................345


O Monstro Multimodular................................................................................................345
Vinculando dois arquivos de cdigo-fonte............................................................345
Compartilhando variveis entre mdulos.............................................................348
Criando um arquivo cabealho customizado.......................................................349
Outras Bibliotecas para Vincular...................................................................................352

Captulo 25: Fora, Bugs!...................................................................................355


O Depurador do Code::Blocks......................................................................................355
Configurando a depurao.....................................................................................356
Trabalhando o depurador.......................................................................................357
Estabelecendo um breakpoint................................................................................359
Observando variveis...............................................................................................360
Resolvendo Problemas Atravs da Utilizao de printf() e puts()............................362
Documentando problemas......................................................................................362
Salvando comentrios para o seu futuro...............................................................363
Mensagens de Erro Melhoradas....................................................................................363

Parte VI: A Parte dos Dez....................................................367


Captulo 26: Dez Errinhos Comuns.................................................................369
Estragos Condicionais....................................................................................................369
= = v. =................................................................................................................................370
Perigosos Ponto e Vrgulas em Loop..............................................................................371
Vrgulas em Loops for.....................................................................................................372
Esquecendo o break em uma
Estrutura Switch............................................................................................................372
Esquecendo Parnteses e Chaves.................................................................................373
Preste Ateno quele Aviso.........................................................................................374
Loops Infinitos.................................................................................................................375
Mancadas de scanf()......................................................................................................375
Restries de Entrada em Tempo Real.........................................................................376

BOOK_PF_2rg_beg_prog_c_fd.indb 20 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Sumrio xxi

Captulo 27: Dez Lembretes e Sugestes......................................................377


Mantendo uma Boa Postura...........................................................................................377
Use Nomes Criativos.......................................................................................................378
Escreva uma Funo......................................................................................................379
Trabalhe no Seu Cdigo Pouco a Pouco......................................................................379
Divida Projetos Grandes em Vrios Mdulos...............................................................379
Saiba o que um Ponteiro.............................................................................................380
Adicione Espao em Branco ao invs de Condensar.................................................380
Saiba Quando if-else Se Torna um switch-case............................................................381
Lembre-se dos Operadores de Atribuio....................................................................382
Quando Estiver Travado, Leia Seu Cdigo em Voz Alta...............................................383

Posfcio............................................................................385

Apndice A: Cdigos ASCII.................................................387

Apndice B: Palavras-chave................................................393

Apndice C: Operadores......................................................395

Apndice D: Tipos de Variveis............................................397

Apndice E: Sequncias de Escape.......................................399

Apndice F: Converso de Caracteres...................................401

Apndice G: Ordem de Precedncia......................................403

ndice................................................................................405

BOOK_PF_2rg_beg_prog_c_fd.indb 21 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Introduo
D iga Ol para Comeando a Programar em C Para Leigos, um livro que
transforma voc, um ser humano afetuoso e bem-intencionado, em um
elemento admirado da subcultura nerd underground: um programador.

Ah, sim, isso uma coisa boa. Ao aprender a codificar em C, voc se torna
o mestre final de muitos dispositivos eletrnicos. Passa a poder criar seus
prprios programas, ditando, para computadores, tablets e telefones celulares,
seus caprichos e desejos. Os eletrnicos obedecem prontamente! Com as
informaes oferecidas neste livro, voc pode esquecer aquela aula de
programao, impressionar seus amigos, ser admirado por Hollywood ou, at
mesmo, comear sua prpria empresa de software. Sim, aprender a programar
um investimento valioso do seu tempo.

Este livro torna o aprendizado da programao compreensvel e agradvel.


Voc no precisa de nenhuma experincia em programao voc nem
precisa comprar um software novo! Voc s precisa querer programar em C e
ter habilidade para se divertir enquanto faz isso.

A Linguagem C Relevante?
A cada poucos anos, o argumento de que aprender C no leva a nada, vem
tona. Existem linguagens de programao novas e melhores e prefervel
aprend-las a perder tempo aprendendo C. Bobagem.

De certa maneira, C o Latim das linguagens de programao. Praticamente


todas as linguagens de programao recentes usam a sintaxe C. Palavras-
chave de C e at certas funes encontram seus lugares em outras linguagens
populares, de C++, passando pelo Java, para Python e para qualquer outra
linguagem que estiver na moda.

Minha opinio que, uma vez que se aprenda a programar em C, todas as


outras linguagens de programao sero mais fceis. Na verdade, muitos dos
livros que ensinam essas outras linguagens frequentemente presumem que
o leitor sabe um pouco de C antes de comear. Isto pode ser frustrante para
qualquer principiante mas no quando voc j sabe C.

Apesar do que os especialistas e sbios dizem, C ainda relevante. A


programao para microcontroladores, sistemas de operao e importantes
pacotes de software ainda feita utilizando-se a boa e velha C. No perda
de tempo.

BOOK_PF_2rg_beg_prog_c_fd.indb 1 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
2 Comeando a Programar em C Para Leigos___________________________

A Abordagem de Comeando a
Programar em C Para Leigos
Como programador, trabalhei com muitos e muitos livros de programao.
Sei do que no gosto de ver, mas lamentavelmente vejo com muita frequncia
autores escreverem cdigos de vrias pginas ou simplesmente se gabarem
pelo que sabem, impressionando seus companheiros nerds e no ensinando
nada de fato. Existe muito desse tipo de treinamento e provavelmente por
causa disso que voc escolheu este livro. Minha abordagem aqui simples:
programas curtos. Demonstraes diretas. Muitos exemplos. Exerccios de
sobra.

O melhor jeito de aprender alguma coisa fazendo. Cada conceito


apresentado neste livro ligado a um exemplo de cdigo. As listagens so
curtas o suficiente para que voc possa inclu-las rapidamente e recomendo
que faa isso. Depois, voc pode montar e executar o cdigo para ver como as
coisas funcionam. Esse feedback imediato no s gratificante, mas tambm
uma ferramenta de aprendizado maravilhosa.

Exemplos de programas so seguidos por exerccios, que voc pode tentar


resolver sozinho, testando suas habilidades e expandindo seu conhecimento.
Sugestes de respostas para os exerccios podem ser encontradas no site
relacionado a este livro:

http://www.c-for-dummies.com/begc4d/exercises

Como Este Livro Funciona


Este livro ensina programao em linguagem C. Comea assumindo que voc
sabe de muito pouco a nada sobre programao e termina cobrindo algumas
das operaes mais avanadas em C.

Para programar em C voc precisa de um computador. No h indicao


sobre o computador ideal que voc deve escolher: pode ser um PC com
Windows, um Macintosh ou um sistema Linux. Importante para todos os
sistemas, e para programar com este livro, a configurao e utilizao do
ambiente de desenvolvimento integrado (ou IDE) Code::Blocks. Os passos
para isso sero oferecidos no Captulo 1.

Este livro tambm no perde tempo, fazendo voc programar j no Captulo


1. Nada introduzido sem uma explicao completa antes, embora, devido
natureza da programao, eu tenha feito algumas excees, que esto
cuidadosamente anotadas no texto. Ademais, a melhor maneira de ler este
livro da primeira pgina ao seu final.

BOOK_PF_2rg_beg_prog_c_fd.indb 2 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Introduo 3
Palavras-chave e funes da linguagem C so mostradas em fonte
monoespaada, como printf() e break. Algumas palavras-chave, como
for e if, podem fazer as frases serem lidas erroneamente, de uma forma
esquisita, e por isso que so exibidas em fonte monoespaada.

Nomes de arquivos so mostrados em fonte monoespaada, como


program.exe.

Se voc precisar digitar alguma coisa, esse texto ser mostrado em negrito.
Por exemplo, Digite o comando blorfus significa que voc deve digitar
blorfus no teclado. Voc orientado quanto ao momento de pressionar a
tecla Enter, se precisar.

Quando trabalharmos com passos numerados, o texto para digitar aparecer


em um formato regular (roman):

3. Digite exit e pressione a tecla Enter.

Voc digita a palavra exit e ento pressiona a tecla Enter.

Exemplos de programas so mostrados em fragmentos na pgina, parecidos


com este:

if( i == 1)
printf(eye won);

Voc no precisa digitar um exemplo a no ser que seja orientado a faz-lo.

Listagens completas de programas so mostradas e numeradas em cada


captulo; por exemplo:

Listagem 1-1: O Esqueleto do Code::Blocks


#include <stdio.h>
#include <stdlib.h>

int main()
{
printf(Hello world!\n);
return(0);
}

Por causa das margens deste livro, o texto de uma listagem pode ser
quebrado, passando de uma linha para a outra. Voc no precisa dividir o
seu cdigo de uma maneira similar e ser lembrado disso sempre que esse
tipo de coisa ocorrer.

As listagens neste livro no contm linhas numeradas, mas no editor no


Code::Blocks sim (como em vrios editores de texto populares). Este livro
referencia as listagens de exemplos de cdigo usando o nmero das linhas.
Utilize os nmeros das linhas em seu editor para referenciar o cdigo.

BOOK_PF_2rg_beg_prog_c_fd.indb 3 15/02/2016 11:28:36


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
4 Comeando a Programar em C Para Leigos___________________________

Exerccios so numerados por captulo e ento sequencialmente. Logo, o


terceiro exerccio do Captulo 13 o Exerccio 13-3. Voc orientado no texto
a trabalhar em um exerccio. Aqui est um exemplo:

Exerccio 1-1: Digite o cdigo-fonte da Listagem 1-1 no editor Code::Blocks.


Salve com o nome de arquivo ex0101. Monte e execute.

Respostas para todos os exerccios podem ser encontradas nesse site


(contedo em ingls):

http://www.c-for-dummies.com/begc4d/exercises

V nesta pgina, se quiser copiar e colar o cdigo-fonte tambm; no ofereo


os arquivos de cdigo-fonte porque voc aprende melhor quando digita os
exerccios. Vou conceder a voc um copiar e colar, mas, sinceramente, o
cdigo-fonte to curto que voc pode digit-lo rapidamente.

cones Utilizados Neste Livro


E-SE
BR Este cone assinala informaes que valem a pena lembrar. Embora
LEM

recomende que voc grave o mximo que puder, estes cones marcam as
coisas que simplesmente no se pode esquecer.

ICA
Uma dica uma sugesto, um truque especial ou algo super sofisticado
D

para ajud-lo.

O!
AD Este cone marca algo que voc deve evitar. um conselho que tambm
CUID

poderia ser assinalado com um cone de Dica ou Cuidado, mas tem


consequncias terrveis se ignorado.
CIALIS
SPE T
Encare o fato: toda a programao tcnica. Reservo o uso deste cone para
PAPO DE E

pedacinhos extratcnicos, excees e anedotas. Chame-os de coisas nerds.

Pensamentos Finais
Gosto de programar. um hobby, que acho incrivelmente relaxante, frustrante
e recompensador. Presumo que no mais do que apenas algumas pessoas
compartilhem destes sentimentos, mas voc tambm pode ser um estudante
com dificuldades ou algum que almeja uma carreira. De qualquer maneira,
goste de programar. Se voc pode imaginar o programa que quer escrever em
uma tela, voc pode fazer acontecer. Pode no acontecer to rpido quanto
gostaria, mas pode acontecer.

BOOK_PF_2rg_beg_prog_c_fd.indb 4 15/02/2016 11:28:37


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Introduo 5
Por favor, faa os exerccios deste livro. Tente alguns prprios, variaes de
um tema. Continue trabalhando com problemas at resolv-los. O incrvel da
programao que no existe um jeito nico absolutamente correto de fazer
alguma coisa. Sempre que tentar, aprender.

Se possvel, encontre um amigo programador que possa ajud-lo. No o faa


fazer o trabalho por voc ou explicar como as coisas funcionam, mas conte
com ele como um recurso. Programar pode ser uma coisa individual, mas
ocasionalmente bom solidarizar-se com outros que tambm programam em
C ou qualquer outra linguagem.

Este livro possui alguns sites que se relacionam a ele.

Para analisar as respostas dos exerccios, encontrar informaes


suplementares e ver o que h de novo, visite os seguintes sites com contedo
em ingls:

www.c-for-dummies.com

Para arquivos de cdigos do livro, visite o site da editora e procure pelo ttulo
do livro:

www.altabooks.com.br

Para algumas dicas teis e artigos de Programao em C, acesse e procure


pelo ttulo do livro (contedo em ingls):

www.dummies.com

Aproveite sua programao em C!

BOOK_PF_2rg_beg_prog_c_fd.indb 5 15/02/2016 11:28:37


Prova: DTP - Beginning Proframming With C FD Data: 04/05/2015
Parte I

BOOK_PF_2rg_beg_prog_c_fd.indb 7 15/02/2016 11:28:37


Nesta parte...
UUComece com a IDE Code::Blocks
UUTrabalhe no seu primeiro programa
UUAprenda como a programao funciona
UUDescubra as partes da linguagem C
UUUse o Code::Blocks para escrever o esqueleto bsico de C

BOOK_PF_2rg_beg_prog_c_fd.indb 8 15/02/2016 11:28:37


Captulo 1

Um Incio Rpido
Para os Impacientes
Neste Captulo
Obtendo o Code::Blocks
Configurando seu primeiro projeto
Digitando em cdigo
Montando e executando
Saindo do Code::Blocks

V oc deve estar ansioso para comear a programar em C. Eu no farei com


que perca tempo.

O Que Voc Precisa para Programar


Para ter total controle sobre um computador, tablet, telefone celular, console
de vdeogame etc, voc precisa de algumas ferramentas de software. A boa
notcia que, a esta altura do sculo 21, todas essas ferramentas so gratuitas
e fceis de serem obtidas atravs da internet. Voc s precisa saber o que
necessrio e onde conseguir.

Obtendo ferramentas de programao


As duas coisas mais importantes que voc precisa para comear sua aventura
na programao so:

UUum computador
UUacesso internet

O computador sua ferramenta primria para escrever e compilar cdigo.


Sim, at mesmo se estiver escrevendo um jogo para o Xbox, voc precisar de
um computador para poder codificar. O computador pode ser um PC ou um
Macintosh. O PC pode executar Windows ou Linux.

BOOK_PF_2rg_beg_prog_c_fd.indb 9 15/02/2016 11:28:37


10 Parte I: Comeando com Programao em C__________________________

O acesso internet necessrio para obter o restante das suas ferramentas de


programao. Voc precisar de um editor de texto para escrever o cdigo
de programao e um compilador para traduzir o cdigo em um programa.
O compilador geralmente vem com outras ferramentas necessrias, como um
vinculador e um depurador. Todas essas ferramentas so encontradas sem
custo na internet.

No pire! Os termos compilador, vinculador e depurador esto todos definidos


no Captulo 2.

Adquirindo um Ambiente de
Desenvolvimento Integrado (IDE)
timo que voc comece sua jornada na programao, procurando por um
editor de texto, um compilador e outras ferramentas. Utilizar programas diferentes
na linha de comando de uma janela de terminal foi como aprendi a programar, l
na idade das trevas. um processo que ainda pode ser feito, mas estranho.

O jeito mais tranquilo e profissional de codificar atualmente atravs de


um Ambiente de Desenvolvimento Integrado popularmente chamado de
IDE. Ele combina todas as ferramentas necessrias para programar em uma
unidade compacta, aterrorizante e intimidadora.

Voc utiliza o IDE para escrever cdigo, montar e depurar programas, alm de
encontrar todos os tipos de magia. Apesar de ser nostlgico utilizar um editor
de texto ou um compilador separados, todos os profissionais utilizam um IDE.
isso que recomendo neste livro tambm.

Obter um IDE tambm resolve o grande nmero de problemas de configurar


um compilador, o editor de texto e fazer todos esses elementos separados
trabalharem juntos. Ter um IDE a melhor maneira de comear a programar
que, acho, algo que voc est realmente ansioso para fazer.

Eis o IDE Code::Blocks


Voc vai ver que a internet est cheia de vrios IDEs e so todos muito bons.
Para ser consistente, este livro usa o IDE Code::Blocks, que funciona no
Windows, no Mac OS C e no Linux. Ele vem com tudo o que voc precisa.

Se voc j tem um IDE, timo! Estou certo de que ele faz coisas similares ao
Code::Blocks, embora as ilustraes e exemplos deste livro, especialmente nos
primeiros captulos, sejam especficos do Code::Blocks.

Instalando o Code::Blocks
Obtenha o Code::Blocks na internet neste site:

www.codeblocks.org

BOOK_PF_2rg_beg_prog_c_fd.indb 10 15/02/2016 11:28:37


Captulo 1: Um nicio Rpido Para os Impacientes 11
Este site certamente ser modificado com o tempo. Ento, os seguintes passos
para instalar o IDE podem mudar sutilmente:

1. Use o navegador do seu computador para visitar o site do


Code::Blocks.

2. Entre na rea de Downloads.


Baixe a verso binria ou a verso executvel do Code::Blocks. Ela deve
ser especfica para o sistema operacional do seu computador. Mais
para frente, encontre a verso que inclui um compilador C, como o
compilador comum MinGW.
3. Clique no link para exibir a instalao do binrio ou do
executvel do Code::Blocks.
No momento deste livro ir para a grfica, o link estava na frase Download
the Binary Release.
4. Escolha o sistema operacional do seu computador ou role a tela
at a parte que lista as opes para esse sistema operacional.
Voc pode encontrar sees (ou pginas) para Windows, Linux e Mac
OS X.
5. Clique no link que baixa o compilador e o IDE para o sistema
operacional do seu computador.
A verso para Windows do IDE e do compilador est nomeada desta forma:
codeblocks-xx.yymingw-setup.exe

O xx e o yy representam o maior e menor nmeros de verses do


Code::Blocks.
No Linux, voc pode escolher a verso 32-bit ou a 64-bit, dependendo
da sua distribuio, ou distro, e o formato de arquivo que voc quer.
Recomendo uma verso estvel.
Usurios de Mac OS X podem escolher entre baixar um arquivo .dmg, ou
uma imagem de disco, ou o arquivo zip tradicional.
6. Extraia o programa de instalao do Code::Blocks do arquivo.
Apesar do ttulo Para Leigos deste livro, parto do princpio que voc sabe
trabalhar bem com arquivos .zip, .gz, .dmg, e outros formatos para
qualquer que seja o sistema operacional que utilize.
7. Execute o programa de instalao.
Observe com ateno as orientaes na tela. Realize uma instalao
padro; voc no precisa customizar nada a essa altura.
No Windows, garanta que voc esteja instalando o MinGW compiler suite.
Se voc no v essa opo presente na janela Choose Components, ento
baixou a verso errada do Code::Blocks. Volte ao Passo 5.

BOOK_PF_2rg_beg_prog_c_fd.indb 11 15/02/2016 11:28:37


12 Parte I: Comeando com Programao em C__________________________

8. Termine a instalao executando o Code::Blocks.


No meu computador, surgiu um lembrete perguntando se eu queria
executar o Code::Blocks. Cliquei no boto Yes. Se voc no visualizar
este lembrete, utilize o sistema operacional do computador para
inicializar o Code::Blocks do mesmo jeito que faria para inicializar
qualquer programa.
9. Feche a janela de instalao.
Mesmo que veja o Code::Blocks espalhado por toda a tela, voc ainda
precisa finalizar, fechando a janela de instalao.

A prxima seo oferece uma viso geral da interface do programa


Code::Blocks.

Um tour pela rea de trabalho do


Code::Blocks
Se o Code::Blocks no inicializou, v em frente e o inicialize, como voc faria
com qualquer outro programa: localize o cone no menu Iniciar ou encontre
o cone de atalho para o Code::Blocks na rea de Trabalho, que o jeito mais
fcil de inicializar o IDE no Windows 8.

A Figura 1-1 ilustra a rea de trabalho do Code::Blocks, que o nome oficial do


mosaico enorme de janelas que voc v na tela. Os detalhes da Figura 1-1 so
bem pequenos, mas o que voc precisa encontrar so as reas principais, que
esto na figura e so chamadas:

Toolbars (Barra de ferramentas): Essas tiras bagunadas, adornadas com


vrios botes de comando, agarram-se ao topo da janela do Code::Blocks.
Existem oito barras de ferramentas, que voc pode rearranjar, exibir ou
esconder. No mexa com elas at se sentir confortvel com a interface.

Management (Gerenciamento): A janela do lado esquerdo da rea


de trabalho possui quatro abas, embora voc no veja todas ao mesmo
tempo. A janela fornece uma viso geral conveniente dos seus esforos de
programao.

Status Bar (Barra de status): Na parte inferior da tela, voc v informaes


sobre o projeto e editor, e sobre outras atividades que possam ocorrer no
Code::Blocks.

Editor: A janela grande na rea central direita da tela onde voc digita o cdigo.

Logs: A parte inferior da tela possui uma janela com muitas, muitas abas. Cada
aba exibe informaes sobre seus projetos de programao. A aba que voc
utilizar mais frequentemente chamada de Build Log.

O menu Visualizar controla a visibilidade de cada item exibido na janela.


Escolha o comando adequado, como o Manager, do menu View para exibir

BOOK_PF_2rg_beg_prog_c_fd.indb 12 15/02/2016 11:28:37


Captulo 1: Um nicio Rpido Para os Impacientes 13
ou esconder aquele item. Controle as barras de ferramentas, utilizando o
submenu View aToolbars.

Figura 1-1:
A rea de
trabalho do
Code::Blocks.

E-SE A coisa mais importante a ser lembrada sobre a interface do Code::Blocks


BR
no ficar confuso com ela. Um IDE como o Code::Blocks pode ser altamente
LEM

intimidante, mesmo quando voc se considera um veterano em programao.


No se preocupe: voc logo se sentir em casa.

UUMaximize a janela do programa Code::Blocks para que preencha a tela.


Voc precisar de toda essa rea.
UUCada uma das vrias reas na tela Management, Editor, Logs pode
ser redimensionada: posicione o ponteiro do mouse entre duas reas.
Quando o ponteiro virar uma coisinha de flechas duplas, voc pode
arrastar o mouse para mudar o tamanho da rea.
UUAs reas do Editor e de Logs possuem interfaces com abas. Cada
janela exibe diversas folhas de informaes. Troque entre as folhas,
escolhendo uma aba diferente.

BOOK_PF_2rg_beg_prog_c_fd.indb 13 15/02/2016 11:28:37


14 Parte I: Comeando com Programao em C__________________________

Seu Primeiro Projeto


Em programao tradicional para computador, utilizava-se um editor de texto,
um compilador e um vinculador separados. A ao acontecia no prompt de
comando, onde voc digitava os comandos para editar, compilar e vincular.
Era um processo linear e funcionava muito bem para pequenos projetos.
Com o advento dos sistemas operacionais modernos e da programao para
dispositivos mveis e consoles de vdeogame, esse mtodo linear tornou-se
altamente ineficiente.

O IDE moderno ainda tem elementos de um editor, um compilador, um


vinculador, um depurador e de outras ferramentas de programao. Exibe
caractersticas necessrias para criar programas grficos e projetos complexos.
Por essa razo, o IDE orientado a trabalhar com projetos e no apenas com
programas individuais.

Esta seo explica o processo de criao de um projeto, utilizando-se o IDE


Code::Blocks.

Criando um novo projeto


Os exemplos apresentados neste livro so todos aplicaes de console, o que
significa que eles executam em modo Texto em uma janela de terminal. Sinto
que esta a melhor maneira de ensinar conceitos bsicos de programao sem
sobrecarregar com um programa grande, complexo e graficamente complicado.
Ento, apesar de um IDE ser capaz de mais, voc o utiliza, neste livro, para criar
programas simples e baseados em console. assim que funciona:

1. Inicialize o Code::Blocks.
Voc v a Tela Start Here, que exibe a logo do Code::Blocks e alguns
links. Caso no veja a Tela Start Here, selecione File a Close Workspace.
2. Clique no link Create a New Project.
A caixa de dilogo New from Template vai aparecer, como mostrado na
Figura 1-2.
3. Escolha Console Application e ento clique no boto Go.
O Assistente de Console Application vai aparecer.
ICA
Voc pode inserir uma marca de verificao ao lado do item Skip This
D

Page Next Time para pular a primeira tela do assistente.


4. Clique no boto Next.

5. Escolha C como a linguagem que voc quer utilizar e ento clique


no boto Next.
C bem diferente de C++ voc pode fazer coisas em uma linguagem
que no so permitidas na outra.

BOOK_PF_2rg_beg_prog_c_fd.indb 14 15/02/2016 11:28:38