Este documento apresenta o plano de disciplina para o curso de Programação 2 utilizando a linguagem C. Ele contém 4 módulos com um total de 60 horas/aula. O Módulo 1 introduz conceitos básicos da linguagem C em 15 horas. O Módulo 2 ensina estruturas de controle e modularização em 15 horas. O Módulo 3 ensina armazenamento de dados em vetores, registros e arquivos em 15 horas. E o Módulo 4 ensina comandos avançados em 15 horas. O documento forne
Slides do primeiro dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Slides do primeiro dia do Workshop (intensivo :) ) sobre Introdução à Programação de Dispositivos Móveis (Google Android, Apple iPhone, iPod Touch e iPad)
Apresentação para a Formação UCA Módulo I, Apropriação Tecnológica realiza no período de 29/09 à 06/10 na EEF Poetisa Abigail Sampaio, São Gonçalo do Amarante - Ceará.
Apresentação sobre experiência curso à distância sobre NumPy e Proc. Imagens ...Roberto Lotufo
Vou procurar compartilhar minha experiência recente no oferecimento de um curso com 1750 inscritos que oferecemos por 5 semanas numa plataforma web de programação colaborativa que desenvolvemos há mais de 5 anos. Este curso pode ser classificado como MOOC (massive online open course) e teve os desafios típicos desta modalidade de curso. O objetivo desta palestra é orientar os professores candidatos a oferecerem cursos nesta categoria para listar os principais pontos que precisam ser cuidados para o sucesso deste tipo de curso. Iremos falar também das motivações que nos levaram a oferecer este curso, as ferramentas computacionais que foram utilizadas, os resultados alcançados e os principais aprendizados.
Veja também a apresentação http://www.slideshare.net/RobertoLotufo/cursopynumpy-2ed que mostra a experiência no oferecimento da 2a. edição do curso.
Roberto A Lotufo é professor titular da FEEC-Unicamp com área de interesse em processamento de imagens e reconhecimento de padrões com aplicações na área médica, visão por computador, biometria e monitoramento por vídeo.
Próximo curso inscrições abertas até 7 de março 2014: http://adessowiki.fee.unicamp.br/adesso/wiki/main/cursonumpypirp/view/
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxLuizHenriquedeAlmeid6
Slideshare Lição 10, Betel, Ordenança para buscar a paz e fazer o bem, 2Tr24, Pr Henrique, EBD NA TV, 2° TRIMESTRE DE 2024, ADULTOS, EDITORA BETEL, TEMA, ORDENANÇAS BÍBLICAS, Doutrina Fundamentais Imperativas aos Cristãos para uma vida bem-sucedida e de Comunhão com DEUS, estudantes, professores, Ervália, MG, Imperatriz, MA, Cajamar, SP, estudos bíblicos, gospel, DEUS, ESPÍRITO SANTO, JESUS CRISTO, Comentários, Bispo Abner Ferreira, Com. Extra Pr. Luiz Henrique, 99-99152-0454, Canal YouTube, Henriquelhas, @PrHenrique
2. 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
3. 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
4. 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
5. 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
6. ○ 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
7. 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.
8. • 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.
9. 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 absorva com 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.
10
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 --;
11
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.
12
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 Saiba Mais
programas computacionais. Então, prontos (as) para o desafio? 1
Além dos
software
aplicativo e
1.1. Programas e Programação de software de
sistema, ainda é
Computadores possivel utilizar
a categoria
software
Um programa de computador é um conjunto de instruções que embutido ou
embarcado,
descrevem uma tarefa que será executada por um computador. destinado a
Um programa de computador também é conhecido como software, funcionar dentro
de uma máquina
software aplicativo, software de sistema ou simplesmente programa. que não é um
computador.
O termo software é mais utilizado quando é feita uma referência à Normalmente,
parte não física do sistema computacional, juntamente com o termo estes software
têm um
hardware, que faz referência ao conjunto de componentes eletrônicos propósito muito
específico, como,
que constituem um computador. por exemplo:
controlar a
Os programas que permitem ao usuário fazer uma ou mais tarefas injeção eletrônica
de um carro
específicas, como as planilhas eletrônicas, editores de texto e jogos ou gerenciar
o cozimento
são chamados de software aplicativo ou aplicação. Já os programas dos alimentos
que dão suporte funcional aos computadores, como os sistemas no forno de
microndas. Mais
operacionais e drivers de dispositivos, são chamados de software de recentemente,
surgiu também
sistema1. o software como
serviço, que é
O ato de desenvolver programas é chamado de programação um software que
roda diretamente
de computadores. A programação é o processo de escrita, teste na internet, não
e manutenção de um programa (ASCENIO e CAMPOS, 2002). sendo necessário
instalar nada no
O desenvolvimento de programas baseado em metodologias ou computador do
usuário.
processos formalizados é conhecido por engenharia de software.
13
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 uma sequê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?
14
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
15
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
Saiba Mais máquina. No entanto, os zeros e uns que formam uma instrução
foram substituídos por palavras que representam tais instruções,
2
No contexto da
informática, a tornando-as um pouco mais legíveis. Estas linguagens são mais
portabilidade de
um programa é a
voltadas para a máquina, isto é, são escritas usando as instruções
sua capacidade do microprocessador do computador. São chamadas de linguagens
de ser compilado
ou executado Assembly (que significa montagem). Estas linguagens apresentam
em diferentes
arquiteturas (seja
as seguintes vantagens: os programas são executados com maior
de hardware ou velocidade de processamento (já que são executadas diretamente
de software).
pela máquina) e ocupam menos espaço na memória. No entanto, de
Esse termo modo geral, os programas em Assembly têm pouca portabilidade2 (um
também vem
sendo utilizado código gerado para um tipo de processador não serve para outro) e
pelas empresas não são estruturados, tornando a programação mais difícil.
de telefonia
móvel, quando
se referem à As linguagens de alto nível são mais próximas à linguagem
portabilidade
humana (do Inglês, por exemplo) e mais distantes das linguagens
de número, ou
seja, você muda de máquina. Por isso, são linguagens mais simples de entender, já
de operadora,
mas nao muda que, em geral, utilizam uma sintaxe estruturada, tornando seu código
o número do
mais legível. Necessitam de compiladores ou interpretadores
celular.
para gerar instruções do microprocessador. Interpretadores fazem
16
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 Linguagem de Linguagem de Alto Nível
Máquina Baixo Nível
10110101 LOAD BASE
11100110 ADD BONUS Salario = Base + Bonus
11000100 STORE SALARIO
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?
17
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
Saiba Mais
linguagem C foi criada a partir da linguagem B (sugestivo, não é?),
3
Uma linguagem
que havia sido desenvolvida no final dos anos 60 por Ken Thompson.
é considerada
estruturada O C é uma linguagem de alto nível, compilada e estruturada3.
quando
permite que o No entanto, o C possui instruções de baixo nível, bem próximas à
programador linguagem de máquina, que só o Assembler possui. O objetivo dos
pegue trechos
de maior uso do seus criadores era usar o C para desenvolver o sistema operacional
seu programa e
transforme-os UNIX, que originalmente foi escrito em Assembly (linguagem de baixo
em pequenos nível). Desde então, espalhou-se por muitos outros sistemas e tornou-
módulos
(procedimentos se uma das linguagens de programação mais usadas, e influenciando
e funções) que
serão reutilizados o desenvolvimento de muitas outras linguagens como C++ e Java.
sempre que
necessário. Com a linguagem C podemos construir programas organizados
e concisos (características dos programas das linguagens de alto
18
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 é
19
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
Saiba Mais
está produzindo os resultados esperados. Quando o programa
4
Bug é um erro apresenta algum erro nesta fase, como, por exemplo, mostrar um
no funcionamento resultado incorreto, dizemos que ocorreu um “erro de lógica” ou
de um programa.
É também “erro de execução”. Isso ocorre porque, apesar do programa não
chamado de
erro de lógica, ter apresentado erros de sintaxe, o que tornou possível a geração
e pode causar do programa executável, a sequência de comandos não foi definida
discrepâncias
no objetivo ou de forma correta. Quando ocorre um erro de lógica, o programador
impossibilidade
de utilização de deverá revisar o seu programa fonte e passá-lo novamente pela fase
um programa de de compilação, para que um novo executável, sem erros, seja gerado.
computador.
O uso do Como o compilador não nos avisa onde estão os erros de lógica, estes
termo bug
para descrever são mais difíceis de serem corrigidos.
defeitos
inexplicáveis foi Após ter certeza que o programa executável está correto, sem
parte do jargão da
engenharia por erros de lógica, o programador poderá entregá-lo ao seu cliente. É
várias décadas. importante fazermos vários testes nos nossos programas. Testar com
Acredita-se que o
termo foi criado vários valores e verificar se está realmente tudo como esperado. Não
por Thomas
Edison quando fica bem nosso cliente ficar ligando, dizendo que o programa está com
um inseto (bug, BUG!4 Lembrem-se sempre, o computador só executa as instruções
em Inglês) causou
problemas de que nós mandarmos. Se houver erros, a responsabilidade será nossa
leitura em seu
fonógrafo em que não fizemos o programa corretamente! Vocês não vão querer
1878. passar por uma situação como essa? Vão?
20
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,
21
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.
22
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.
23
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
Saiba Mais
para o desenvolvimento dos nossos programas – o Dev-cpp. Este
5
O Dev-cpp é ambiente apresenta uma interface amigável, que facilitará o processo
uma ferramenta
gratuita e pode
de programação. Vocês devem baixar e instalar o Dev-Cpp5, o
ser baixada quanto antes, no computador que será utilizado para a prática desta
acessando o site:
www.bloodshed. linguagem.
net/devcpp.html
É 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
Saiba Mais
paralelo entre a sintaxe do C e do Portugol do VisuAlg6 (linguagem
6
Conheça
utilizada para escrever algoritmos).
mais o VisuAlg
pesquisando no
site: http://www.
apoioinformatica.
inf.br/visualg/
linguagem.htm
24
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;
25
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 #include <stdio.h>
2 main()
3 {
4 int num,c;
5 printf(“Cubo de um numeronn”);
6 printf(“Digite o numero: “);
7 scanf(“%d”,&num);
8 c = num*num*num;
9 printf(“nCubo de %d = %d”,num,c);
10 getche();
11 }
Segue abaixo o algoritmo, escrito no VisuAlg, que calcula o cubo
de um número.
26
27. Programação 2
Exemplo 2.2: Algoritmo – Calculo do cubo de um número
1 algoritmo “Cubo”
2 var
3 num, c: inteiro
4 inicio
5 escreval(“Cubo de um numero”)
6 escreva(“Digite o numero: “)
7 leia(num)
8 c <- num*num*num
9 escreval(“Cubo de “, num, “ = “, c)
10 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
27
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
Saiba Mais biblioteca.
7
Do Inglês, O segundo item da estrutura de um programa C é a declaração
main significa
principal. Todo
das constantes, esse item é opcional, só constará no nosso programa,
programa C caso seja necessário. Veremos a declaração de constantes, em
começa a sua
execução a partir detalhes, no próximo capítulo. No exemplo 2.1 não foi necessário o
do programa
principal. Assim,
uso de constantes.
o programa
principal é uma O terceiro item da estrutura do programa C é o programa principal.
parte obrigatória
na estrutura de É no programa principal que colocaremos a sequência de comandos
um programa C. 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).
Saiba Mais As chaves que delimitam o corpo do programa principal8 aparecem
nas linhas 3 e 11, do exemplo 2.1. Fazendo uma comparação com
8
Chamamos o algoritmo do exemplo 2.2, as chaves fazem o papel do “inicio” e
de corpo do
programa “fimalgoritmo”, das linhas 4 e 10.
principal toda
a sequência Logo no início do programa principal, devem ser declaradas as
de comandos
que faz parte variáveis (que serão abordadas no próximo capítulo). A declaração
do programa
de variáveis é um item opcional, pode acontecer de não precisarmos
principal. Ou seja,
a seqüência de declarar variáveis no nosso programa. No exemplo 2.1, a declaração
comando que
aparece entre de variáveis é feita na linha 4. Foram declaradas duas variáveis do
as chaves de
tipo inteiro: num e c. No algoritmo, exemplo 2.2, as variáveis são
abertura e término
do programa declaradas fora do programa principal, na seção de declaração de
principal.
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
28
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.
Saiba Mais
Na linguagem C temos 32 palavras reservadas. Todas as palavras
9
A sigla ANSI
reservadas do C são escritas em minúsculo. A tabela abaixo mostra significa:
as palavras reservadas, conforme definido pelo padrão ANSI9, para a American
National
linguagem C. Standards
Institute (Instituto
Nacional
auto default float unsigned Americano de
Padronização). É
break do for return uma organização
case double goto short que tem por
objetivo facilitar a
char else union signed padronização dos
const typedef if sizeof trabalhos de seus
membros.
switch while int static
volatile enum long struct
continue extern register void
No Dev-cpp, ambiente de programação que será utilizado, sempre
que digitarmos uma palavra reservada no nosso programa, esta Saiba Mais
aparecerá em negrito. Isto facilita no momento da programação, pois
não precisaremos decorar esta lista de palavras reservadas. Que
10
Ao desenvolver
nossos
alívio! Assim que uma palavra ficar em negrito no nosso programa, programas
utilizando boas
poderemos verificar se estamos utilizando-a de forma correta. práticas de
programação,
teremos como
resultado um
2.3 Uso de Comentários código fonte
mais legível e
um progama
Os comentários são utilizados para documentar um programa. A executável mais
seguro e eficiente.
colocação de comentários em um programa é uma das boas práticas Ao longo deste
de programação10. Os comentários irão facilitar o entendimento material serão
ensinadas boas
e manutenção de programas. Por exemplo, um programador é práticas de
programação.
responsável por desenvolver o sistema de controle de vendas
29
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
Saiba Mais de linha. Este comentário serviu para informar para que serve a
variável C. Assim que o compilador encontra “//”, ele ignora todo texto
11
No Dev- que vem após as duas barras11. Este tipo de comentário age apenas
cpp, quando
colocamos um na linha que ele é inserido.
comentário, as
letras do texto O segundo tipo de comentário disponível na linguagem C é o
comentado ficam
cinza 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
30
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 #include <stdio.h>
2 /* Programador: Sônia França
3 Data: 09/03/2009
4 Programa calcular o cubo de um número */
5 main()
6 {
7 int Num, C; // C guarda o cubo do numero
8 printf(“Cubo de um numeronn”);
9 printf(“Digite o numero: “);
10 scanf(“%d”,&Num);
11 C = Num*Num*Num;
12 printf(“nCubo de %d = %d”,Num,C);
13 getche();
14 }
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
31
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
32
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 programa
executá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 Saiba Mais
12
CPU é a sigla
As fases 5 e 6 consistem na execução do programa executável. para Central
Para dar início a execução de um programa, é necessário que o mesmo Processing
Unit, em Inglês,
esteja na memória principal do computador. Isto é feito na fase 5, pelo ou Unidade
Central de
carregador do programa. O carregador pega o programa executável Processamento.
que está armazenado no disco e o transfere para memória principal. A CPU é a parte
do computador
Assim que o programa está na memória principal do computador, ele que processa
as instruções
está pronto para ser executado. A execução de um programa é feita contidas em um
pela CPU12, que executa as instruções do programa, uma após a programa.
outra, até o seu término.
33
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
Saiba Mais O Dev-Cpp é um ambiente de programação que edita, compila
e executa programas C e C++13. Sabem porque iremos usar o Dev-
13
C++ é uma cpp para desenvolver nossos programas? O Dev-cpp é gratuito
linguagem de
programação que (muito importante!) e possui uma interface bastante amigável (mais
surgiu a partir
do C.
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
34
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.
Saiba Mais
• Debug: o debugador auxilia o programador a encontrar erros
no programa, tornando possível acompanhar passo a passo a 14
O CVS, ou
execução dos comandos do programa. Neste menu teremos as Concurrent
Version System
opções para utilização do debugador. (Sistema
de Versões
• Ferramentas: no menu ferramentas temos as opções para Concorrentes)
é um sistema
configurar o ambiente (mudar cores, tipo de letra, dentre outros) de controle de
versões que
e também a opção para atualização do Dev-cpp. permite que
se trabalhe
• CVS14: este menu é utilizado por quem faz o controle de com diversas
versões do
versões dos programas. Apesar de ser uma função bastante mesmo arquivo.
interessante, é mais utilizado quando trabalhamos em grupo ou Este sistema
mantém as
com programas grandes. versões antigas
do seu arquivo
• Janela: neste menu estão disponíveis as opções que nos e os logs de
quem e quando
permitem escolher qual janela de edição deve ficar visível manipulou os
arquivos.
no momento. Utilizamos esta opção quando temos vários
programas abertos ao mesmo tempo. É especialmente
útil para se
• Ajuda: neste menu encontramos o help do Dev-cpp. controlar versões
de um software
durante seu
Na parte 2, da Figura 2.4, temos os ícones de atalhos para as desenvolvimento,
opções mais utilizadas no Dev-Cpp. Se vocês deixarem o mouse ou para
composição
sobre o ícone, aparecerá um texto, que informa o que ele faz. Na parte colaborativa de
um documento.
3 temos a área de edição do programa. Para a área de edição ficar
35
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;
Saiba Mais 3. Compile o programa na opção: Executar/Compilar;
15
O erro de 4. Se der algum erro no programa, vejam as indicações de
compilação pode erro fornecidas pelo compilador15. Conserte os erros, salve o
não estar na linha
que o complilador arquivo e compile novamente. Isto deve ser feito até que seja
está indicando. O
erro poderá estar: apresentada uma mensagem indicando que o programa não
na linha que ele tem erros de compilação.
está indicando,
na linha
imediatamente 5. Se vocês acessarem o diretório que o arquivo do código fonte
acima, ou ainda,
foi armazenado, notarão que foi criado um arquivo com a
em linhas mais
acima (menos extensão .exe (com o mesmo nome do arquivo do código fonte).
comum de
acontecer). 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
36
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?
37
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
http://www2.eletronica.org/artigos/eletronica-digital/
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.
38
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.
39
40. Programação 2
Capítulo 3 – Tipos de Dados,
Variáveis e Constantes
Saiba Mais Vamos conversar sobre o assunto?
16
A linguagem Programas são feitos para manipular dados. Armazenar notas,
C não possui
o tipo lógico,
calcular médias, alterar um endereço, etc. Os dados são a essência
que armazena de um programa. Dados precisam ser armazenados e modificados
verdadeiro ou
falso. 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.
Saiba Mais Inicialmente, os comandos serão apresentados em separado. Mas,
logo em seguida, veremos o ponto em que cada comando deve ser
17
Bit é uma colocado na estrutura do programa, certo? Tenham paciência! Vocês
abreviatura de
“Binary Digit” irão notar que muito dos conceitos estudados nos capítulos anteriores
(dígito binário).
Este termo foi
serão referenciados neste capítulo. Mas isto não é problema, não é
criado pelo mesmo? Vamos continuar os nossos estudos, conhecendo mais um
engenheiro belga
Claude Shannon pouco da linguagem C.
que em 1949
para simbolizar
uma unidade de
informação. Tudo 3.1. Tipos de dados
na informática é
medido em bits,
desde o tamanho Nesta seção, vamos aprender um conceito importante em
de um número
até a velocidade programação, que é: tipo de dados. De maneira geral, os programas
de transferência
de dados em uma
manipulam dados, armazenando-os e, muitas vezes, modificando seus
rede. Por ser uma valores. Primeiramente, vamos conhecer quais os tipos de dados são
unidade binária,
pode ter apenas manipulados na linguagem C. Basicamente, a linguagem C, manipula
dois valores, zero
ou um.
quatro tipos de dados: inteiro, real, caractere e void16. Para cada tipo
de dado, é necessária uma quantidade de bits17 para armazená-lo.
A partir do bit, Além disso, cada tipo de dado possui um conjunto de operações
surgiu o byte, que
nada mais é do que pode ser executada sobre ele. Nas subseções seguintes, vamos
que um conjunto
de 8 bits. detalhar cada tipo de dado separadamente.
Existem diversos
múltiplos dos
bytes: um kilobyte 3.1.1. Inteiro
(KB), equivalente
a 1.024 bytes; Os dados do tipo inteiro são toda e qualquer informação numérica
um megabyte
(MB), equivalente que pertença ao conjunto dos números inteiros relativos (negativo,
a 1.024 KB; e
um gigabyte, nulo ou positivo). Os números inteiros, em C, se dividem em três tipos,
equivalente a como mostra a tabela a seguir.
1.024 MB.
40
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
-9.223.372.036.854.775.808
Long 64 bits a
+9.223.372.036.854.775.807
Atenção
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 18
A memória
é a parte do
armazená-los. Veja como é simples: à medida que se utiliza mais computador que
memória, aumenta o intervalo do valor que pode ser armazenado. Por tem como função
o armazenamento
exemplo, para armazenar um dado do tipo short, são reservados 16 de dados. Quando
um dado vai ser
bits de memória. Com isso, o tipo short pode suportar um número armazenado,
inteiro no intervalo de -32.768 a +32.767, como apresentado na precisamos
reservar uma
tabela. Portanto, dependendo do valor que será armazenado, deve quantidade de
memória para
ser escolhido um tipo (short, int ou long) que comporte tal valor. Por isto.
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.
41
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
42
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
43
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).
44
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).
45
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 int idade, matricula;
2 float media, total;
3 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, na sua 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.
46
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>
47
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 #define DIAS 7
2 #define PI 3.1416
3 #define RESPOSTA ‘s’
4 #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.
48
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.
49