Buscar

Programação II

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 284 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 284 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 284 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Recife, 2009
Programação 2
Sônia Virginia Alves França
Universidade Federal Rural de Pernambuco
Reitor: Prof. Valmar Corrêa de Andrade
Vice-Reitor: Prof. Reginaldo Barros
Pró-Reitor de Administração: Prof. Francisco Fernando Ramos Carvalho
Pró-Reitor de Extensão: Prof. Paulo Donizeti Siepierski
Pró-Reitor de Pesquisa e Pós-Graduação: Prof. Fernando José Freire
Pró-Reitor de Planejamento: Prof. Rinaldo Luiz Caraciolo Ferreira
Pró-Reitora de Ensino de Graduação: Profª. Maria José de Sena
Coordenação Geral de Ensino a Distância: Profª Marizete Silva Santos
Produção Gráfica e Editorial
Capa e Editoração: Allyson Vila Nova, Rafael Lira, Italo Amorim e Glaydson da Silva
Revisão Ortográfica: Ivanda Martins
Ilustrações: Diego Almeida
Coordenação de Produção: Marizete Silva Santos
Sumário
Plano da Disciplina ...............................................................................5
Apresentação ........................................................................................9
Conhecendo o Volume 01 ..................................................................10
Capítulo 1 – Introdução ao C .............................................................13
1.1. Programas e Programação de Computadores ..........................13
1.2. Linguagens de Programação .....................................................15
1.3. Breve Histórico da Linguagem de Programação C ...................18
1.4. Criação, Compilação e Execução de um Programa ..................19
Capítulo 2 – Conceitos Preliminares para Programar em C ...........24
2.1. Estrutura de um Programa Básico em C ...................................25
2.2. Palavras Reservadas do C ........................................................28
2.3 Uso de Comentários ...................................................................29
2.4. Os Fundamentos do Ambiente C ...............................................31
2.5. Conhecendo o Dev-cpp .............................................................34
Capítulo 3 – Tipos de Dados, Variáveis e Constantes .....................40
3.1. Tipos de dados ..........................................................................40
3.2. Variáveis e Constantes ..............................................................42
3.3. Operador de Atribuição (=) ........................................................49
Capítulo 4 – Comandos de Entrada e Saída de Dados ....................54
4.1. Entrada de Dados ......................................................................54
4.2. Saída de Dados .........................................................................59
4.3. Erros Frequentes no Uso dos Comandos de Entrada e Saída .65
4.4. Primeiros programas em C ........................................................66
Capítulo 5 – Operadores, Expressões e Funções Matemáticas .....75
5.1. Operadores Básicos ..................................................................75
5.2. Operadores Aritméticos de Atribuição ......................................87
5.3. Operadores ++ e -- ....................................................................87
5.4. Conversão de tipo ......................................................................88
5.5. Funções Matemáticas (biblioteca math.h) .................................90
Plano da Disciplina
Carga horária: 60h
Ementa da Disciplina
 Introdução à linguagem de programação C. Tipos de dados, variáveis, operadores 
aritméticos, relacionais e lógicos. Comandos de entrada e saída. Estruturas de 
seleção e repetição. Modularização. Vetores e registros. Ponteiros. Arquivos. 
Manipulação de caracteres. Comandos de tela. Comandos de manipulação de 
data e hora.
Objetivos
Objetivo Geral
• Apresentar técnicas de programação estruturada utilizando como ferramenta a 
linguagem de programação C
Objetivos Epecíficos
• Desenvolver a capacidade de solução de problemas de programação, com o uso 
da linguagem C.
• Introduzir métodos de otimização para garantir eficiência e segurança aos 
programas.
• Desenvolver o auto-aprendizado.
Conteúdo Programático
Módulo 1 - Introdução à Linguagem de Programação C
Carga Horária do Módulo 01: 15 h
 Objetivo do Módulo 01: Introdução ao C e seus comandos básicos, para 
possibilitar a construção dos primeiros programas nesta linguagem.
Conteúdo Programático do Módulo 1
• Introdução ao C
 ○ Conceito de programa e linguagem de programação
 ○ Introdução ao C: Um breve histórico
 ○ Etapas de desenvolvimento de um programa
• Comandos Básicos do C
 ○ Estrutura de um programa C 
 ○ Diretivas de compilação
 ○ Uso de comentário
 ○ Tipos de dados
 ○ Variáveis, constantes, identificadores e atribuição
 ○ Comandos de entrada e saída
 ○ Operadores aritméticos, relacionais e lógicos
 ○ Modificadores de tipos de dados
 ○ Funções matemáticas
Módulo 2 – Estruturas de Controle de Fluxo e Modularização 
Carga Horária do Módulo 2: 15 h
 Objetivo do Módulo 2: Possibilitar o conhecimento das estruturas de controle 
(seleção e repetição) do C e métodos para modularização dos programas (criação 
de procedimentos e funções).
Conteúdo Programático do Módulo 2:
• Estruturas de Controle de Fluxo
 ○ Sequência
 ○ Estrutura de seleção: If e Switch
 ○ Estrutura de repetição: for, do/while e while
 ○ Comando break
• Modularização 
 ○ Construção de módulos: funções e procedimentos 
 ○ Passagem de parâmetros e escopo de variáveis
 ○ Comando return
Módulo 3 – Armazenamento de Dados em Vetores, Registros e Arquivos
Carga horária do Módulo 03: 15 h
 Objetivo do Módulo 03: Apresentar as formas de armazenamento de dados 
homogêneos (vetores) e heterogêneos (registros), além dos comandos para 
manipulação de arquivos.
Conteúdo Programático do Módulo 03:
• Tipos de Dados Homogêneos e Heterogêneos
 ○ Vetores
 ○ Registros
 ○ Vetor de registro
• Arquivos
 ○ Ponteiros
 ○ Comandos para manipulação de arquivo
Módulo 4 – Comandos Avançados 
Carga Horária do Módulo 4: 15 h
 Objetivo do Módulo 4: Apresentar comandos mais avançados da linguagem 
C, tais como: manipulação de caracteres, comandos de tela (para melhorias na 
interface dos programas) e manipulação de data e hora. 
Conteúdo Programático do Módulo 4:
• Comandos para Manipulação de Caracteres e Strings
 ○ Comandos da biblioteca ctype e string
 ○ Validação de campos
• Comandos de Tela – Interface
 ○ Comandos da biblioteca conio 
• Comandos para Manipulação de data e hora 
 ○ Comandos da biblioteca time
Avaliação
• Avaliação prática em laboratório correspondendo a 60% da nota.
• Resolução de listas de exercícios, que serão enviadas através do ambiente virtual 
(30%).
• Avaliação referente à participação do aluno nas aulas presenciais e ambiente 
virtual: fóruns de discussão, chats, etc (10%).
Bibliografia
Básica:
 SCHILDT, Herbert. C Completo e Total. São Paulo: Makron, 1996. 
 DEITEL, H, M e DEITEL, P. J. Como Programar em C. Rio de Janeiro: LTC, 
1999.
Complementar:
 ASCENIO, Ana Fernanda Gomes e CAMPOS, Edilene Aparecida Veneruchi. 
Fundamentos de Programação de Computadores. São Paulo: Prentice Hall, 
2002.
Apresentação
Caro(a) aluno(a),
Seja bem-vindo (a) ao primeiro módulo da disciplina Programação II. Nesta disciplina, 
você irá aprender a programar na linguagem de programação C, uma das mais utilizadas 
mundialmente. Desenvolver programas e garantir que estes sejam confiáveis, eficientes 
e agradáveis de usar requer conhecimento técnico e muito treinamento.
Este livro foi escrito pensando em você, que está iniciando neste mundo da 
programação de computadores e que precisa ser apresentado, com tranquilidade, a um 
conjunto de novos conceitos. Os assuntos serão transmitidos gradativamente, de forma 
que você os absorvacom naturalidade.
Este livro contém muitos exemplos de questões resolvidas, comentadas em 
detalhes, para que você não encontre dificuldades para aprender cada assunto. Além 
de apresentar dicas para que você desenvolva seus programas de forma eficiente e 
não cometa os principais erros de programação que ocorrem com quem está iniciando 
a programar. Ao final de cada capítulo, você poderá testar o seu aprendizado e assimilar 
melhor o que foi estudado, através da resolução de exercícios. Isto é muito importante! 
Não deixe de resolvê-los.
De antemão, informamos que programar é muito bom, você vai gostar! Nada melhor 
do que ver um programa rodando e saber que foi você quem o criou. Mas, não desanime 
se encontrar alguma dificuldade durante esta caminhada. Às vezes o programa dá 
um erro e não sabemos onde está o problema. Seja persistente! Ao longo do tempo, 
a experiência vai te dar mais segurança e você conseguirá encontrar tais erros com 
facilidade.
O objetivo deste primeiro módulo é fazer uma introdução à linguagem C, conhecer 
um pouco da sua história e iniciar o estudo da sintaxe da linguagem, que possibilitará 
a construção de programas básicos. Ao final deste primeiro módulo, você já estará 
desenvolvendo seus primeiros programas em C. O que você está esperando? Vamos 
começar?
Bons estudos!
Professora Sônia Virginia Alves França
10
Programação 2
Conhecendo o Volume 01
Neste primeiro volume, você irá encontrar o módulo 01 da disciplina: 
Programação II. Este volume está estruturado em cinco capítulos, que 
serão estudados ao longo de 15h/aula. Para facilitar seus estudos, 
veja a organização deste primeiro volume.
Capítulo 1: Introdução ao C
Carga Horária do Capítulo 1: 2 h/aula
 Objetivos do Capítulo 1: Introduzir os conceitos básicos da 
área de programação e apresentar um breve histórico sobre a 
linguagem C.
Conteúdo Programático do Capítulo 1
• Conceito de programas e programação de computadores;
• Linguagens de programação; 
• Breve histórico da linguagem de programação C;
• Etapas do desenvolvimento de um programa.
Capítulo 2: Conceitos Preliminares para Programar em C
Carga Horária do Capítulo 2: 3 h/aula
 Objetivos do Capítulo 2: Apresentar detalhes mais específicos 
da linguagem, necessários para dar início à programação 
em C. Neste capítulo, também será apresentado o ambiente 
de programação que utilizaremos no desenvolvimento dos 
programas. 
Conteúdo Programático do Capítulo 2
• Estrutura de um programa básico C;
• Palavras reservadas do C; 
• Uso de comentários;
• Fundamentos do ambiente C;
• Conhecendo o Dev-cpp.
11
Programação 2
Capítulo 3: Tipos de Dados, Variáveis e Constantes
Carga Horária do Capítulo 3: 2 h/aula
 Objetivos do Capítulo 3: Apresentar os tipos de dados 
suportados pelo C e introduzir o conceito de variáveis e 
constantes 
Conteúdo Programático do Capítulo 3
• Tipos de dados;
• Variáveis e constantes;
• Operador de atribuição; 
Capítulo 4: Comandos de Entrada e Saída de Dados
Carga Horária do Capítulo 4: 4 h/aula
 Objetivos do Capítulo 4: Apresentar os comandos de entrada 
e saída de dados do C. Neste capítulo, você terá acumulado 
conhecimento suficiente para desenvolver os primeiros 
programas em C. 
Conteúdo Programático do Capítulo 4
• Entrada de dados;
• Saída de dados;
• Desenvolvimento dos primeiros programas C.
Capítulo 5: Operadores, Expressões e Funções Matemáticas
Carga Horária do Capítulo 5: 4 h/aula
 Objetivos do Capítulo 5: Apresentar os operadores 
básicos (aritméticos, relacionais e lógicos), além de funções 
complementares para o desenvolvimento de programas que 
executem expressões mais complexas. 
Conteúdo Programático do Capítulo 5
• Operadores aritméticos, lógicos e relacionais;
• Operadores aritméticos de atribuição;
• Operadores ++ e --;
12
Programação 2
• Conversão de tipos;
• Funções matemáticas.
Ao final de cada capítulo você encontrará:
• A seção “Atividades e Orientações de Estudo”: que contém 
exercícios para a fixação do assunto estudado, além de 
indicação de fóruns de discussão. 
• A seção “Conheça Mais”: que contém dicas de sites e livros 
que devem ser lidos para ampliar os seus conhecimentos.
• A seção “Vamos Revisar?”: que apresenta um resumo dos 
principais tópicos abordados no capítulo.
13
Programação 2
Capítulo 1 – Introdução ao C
Vamos conversar sobre o assunto?
Neste primeiro capítulo, será feita uma apresentação do que é 
programação e quais as principais linguagens de programação do 
mercado, dando ênfase à linguagem C. Este capítulo é importante, 
porque conheceremos um pouco da história da linguagem de 
programação que iremos aprender nesta disciplina. Sempre que 
conhecemos uma pessoa nova, queremos saber alguns detalhes 
da sua vida, não é mesmo? Quantos anos ela tem, onde nasceu, 
quem são seus pais, etc. Neste capítulo, também, serão introduzidos 
conceitos utilizados na área de programação, visando a nossa 
preparação para nos lançarmos nesse mundo intrigante da criação de 
programas computacionais. Então, prontos (as) para o desafio?
1.1. Programas e Programação de 
Computadores
Um programa de computador é um conjunto de instruções que 
descrevem uma tarefa que será executada por um computador. 
Um programa de computador também é conhecido como software, 
software aplicativo, software de sistema ou simplesmente programa. 
O termo software é mais utilizado quando é feita uma referência à 
parte não física do sistema computacional, juntamente com o termo 
hardware, que faz referência ao conjunto de componentes eletrônicos 
que constituem um computador. 
Os programas que permitem ao usuário fazer uma ou mais tarefas 
específicas, como as planilhas eletrônicas, editores de texto e jogos 
são chamados de software aplicativo ou aplicação. Já os programas 
que dão suporte funcional aos computadores, como os sistemas 
operacionais e drivers de dispositivos, são chamados de software de 
sistema1. 
O ato de desenvolver programas é chamado de programação 
de computadores. A programação é o processo de escrita, teste 
e manutenção de um programa (ASCENIO e CAMPOS, 2002). 
O desenvolvimento de programas baseado em metodologias ou 
processos formalizados é conhecido por engenharia de software.
Saiba Mais
1 Além dos 
software 
aplicativo e 
software de 
sistema, ainda é 
possivel utilizar 
a categoria 
software 
embutido ou 
embarcado, 
destinado a 
funcionar dentro 
de uma máquina 
que não é um 
computador. 
Normalmente, 
estes software 
têm um 
propósito muito 
específico, como, 
por exemplo: 
controlar a 
injeção eletrônica 
de um carro 
ou gerenciar 
o cozimento 
dos alimentos 
no forno de 
microndas. Mais 
recentemente, 
surgiu também 
o software como 
serviço, que é 
um software que 
roda diretamente 
na internet, não 
sendo necessário 
instalar nada no 
computador do 
usuário. 
14
Programação 2
Os programas são escritos em uma linguagem de programação. 
Assim como o Português, o Inglês e o Espanhol, as linguagens 
de programação têm as suas regras e devemos seguí-las para 
escrever nossos programas corretamente. Portanto, a programação 
de computadores é uma ciência e, por isso, devemos seguir uma 
metodologia para termos como resultado: programas seguros e 
eficientes.
Em uma disciplina anterior, vocês aprenderam a desenvolver 
algoritmos, que são uma sequência de passos para realizar uma 
tarefa ou resolver um problema. Utilizamos algoritmos no nosso 
cotidiano para realizar atividades corriqueiras, definindo a sequência 
de passos que deve ser executada para atingirmos um objetivo, como, 
por exemplo, os passos que executamos para tomar banho, calibrar 
um pneu ou fazer um bolo.
Figura 1.1: Exemplos de algoritmos
Para efetuarmos estas atividades, seguimos umasequência 
lógica de passos. Se esses passos não tiverem uma lógica, podemos 
não conseguir atingir o nosso objetivo. Se vocês observarem, para 
fazer um bolo, existe uma ordem em que os ingredientes devem ser 
adicionados à receita, caso não sigamos esta ordem, o bolo não ficará 
bom. Na programação irá ocorrer a mesma coisa, devemos passar as 
instruções ao computador, utilizando uma linguagem de programação, 
seguindo uma lógica – a lógica computacional.
Na próxima seção vamos abordar as linguagens de programação, 
de uma forma mais abrangente, tratando os principais conceitos que 
envolvem este assunto. Vamos seguir em frente?
15
Programação 2
1.2. Linguagens de Programação
É através das linguagens de programação que poderemos criar 
nossos programas. Uma linguagem de programação é um conjunto de 
regras sintáticas e semânticas usadas para definir um programa. O 
conjunto de códigos (palavras e símbolos), compostos de acordo com 
essas regras, constituem o código fonte do nosso programa. Para 
ser executado pelo processador, o código fonte precisa ser traduzido 
para código de máquina.
Aprender uma linguagem de programação é um pouco similar 
a aprender um novo idioma. Temos que saber o significado das 
palavras, as regras da estruturação das frases, etc., para podermos 
nos comunicar corretamente no novo idioma.
Figura 1.2: Aprenda a dar ordens ao seu computador
Existem várias linguagens de programação. Vocês sabiam que 
cada linguagem de programação possui o seu conjunto de regras e 
um modo de funcionamento próprio? A escolha de uma linguagem 
de programação para o desenvolvimento de um programa deve estar 
atrelada ao tipo de problema que deseja resolver. Existem linguagens 
16
Programação 2
que são melhores para resolver um certo tipo de questão do que 
outras. 
De acordo com Sebesta (2003), as linguagens de programação 
vêm sendo classificadas de várias formas: por geração, de acordo com 
o paradigma de programação, quanto ao grau de abstração, de acordo 
com a estrutura de tipos, dentre outras. Uma das classificações mais 
utilizadas é quanto ao grau de abstração. Segundo esta classificação, 
as linguagens de programação são divididas em três grupos: 
linguagens de máquina, linguagens de baixo nível e linguagens 
de alto nível.
A linguagem de máquina é a linguagem natural dos computadores. 
Estas linguagens são ininteligíveis para o ser humano não treinado. 
As linguagens de máquina são representadas por sequências de 
bits (zeros e uns). Estas sequências representam instruções que 
serão executadas pelo processador do computador. As instruções 
correspondem a sequências muito simples de operações, tais como: 
transferir um dado em memória para a CPU ou somar dois valores. As 
linguagens de máquina são dependentes do processador, isto é, uma 
determinada linguagem de máquina só poderá usada por um tipo de 
computador.
As linguagens de baixo nível são próximas da linguagem de 
máquina. No entanto, os zeros e uns que formam uma instrução 
foram substituídos por palavras que representam tais instruções, 
tornando-as um pouco mais legíveis. Estas linguagens são mais 
voltadas para a máquina, isto é, são escritas usando as instruções 
do microprocessador do computador. São chamadas de linguagens 
Assembly (que significa montagem). Estas linguagens apresentam 
as seguintes vantagens: os programas são executados com maior 
velocidade de processamento (já que são executadas diretamente 
pela máquina) e ocupam menos espaço na memória. No entanto, de 
modo geral, os programas em Assembly têm pouca portabilidade2 (um 
código gerado para um tipo de processador não serve para outro) e 
não são estruturados, tornando a programação mais difícil.
As linguagens de alto nível são mais próximas à linguagem 
humana (do Inglês, por exemplo) e mais distantes das linguagens 
de máquina. Por isso, são linguagens mais simples de entender, já 
que, em geral, utilizam uma sintaxe estruturada, tornando seu código 
mais legível. Necessitam de compiladores ou interpretadores 
para gerar instruções do microprocessador. Interpretadores fazem 
Saiba Mais
2 No contexto da 
informática, a 
portabilidade de 
um programa é a 
sua capacidade 
de ser compilado 
ou executado 
em diferentes 
arquiteturas (seja 
de hardware ou 
de software).
Esse termo 
também vem 
sendo utilizado 
pelas empresas 
de telefonia 
móvel, quando 
se referem à 
portabilidade 
de número, ou 
seja, você muda 
de operadora, 
mas nao muda 
o número do 
celular.
17
Programação 2
a interpretação de cada instrução do programa fonte executando-a 
dentro de um ambiente de programação, Basic e Java são exemplos de 
linguagens interpretadas. Os compiladores fazem a tradução de todas 
as instruções do programa fonte gerando um programa executável. 
Estes programas executáveis (*.exe) podem ser executados fora dos 
ambientes de programação. A linguagem C e Pascal são exemplos de 
linguagens compiladas.
As linguagens de alto nível ainda podem ser divididas de acordo com 
a sua aplicação: genéricas (como C, Java e Pascal, que servem para 
o desenvolvimento de programas de propósito geral) ou específicas 
(como Fortran - utilizada para execução de cálculos matemáticos, 
LISP - desenvolvimento de aplicações na área de inteligência artificial 
e CLIPPER – utilizada para aplicações que manipulam bancos de 
dados). As vantagens das linguagens de alto nível são: portabilidade 
(por serem compiladas ou interpretadas podem ser executadas em 
várias plataformas com pouquíssimas modificações) e facilidade de 
desenvolvimento de programas. No entanto, as rotinas geradas são 
mais genéricas (e mais complexas) e por isso são mais lentas e 
ocupam mais memória.
A figura 1.3, a seguir, apresenta um trecho de código escrito em 
linguagem de máquina, linguagem de baixo nível e linguagem de alto 
nível, respectivamente.
Linguagem de 
Máquina
10110101 
11100110 
11000100
Linguagem de 
Baixo Nível
LOAD BASE 
ADD BONUS 
STORE SALARIO
Linguagem de Alto Nível
 
 
Salario = Base + Bonus
Figura 1.3: Trecho de código em diferentes linguagens
Notem como o código em linguagem de máquina é incompreensível. 
Difícil entender essas seqüências de zeros e uns, não é mesmo? 
O código na linguagem de baixo nível é mais legível e passamos 
a entender as instruções. Na linguagem de alto nível, o código fica 
menor e muito mais simples. Em qual tipo de linguagem vocês querem 
programar? Nem precisamos parar para pensar, não é mesmo?
18
Programação 2
Figura 1.4: Linguagens de baixo nível x linguagens de alto nível
1.3. Breve Histórico da Linguagem de 
Programação C
Vamos conhecer um pouco sobre a história do C? A linguagem 
de programação C nasceu em 1972 nos laboratórios Bell, Estados 
Unidos. Seus criadores são Brian Kernighan e Dennis M. Ritchie. A 
linguagem C foi criada a partir da linguagem B (sugestivo, não é?), 
que havia sido desenvolvida no final dos anos 60 por Ken Thompson. 
O C é uma linguagem de alto nível, compilada e estruturada3. 
No entanto, o C possui instruções de baixo nível, bem próximas à 
linguagem de máquina, que só o Assembler possui. O objetivo dos 
seus criadores era usar o C para desenvolver o sistema operacional 
UNIX, que originalmente foi escrito em Assembly (linguagem de baixo 
nível). Desde então, espalhou-se por muitos outros sistemas e tornou-
se uma das linguagens de programação mais usadas, e influenciando 
o desenvolvimento de muitas outras linguagens como C++ e Java.
Com a linguagem C podemos construir programas organizados 
e concisos (características dos programas das linguagens de alto 
Saiba Mais
3Uma linguagem 
é considerada 
estruturada 
quando 
permite que o 
programador 
pegue trechos 
de maior uso do 
seu programa e 
transforme-os 
em pequenos 
módulos 
(procedimentos 
e funções)que 
serão reutilizados 
sempre que 
necessário.
19
Programação 2
nível), ocupando pouco espaço de memória e com alta velocidade 
de execução (como o Assembler). Infelizmente, dada toda a 
flexibilidade da linguagem, também poderemos escrever programas 
desorganizados e difíceis de serem compreendidos. Portanto, cabe 
ao programador de C utilizar boas práticas de programação, para ter 
programas legíveis e de fácil manutenção. 
Existem inúmeras razões para que o C seja uma das linguagens 
mais preferidas dos programadores. As características da linguagem 
C mostram o porquê de sua ampla aceitação. Vejamos algumas 
características da linguagem C.
• Portabilidade entre máquinas e sistemas operacionais;
• Dados compostos em forma estruturada;
• Programas estruturados;
• Total interação com o sistema operacional;
• Código compacto e rápido, quando comparado ao código de 
outras linguagens de alto nível. 
Agora que já conhecemos um pouco mais da linguagem C, vamos 
entender o processo de desenvolvimento de um programa. Quais são 
os passos que devemos seguir para termos um programa pronto? 
Vamos começar a falar sobre isto agora mesmo. Continuem firmes na 
leitura!
1.4. Criação, Compilação e Execução de um 
Programa
Nesta seção vamos estudar as etapas de desenvolvimento de um 
programa em C. O desenvolvimento de um programa é dividido em 
três etapas, como mostra a figura 1.5.
Figura 1.5: Estados do desenvolvimento de um programa em C
A primeira etapa para o desenvolvimento de um programa em C é 
20
Programação 2
a criação do programa fonte, que consiste no “texto” formado pelo 
conjunto de comandos que nós desejamos que o computador execute. 
O programa fonte deve ser escrito respeitando as regras da linguagem. 
De modo geral, os programas fontes são digitados em editores de 
texto genéricos ou específicos dos ambientes de programação. No 
próximo capítulo deste volume, vamos conhecer detalhadamente o 
ambiente de programação que será utilizado para o desenvolvimento 
dos nossos programas em C.
Com o programa fonte pronto, passamos para a etapa de 
compilação. O compilador é um programa que verifica se o 
programa fonte não apresenta nenhum erro de sintaxe e gera o 
programa executável. Quando o programa fonte apresenta algum 
problema, dizemos que ocorreu um “erro de compilação”. Assim, o 
programador deverá avaliar o programa fonte, para a retirada tais 
erros. Normalmente, os compiladores indicam os prováveis erros de 
sintaxe cometidos pelo programador. Se o programa não tiver erros 
de sintaxe, o compilador irá gerar o programa executável.
A etapa final consiste na execução do programa executável. 
Neste momento, o programador deverá testar se o programa 
está produzindo os resultados esperados. Quando o programa 
apresenta algum erro nesta fase, como, por exemplo, mostrar um 
resultado incorreto, dizemos que ocorreu um “erro de lógica” ou 
“erro de execução”. Isso ocorre porque, apesar do programa não 
ter apresentado erros de sintaxe, o que tornou possível a geração 
do programa executável, a sequência de comandos não foi definida 
de forma correta. Quando ocorre um erro de lógica, o programador 
deverá revisar o seu programa fonte e passá-lo novamente pela fase 
de compilação, para que um novo executável, sem erros, seja gerado. 
Como o compilador não nos avisa onde estão os erros de lógica, estes 
são mais difíceis de serem corrigidos. 
Após ter certeza que o programa executável está correto, sem 
erros de lógica, o programador poderá entregá-lo ao seu cliente. É 
importante fazermos vários testes nos nossos programas. Testar com 
vários valores e verificar se está realmente tudo como esperado. Não 
fica bem nosso cliente ficar ligando, dizendo que o programa está com 
BUG!4 Lembrem-se sempre, o computador só executa as instruções 
que nós mandarmos. Se houver erros, a responsabilidade será nossa 
que não fizemos o programa corretamente! Vocês não vão querer 
passar por uma situação como essa? Vão?
Saiba Mais
4 Bug é um erro 
no funcionamento 
de um programa. 
É também 
chamado de 
erro de lógica, 
e pode causar 
discrepâncias 
no objetivo ou 
impossibilidade 
de utilização de 
um programa de 
computador. 
O uso do 
termo bug 
para descrever 
defeitos 
inexplicáveis foi 
parte do jargão da 
engenharia por 
várias décadas. 
Acredita-se que o 
termo foi criado 
por Thomas 
Edison quando 
um inseto (bug, 
em Inglês) causou 
problemas de 
leitura em seu 
fonógrafo em 
1878. 
21
Programação 2
Nesta fase de execução do programa executável, nós também 
devemos verificar a usabilidade do programa, ou seja, se o programa 
ficou fácil de ser utilizado pelo seu usuário. Quando o programa é de 
difícil utilização ou confunde o usuário, induzindo-o ao erro, ele perde 
o interesse em utilizá-lo ou comprá-lo. Também devemos verificar se 
nosso programa tem um bom desempenho, ou seja, se ele processa 
rapidamente as operações. Usuário não gosta de programa lento, não 
é mesmo?
Atividades e Orientações de Estudo
Agora é o momento de analisarmos se os assuntos abordados 
neste capítulo foram bem absorvidos. Foram vistos muitos conceitos 
novos, não é mesmo? Vamos responder as questões a seguir. Caso 
sintam necessidade, releiam alguma seção que não foi muito bem 
assimilada ou complementem as respostas com a leitura dos sites 
indicados na próxima seção. Vocês estão preparados(as)?
1. Para que serve uma linguagem de programação?
2. Quais as desvantagens das linguagens de baixo nível?
3. Por que desejamos programas portáveis?
4. O que motivou a criação da linguagem C? 
5. A linguagem C é de baixo ou alto nível? 
6. A linguagem C é compilada ou interpretada? 
7. Por que os erros de lógica são mais difíceis de serem 
corrigidos?
8. Por que devemos nos preocupar com a usabilidade dos nossos 
programas?
Conheça Mais
Para ampliar os seus conhecimentos sobre os assuntos 
tratados neste capítulo, visite o site da OReilly. Neste endereço, 
22
Programação 2
http://oreilly.com/pub/a/oreilly/news/languageposter_0504.html, 
foi disponibilizado um pôster, muitíssimo interessante, como uma 
“árvore genealógica” das principais linguagens de programação dos 
últimos 50 anos. Vale a pena dar uma olhada.
É muito importante que vocês se cadastrem em algum fórum de 
discussão sobre a linguagem C. Assim, vocês poderão conversar e 
trocar idéias com programadores de C mais experientes. Exemplos 
de fóruns de C: DevMedia e Linha de código.
Vamos revisar?
Vamos dar uma reforçada em nosso aprendizado com esta 
pequena revisão dos principais conceitos apresentados neste capítulo. 
Observem o resumo a seguir:
• Programa: é um conjunto de instruções que descrevem uma tarefa 
que será executada por um computador.
• Programação de Computadores: é o processo de escrita, teste e 
manutenção de um programa.
• Algoritmo: sequência de passos para realizar uma tarefa ou 
resolver um problema.
• Linguagem de Programação: é um conjunto de regras sintáticas e 
semânticas usadas para definir um programa.
• Linguagem de máquina: é a linguagem natural dos computadores. 
As instruções são formadas por zeros e uns. Estas linguagens não 
são legíveis para um programador sem experiência.
• Linguagens de baixo nível: são linguagens escritas usando as 
instruções do microprocessador do computador. Estas linguagens 
são mais difíceis de entender e criar programas.
• Linguagens de alto nível: são linguagens mais próximas à 
linguagem humana e mais distantes das linguagens de máquina. 
São linguagens mais simples de entender, já que, em geral, 
utilizam uma sintaxe estruturada, tornando seu código mais legível.
• Compiladores: são programas que fazem a tradução de todas as 
instruções do programa fonte gerando um programa executável.
23
Programação 2
• Interpretadores:são programas que interpretam cada instrução 
do programa fonte executando-a dentro de um ambiente de 
programação.
• Compilação: é o processo, executado pelo compilador, que verifica 
se existem erros de sintaxe no código fonte e gera um programa 
executável.
• Erro de sintaxe: ocorre durante o processo de compilação do 
programa, quando o programador, ao editar o seu programa 
fonte, não respeita alguma regra de sintaxe da linguagem de 
programação. 
• Erro de lógica: ocorre durante a execução de um programa, devido 
um erro na lógica dos comandos.
24
Programação 2
Capítulo 2 – Conceitos 
Preliminares para Programar 
em C
Vamos conversar sobre o assunto?
Neste capítulo, serão abordados conceitos preliminares que 
irão nos preparar para programar em C. Estes conceitos estão 
relacionados à estrutura de um programa básico em C. Aqui, também, 
será apresentado o ambiente de programação que utilizaremos 
para o desenvolvimento dos nossos programas – o Dev-cpp. Este 
ambiente apresenta uma interface amigável, que facilitará o processo 
de programação. Vocês devem baixar e instalar o Dev-Cpp5, o 
quanto antes, no computador que será utilizado para a prática desta 
linguagem. 
É importante que vocês tenham paciência neste início de 
aprendizado, já que precisamos, inicialmente, acumular o conhecimento 
necessário para a construção de um programa completo em C. 
Visando facilitar o aprendizado, em alguns momentos, será feito um 
paralelo entre a sintaxe do C e do Portugol do VisuAlg6 (linguagem 
utilizada para escrever algoritmos).
Saiba Mais
5 O Dev-cpp é 
uma ferramenta 
gratuita e pode 
ser baixada 
acessando o site: 
www.bloodshed.
net/devcpp.html
Saiba Mais
6 Conheça 
mais o VisuAlg 
pesquisando no 
site: http://www.
apoioinformatica.
inf.br/visualg/
linguagem.htm
25
Programação 2
Figura 2.1: Qualidades de um programador: atenção, paciência e persistência
Vale lembrar que qualquer linguagem de programação é assimilada 
através da resolução de exercícios. É importantíssimo que a prática 
de programar faça parte da rotina de vocês. Assim, separem sempre 
um tempo para resolver as questões propostas neste material. Vocês 
vão perceber o quanto é bom ver um programa rodando! Que venha 
o C!
2.1. Estrutura de um Programa Básico em C
Nesta seção, vamos estudar a estrutura de um programa básico 
em C. Visando facilitar o entendimento e não sobrecarregar vocês 
com muitos detalhes, alguns elementos da estrutura do programa 
serão omitidos. Mas, no momento certo, abordaremos tais elementos, 
certo? Assim, a estrutura do programa que será apresentada nesta 
seção, é a estrutura mínima de um programa em C.
Nas linguagens de programação em geral, existe uma estrutura que 
indica a ordem em que deve ser disposto cada elemento do programa. 
Esta ordem deve ser respeitada para que nossos programas fiquem 
corretos. Como será a estrutura de um programa em C?
A estrutura básica de um programa C deve seguir a seguinte 
ordem:
1. Inclusão de bibliotecas (quando necessário); 
2. Declaração das constantes (quando necessário);
3. Programa principal;
26
Programação 2
 • Declaração de variáveis (quando necessário);
 • Seqüência de comandos.
Para entendermos melhor a estrutura básica de um programa C, 
vamos analisar o programa de exemplo 2.1, abaixo. Este programa 
calcula o cubo de um número inteiro fornecido pelo usuário. Na 
sequência, temos este programa resolvido utilizando o portugol, que é 
do conhecimento de vocês. Assim, fica fácil compararmos a estrutura 
do programa em C, com a estrutura do algoritmo. Não se preocupem 
em entender cada comando do exemplo abaixo, estamos apenas 
começando a estudar o C, certo?
Exemplo 2.1: Programa C – Cálculo do cubo de um número
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
main()
{
 int num,c;
 printf(“Cubo de um numero\n\n”);
 printf(“Digite o numero: “);
 scanf(“%d”,&num);
 c = num*num*num;
 printf(“\nCubo de %d = %d”,num,c);
 getche();
}
Segue abaixo o algoritmo, escrito no VisuAlg, que calcula o cubo 
de um número.
27
Programação 2
Exemplo 2.2: Algoritmo – Calculo do cubo de um número
1
2
3
4
5
6
7
8
9
10
algoritmo “Cubo”
var
 num, c: inteiro
inicio
 escreval(“Cubo de um numero”)
 escreva(“Digite o numero: “)
 leia(num)
 c <- num*num*num
 escreval(“Cubo de “, num, “ = “, c)
fimalgoritmo
Um programa em C inicia com a inclusão de bibliotecas. Uma 
biblioteca é um arquivo que contém comandos complementares, 
que são utilizados pelo nosso programa. Para a inclusão de uma 
biblioteca devemos usar um comando que é chamado de diretiva de 
compilação. Este comando informa ao compilador quais bibliotecas 
devem ser anexadas ao programa executável. Assim, o comando para 
a inclusão de uma biblioteca tem a seguinte sintaxe: 
Sintaxe
#include <nome_do_arquivo_da_ biblioteca>
De acordo com a sintaxe, para incluir uma biblioteca ao nosso 
programa devemos colocar a diretiva de compilação #include e, entre 
os símbolos < e >, colocamos o nome do arquivo da biblioteca. De 
maneira geral, os arquivos de biblioteca têm a terminação .h (esse h 
vem de header, ou seja, este é um arquivo de cabeçalho). Para cada 
biblioteca, que será incluída no nosso programa, devemos colocar 
um comando #include. No exemplo 2.1, na linha 1, é feita a inclusão 
de uma biblioteca: stdio.h. Na medida em que formos aprendendo 
os comandos, serão indicadas quais bibliotecas devem ser incluídas 
no programa. A quantidade de bibliotecas e quais bibliotecas serão 
28
Programação 2
incluídas, depende dos comandos que serão utilizados no programa. 
Pode ser que em um programa, não seja necessário incluir nenhuma 
biblioteca. 
O segundo item da estrutura de um programa C é a declaração 
das constantes, esse item é opcional, só constará no nosso programa, 
caso seja necessário. Veremos a declaração de constantes, em 
detalhes, no próximo capítulo. No exemplo 2.1 não foi necessário o 
uso de constantes.
O terceiro item da estrutura do programa C é o programa principal. 
É no programa principal que colocaremos a sequência de comandos 
que deve ser executada para a solução do problema que desejamos 
resolver. Nós devemos informar onde começa e termina o programa 
principal. O programa principal inicia com: main()7, como mostra a linha 
2, do exemplo 2.1. A sequência de comandos do programa principal é 
delimitada por um par de chaves: { (abre chaves) e } (fecha chaves). 
As chaves que delimitam o corpo do programa principal8 aparecem 
nas linhas 3 e 11, do exemplo 2.1. Fazendo uma comparação com 
o algoritmo do exemplo 2.2, as chaves fazem o papel do “inicio” e 
“fimalgoritmo”, das linhas 4 e 10.
Logo no início do programa principal, devem ser declaradas as 
variáveis (que serão abordadas no próximo capítulo). A declaração 
de variáveis é um item opcional, pode acontecer de não precisarmos 
declarar variáveis no nosso programa. No exemplo 2.1, a declaração 
de variáveis é feita na linha 4. Foram declaradas duas variáveis do 
tipo inteiro: num e c. No algoritmo, exemplo 2.2, as variáveis são 
declaradas fora do programa principal, na seção de declaração de 
variáveis (linhas 2 e 3). 
Após a declaração das variáveis, colocamos a sequência de 
comandos que o programa deverá executar. O programa termina com 
o fecha chaves que delimita o programa principal. 
Agora que já sabemos como é a estrutura de um programa básico 
em C, vamos começar a aprender a sintaxe dos comandos para 
darmos início ao desenvolvimento dos nossos programas.
2.2. Palavras Reservadas do C
Como mencionado no capítulo anterior, as linguagens de 
programação são formadas por um conjunto de regras de sintaxe e 
Saiba Mais
7 Do Inglês, 
main significa 
principal. Todoprograma C 
começa a sua 
execução a partir 
do programa 
principal. Assim, 
o programa 
principal é uma 
parte obrigatória 
na estrutura de 
um programa C.
Saiba Mais
8 Chamamos 
de corpo do 
programa 
principal toda 
a sequência 
de comandos 
que faz parte 
do programa 
principal. Ou seja, 
a seqüência de 
comando que 
aparece entre 
as chaves de 
abertura e término 
do programa 
principal.
29
Programação 2
semântica que ditam como o programa deve ser escrito. Com isso, 
dentro dessas regras, existe um conjunto de palavras que tem um 
significado para a linguagem de programação – são as palavras 
reservadas. Uma palavra reservada é, essencialmente, um comando 
e, na maioria das vezes, as palavras reservadas de uma linguagem 
definem o que pode ser feito e como pode ser feito.
As palavras reservadas são de uso exclusivo da gramática da 
linguagem, por isso, não podem ser utilizadas, pelo programador, para 
dar nome a alguma variável, constante ou função do seu programa. 
Assim, um programador não pode ter uma variável chamada “int” no 
seu programa C, já que “int” é uma palavra reservada que indica um 
tipo de dado.
Na linguagem C temos 32 palavras reservadas. Todas as palavras 
reservadas do C são escritas em minúsculo. A tabela abaixo mostra 
as palavras reservadas, conforme definido pelo padrão ANSI9, para a 
linguagem C.
auto 
break 
case 
char 
const 
switch 
volatile 
continue
default 
do 
double 
else 
typedef 
while 
enum 
extern
float 
for 
goto 
union 
if 
int 
long 
register
unsigned 
return 
short 
signed 
sizeof 
static 
struct 
void
No Dev-cpp, ambiente de programação que será utilizado, sempre 
que digitarmos uma palavra reservada no nosso programa, esta 
aparecerá em negrito. Isto facilita no momento da programação, pois 
não precisaremos decorar esta lista de palavras reservadas. Que 
alívio! Assim que uma palavra ficar em negrito no nosso programa, 
poderemos verificar se estamos utilizando-a de forma correta.
2.3 Uso de Comentários
Os comentários são utilizados para documentar um programa. A 
colocação de comentários em um programa é uma das boas práticas 
de programação10. Os comentários irão facilitar o entendimento 
e manutenção de programas. Por exemplo, um programador é 
responsável por desenvolver o sistema de controle de vendas 
Saiba Mais
9 A sigla ANSI 
significa: 
American 
National 
Standards 
Institute (Instituto 
Nacional 
Americano de 
Padronização). É 
uma organização 
que tem por 
objetivo facilitar a 
padronização dos 
trabalhos de seus 
membros.
Saiba Mais
10 Ao desenvolver 
nossos 
programas 
utilizando boas 
práticas de 
programação, 
teremos como 
resultado um 
código fonte 
mais legível e 
um progama 
executável mais 
seguro e eficiente. 
Ao longo deste 
material serão 
ensinadas boas 
práticas de 
programação. 
30
Programação 2
da sua empresa. Como o sistema é grande, após um tempo, ele 
não lembrará mais o porquê de ter colocado uma sequência de 
comandos no seu programa. Se o programa estiver bem comentado, 
o programador poderá, rapidamente, ter esta resposta. Além disso, 
quando desenvolvemos programas em grupo, é importante que os 
demais membros do grupo entendam o raciocínio do nosso programa 
e isso pode ser explicado através dos comentários.
Os comentários podem ser colocados em qualquer parte do 
programa. Quando o compilador identifica um comentário, ele os 
ignora, já que os comentários são apenas informações para o 
programador. A linguagem C fornece dois tipos de comentários: de 
linha e de bloco. Vamos detalhar como funciona cada um deles.
Os comentários de linha são mais utilizados quando desejamos 
comentar uma única linha do nosso programa. Um comentário de 
linha possui a sintaxe a seguir:
Sintaxe
// texto do comentário
Um comentário de linha inicia com duas barras “//” e, na sequência, 
vem o texto do comentário. O exemplo 2.3, a seguir, apresenta um 
programa comentado. Na linha 7 temos o exemplo de um comentário 
de linha. Este comentário serviu para informar para que serve a 
variável C. Assim que o compilador encontra “//”, ele ignora todo texto 
que vem após as duas barras11. Este tipo de comentário age apenas 
na linha que ele é inserido. 
O segundo tipo de comentário disponível na linguagem C é o 
comentário de bloco. Os comentários de bloco são utilizados quando 
queremos fazer um comentário maior, que compreenda mais de uma 
linha de comentário. A sintaxe do comentário de bloco é a seguinte: 
Sintaxe
/* texto do comentário
 texto do comentário
 texto do comentário */
Um comentário de bloco inicia com barra-asterisco “/*” e termina 
por asterisco-barra “*/”. O compilador irá ignorar tudo o que encontrar 
Saiba Mais
11No Dev-
cpp, quando 
colocamos um 
comentário, as 
letras do texto 
comentado ficam 
cinza
31
Programação 2
entre estes dois símbolos. Veja no exemplo 2.3, que nas linhas 2, 3, 
e 4 aparece um comentário de bloco. Este tipo de comentário do 
exemplo é utilizado para identificar quem é o programador quando 
o programa foi feito e o que o programa faz. Devemos Adotar este 
tipo de comentário no início dos nossos programas. Assim, ao abrir 
um programa, rapidamente, saberemos para que ele serve. Devemos 
tomar cuidado para não esquecer o “*/” que fecha o comentário de 
bloco.
Exemplo 2.3: Programa C Comentado – Calculo do cubo de um número
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
/* Programador: Sônia França
 Data: 09/03/2009
 Programa calcular o cubo de um número */
main()
{
 int Num, C; // C guarda o cubo do numero
 printf(“Cubo de um numero\n\n”);
 printf(“Digite o numero: “);
 scanf(“%d”,&Num);
 C = Num*Num*Num;
 printf(“\nCubo de %d = %d”,Num,C);
 getche();
}
2.4. Os Fundamentos do Ambiente C
Na seção 1.5, do capítulo anterior, foram abordados os processos 
de criação, compilação e execução de um programa. Nesta seção, 
vamos detalhar um pouco mais estes processos, entendendo os 
32
Programação 2
fundamentos do ambiente C. A figura 2.2 apresenta um ambiente 
C, com as seis fases pelas quais passa um programa, desde a sua 
edição, até a sua execução.
Figura 2.2: Ambiente C
A fase 1 compreende a edição do nosso programa. O programa 
é criado com a utilização de um editor e é armazenado no disco do 
computador (HD - Hard Disk). O arquivo que contém o nosso programa 
tem a terminação .c, e este é chamado de programa fonte ou código 
fonte.
Ao terminar a edição do programa, o programador solicita que 
o seu código fonte seja compilado. O compilador traduz o código 
fonte para o código em linguagem de máquina (também chamado 
de código objeto). Vocês se lembram das diretivas de compilação? 
Antes da tradução, temos a fase 2, em que o pré-processador 
33
Programação 2
analisa o código fonte, executando as diretivas de compilação. O 
pré-processador também é responsável por eliminar os comentários 
que o programador colocou no seu código fonte. O pré-processador é 
ativado automaticamente pelo compilador. Na fase 3, é que ocorre o 
processo de compilação, após o código fonte ter sido pré-processado. 
Para que o processo de compilação seja concluído, o programa não 
pode apresentar erros de sintaxe. 
Na fase 4, ocorre o processo de linking, que consiste na ligação do 
código objeto, gerado pelo compilador, com o código das funções que 
estão disponíveis nas bibliotecas que incluímos no nosso programa. 
Ou seja, no exemplo 2.1, em que foi incluída uma biblioteca, o linker 
deverá localizar o arquivo da biblioteca e fazer a ligação com o código 
objeto. Esta fase termina com a geração do programa executável, 
armazenando-o no disco do computador. No Dev-cpp, o programaexecutável é armazenado no mesmo diretório que tiver armazenado 
o código fonte. Na Figura 2.3, temos um diretório contendo o arquivo 
do código objeto (.c – C source file) e o programa executável (.exe – 
application). O arquivo do programa executável não pode ser editado, 
o que nós podemos editar é o arquivo do código fonte. 
Figura 2.3: Diretório contendo código objeto e o programa executável
As fases 5 e 6 consistem na execução do programa executável. 
Para dar início a execução de um programa, é necessário que o mesmo 
esteja na memória principal do computador. Isto é feito na fase 5, pelo 
carregador do programa. O carregador pega o programa executável 
que está armazenado no disco e o transfere para memória principal. 
Assim que o programa está na memória principal do computador, ele 
está pronto para ser executado. A execução de um programa é feita 
pela CPU12, que executa as instruções do programa, uma após a 
outra, até o seu término.
Saiba Mais
12 CPU é a sigla 
para Central 
Processing 
Unit, em Inglês, 
ou Unidade 
Central de 
Processamento. 
A CPU é a parte 
do computador 
que processa 
as instruções 
contidas em um 
programa.
34
Programação 2
Na próxima seção, vamos conhecer o Dev-Cpp, que possibilitará a 
criação, compilação e execução dos nossos programas. Com o Dev-
cpp poderemos observar as fases aqui descritas.
2.5. Conhecendo o Dev-cpp
O Dev-Cpp é um ambiente de programação que edita, compila 
e executa programas C e C++13. Sabem porque iremos usar o Dev-
cpp para desenvolver nossos programas? O Dev-cpp é gratuito 
(muito importante!) e possui uma interface bastante amigável (mais 
importante ainda!). A Figura 2.4 apresenta a tela principal do Dev-
cpp.
Figura 2.4: Tela principal do Dev-cpp
Como mencionado no início deste capítulo, vocês deverão baixar 
o Dev-cpp e instalar no seu computador, para que possamos fazer 
os nossos programas. O processo de instalação não apresenta 
dificuldades. Vocês só devem ficar atentos no momento que for 
questionado sobre qual idioma deseja utilizar, para que faça a escolha 
do idioma correto (Português), certo? Assim, a interface do Dev-cpp 
ficará toda em Português, facilitando os seus estudos.
Vamos analisar a tela principal do Dev-cpp, apresentada na figura 
2.4. Na parte 1 temos o menu principal do Dev-cpp, que disponibiliza 
Saiba Mais
13 C++ é uma 
linguagem de 
programação que 
surgiu a partir 
do C. 
35
Programação 2
as seguintes opções:
• Arquivo: o menu arquivo disponibiliza, basicamente, as opções 
para criar, salvar, imprimir e fechar arquivos. 
• Editar: neste menu encontraremos as opções: copiar, colar, 
selecionar, refazer e desfazer.
• Localizar: as opções deste menu nos possibilita localizar alguma 
palavra no programa fonte, além de permitir substituições de 
uma palavra por outra.
• Exibir: neste menu temos as opções que nos permite exibir ou 
esconder itens da interface do ambiente, como por exemplo: 
barra de ferramenta e barra de status. 
• Projeto: permite a adição ou remoção de arquivos em um 
projeto.
• Executar: é através deste menu que iremos chamar as opções 
para a compilação e execução do nosso programa. 
• Debug: o debugador auxilia o programador a encontrar erros 
no programa, tornando possível acompanhar passo a passo a 
execução dos comandos do programa. Neste menu teremos as 
opções para utilização do debugador. 
• Ferramentas: no menu ferramentas temos as opções para 
configurar o ambiente (mudar cores, tipo de letra, dentre outros) 
e também a opção para atualização do Dev-cpp.
• CVS14: este menu é utilizado por quem faz o controle de 
versões dos programas. Apesar de ser uma função bastante 
interessante, é mais utilizado quando trabalhamos em grupo ou 
com programas grandes. 
• Janela: neste menu estão disponíveis as opções que nos 
permitem escolher qual janela de edição deve ficar visível 
no momento. Utilizamos esta opção quando temos vários 
programas abertos ao mesmo tempo.
• Ajuda: neste menu encontramos o help do Dev-cpp.
Na parte 2, da Figura 2.4, temos os ícones de atalhos para as 
opções mais utilizadas no Dev-Cpp. Se vocês deixarem o mouse 
sobre o ícone, aparecerá um texto, que informa o que ele faz. Na parte 
3 temos a área de edição do programa. Para a área de edição ficar 
Saiba Mais
14O CVS, ou 
Concurrent 
Version System 
(Sistema 
de Versões 
Concorrentes) 
é um sistema 
de controle de 
versões que 
permite que 
se trabalhe 
com diversas 
versões do 
mesmo arquivo. 
Este sistema 
mantém as 
versões antigas 
do seu arquivo 
e os logs de 
quem e quando 
manipulou os 
arquivos.
É especialmente 
útil para se 
controlar versões 
de um software 
durante seu 
desenvolvimento, 
ou para 
composição 
colaborativa de 
um documento.
36
Programação 2
disponível, vocês deverão escolher a opção Arquivo/Novo/Arquivo 
Fonte. É nesta área que digitaremos os nosso programas (código 
fonte). A parte 4 fica visível quando nosso programa apresenta algum 
erro de compilação. O compilador indicará em qual linha foi encontrado 
um erro, e fornece uma dica do que pode ser o erro. Mesmo que 
vocês tenham instalado o Dev-cpp em Português, as mensagens de 
erro são apresentadas em Inglês. Por isso, é importante que vocês 
comecem a se familiarizar com estas mensagens, para que consigam 
tirar mais rapidamente os erros dos programas. 
Segue abaixo um roteiro do que vocês precisam fazer para editar, 
compilar e executar seus programas no Dev-cpp:
1. Crie um arquivo fonte novo na opção: Arquivo/Novo/Arquivo 
Fonte;
2. Digite o programa fonte na área de edição. Ao terminar de editá-
lo, salve o arquivo;
3. Compile o programa na opção: Executar/Compilar;
4. Se der algum erro no programa, vejam as indicações de 
erro fornecidas pelo compilador15. Conserte os erros, salve o 
arquivo e compile novamente. Isto deve ser feito até que seja 
apresentada uma mensagem indicando que o programa não 
tem erros de compilação.
5. Se vocês acessarem o diretório que o arquivo do código fonte 
foi armazenado, notarão que foi criado um arquivo com a 
extensão .exe (com o mesmo nome do arquivo do código fonte). 
Este é programa executável. Para executá-lo, escolha a opção 
Executar/Executar no Dev-cpp. Imediatamente, aparecerá a 
janela de execução do programa, como mostra a Figura 2.5.
Figura 2.5: Janela do programa em execução
É nesta janela que o programa será executado. Aqui o usuário 
Saiba Mais
15 O erro de 
compilação pode 
não estar na linha 
que o complilador 
está indicando. O 
erro poderá estar: 
na linha que ele 
está indicando, 
na linha 
imediatamente 
acima, ou ainda, 
em linhas mais 
acima (menos 
comum de 
acontecer).
37
Programação 2
deverá fornecer os dados solicitados pelo programa, neste caso o 
programa está solicitando que seja digitado um número. Além disso, 
também receberá os resultados fornecidos pelo programa. Quando 
a execução de um programa é finalizada, esta janela será fechada 
automaticamente. 
Agora que já conhecemos o ambiente de desenvolvimento de 
programa C, precisamos aprender os comandos para fazer um 
programa completo. Nos próximos capítulos iremos ver tais comandos, 
para podermos começar a programar. Não fiquem ansiosos(as), a 
nossa hora de programar está chegando!
Atividades e Orientações de Estudo
Vamos resolver mais uma lista de exercícios? Note que estamos 
conhecendo, ao poucos, os detalhes que envolve a programação de 
computadores. A resolução das atividades propostas fará com que 
estes conceitos sejam assimilados de forma mais natural. É sempre 
importante complementar o nosso conhecimento com a leitura de 
livros e materiais disponíveis na Internet, indicados na seção “Conheça 
Mais”. Será que vocês estão lembrados (as) das respostas para as 
questões abaixo?
1. Quandoé que precisamos incluir uma biblioteca em um 
programa C?
2. O que é diretiva de compilação?
3. O que deve ter no corpo do programa principal?
4. O que é uma palavra reservada?
5. Porque devemos comentar nossos programas?
6. Qual a função do pré-processador no momento da compilação 
de um programa?
7. Qual o papel do linker no processo de compilação?
8. Qual elemento do computador é responsável pela execução do 
programa?
38
Programação 2
Conheça Mais
Vocês poderão aprender mais sobre boas práticas de programação 
nos sites:
 http://www.ibm.com/developerworks/aix/library/au-hook_
duttaC.html
 ht tp: / /www2.eletronica.org/ar t igos/eletronica-dig i ta l /
programando-em-c-boas-praticas
Para conhecer mais detalhes do ambiente de programação que 
iremos utilizar, acessem os sites:
 http://www.bloodshed.net/dev/index.html
 http://www.uniqueness-template.com/devcpp/
Vamos revisar?
Nesta seção iremos revisar os principais tópicos vistos neste 
capítulo. Vale a pena dar uma lida para verificar como está o nosso 
aprendizado. Observem o resumo a seguir:
• A estrutura básica de um programa C deve seguir a seguinte ordem: 
inclusão de bibliotecas, declaração das constantes e programa 
principal. No corpo de programa principal temos: declaração de 
variáveis e seqüência de comandos.
• Uma biblioteca é um arquivo que contém comandos 
complementares, que são utilizados pelo programa. Para a inclusão 
de uma biblioteca devemos usar um comando que é chamado de 
diretiva de compilação. 
• As palavras reservadas de uma linguagem definem o que pode ser 
feito e como pode ser feito. O programador não pode utilizar uma 
palavra reservada da linguagem para dar nome as suas variáveis, 
constantes e funções. 
• O uso de comentário nos programas é uma boa prática de 
programação, e facilita o entendimento do código fonte.
39
Programação 2
• Passos para o desenvolvimento de um programa: edição, pré-
processamento, compilação, ligação (linking), carregamento e 
execução.
• O compilador traduz o código fonte para o código em linguagem 
de máquina. O pré-processador analisa o código fonte, executando 
as diretivas de compilação.
• O linker faz a ligação do código objeto, gerado pelo compilador, 
com o código das funções que estão disponíveis nas bibliotecas 
que incluímos no programa. 
• Ao ser executado, um programa deve ser carregado na memória. 
O carregador, também conhecido por loader, e responsável por 
acessar o programa armazenado no disco e carregá-lo para a 
memória principal do computador.
• Os programas são executados passo a passo pelo processador 
do computador.
40
Programação 2
Capítulo 3 – Tipos de Dados, 
Variáveis e Constantes
Vamos conversar sobre o assunto?
Programas são feitos para manipular dados. Armazenar notas, 
calcular médias, alterar um endereço, etc. Os dados são a essência 
de um programa. Dados precisam ser armazenados e modificados 
ao longo da execução do programa. Neste capítulo, iremos conhecer 
os tipos de dados suportados pela linguagem C e aprender a definir 
constantes e variáveis.
Inicialmente, os comandos serão apresentados em separado. Mas, 
logo em seguida, veremos o ponto em que cada comando deve ser 
colocado na estrutura do programa, certo? Tenham paciência! Vocês 
irão notar que muito dos conceitos estudados nos capítulos anteriores 
serão referenciados neste capítulo. Mas isto não é problema, não é 
mesmo? Vamos continuar os nossos estudos, conhecendo mais um 
pouco da linguagem C.
3.1. Tipos de dados
Nesta seção, vamos aprender um conceito importante em 
programação, que é: tipo de dados. De maneira geral, os programas 
manipulam dados, armazenando-os e, muitas vezes, modificando seus 
valores. Primeiramente, vamos conhecer quais os tipos de dados são 
manipulados na linguagem C. Basicamente, a linguagem C, manipula 
quatro tipos de dados: inteiro, real, caractere e void16. Para cada tipo 
de dado, é necessária uma quantidade de bits17 para armazená-lo. 
Além disso, cada tipo de dado possui um conjunto de operações 
que pode ser executada sobre ele. Nas subseções seguintes, vamos 
detalhar cada tipo de dado separadamente.
3.1.1. Inteiro
Os dados do tipo inteiro são toda e qualquer informação numérica 
que pertença ao conjunto dos números inteiros relativos (negativo, 
nulo ou positivo). Os números inteiros, em C, se dividem em três tipos, 
como mostra a tabela a seguir.
Saiba Mais
16A linguagem 
C não possui 
o tipo lógico, 
que armazena 
verdadeiro ou 
falso.
Saiba Mais
17Bit é uma 
abreviatura de 
“Binary Digit” 
(dígito binário). 
Este termo foi 
criado pelo 
engenheiro belga 
Claude Shannon 
que em 1949 
para simbolizar 
uma unidade de 
informação. Tudo 
na informática é 
medido em bits, 
desde o tamanho 
de um número 
até a velocidade 
de transferência 
de dados em uma 
rede. Por ser uma 
unidade binária, 
pode ter apenas 
dois valores, zero 
ou um. 
A partir do bit, 
surgiu o byte, que 
nada mais é do 
que um conjunto 
de 8 bits. 
Existem diversos 
múltiplos dos 
bytes: um kilobyte 
(KB), equivalente 
a 1.024 bytes; 
um megabyte 
(MB), equivalente 
a 1.024 KB; e 
um gigabyte, 
equivalente a 
1.024 MB. 
41
Programação 2
Tipo Tamanho Intervalo Suportado
Short 16 bits -32.768 a +32.767
Int 32 bits -2.147.483.648 a + 2.147.483.647
 
Long
 
64 bits
-9.223.372.036.854.775.808 
a 
+9.223.372.036.854.775.807
Qual a diferença entre cada um deles? A diferença entre os tipos 
short, int e long é a quantidade de memória18 que é reservada para 
armazená-los. Veja como é simples: à medida que se utiliza mais 
memória, aumenta o intervalo do valor que pode ser armazenado. Por 
exemplo, para armazenar um dado do tipo short, são reservados 16 
bits de memória. Com isso, o tipo short pode suportar um número 
inteiro no intervalo de -32.768 a +32.767, como apresentado na 
tabela. Portanto, dependendo do valor que será armazenado, deve 
ser escolhido um tipo (short, int ou long) que comporte tal valor. Por 
exemplo, para armazenar a idade de um funcionário, o tipo short 
é o mais adequado (já que a idade de uma pessoa é um valor que 
raramente ultrapassa 100). No entanto, para armazenar a quantidade 
de eleitores de uma cidade, deve-se usar o tipo int (note que em 
muitas cidades, a quantidade de eleitores ultrapassará o maior valor 
suportado pelo tipo short: 32.767). Para facilitar nosso estudo, neste 
material, sempre será usado o tipo int para armazenar os dados 
inteiros.
3.1.2. Real
Os dados do tipo real são toda e qualquer informação numérica 
que pertença ao conjunto de números reais (negativo, positivo ou 
nulo). Os números reais, em C, podem ser de dois tipos, como mostra 
a tabela abaixo:
Tipo Tamanho Intervalo Suportado
float 32 bits 3.4E-38 a 3.4E+38
double 64 bits 1.7E-308 a 1.7E+308
Para o tipo float são reservados 32 bits de memória, o que 
possibilita armazenar um valor no intervalo 3.4–38 a 3.438. Como o tipo 
float suporta valores bem altos, neste material, sempre será usado o 
tipo float para armazenar os dados reais.
Atenção
18A memória 
é a parte do 
computador que 
tem como função 
o armazenamento 
de dados. Quando 
um dado vai ser 
armazenado, 
precisamos 
reservar uma 
quantidade de 
memória para 
isto. 
42
Programação 2
3.1.3. Caractere
Na linguagem C, os caracteres são do tipo char, representados 
por toda e qualquer informação composta por um único caractere 
alfa numérico (a, b, c,...z, A, B, C,...Z, 0...9) ou especial (como por 
exemplo: ; # ? @ ! < ?). O tipo char armazena um único caractere. 
Quando se deseja armazenar vários caracteres, é necessário definir 
um vetor de caractere (mais detalhes na seção 3.2.2). Por exemplo, 
o nome de um aluno é formado por uma cadeia de caracteres, 
assim,será necessário usar um vetor de caracteres. Cada caractere 
armazenado ocupa o espaço de 8 bits de memória. Um caractere 
deve ser representado entre apóstrofo, por exemplo: ‘a’. Mas, quando 
temos uma cadeia de caracteres, esta deve ser representada entre 
aspas dupla, por exemplo: “Pedro Goncalves”.
3.1.4. Void
Em Inglês, void quer dizer vazio e é isto mesmo que o void é. Void 
é um tipo que não armazena nada (um tanto esquisito, não é?). Este 
tipo serve para indicar que um resultado não tem um tipo definido. Ele 
é utilizado quando estamos definindo funções nos nossos programas. 
Permiti-nos desenvolver funções que não retornam nada e funções 
que não têm parâmetros. Voltaremos a falar do tipo void no Volume 2, 
no capítulo que aborda modularização.
3.2. Variáveis e Constantes
Agora que já sabemos os tipos de dados manipulados pela 
linguagem C, vamos aprender como reservar espaços de memória 
para o armazenamento dos nossos dados.
Qualquer dado que seja manipulado pelo programa deve ficar 
armazenado na memória principal do computador. Para que o 
armazenamento seja possível, precisaremos reservar espaços na 
memória principal do computador. As variáveis e constantes são 
unidades básicas de armazenamento dos dados em programação. 
Elas são um espaço de memória reservado para armazenar um certo 
tipo de dado e possuem um identificador (nome) para referenciar o 
seu conteúdo. Dessa forma, nossos dados ficam armazenados em 
constantes ou variáveis.
Uma variável pode conter, a cada instante, valores diferentes. No 
43
Programação 2
entanto, as constantes referem-se a valores fixos que não podem 
ser alterados durante a execução do programa. O modo como cada 
constante é representada depende do seu tipo (este assunto será 
detalhado um pouco mais a frente).
Para entender o conceito de variáveis e constantes, vamos fazer 
a seguinte analogia: um armário cheio de gavetas de tamanhos 
diferentes. Acompanhem o raciocínio: Pedro tem um armário e 
decide que em cada gaveta será guardado um tipo de roupa: camisa, 
bermuda, calça, etc.
Figura 3.1: Armário cheio de gavetas
Em uma dada gaveta, só podem ser armazenadas camisas. Não 
será permitido o armazenamento de calças nesta gaveta. Para facilitar 
a identificação, Pedro coloca uma etiqueta informando o que cada 
gaveta guarda. Com isso, Pedro poderá identificar, rapidamente, em 
qual a gaveta estão guardadas suas camisas. 
Agora vamos associar a ideia das gavetas com a ideia de variáveis, 
constantes e tipo. As gavetas que guardam as roupas são como os 
espaços de memória que armazenam nossos dados. Assim como uma 
gaveta só pode armazenar um tipo de roupa, os espaços de memória 
são especificados para armazenar um tipo de dado. Dependendo do 
tipo de roupa, a gaveta precisa ser maior ou menor. Da mesma forma, 
dependendo do tipo de dado, é feito uma reserva de mais ou menos 
memória para armazená-lo (de acordo com as tabelas da seção 3.1).
As etiquetas das gavetas são os identificadores dos nossos 
44
Programação 2
espaços de memória. Assim, iremos encontrar, facilmente, um dado 
armazenado nos nossos espaços de memória. Quando temos uma 
variável, o conteúdo da nossa gaveta pode mudar ao longo do 
tempo. Mas, no caso de uma constante, seu conteúdo será sempre o 
mesmo.
Nas próximas seções, vamos aprender as regras para dar nomes 
às nossas variáveis e constantes e como criar as nossas gavetas – 
espaços de memória (variáveis e constantes).
3.2.1. Identificadores
Para que o compilador saiba quais dados estamos querendo 
manipular, eles precisam ter um nome. É como nós, todos temos um 
nome. Sabemos quando alguém está nos chamando quando falam 
o nosso nome. Vai acontecer a mesma coisa com os espaços de 
memória dos nossos programas, precisamos identificá-los, de alguma 
forma. Os identificadores são os nomes que damos as nossas 
variáveis, constantes, funções e procedimentos usados no programa. 
Para criar um identificador é necessário respeitar as regras a seguir:
• O primeiro caractere deve ser uma letra ou _ (underscore);
• O restante do nome deve ser formado por caracteres 
pertencentes ao seguinte conjunto: a,b,c,..z, A,B,C,...Z, 
0,1,2,...,9, _ (ou seja: letras, números e underscore);
• Não deve haver espaço em branco (ou seja, não existe 
identificadores compostos, formados por dois ou mais nomes);
• Não utilizar acentos, nem cedilha;
• Os identificadores podem ter até 32 caracteres;
• Não deve haver identificadores repetidos (Se dermos o mesmo 
nome para duas variáveis do nosso programa, o compilador 
não vai saber qual delas será chamada, e isso não pode 
acontecer).
A linguagem C faz distinção de maiúsculas e minúsculas. Assim, 
os identificadores: Media, MEDIA, MediA e media, são diferentes. 
O fato de termos uma única letra de forma diferente (maiúscula ou 
minúscula), já faz com que os identificadores se diferenciem. Esta 
propriedade é chamada de case sensibility (sensibilidade a letras 
maiúsculas e minúsculas).
45
Programação 2
DICA: Boa Prática de Programação
Escolham bem os nomes das variáveis e constantes do 
programa. Os identificadores escolhidos devem ser claros, a fim 
de explicitar o conteúdo que será armazenado, mas também 
não devem ser extensos para não dificultar a escrita.
A seguir, vamos verificar exemplos de identificadores corretos e 
incorretos:
• Identificadores corretos: a, x2, Nome_Aluno, Media, 
SalarioFuncionario. Note que, quando queremos usar 
identificadores com mais de uma palavra, que foi o caso de 
Nome_Aluno, usamos o _ para ligar uma palavra a outra. Ou 
usamos as palavras juntas, como o exemplo SalarioFuncionario. 
Lembrando que não podemos usar espaço em branco.
• Identificadores incorretos: 2m (começou com número), 
media* (caractere * não é permitido), Nome disciplina (não pode 
haver espaço em branco), funcionário (não pode acentuar).
Até este momento, vimos os conceitos de tipos de dados, variáveis, 
constantes e identificadores. Na próxima seção, estes conceitos 
serão utilizados em conjunto, para que possamos declarar as nossas 
variáveis, ou seja, criar espaços de memória para armazenar os dados 
manipulados pelo nosso programa. Continuemos a nossa leitura.
3.2.2. Declaração de Variáveis
Para que se possa usar uma variável em um programa, 
primeiramente, é necessário fazer a declaração dela. A declaração 
de uma variável informa ao processador duas coisas: o identificador 
(nome) da variável e o seu tipo de dado. As variáveis precisam de 
um nome para que o processador saiba onde desejamos armazenar 
o nosso dado. Além disso, toda variável precisa ser associada a um 
tipo de dado, para que o processador reserve o espaço de memória 
necessário para o seu armazenamento. Como visto na seção 3.1, cada 
tipo de variável, ocupa uma quantidade de bits diferente. Resumindo, 
toda variável possui um nome, um tipo e um conteúdo (ou valor que é 
armazenado na variável).
46
Programação 2
A declaração de variáveis deve obedecer a seguinte sintaxe:
Sintaxe
tipo [variavel_1, variavel_2, ...];
Onde tipo é o tipo de dado (int, float, char) e variavel_1 é o nome 
da variável a ser declarada. O nome da variável deve seguir a regra 
dos identificadores (mencionadas na seção 3.2.1). Se houver mais de 
uma variável do mesmo tipo, seus nomes são separados por vírgulas. 
Notem que, no final do comando, aparece um ponto e virgula (;), 
indicando ao compilador que o comando terminou.
Exemplo 3.1: Declaração de Variáveis
1
2
3
int idade, matricula;
float media, total;
char letra, nome_aluno[20];
As variáveis idade e matricula são espaços de memória que 
armazenam números inteiros. As variáveis media e total armazenam 
números reais. Note que na linha 3, temos as variáveis letra e 
nome_aluno. Quando uma variável caractere tem apenas um único 
caractere, nasua declaração, é necessário apenas dar um nome a 
esta variável. 
Quando houver necessidade de armazenar vários caracteres, 
temos o que é chamado de cadeia de caracteres, vetor de caracteres 
ou string. Uma cadeia de caracteres forma uma palavra ou frases. Para 
declarar uma variável capaz de armazenar uma cadeia de caracteres, 
devemos colocar ao lado do nome da variável, entre colchetes, um 
valor inteiro, que significa quantos caracteres podem ser armazenados 
nesta cadeia. Assim, a variável nome_aluno, declarada na linha 3, tem 
capacidade de armazenar uma palavra/frase com até 20 caracteres.
A figura 3.2 representa a memória do computador, após a declaração 
das variáveis do exemplo. Cada caixa representa uma variável. E, 
cada variável possui o seu identificador. Assim, esta declaração de 
variáveis resultou na reserva de seis espaços na memória. Toda vez 
que precisarmos acessar ou armazenar o conteúdo de uma variável, 
utilizaremos o seu identificador.
47
Programação 2
Figura 3.2: Representação da memória do computador 
após a declaração de um conjunto de variáveis
Atenção
Como dito anteriormente, o C difere as letras minúsculas 
das maiúsculas. Assim, os tipos de dados e comandos que 
iremos aprender ao longo da disciplina, DEVEM ser escritos em 
minúsculo. Se vocês fizerem a seguinte declaração : Int x,y; Vai 
ocorrer um erro no momento da compilação do seu programa, 
já que o C não conhece o tipo Int com “I” maiúsculo. Fiquem 
atentos, pois esse é um erro comum para quem está começando 
a programar em C.
 
De acordo com o que foi visto, quando estudamos a estrutura 
da um programa C, as variáveis devem ser declaradas logo quando 
inicia o corpo do programa principal. Vamos estudar, a seguir, como 
fazemos para declarar as nossas constantes.
3.2.3. Declaração de Constantes
Diferente das variáveis, as constantes mantêm seu valor ao 
longo do programa. Para indicar ao compilador que se trata de uma 
constante, a diretiva de compilação #define é utilizada. Segue a 
sintaxe da declaração de uma constante.
Sintaxe
#define <identificador> <valor>
48
Programação 2
Não é necessário colocar o ponto e vírgula no final da linha e 
também não precisa informar o tipo de dado da constante. O valor 
de uma constante não pode ser modificado, de maneira alguma, ao 
longo da execução do programa.
O modo como cada constante é representada depende do seu 
tipo. Constantes do tipo inteiro são representadas por números sem 
o componente fracionário, por exemplo, 123 e 2009. Constantes reais 
precisam do uso de ponto decimal seguido do componente fracionário 
do número, por exemplo, 302.54. Constantes caractere são colocadas 
entre apóstrofos, por exemplo, ‘a’. Constantes cadeia de caractere 
são colocadas entre aspas duplas, por exemplo, “Casa” e “Maria”. A 
seguir são apresentadas as declarações de quatro constantes:
Exemplo 3.2: Declaração de Constantes
1
2
3
4
#define DIAS 7
#define PI 3.1416 
#define RESPOSTA ‘s’ 
#define DISCIPLINA “Matemática”
De acordo com o exemplo, a constante DIAS irá armazenar sempre 
7. Como o valor que esta constante recebeu foi um valor inteiro, o 
compilador entende, automaticamente, que esta é uma constante 
inteira. Da mesma forma, como a constante PI recebeu 3.1416 (um 
número real), o compilador saberá que se trata de uma constante do 
tipo real. A constante RESPOSTA armazena um char e DISCIPLINA 
uma cadeia de caracteres.
É interessante declarar uma constante quando sabemos que um 
valor não será modificado ao longo da execução do programa. Por 
questões de padronização, declare as suas constantes com todas as 
letras em maiúsculo, como apresentado nos exemplos. Assim você 
estará diferenciando-as das variáveis.
De acordo com a estrutura de um programa C, as nossas 
constantes são declaradas no início do programa, logo após incluirmos 
as bibliotecas que serão utilizadas. Estão lembrados(as) disso? Se 
não estão, deem uma revisada na seção 2.1, certo?
Ao serem criadas, as constantes já recebem o valor que elas vão 
armazenar ao longo do programa. Isto não acontece com as variáveis. 
49
Programação 2
Mas como fazemos para armazenar um valor em uma variável? Esta 
resposta vocês encontrarão na próxima seção.
3.3. Operador de Atribuição (=)
Esse operador é utilizado para armazenar um valor em uma dada 
variável. Assim, o operador de atribuição nos possibilita armazenar 
um dado em um espaço de memória, que foi previamente declarado. 
É importante que o dado que será armazenado seja compatível com 
o tipo da variável que receberá a atribuição. Por exemplo, as variáveis 
reais podem receber valores reais e inteiros. No entanto, uma variável 
inteira, não pode receber um valor real. Segue a sintaxe do operador 
de atribuição.
Sintaxe
Variavel = Valor;
Variavel_1 = Variavel_2;
Variavel = Expressão Aritmética;
Variavel = função;
Variavel_1 = variavel_2 = variavel_3 = valor;
O operador de atribuição é representado pelo símbolo =. No lado 
esquerdo do operador da atribuição, temos a variável que vai receber 
o valor. No lado direito do operador, temos o valor que será atribuído 
à variável. Ao final da linha de atribuição deve ter um ponto e vírgula.
Notem que o operador de atribuição permite várias possibilidades. 
Para um melhor entendimento, o exemplo 3.3 apresenta cada uma 
das possibilidades do operador de atribuição. 
50
Programação 2
Exemplo 3.3: Comando de atribuição 
1
2
3
4
5
6
7
8
9
float Media, X, Y, Z;
int J, L, M, K, A, B;
char Letra;
Media = 7.5;
Letra = ’D’;
X = Y;
K = A + B;
Z = sqrt(4);
J = L = M = 10;
Nas linhas 1, 2 e 3, temos a declaração das variáveis. Lembrem 
que só podemos armazenar algum valor, caso tenhamos declarado 
as variáveis. Uma vez que é necessário ter reservado espaços de 
memória para nossos dados, entendido?
Na linha 4, a variável Media recebeu 7.5 (para números reais, 
devemos utilizar ponto ao invés de virgula, para separar a parte inteira 
da parte fracionária do número)19.
Na linha 5, temos uma atribuição para uma variável char com um 
único caractere. Note que, neste caso, o valor que a variável receberá 
vem entre apóstrofo. Assim, a variável Letra está recebendo D.
Atenção
 O operador de atribuição não é usado para variáveis do tipo 
char com vários caracteres. Este tipo de atribuição será visto no 
capítulo “Comandos de Manipulação de Caracteres”, do Volume 
4.
Na linha 6, a variável X receberá o valor que está armazenado 
na variável Y. Na linha 7, a variável K irá receber o resultado da 
Saiba Mais
19Onde aparece o 
= do comando de 
atribuição, nos 
lemos: “recebe”. 
Assim, o 
comando da linha 
4 do exemplo 3.3, 
seria lido: “Media 
recebe 7.5”.
51
Programação 2
expressão A + B, ou seja, será obtido o valor armazenado na variável 
A, depois o valor da variável B, os valores são somados e o resultado é 
atribuído a variável K. Uma variável sempre recebe um valor. Quando 
a atribuição tem uma expressão matemática, a expressão é resolvida 
e o resultado é atribuído a variável. 
Na linha 8, a variável Z receberá o resultado da chamada da função 
sqrt (que faz o cálculo da raiz quadrada de um número). Veremos 
mais detalhes sobre estas funções no capítulo 5.
Na linha 9, aparece o que chamamos de atribuição em cadeia. 
Quando várias variáveis vão receber o mesmo valor, ao invés de 
ser feita uma atribuição de cada vez, podemos dizer: variavel1 = 
variavel2 = variavel3 = valor. Nós podemos atribuir o mesmo valor a 
quantas variáveis quisermos. Coloquei um exemplo com três, certo? 
No exemplo da linha 9, as variáveis K, L e M vão receber 10. Mas 
tem um detalhe, nós só podemos usar a atribuição em cadeia quando 
todas as variáveis que irão receber o valor são do mesmo tipo. Assim, 
nesta atribuição

Outros materiais