24.04.2013 Views

Clique aqui para ler o primeiro capítulo do livro. - Livrarias Curitiba

Clique aqui para ler o primeiro capítulo do livro. - Livrarias Curitiba

Clique aqui para ler o primeiro capítulo do livro. - Livrarias Curitiba

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

RICARDO SONAGLIO ALBANO E<br />

SILVIE GUEDES ALBANO<br />

Linguagem 14-04-2010.indd i 28/5/2010 20:16:13


RICARDO SONAGLIO ALBANO E<br />

SILVIE GUEDES ALBANO<br />

Linguagem 14-04-2010.indd iii 28/5/2010 20:16:18


PREFÁCIO:<br />

A linguagem de programação C é uma das mais conhecidas e utilizadas<br />

linguagens de programação no mun<strong>do</strong>, não só com presença garantida em<br />

ambientes de ensino à programação, mas também, com grande in uência no<br />

desenvolvimento de aplicações comerciais.<br />

Esta obra é fruto de anos de experiência em sala de aula, nos cursos de<br />

Ciências da Computação e Sistemas de Informação, nas disciplinas de Linguagem<br />

de Programação. Ten<strong>do</strong> por objetivo auxiliar aos interessa<strong>do</strong>s nesta<br />

linguagem, disponibilizan<strong>do</strong> lições dirigidas, promoven<strong>do</strong> uma melhor compreensão<br />

sobre o desenvolvimento de aplicações e oferecen<strong>do</strong>, assim, o que<br />

esperamos ser um guia útil e um material de referência e ciente.<br />

Com a intenção de não deixar dúvidas, to<strong>do</strong>s os exercícios sugeri<strong>do</strong>s, a<br />

título de xação, apresentam sua resolução no nal <strong>do</strong> <strong>livro</strong>.Vale salientar que<br />

qualquer linguagem de programação exige prática e dedicação <strong>para</strong> que seja<br />

possível atingir com sucesso o <strong>do</strong>mínio da mesma.<br />

Esperamos que você aprecie a leitura deste <strong>livro</strong> e obtenha bons resulta<strong>do</strong>s<br />

em seus estu<strong>do</strong>s.<br />

Linguagem 14-04-2010.indd v 28/5/2010 20:16:19


DEDICATÓRIA:<br />

À minha mãe Beatriz e ao meu esposo Ricar<strong>do</strong>.<br />

Saibam que vocês são responsáveis por eu me tornar uma pessoa<br />

melhor.<br />

Silvie Guedes Albano<br />

Dedico aos meus pais e, em especial,<br />

à minha esposa Silvie que sempre me encorajou a enfrentar novos<br />

desa os.<br />

Ricar<strong>do</strong> Sonaglio Albano<br />

Linguagem 14-04-2010.indd vii 28/5/2010 20:16:19


AGRADECIMENTOS:<br />

Para esta seção, optamos por tomar emprestadas as palavras e os<br />

pensamentos de Rudyard Kipling (“IF”, 1910), agradecen<strong>do</strong> a to<strong>do</strong>s com essa<br />

mensagem de perseverança.<br />

SE<br />

Se és capaz de manter a tua calma, quan<strong>do</strong>,<br />

to<strong>do</strong> mun<strong>do</strong> ao re<strong>do</strong>r já a perdeu e te culpa.<br />

De crer em ti quan<strong>do</strong> estão to<strong>do</strong>s duvidan<strong>do</strong>,<br />

e <strong>para</strong> esses, no entanto, achar uma desculpa.<br />

Se és capaz de esperar sem te desesperares,<br />

ou, engana<strong>do</strong>, não mentir ao mentiroso,<br />

Ou, sen<strong>do</strong> odia<strong>do</strong>, sempre ao ódio te esquivares,<br />

e não parecer bom demais, nem pretensioso.<br />

Se és capaz de pensar – sem que a isso só te atires,<br />

de sonhar – sem fazer <strong>do</strong>s sonhos teus senhores.<br />

Se, encontran<strong>do</strong> a Desgraça e o Triunfo, conseguires,<br />

tratar da mesma forma a esses <strong>do</strong>is impostores.<br />

Se és capaz de sofrer a <strong>do</strong>r de ver mudadas,<br />

em armadilhas as verdades que disseste<br />

E as coisas, por que deste a vida estraçalhadas,<br />

e refazê-las com o bem pouco que te reste.<br />

Linguagem 14-04-2010.indd ix 28/5/2010 20:16:19


Se és capaz de arriscar numa única <strong>para</strong>da,<br />

tu<strong>do</strong> quanto ganhaste em toda a tua vida.<br />

E perder e, ao perder, sem nunca dizer nada,<br />

resigna<strong>do</strong>, tornar ao ponto de partida.<br />

De forçar coração, nervos, músculos, tu<strong>do</strong>,<br />

a dar seja o que for que neles ainda existe.<br />

E a persistir assim quan<strong>do</strong>, exausto, contu<strong>do</strong>,<br />

resta a vontade em ti, que ainda te ordena: Persiste!<br />

Se és capaz de, entre a plebe, não te corromperes,<br />

e, entre Reis, não perderes a naturalidade.<br />

E de amigos, quer bons, quer maus, te defenderes,<br />

se a to<strong>do</strong>s podes ser de alguma utilidade.<br />

Se és capaz de dar, segun<strong>do</strong> por segun<strong>do</strong>,<br />

ao minuto fatal to<strong>do</strong> valor e brilho.<br />

Tua é a Terra com tu<strong>do</strong> o que existe no mun<strong>do</strong>,<br />

e – o que ainda é muito mais – és um Homem, meu lho!<br />

Linguagem 14-04-2010.indd x 28/5/2010 20:16:19


ALBANO, Ricar<strong>do</strong> Sonaglio<br />

ALBANO, Silvie M. A. Guedes<br />

SOBRE OS AUTORES:<br />

CITAÇÃO BIBLIOGRÁFICA:<br />

Silvie Guedes Albano, formada em Informática<br />

com pós-graduação em Educação e Ciências<br />

da Computação. Mestranda em Educação<br />

pela Universidad de La Empresa. Professora<br />

universitária atuante (11 anos). Atualmente,<br />

trabalha como professora em cursos de Sistemas<br />

de Informação e Ciências da Computação.<br />

Ricar<strong>do</strong> Sonaglio Albano, forma<strong>do</strong> em Ciências<br />

Contábeis com pós-graduação em Meto<strong>do</strong>logia<br />

<strong>do</strong> Ensino Superior e Ciências da Computação.<br />

Mestran<strong>do</strong> em Educação pela Universidad<br />

de La Empresa. Professor universitário há 15<br />

anos. Professor em cursos de Sistemas de<br />

Informação e Ciências da Computação na área<br />

de desenvolvimento de software. Também atua<br />

no desenvolvimento de softwares comerciais<br />

<strong>para</strong> empresas privadas e públicas.<br />

Linguagem 14-04-2010.indd xi 28/5/2010 20:16:19


SUMÁRIO<br />

CAPÍTULO 1 - INTRODUÇÃO ................................................................................... 1<br />

1.1. Um Pouco de História........................................................................................1<br />

1.2. Por que Apreender a Programar e C? ...............................................................2<br />

1.3. A Organização de Programas em C .................................................................2<br />

1.4. A Escolha <strong>do</strong> Ambiente de Desenvolvimento ....................................................3<br />

1.4.1. Alguns Ajustes de Con guração .....................................................................4<br />

1.4.2. Conhecen<strong>do</strong> a Ferramenta de DEV-C++ .......................................................8<br />

1.4.2.1. Barra de Menus ...........................................................................................8<br />

1.4.2.2. Menu de Acessos Rápi<strong>do</strong> – A Barra de Ferramentas..................................8<br />

1.4.2.3. Navega<strong>do</strong>r de Classes/Projetos ................................................................10<br />

1.4.2.4. Principais Teclas de Atalhos ...................................................................... 11<br />

1.5. Arquivo Fonte X Projeto................................................................................... 11<br />

CAPÍTULO 2 - MÃOS À OBRA: O CÓDIGO FONTE ............................................. 13<br />

2.1. Estrutura Básica de um Programa em C .........................................................14<br />

2.2. O Primeiro Programa em Linguagem de Programação C...............................14<br />

2.2.1. Com<strong>para</strong>n<strong>do</strong> a Lógica com a Lingugem C ...................................................16<br />

2.3. Bibliotecas Básicas..........................................................................................17<br />

2.4. Elementos Básicos ..........................................................................................18<br />

2.4.1. Tipos de Da<strong>do</strong>s.............................................................................................18<br />

2.4.2. Variáveis .......................................................................................................20<br />

2.4.3. Constantes ...................................................................................................22<br />

2.4.4. Opera<strong>do</strong>res Relacionais e Lógicos...............................................................23<br />

2.4.5. Expressões Aritméticas ................................................................................25<br />

2.4.6. Coman<strong>do</strong>s de Atribuição ..............................................................................26<br />

2.4.7. Precedência de Operações ..........................................................................29<br />

2.4.8. Opera<strong>do</strong>res de Incremento e Decremento ...................................................30<br />

2.4.9. Opera<strong>do</strong>res de Bits.......................................................................................30<br />

2.4.10. Opera<strong>do</strong>res de Endereço ...........................................................................36<br />

2.4.11. Opera<strong>do</strong>r SIZEOF .......................................................................................36<br />

2.4.12. Convcersão de Tipos de Da<strong>do</strong>s .................................................................37<br />

2.4.12.1 Conversão Implícita ..................................................................................37<br />

2.4.12.2 Conversão Explícita – CAST ....................................................................38<br />

2.5. Instruções de Entrada e Saída ........................................................................40<br />

Linguagem 14-04-2010.indd xiii 28/5/2010 20:16:19


xiv<br />

| Programação em Linguagem C<br />

2.5.1. Formatações Númericas: Apresentan<strong>do</strong> Resulta<strong>do</strong>s ...................................43<br />

2.5.2. Exemplo: Lógica X Código em C..................................................................44<br />

2.6. Usan<strong>do</strong> o System (“PAUSE”) ou GETCH() .....................................................45<br />

2.6.1. Exemplo de Aplicação ..................................................................................46<br />

2.7. Identação .........................................................................................................47<br />

2.8. Bons Vícios de Programação ..........................................................................48<br />

CAPÍTULO 3 - ESTRUTURAS DE CONTROLE ....................................................................51<br />

3.1. Estruturas de Decisão, Composta e Múltipla ..................................................51<br />

3.1.1. Estrutura de Decisão Simples: If ..................................................................51<br />

3.1.2. Estrutura de Decisão Composta: If... Else....................................................52<br />

3.1.3. O opera<strong>do</strong>r Tenário (?) ................................................................................55<br />

3.1.4. Estrutura de Decisão Múltipla: Switch... Case.............................................56<br />

3.2. Estruturas de Repetição convencional ............................................................58<br />

3.2.1. FOR ..............................................................................................................59<br />

3.2.1.1. Exemplo com o uso de De ne...................................................................62<br />

3.2.2. While.............................................................................................................63<br />

3.2.3. Do... While ....................................................................................................65<br />

CAPÍTULO 4 - USANDO FUNÇÕES MATEMÁTICAS .......................................... 71<br />

4.1. Funções de Potência .......................................................................................71<br />

4.1.1. A Função POW()...........................................................................................71<br />

4.1.2. A Função SQRT() .........................................................................................73<br />

4.2. Funções de Arre<strong>do</strong>ndamento ..........................................................................73<br />

4.2.1. Função FLOOR() ..........................................................................................73<br />

4.2.2. Função CEIL() ..............................................................................................74<br />

4.3. Funções TRIGONOMÉTRICAS ......................................................................75<br />

4.3.1. Função SIN() ................................................................................................75<br />

4.3.2. Função COS() ..............................................................................................76<br />

4.3.3. Função TAN() ...............................................................................................76<br />

4.4. Funções Logaritímicas ....................................................................................77<br />

4.4.1. Função LOG()...............................................................................................77<br />

4.4.2. Função LOG10()...........................................................................................77<br />

4.5. Obten<strong>do</strong> o resto de uma Divisão (%) ..............................................................78<br />

4.6. Descobrin<strong>do</strong> o Código ASCII ...........................................................................79<br />

CAPÍTULO 5 - ESTRUTURA DE DADOS HOMOGÊNEOS .................................. 83<br />

5.1. Vetores ............................................................................................................84<br />

5.2. Matrizes ...........................................................................................................87<br />

CAPÍTULO 6 - MANIPULANDO STRINGS.............................................................. 99<br />

6.1. As Funções GETS() E FGETS() ....................................................................102<br />

6.2. Testan<strong>do</strong> o Final de uma String .....................................................................106<br />

Linguagem 14-04-2010.indd xiv 28/5/2010 20:16:19


XV Sumário<br />

6.3. Funções de Strings........................................................................................107<br />

6.3.1. Atribuição de Strings – STRCPY()..............................................................108<br />

6.3.2. Concatenação de Strings – STRCAT() .......................................................109<br />

6.3.3. Com<strong>para</strong>ção de Strings – STRCMP() ........................................................ 110<br />

6.3.4. STRLEN() ................................................................................................... 112<br />

6.3.5. STRUPR() .................................................................................................. 113<br />

6.3.6. STRLWR() .................................................................................................. 114<br />

CAPÍTULO 7 - ESTRUTURA DE DADOS HETEROGÊNEOS .................................... 119<br />

7.1. Structs (Registros) ......................................................................................... 119<br />

7.1.1. Declaran<strong>do</strong> Variáveis <strong>do</strong> Tipo Struct ..........................................................120<br />

7.1.2. Acessan<strong>do</strong> as Variáveis de uma Estrutura .................................................122<br />

7.1.3. Trabalhan<strong>do</strong> com Vetores em uma Struct .................................................123<br />

7.1.4. Aplican<strong>do</strong> Structs dentro de Structs ...........................................................126<br />

CAPÍTULO 8 - MODULARIZAÇÃO (FUNÇÕES) ............................................................. 131<br />

8.1. Por que Usar Funções? ................................................................................131<br />

8.2. Escopo de Variáveis ......................................................................................132<br />

8.3. Declaran<strong>do</strong> uma Função ...............................................................................133<br />

8.3. O Coman<strong>do</strong> Return() .....................................................................................134<br />

8.5. Funções sem Passagem de Argumentos ......................................................136<br />

8.6. Funções com Passagem por Valor ................................................................138<br />

8.7. A Função Static..............................................................................................144<br />

8.8. Recursividade ................................................................................................146<br />

CAPÍTULO 9 - O USO DE PONTEIROS ................................................................................ 153<br />

9.1. Armazenan<strong>do</strong> Informações............................................................................153<br />

9.2. O Que é um Ponteiro?...................................................................................156<br />

9.3. Por que Usar Ponteiros? ...............................................................................156<br />

9.4. Opera<strong>do</strong>res com Manipulação de Ponteiros .................................................158<br />

9.4.1.Opera<strong>do</strong>r de Endereço (&) ..........................................................................158<br />

9.4.2. Opera<strong>do</strong>r de Conteú<strong>do</strong> ou de Referência (*)..............................................165<br />

9.5. Ponteiros <strong>para</strong> Ponteiros ...............................................................................168<br />

9.6. Aritméticas <strong>do</strong>s Ponteiros ..............................................................................170<br />

9.7. Funções com Passagem por Referência ......................................................172<br />

CAPÍTULO 10 - MANIPULAÇÃO DE ARQUIVOS ............................................................ 181<br />

10.1. Coman<strong>do</strong>s <strong>para</strong> Manipulação de Da<strong>do</strong>s ....................................................181<br />

10.2. Arquivo Texto X Arquivo Binário .................................................................183<br />

10.3. A Estrutura File ............................................................................................184<br />

10.4. Abrin<strong>do</strong> um Arquivo .....................................................................................185<br />

10.5. Fechan<strong>do</strong> um Arquivio .................................................................................188<br />

Linguagem 14-04-2010.indd xv 28/5/2010 20:16:19


xvi<br />

| Programação em Linguagem C<br />

10.6. Leitura e Gravação de Caracteres ..............................................................189<br />

10.6.1. Gravan<strong>do</strong> um arquivo Caracter a Caracter ..............................................189<br />

10.6.2. Len<strong>do</strong> um arquivo Caracter a Caracter ....................................................191<br />

10.7. Leitura e Gravação de Strings .....................................................................193<br />

10.7.1. Leitura de Strings .....................................................................................193<br />

10.7.2. Gravação de Strings .................................................................................197<br />

10.8. Leitura e Gravação de Da<strong>do</strong>s Formata<strong>do</strong>s .................................................198<br />

10.8.1. Gravan<strong>do</strong> Da<strong>do</strong>s Formata<strong>do</strong>s ..................................................................198<br />

10.8.2. Len<strong>do</strong> Da<strong>do</strong>s Formata<strong>do</strong>s ........................................................................202<br />

10.9. Leitura e Gravação de Informações Estruturadas (Registros) ....................203<br />

10.9.1. Gravan<strong>do</strong> Blocos de Da<strong>do</strong>s de um Arquivo..............................................203<br />

10.9.2. Len<strong>do</strong> Blocos de Da<strong>do</strong>s de um Arquivo ...................................................206<br />

10.10. Acesso Aleatório a Arquivos .....................................................................212<br />

10.11. A Função Rewind() ....................................................................................219<br />

10.12. A Função Feof() .........................................................................................219<br />

10.13. Renomean<strong>do</strong> Arquivos .............................................................................221<br />

10.14. Excluin<strong>do</strong> Arquivos ...................................................................................222<br />

10.15. Alteran<strong>do</strong> Registros de um Arquivo ...........................................................224<br />

10.16. Excluin<strong>do</strong> Registros de um Arquivo ...........................................................227<br />

10.17. Arquivos Standart ......................................................................................231<br />

CAPÍTULO 11 – RESPOSTAS DOS EXERCÍCIOS SUGERIDOS......................... 241<br />

11.1. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 1: ....................................................241<br />

11.2. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 2: ....................................................242<br />

11.3. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 3: ....................................................249<br />

11.4. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 4: ....................................................262<br />

11.5. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 5: ....................................................267<br />

11.6. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 6: ....................................................298<br />

11.7. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 7: ....................................................308<br />

11.8. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 8: ....................................................331<br />

11.9. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 9: ....................................................349<br />

11.10. Respostas <strong>do</strong>s Exercícios <strong>do</strong> Capítulo 10: ................................................362<br />

Referências Bibliográ cas ................................................................................... 411<br />

Linguagem 14-04-2010.indd xvi 28/5/2010 20:16:19


CAPÍTULO 1<br />

1.1. UM POUCO DE HISTÓRIA<br />

INTRODUÇÃO<br />

C<br />

A linguagem de Programação C foi criada entre 1969 a 1973 por Dennis<br />

Ritchie, no AT&T Bell Labs, com o objetivo de desenvolver a implementação<br />

<strong>do</strong> sistema operacional UNIX (originalmente escrito em Assembly).<br />

A partir da inserção <strong>do</strong> tipo struct, a linguagem C foi utilizada em grande<br />

parte <strong>do</strong> kernel <strong>do</strong> Unix (conheci<strong>do</strong> como o núcleo <strong>do</strong> sistema, que faz a interação<br />

entre as camadas de hardware e software, ten<strong>do</strong> por função gerenciar<br />

os recursos <strong>do</strong> sistema e permitir que os programas façam uso deles).<br />

No nal da década de 70, a linguagem C começou a ser conhecida como a<br />

linguagem de programação de microcomputa<strong>do</strong>res mais usada, substituin<strong>do</strong><br />

a linguagem BASIC. Logo na década de 80, foi desenvolvi<strong>do</strong> um projeto onde<br />

foram adicionadas construções de linguagens de programação orientada a<br />

objetos, geran<strong>do</strong> assim, a chamada linguagem de programação C++ (C plus<br />

plus). Nessa mesma época, o Instituto Norte-Americano de Padrões (ANSI)<br />

compôs um comitê com o objetivo de estabelecer padrões de especi cação<br />

<strong>para</strong> a linguagem C. O padrão ANSI C foi naliza<strong>do</strong> em 1989 e até hoje, é<br />

comum a linguagem de programação C ser referida como ANSI C. Sen<strong>do</strong><br />

a<strong>do</strong>ta<strong>do</strong> pela Organização Internacional de Padrões (ISO) em 1990 (ISO/IEC<br />

9899:1990, também conheci<strong>do</strong> como C89 ou C90).<br />

Linguagem 14-04-2010.indd 1 28/5/2010 20:16:19


2 | Programação em Linguagem C<br />

1.2. POR QUE APRENDER A PROGRAMAR EM C?<br />

C é uma linguagem de programação de alto nível, possibilitan<strong>do</strong> um maior<br />

reaproveitamento <strong>do</strong> código. Além disso, fornece acesso de baixo nível à<br />

memória e baixos requerimentos de hardware. É atualmente uma das linguagens<br />

de programação mais utilizadas.<br />

Possui as seguintes características e vantagens:<br />

• Portabilidade entre máquinas e sistemas operacionais. Total interação<br />

com o Sistema Operacional. Disponível em várias plataformas;<br />

• Linguagem procedimental, simples e de aprendiza<strong>do</strong> fácil. A linguagem<br />

C é compilada, isto signi ca que os programas escritos nessa linguagem<br />

não podem ser executa<strong>do</strong>s diretamente. Precisam ser compila<strong>do</strong>s<br />

por um programa chama<strong>do</strong> compila<strong>do</strong>r.<br />

• Trabalha sobre o <strong>para</strong>digma da criação de programas menores com<br />

menos erros. Código compacto e rápi<strong>do</strong>, em com<strong>para</strong>ção com outras<br />

linguagens semelhantes;<br />

• Baseada em construções simples, que usam os recursos da máquina de<br />

forma e ciente;<br />

• Oferece recursos de modularização necessários ao desenvolvimento de<br />

aplicações de grande porte;<br />

• Uso amplamente difundi<strong>do</strong>. É a linguagem de programação mais usada<br />

<strong>para</strong> o desenvolvimento de sistemas e softwares de base;<br />

• Possui diversas funcionalidades presentes por um conjunto de bibliotecas<br />

de rotinas padronizadas, tais como, funções matemáticas ou manipulação<br />

de arquivos;<br />

• Utiliza o conceito de ponteiros que possibilita maior exibilidade da linguagem;<br />

• Estruturas de variáveis (structs), que permitem a combinação e manipulação<br />

de da<strong>do</strong>s relaciona<strong>do</strong>s como um to<strong>do</strong> (registro);<br />

• Amplamente utilizada em cursos de graduação na área de Informática.<br />

1.3. A ORGANIZAÇÃO DE PROGRAMAS EM C<br />

A estrutura de um programa em linguagem C é composta por da<strong>do</strong>s e funções,<br />

onde os da<strong>do</strong>s são variáveis que são inicializadas antes <strong>do</strong> início <strong>do</strong><br />

programa e as funções basicamente são pequenas partes de um código or-<br />

Linguagem 14-04-2010.indd 2 28/5/2010 20:16:19


Capítulo 1 — Introdução | 3<br />

ganizadas em módulos agrupa<strong>do</strong>s e desenvolvi<strong>do</strong>s de tal maneira que conseguem<br />

realizar determinadas tarefas.<br />

Além disso, o C possui uma função especial, que é a principal função <strong>do</strong><br />

programa. É onde ocorre o início da execução de qualquer programa desenvolvi<strong>do</strong><br />

em C.<br />

De forma geral, o funcionamento de um programa em C segue a seguinte<br />

lógica: O arquivofonte principal é passa<strong>do</strong> como argumento <strong>para</strong> o compila<strong>do</strong>r,<br />

que, por sua vez, de ne uma unidade de compilação. Essa unidade de<br />

compilação importa de nições usan<strong>do</strong> a diretiva #include ou algum identi ca<strong>do</strong>r<br />

como externo.<br />

Vale salientar que em C, você pode dividir um mesmo programa em vários<br />

programas independentes (módulos), que serão compila<strong>do</strong>s se<strong>para</strong>damente<br />

e depois serão linka<strong>do</strong>s, isto é, agrupa<strong>do</strong>s ou encadea<strong>do</strong>s com o link editor<br />

<strong>para</strong> gerar o programa nal. Também é possível trabalhar com o que chamamos<br />

de “header les” (arquivos de cabeçalho), onde temos cada módulo em<br />

um arquivo texto se<strong>para</strong><strong>do</strong>, conten<strong>do</strong> sua própria declaração de da<strong>do</strong>s e funções.<br />

Esses arquivos de cabeçalho são identi ca<strong>do</strong>s pela extensão “.h”, poden<strong>do</strong><br />

ser priva<strong>do</strong>s, especí cos da aplicação e disponíveis <strong>para</strong> o sistema.<br />

1.4. A ESCOLHA DO AMBIENTE DE DESENVOLVIMENTO<br />

Neste <strong>livro</strong>, utilizaremos a ferramenta DEV-C++ como base no desenvolvimento<br />

de programas com o intuito de exempli car cada conteú<strong>do</strong> discuti<strong>do</strong>.<br />

O DEV-C++ é um ambiente integra<strong>do</strong> de desenvolvimento (IDE – Integrated<br />

Development Environment), isto é, uma ferramenta de programação,<br />

ou melhor dizen<strong>do</strong>, um programa que realiza uma integração com diversos<br />

recursos necessários <strong>para</strong> a geração de novos programas e que tornará a<br />

atividade de programar mais simples. Em um único ambiente, encontram-se<br />

o Compila<strong>do</strong>r (chama<strong>do</strong> GBD, que tem por função compilar o código fonte e<br />

gerar um arquivo executável), o Link-Editor e o Loader, ou seja, em um único<br />

programa estão presentes todas as etapas de desenvolvimento e teste, tornan<strong>do</strong><br />

o processo mais simples e transparente. Também existe um depura<strong>do</strong>r<br />

simbólico, que permite testar o programa, instrução por instrução, observan<strong>do</strong><br />

o que ocorre com cada uma de suas rotinas e um editor de texto, onde o<br />

mesmo já é pre<strong>para</strong><strong>do</strong> <strong>para</strong> reconhecer vários elementos da linguagem e até<br />

mesmo auxiliar na automatização escrita de códigos.<br />

Linguagem 14-04-2010.indd 3 28/5/2010 20:16:19


4 | Programação em Linguagem C<br />

Existem muitas ferramentas/ambientes de programação disponíveis na<br />

Internet. Exemplos disso são o wxDev-C++ e o Eclipse (que inclusive serve<br />

<strong>para</strong> muitas linguagens). Optamos por utilizar o DEV-C++ por ser um produto<br />

bastante popular. Algumas das ferramentas disponíveis são livres e podem<br />

ser obtidas na Internet sem custos.<br />

É importante deixar claro que este <strong>livro</strong> tem como objetivo aprender a<br />

programar em linguagem C e por esse motivo, detalhes relaciona<strong>do</strong>s ao ambiente<br />

de desenvolvimento devem ser sana<strong>do</strong>s mediante a busca de informações<br />

em <strong>livro</strong>s e manuais disponibiliza<strong>do</strong>s pelas empresas desenvolve<strong>do</strong>ras<br />

<strong>do</strong> ambiente.<br />

Você pode baixar o DEV-C++ através <strong>do</strong> site da Bloodshed (http://www.<br />

bloodshed.net/dev/ devcpp.html).<br />

1.4.1. ALGUNS AJUSTES DE CONFIGURAÇÃO<br />

Após baixar o programa, instalá-lo em sua máquina e executá-lo, é conveniente<br />

que você ajuste a aparência da ferramenta <strong>para</strong> default.<br />

(Figura 01 – Abertura <strong>do</strong> DEV-C++)<br />

Para a realização dessa operação, selecione, na barra de menus, as<br />

seguintes opções (como demonstra<strong>do</strong> nas guras 01 e 02):<br />

Linguagem 14-04-2010.indd 4 28/5/2010 20:16:19


• Tools (ferramentas);<br />

• Environment Options (opções <strong>do</strong> ambiente);<br />

(Figura 02 – Menu Ferramentas)<br />

• Guia Interface;<br />

Se preferir, troque também a língua <strong>para</strong> português.<br />

(Figura 03 – Opções <strong>do</strong> ambiente de desenvolvimento)<br />

Capítulo 1 — Introdução | 5<br />

Outros ajustes interessantes de realizar são os que se referem às opções<br />

padrão <strong>do</strong> editor de texto.<br />

Linguagem 14-04-2010.indd 5 28/5/2010 20:16:19


6 | Programação em Linguagem C<br />

Para a realização dessa operação, selecione na barra de menus, as<br />

seguintes opções (como demonstra<strong>do</strong> nas guras 03, 04 e 05):<br />

• Ferramentas;<br />

• Opções <strong>do</strong> editor;<br />

(Figura 04 – Opções <strong>do</strong> editor)<br />

• Na guia Geral, desmarque a opção Tabulação Inteligente, fazen<strong>do</strong> com<br />

que as tabulações ocupem quatros espaços xos.<br />

(Figura 05 – Opções <strong>do</strong> editor – Guia Geral)<br />

Linguagem 14-04-2010.indd 6 28/5/2010 20:16:19


Capítulo 1 — Introdução | 7<br />

• Na guia Display, marque a opção Números das Linhas. Essa medida<br />

servirá apenas <strong>para</strong> que seja apresentada a numeração de linhas <strong>do</strong>s<br />

programas fonte, o que é bastante útil na eliminação de erros de compilação.<br />

(Figura 06 – Opções <strong>do</strong> editor – Guia Display)<br />

Linguagem 14-04-2010.indd 7 28/5/2010 20:16:20


8 | Programação em Linguagem C<br />

1.4.2. CONHECENDO A FERRAMENTA DEV-C++<br />

A gura abaixo apresenta o layout default <strong>do</strong> ambiente de desenvolvimento<br />

DEV-C++. Vamos discutir alguns <strong>do</strong>s aspectos presentes na mesma.<br />

Vale salientar que você pode con gurar a apresentação <strong>do</strong>s elementos<br />

conti<strong>do</strong>s na ferramenta, tornan<strong>do</strong>-os visíveis ou não. Caso tenha o interesse<br />

de realizar esse procedimento, selecione o menu Exibir.<br />

1.4.2.1. BARRA DE MENUS<br />

(Figura 7 – Ambiente de Desenvolvimento)<br />

Como to<strong>do</strong> programa padrão Win<strong>do</strong>ws, há uma janela onde estão situa<strong>do</strong>s<br />

os menus da aplicação, conten<strong>do</strong> diversos recursos. Neste <strong>livro</strong>, discutiremos<br />

alguns deles.<br />

(Figura 8 – Barra de Menus)<br />

1.4.2.2. MENU DE ACESSO RÁPIDO – A BARRA DE FERRAMENTAS<br />

A Barra de Ferramentas (SpeedBar) está posicionada logo abaixo da barra<br />

de menus. Possui diversos botões (ícones) que representam os coman<strong>do</strong>s<br />

mais utiliza<strong>do</strong>s durante o desenvolvimento. Cada ícone pertence a um grupo<br />

de ferramentas e você pode con gurar sua apresentação através <strong>do</strong> menu<br />

Exibir, opção Barra de Ferramentas.<br />

Linguagem 14-04-2010.indd 8 28/5/2010 20:16:20


(Figura 9 – Menu de Acesso Rápi<strong>do</strong> (não habilita<strong>do</strong>))<br />

Capítulo 1 — Introdução | 9<br />

Alguns <strong>do</strong>s mesmos só estarão habilita<strong>do</strong>s apenas quan<strong>do</strong> você começar<br />

a programar.<br />

(Figura 10 – Menu de Acesso Rápi<strong>do</strong> (habilita<strong>do</strong>))<br />

É interessante chamar a atenção <strong>para</strong> alguns ícones na barra de acesso<br />

rápi<strong>do</strong>:<br />

(Figura 11 – Menu de Acesso Rápi<strong>do</strong> – Ícones importantes)<br />

Você também pode con gurar a apresentação dessas barras através <strong>do</strong><br />

menu Exibir, opção Barra de Ferramentas.<br />

Linguagem 14-04-2010.indd 9 28/5/2010 20:16:20


10<br />

| Programação em Linguagem C<br />

(Figura 12 – Barra de Ferramentas)<br />

1.4.2.3. NAVEGADOR DE CLASSES/PROJETOS<br />

O navega<strong>do</strong>r só é necessário na edição de projetos ou programas em C++.<br />

Sugerimos, então, que você desabilite essa janela <strong>para</strong> que possa ter mais<br />

espaço <strong>para</strong> a edição de seus programas. Para isso, escolha na barra de<br />

menus o menu Exibir e desmarque o Navega<strong>do</strong>r de Classes/Projetos.<br />

(Figura 13 – Navega<strong>do</strong>r de Classes/Projeto)<br />

Linguagem 14-04-2010.indd 10 28/5/2010 20:16:20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!