Buscar

unidade-01-mesclado

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 65 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 65 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 65 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

Construção de 
Algoritmos
Construção 
de Algoritmos
1ª edição
2018
Presidente do Grupo Splice
Reitor
Diretor Administrativo Financeiro
Diretora da Educação a Distância
Gestor do Instituto de Ciências Sociais Aplicadas
Gestora do Instituto da Área da Saúde
Gestora do Instituto de Ciências Exatas
Autoria
Parecerista Validador
Antônio Roberto Beldi
João Paulo Barros Beldi
Claudio Geraldo Amorim de Souza
Jucimara Roesler
Henry Julio Kupty
Marcela Unes Pereira Renno
Regiane Burger
Ronan Loschi Rodrigues Ferreira
Fabiano Prado Marques
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte
desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos
direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
8
 1Unidade 11. Introdução aos Conceitos de 
Algoritmo e Ambientes de 
Desenvolvimento (IDE) em C
Para iniciar seus estudos
Nesta unidade, será iniciada uma agradável viagem pelo aprendizado 
sobre construção de algoritmos. Durante o estudo da unidade, você con-
seguirá compreender o contexto do algoritmo e da programação, bem 
como escrever o seu primeiro algoritmo sequencial. Para isso, é impor-
tante organizar seus horários e o seu ambiente de estudos. Gostou? 
Então, vamos em frente!
Objetivos de Aprendizagem
• Definir computador, algoritmos e linguagem de programação.
• Apontar as fases de um algoritmo e de um programa de 
computador.
• Usar a lógica na solução de problemas.
• Identificar as funcionalidades de um ambiente de desenvolvi-
mento (IDE). 
• Criar um primeiro algoritmo sequencial.
9
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Introdução da unidade
Nesta unidade, você estudará os conceitos iniciais para começar no desenvolvimento de programas de compu-
tador. Inicialmente, serão apresentados conceitos sobre computador, linguagem de programação e algoritmo, 
bem como as fases de um algoritmo. Além disso, você verá o uso da lógica na resolução de problemas pessoais 
e profissionais. Ao final, conhecerá um ambiente de desenvolvimento (IDE) em linguagem C, no qual poderá 
desenvolver os programas durante esta disciplina.
1.1 Introdução aos conceitos de algoritmo e ambientes de 
desenvolvimento (IDE) em C 
1.1.1 Conceitos de computador e de linguagem de programação
1.1.1.1 Computador
Segundo Manzano (2016, p. 14), o computador pode ser entendido como “uma coleção de componentes inter-
ligados com o objetivo de efetuar (processar) operações aritméticas e lógicas de grandes quantidades de dados”. 
Ainda de acordo com o mesmo autor, o computador possui:
• Unidades de entrada de dados (exemplo: teclado).
• Unidades de saída de dados (exemplo: monitor).
• Unidades de armazenamento (exemplo: memórias).
• Unidades de processamento de dados (exemplo: unidade central de processamento – CPU ou processador).
A Figura 1 mostra um esquema básico de um computador.
Figura 1 – Esquema básico de um computador
 
Entrada de 
dados 
Saída de 
dados 
Processamento de 
dados 
Memória principal de armazenamento 
temporário de dados 
Memória secundária de armazenamento 
permanente de dados 
Fonte: Elaborada pelo autor.
10
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
1.1.1.2 Linguagem de programação 
Hardware é a parte física do computador, e software, a parte virtual, ou seja, os programas. Para que um computa-
dor funcione, ele precisa tanto do hardware quanto do software adequados. Aqui, você estudará sobre a progra-
mação do computador, que está relacionada à construção de softwares. 
Os hardwares do computador são os dispositivos físicos que permitem a entrada, o proces-
samento, o armazenamento e a saída dos dados (CARVALHO, 2017). Para saber mais sobre 
hardwares, acesse o site Clube do Hardware.
Saiba mais
Sem os programas, o computador não pode funcionar – é como se os programas fossem a parte inteligente do 
computador. É aí que entram o algoritmo e a programação, pois, se o computador não for programado adequa-
damente, ele simplesmente não funcionará. E é aqui que você entra, pois somente os seres humanos podem 
programar o computador, inclusive quando essa programação permite que o computador possa “aprender” a se 
“autoprogramar” (MANZANO, 2016).
Para programar o computador e “ensiná-lo” a executar alguma tarefa ou a fazer o que você desejar, é neces-
sário que você aprenda a construir instruções e rotinas computacionais por meio de uma linguagem que o 
computador possa “entender” – essa linguagem é chamada de linguagem de programação. Segundo Medina 
(2006), considera-se a linguagem de programação como um conjunto de instruções e, ainda de acordo com o 
mesmo autor, existem basicamente dois tipos de linguagem de programação: as de baixo nível e as de alto nível 
(MEDINA, 2006). 
As linguagens de baixo nível, também conhecidas como linguagem de máquina, são complexas de programar 
e, por isso, exigem muito conhecimento. Normalmente, pessoas especializadas e com aptidão utilizam essas 
linguagens de máquina para programar computadores, sendo um exemplo clássico a linguagem assembly (MAN-
ZANO, 2016).
As linguagens de programação de alto nível, por sua vez, são aquelas cujas instruções estarão mais próximas da 
linguagem natural, independentemente do idioma. Para Manzano (2016, p. 22), “as linguagens de alto nível pos-
sibilitam maior facilidade de comunicação, pelo fato de serem próximas à comunicação humana, pois se baseiam 
no idioma inglês”. Como exemplos de linguagem de alto nível, é possível citar: C, C++, C#, Java, JavaScript, Phy-
thon, entre outras.
Para saber mais sobre as outras linguagens de programação de alto nível, acesse o site da 
Academia do Código. 
Saiba mais
11
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Agora que você já sabe o que é e para que serve uma linguagem de programação, deve estar se perguntando 
como o computador entende uma linguagem de alto nível já que todos os computadores só entendem a lingua-
gem de máquina baseada em 0 (zero) e 1 (um). 
Está curioso para saber? Então, vamos lá. Durante a execução de um programa, existe um programa – que alguém 
criou, é claro – denominado compilador. Os compiladores possuem o poder de “pegar” um código criado em 
uma linguagem de alto nível e transformá-lo em uma linguagem que o computador entenda, ou seja, em uma 
linguagem de máquina. 
Segundo Medina (2006, p. 16), “o compilador é um programa de computador que gera um 
arquivo em linguagem de máquina”. Para saber mais, acesse o site da Academia do Código.
Fique atento!
Muito bem, agora você deve estar se perguntado: “Qual linguagem de programação utilizaremos durante o 
nosso estudo?”. Utilizaremos a linguagem de programação C. E quais as razões para se utilizar a linguagem C? 
Bom, vamos lá. Inicialmente, a linguagem C serve para o desenvolvimento de qualquer projeto, sendo potente, 
flexível, rápida, portável, popular, modular e de alto nível; além disso possui bibliotecas poderosas, entre outras 
vantagens (DALMAS, 2016). 
A linguagem C foi desenvolvida por Dennis M. Ritchie em 1972 com o objetivo de ser utilizada no desen-
volvimento do sistema operacional Unix e com uma linguagem capaz de utilizar recursos internos do com-
putador. A linguagem C possui grande aceitação e é padronizada pelo instituto de normas técnicas (ANSI) 
(MANZANO, 2013). 
Por que a linguagem C é tão antiga e igualmente poderosa? Para melhor reflexão, consulte: 
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr F. de. Estudo Dirigido de Linguagem C. 17. 
ed. São Paulo: Editora Érica, 2013. 
Os programadores mais experientes costumam dizer que um programador consegue desenvolver seuscódigos 
em qualquer linguagem de programação e atribuem isso ao conhecimento, que antecede ao ato de programar, 
que se refere à lógica de programação e à construção de algoritmos. Isso seria como conhecer as leis de trânsito 
e ter aulas de direção (lógica e algoritmos) antes de sair dirigindo o carro (programar). Verdade ou não, é preciso 
ser prudente; então, antes de entrar a fundo na linguagem de programação C, conheça agora um pouco sobre 
algoritmos e lógica de programação – assim, estará mais preparado para seguir “viagem”. 
12
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
1.2 Conceito de algoritmo 
Para Medina (2006, p. 15), entende-se programa de computador como “um conjunto de instruções que será exe-
cutado pelo processador em uma determinada sequência e que levará o computador a executar alguma tarefa”. 
Segundo Guimarães (2018), programar é basicamente construir algoritmos. 
Para Manzano (2016, p. 24), algoritmos “na ciência da computação (informática) está associada a um conjunto 
de regras e operações bem definidas e ordenadas, destinadas à solução de um problema ou de uma classe de 
problemas, em um número finito de passos”. Já para Soffner (2013, p. 21), ”algoritmo é um conjunto de passos, 
passível de repetição, que resolve um problema”. 
Em outras palavras, algoritmo é uma sequência – finita – de passos logicamente ordenados e que resolve deter-
minado problema, sendo escrito em uma pseudolinguagem de programação ou pseudocódigo, com regras 
muito próximas da linguagem natural, o que justifica o seu uso. Assim, em termos computacionais, todo algo-
ritmo precisará ser reescrito em uma linguagem de programação para ser “entendido” pelo computador.
Um algoritmo pode ser apresentado na forma de texto ou na forma gráfica por meio de blocos. Nos dois casos, 
será necessário entender o problema a ser resolvido, os dados de entrada, os processamentos necessários, bem 
como as saídas (resultados) alcançadas (MANZANO, 2016).
Com base na definição que diz que um algoritmo é uma sequência finita de passos, logica-
mente ordenados, e que resolve determinado problema, como você escreveria um algoritmo 
para trocar uma lâmpada?
Exemplificando o significado de algoritmos em uma linguagem mais natural, você pode pensar em uma receita 
de bolo como sendo um algoritmo. Sim, é isso mesmo. Veja só: uma receita de bolo é, antes de tudo, uma sequên-
cia finita de passos, logicamente ordenados e que resolve determinado problema. Os passos são, por exemplo, 
pegar os ingredientes e misturá-los de maneira lógica e ordenada, pois não se pode colocar o bolo para assar 
antes de preparar a mistura. E o que resolve determinado problema é que não se pode fazer um bolo de chocolate 
com uma receita de bolo de laranja. Quem deve ter atenção na hora de criar e executar a receita? Isso mesmo, o 
cozinheiro. E quem deve ter atenção na hora de criar o algoritmo e o programa de computador? Isso mesmo, o 
programador – no caso, você!
Agora você entendeu que não se pode resolver um problema computacional criando um programa de computa-
dor com o objetivo de resolver outro problema, já sabe também que é tão importante entender e analisar o pro-
blema antes de criar o algoritmo ou o programa que o resolverá. Com isso, poderá entender que, do mesmo jeito 
que uma pessoa pode seguir uma receita e preparar um bolo, um computador pode ser condicionado a seguir os 
códigos programados e executar determinada tarefa.
13
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
O Facebook criou em São Paulo seu primeiro centro de treinamento na América Latina 
voltado à formação de programadores e empreendedores. Estima-se que o déficit de 
profissionais em áreas de tecnologia – incluindo programadores – do país é de mais de 
160 mil trabalhadores. Saiba mais no site Forbes Brasil (FORBES BRASIL, 2018).
1.3 Fases de um algoritmo
Existem diferentes paradigmas que podem ser utilizados na hora de se programar, sendo o mais utilizado o da 
programação estruturada, na qual o algoritmo é criado de forma sequencial ou linear. Outro paradigma muito 
utilizado é o da programação orientada a objetos, que não é o foco deste estudo (MANZANO, 2015). 
No paradigma da programação orientada a objetos (POO), a construção do código baseia-
-se na composição e interação entre diversas unidades chamadas de objetos. Para conhecer 
mais sobre a POO, consulte HORSTMANN, Cay. Conceitos de computação com o essencial 
de C++ [recurso eletrônico]. Trad. Carlos Arthur Lang Lisbôa e Maria Lúcia Blanck Lisbôa. 3. 
ed. Porto Alegre: Bookman, 2008.
Fique atento!
Segundo Manzano (2015), a programação estruturada possui vantagens, como: construção mais rápida do algo-
ritmo, facilidade de encontrar erros, leitura do código simplificada, e atualização e manutenção descomplicadas. 
A construção de um algoritmo passa pelas seguintes fases: 
Fase 1 – Defina bem o problema a ser resolvido.
Fase 2 – Entenda os detalhes do problema.
Fase 3 – Defina os dados de entrada que serão passados para o algoritmo.
Fase 4 – Defina os dados de saída que serão devolvidos pelo algoritmo.
Fase 5 – Defina o processamento, ou seja, os cálculos e os comandos necessários e a ordem destes para executar 
a tarefa e resolver o problema.
Fase 6 – Construa o algoritmo.
14
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Um projeto de programação passa pela criação do algoritmo, que, posteriormente, será passado para uma lin-
guagem de programação e, finalmente, se tornará um programa de computador. A construção do algoritmo 
ocorrerá por meio de diagramas ou de texto. A norma internacional ISO 5807:1985(E) regulamenta a construção 
de algoritmos por meio de diagramas e fluxogramas. Já a construção por meio de texto é baseada na Program 
Design Language (PDL), que, no Brasil, é conhecido como português estruturado ou portugol.
Em computação:
• Sintaxe é a forma como se escreve um comando.
• Semântica é o significado do comando, ou seja, o que ele fará ao ser executado. 
Fique atento!
A seguir, serão apresentados dois exemplos de algoritmo: um escrito em portugol; outro, em diagrama de bloco. 
Para isso, serão seguidas as seis fases já citadas:
Fase 1 – Defina bem o problema a ser resolvido. 
Problema: faça um algoritmo que leia dois números inteiros, calcule e imprima a soma desses números.
Fase 2 – Entenda os detalhes do problema.
Entendendo o problema: serão necessários dois números, que ficarão armazenados na memória do computador. 
A memória do computador é um dispositivo que permite armazenar dados de forma temporária ou permanente. 
O primeiro ficará armazenado na região A da memória; o segundo, na região B da memória. Já o resultado da 
soma ficará em uma terceira região, ou seja, na região X da “memória”. Para somá-los, será necessário o operador 
de adição (+). Seguindo as regras da PDL/portugol, deve ser utilizada uma seta para indicar a atribuição dos valo-
res para A, B e C; a palavra Início indicará o começo do algoritmo, e a palavra Fim, o final. A palavra Leia indicará 
que um dado foi lido e armazenado em A ou em B, e a palavra Escreva indicará que um dado foi mostrado em 
um dispositivo de saída – no caso, um monitor.
Você deve ter percebido que, por mais simples que o problema possa ser, é preciso entender seus detalhes para, 
assim, construir um algoritmo capaz de resolvê-lo. 
Fase 3 – Defina os dados de entrada que serão passados para o algoritmo.
Serão passados dois números inteiros: o primeiro para A, e o segundo para B.
Fase 4 – Defina os dados de saída que serão devolvidos pelo algoritmo.
A saída será o resultado da soma dos dois números inteiros, que ficará armazenada em C e, posteriormente, será 
mostrada para o usuário.
15
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientesde Desenvolvimento (IDE) em C
Fase 5 – Defina o processamento, ou seja, os cálculos e os comandos necessários e a ordem destes para executar 
a tarefa e resolver o problema.
O processamento será a realização da soma dos valores utilizando o operador de adição (+) e, posteriormente, a 
seta para armazenar o resultado em C.
Fase 6 – Construa o algoritmo.
Algoritmo textual seguindo as regras do PDL/portugol:
Início
 INTEIRO: A, B, X
 Leia (A)
 Leia (B)
 X ← A+B
 Escreva (X)
Fim
Algoritmo em bloco seguindo as regras da ISO 5807:1985(E):
//Regiões de armazenamento de dados
//Entrada de dados
//Processamento
//Saída de dados
Início
INTEIRO: A, B, X
 Leia (A)
Leia (B)
X  A+B
Escreva (X)
Fim
A forma mais conhecida e utilizada para a construção de algoritmos é a textual, seguindo 
as regras do PDL ou, no Brasil, o português estruturado ou portugol. O portugol possui um 
conjunto de regras e comandos que são definidos por meio de sintaxes e semânticas.
Início
A, B, X 
X � A+B 
Escreva (X) 
 Fim 
16
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Para saber mais sobre a construção de algortimos por meio da utilização da ferramenta 
textual portugol ou da ferramenta gráfica ISO 5807:1985(E), consulte: MANZANO, José 
Augusto N. G.; OLIVEIRA, Jayr F. de. Algoritmos Lógica para Desenvolvimento de Pro-
gramação de Computadores. 28. ed. São Paulo: Editora Érica, 2016; GUIMARÃES, Ângelo 
de Moura; LAGES, Newton Alberto de Castilho. Algoritmos e estrutura de dados. reimp. 
Rio de Janeiro: LTC, 2008; FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. 
Lógica de programação: a construção de algoritmos e estruturas de dados. 3. ed. São 
Paulo: Prentice, 2005.
Saiba mais
1.4 Uso da lógica na resolução de problemas
O raciocínio lógico requer conhecimento, versatilidade, experiência, criatividade, ponderação, calma, autodis-
ciplina, entre outros atributos. É preciso, portanto, saber como pensar. Segundo Manzano (2016, p. 27), “é a 
sequência coerente, regular e necessária de acontecimentos, de coisas ou fatos, ou até mesmo a maneira do 
raciocínio particular que cabe a um indivíduo ou a um grupo”.
Para Forbellone (2005), é importante perceber o uso da lógica para a resolução de problemas no dia a dia, uma 
vez que, para executarmos as tarefas do nosso dia a dia, enviamos “ordens” ao nosso cérebro, e isso é feito de 
forma lógica. Veja um exemplo:
• A porta do carro está fechada.
• Preciso entrar dentro do carro.
• Logo, primeiramente, terei que abrir a porta para conseguir entrar no carro.
Sim, parece simples, mas utilizamos a lógica para executarmos todas as tarefas do nosso dia a dia e, muitas vezes, 
por variados motivos, nos “atrapalhamos” em alguma coisa; aí temos que repensar a forma lógica de fazer para 
que a execução dê certo. Agora, você deve estar se perguntando: “Mas o que a lógica tem a ver com a programa-
ção de computadores?”. A melhor resposta seria “tudo”!
Segundo Manzano (2016, p.27) o raciocínio lógico usado na prática da programação de computa-
dores pode ser entendido como uma técnica de se encadear pensamentos com o intuito de aten-
der a um certo objetivo. A lógica de programação objetiva o estabelecimento de uma sequência 
organizada de passos que serão executados por um computador, na forma de um programa.
Na construção de algoritmos e de programas de computador, além de empregar o raciocínio lógico, o progra-
mador precisa saber a definição de valor lógico. Segundo Soffner (2013), um valor lógico só pode ser falso ou 
verdadeiro, e esses valores podem ser obtidos por meio de sentenças, proposições ou expressões. 
17
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Veja um exemplo de expressão não computacional:
a) Nove é maior que vinte?
O resultado lógico para a expressão acima é falso.
Agora, um exemplo de uma expressão computacional:
a) A<=B
Observe que o resultado dependerá do valor de A e do valor de B. Por exemplo, se o valor de A for igual a cinco (5) 
e o valor de B for igual a dez 10, o resultado lógico, nesse caso, será igual a verdadeiro.
Para saber mais sobre a lógica e a programação de computadores, consulte: SILVA, Flávio 
Soares Corrêa da; FINGER, Marcelo; MELO, Ana Cristina Vieira de. Lógica para computação. 
São Paulo: Cengage Learning, 2006.
Saiba mais
Segundo Forbellone (2005), o estudo da lógica permite a construção mais coerente e correta de algoritmos (por 
exemplo, utilizando o portugol como ferramenta textual) e, consequentemente, a construção mais correta de 
programas de computador (utilizando as linguagens de programação).
1.5 Ambientes de desenvolvimento (IDE) em linguagem C
Um ambiente de desenvolvimento integrado (IDE) permite a construção de programas de computador por meio 
de ferramentas simples (como um editor de texto para a digitação do código), em uma linguagem de programa-
ção suportada pelo IDE, bem como de compiladores, que transformarão o código digitado em uma linguagem de 
baixo nível, que poderá ser entendida e executada pelo computador a fim de realizar uma tarefa. Recursos como 
salvar e abrir também fazem parte de um IDE.
Existem diversos IDEs disponíveis. Alguns são proprietários ou pagos, e outros são livres ou gratuitos. Para este 
estudo, você pode utilizar um software livre e gratuito, como o Dev C++. Para fazer o download do Dev C++, acesse 
o site do projeto Dev C++.
Para saber mais sobre o IDE Dev C++, acesse o site do projeto Dev C++. 
Fique atento!
18
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
Após realizar o download do IDE Dev C++, você pode realizar a instalação do IDE. Para isso, siga os passos a seguir 
(FIGURAS 2 a 17).
1º passo: dê um duplo clique no arquivo de instalação e aguarde.
Figura 2 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
2º passo: escolha o idioma de instalação e clique em OK.
Figura 3 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
3º passo: leia o contrato de licença e clique em Aceito.
Figura 4 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
19
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
4º passo: marque a instalação de todos os componentes e clique em Seguinte.
Figura 5 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
5º passo: escolha o local de instalação do IDE em seu computador (dica: aceite a sugestão de pasta de destino).
Figura 6 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
20
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
6º passo: aguarde enquanto o IDE é instalado em seu computador.
Figura 7 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
7º passo: ao final da instalação, clique em Terminar.
Figura 8 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
21
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
8º passo: escolha o idioma Portugese (Brazil).
Figura 9 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
9º passo: clique em Next.
Figura 10 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
22
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
10º passo: clique em Next novamente.
Figura 11 – Tela de instalação do IDE Dev C++
Fonte: Elaborada pelo autor.
11º passo: parabéns! O IDE Dev C++ foi instalado com sucesso. Agora, para criar o seu primeiro projeto, clique 
em: Arquivo → Novo → Projeto.
Figura 12 – Tela de criação de um novo projeto no IDE Dev C++
Fonte: Elaborada pelo autor.
23
Construção de Algoritmos | Unidade 1- Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
12º passo: clique em Projeto C → Console Application → Ok.
Figura 13 – Tela de criação de um novo projeto no IDE Dev C++
Fonte: Elaborada pelo autor.
13º passo: crie uma pasta em seu computador e salve o projeto (dica: não modifique o nome do projeto e crie 
uma nova pasta para cada novo projeto).
Figura 14 – Tela de criação de um novo projeto no IDE Dev C++
Fonte: Elaborada pelo autor.
24
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
14º passo: salve o arquivo principal (Main) na mesma pasta do projeto, sempre.
Figura 15 – Tela de criação de um novo projeto no IDE Dev C++
Fonte: Elaborada pelo autor.
15º passo: muito bom! Agora você testará o IDE construindo o seu primeiro programa em C. Para isso, copie o 
código a seguir e cole no editor de texto; em seguida, clique em Salvar e, depois, em Compilar e executar.
Figura 16 – Tela de programação do IDE Dev C++
Compilar e executar
Fonte: Elaborada pelo autor.
Copie e cole o código a seguir no editor de textos do IDE.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]){
 setlocale(LC_ALL, “Portuguese”);
 printf(“OLÁ MUNDO!”);
 return 0;
}
25
Construção de Algoritmos | Unidade 1 - Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
16º passo: observe a saída que foi gerada pelo IDE.
Figura 17 – Tela de execução do IDE Dev C++
Fonte: Elaborada pelo autor.
Com o Dev C++ instalado, o seu ambiente de programação está preparado. Agora você está pronto para seguir 
em frente. Vamos lá?
O IDE Dev C++ foi feito para ser instalado no sistema operacional Windows. Caso utilize o 
Linux, então prefira o IDE Code:Blocks, disponível no site Codeblocks. Se você utilizar o OS 
X, então prefira o IDE Xcode. Consulte também MANZANO, José Augusto N. G.; MATOS, Eci-
valdo; LOURENÇO, André Evandro. Algoritmos: técnicas de programação. 2. ed. São Paulo: 
Érica, 2015. 
Fique atento!
Síntese da unidade
Nesta unidade, foram apresentados os conceitos iniciais de programas de computador, computador, linguagem 
de programação e algoritmos, bem como as fases de um algoritmo. Além disso, você aprendeu a utilizar a lógica 
na resolução de problemas pessoais e profissionais. Por fim, entendeu o que é um ambiente de desenvolvimento 
(IDE) em linguagem C.
26
Considerações finais
Parabéns, você chegou ao final da unidade 1 desta disciplina e deu o 
primeiro passo para iniciar a construção de algoritmos e de programas 
de computador. Ao estudar os conceitos de algoritmos e de ambientes 
de desenvolvimento integrado (IDEs), é possível estabelecer uma maior 
proximidade com o computador e com a linguagem de programação C. 
Agora, siga em frente!
Construção de 
Algoritmos
Construção 
de Algoritmos
1ª edição
2018
Presidente do Grupo Splice
Reitor
Diretor Administrativo Financeiro
Diretora da Educação a Distância
Gestor do Instituto de Ciências Sociais Aplicadas
Gestora do Instituto da Área da Saúde
Gestora do Instituto de Ciências Exatas
Autoria
Parecerista Validador
Antônio Roberto Beldi
João Paulo Barros Beldi
Claudio Geraldo Amorim de Souza
Jucimara Roesler
Henry Julio Kupty
Marcela Unes Pereira Renno
Regiane Burger
Ronan Loschi Rodrigues Ferreira
Fabiano Prado Marques
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte
desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos
direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
27
 2Unidade 22. Tipos de Dados, Constantes, 
Variáveis, Operadores e 
Expressões em C
Para iniciar seus estudos
Nesta unidade, continuaremos a nossa agradável viagem pelo aprendi-
zado sobre algoritmos e programação. Durante a viagem, você conseguirá 
compreender os componentes de um programa em C, como: constan-
tes, variáveis, operadores e expressões. Para continuar, é importante você 
organizar seus horários e ambiente de estudos. Então, vamos em frente!
Objetivos de Aprendizagem
• Identificar os componentes de um programa em C.
• Definir os tipos de dados de um programa em C.
• Criar constantes e variáveis em C.
• Usar os operadores aritméticos, lógicos e de atribuição em C. 
• Praticar expressões matemáticas, lógicas e mistas em C.
28
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Introdução da unidade
Nesta unidade, você continuará os estudos sobre os conceitos iniciais para começar no desenvolvimento de pro-
gramas de computador. Primeiramente, serão apresentados conceitos sobre a programação em C referentes 
a: componentes de um programa, tipos de dados, constantes e variáveis, operadores aritméticos, lógicos e de 
atribuição. Além disso, ao final, você verá como resolver expressões matemáticas, lógicas e mistas em C e como 
essas expressões podem ser utilizadas nos programas de computador.
2.1 Componentes de um algoritmo em C
Para Celes Filho (2004), o ciclo de desenvolvimento de um programa passa por vários componentes até ficar 
pronto, e o programador utiliza ferramentas como IDE, editores, compiladores. Normalmente, os programas em 
C são compostos de um conjunto de arquivos devidamente ligados para que a tarefa possa ser executada com 
sucesso. 
Pinheiro (2012), por sua vez, afirma que os programas em C são escritos em forma de texto e, em seguida, tradu-
zidos para a linguagem de máquina, sendo essa tradução feita por um compilador. A Figura 18 mostra o processo 
de compilação de um programa em C:
Figura 18 – Processo de compilação de um programa em C
Código-fonte
(Funções)
Código-objeto Código-executável
Bibliotecas
Compilação
Fonte: Adaptado de MANZANO, 2015.
Os componentes necessários para a construção e compilação de um programa em C são: 
Bibliotecas: são blocos de códigos prontos que permitem que funções de aplicação geral estejam prontas para 
serem executadas. São armazenadas em arquivos com a extensão .h. Em C, as bibliotecas são colocadas no topo 
do código.
29
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Para conhecer mais sobre as bibliotecas-padrão para a linguagem de programação C, con-
sulte Celes Filho (2004) e Manzano (2015).
Saiba mais
Código-fonte: refere-se a comandos, em formato de texto, escritos com as regras da linguagem de programa-
ção em C. É armazenado em arquivos com extensão .c.
Código-objeto: é o código gerado automaticamente na linguagem de máquina. É armazenado em arquivos .s.
Código executável: é um arquivo gerado automaticamente na linguagem de máquina e que o computador 
pode executar. É armazenado em arquivos com a extensão .exe.
Comentários: são textos livres inseridos no código a fim de documentar, explicar e descrever os aspectos do pro-
grama. Ajudam na manutenção e no desenvolvimento em equipe. Para fazer comentários em C, é preciso utilizar 
a sintaxe correta, ou seja, a forma correta do comando. Um comentário em C pode ser feito em uma ou várias 
linhas; para isso, são utilizados os comandos //, /* e */. Além disso, um comentário é normalmente destacado de 
outra cor pelo IDE, não faz parte do código e não será compilado – desde que feito da forma correta, não gerará 
erros.
Veja as sintaxes e os exemplos a seguir:
Sintaxe 1:
// comentário em uma linha
Exemplo 1: 
// isto é um comentário em uma linha
Sintaxe 2:
/* início de um comentário com várias linhas
...
Fim do comentário */
Exemplo 2:
/* isto é um comentário em várias linhas
...
Fim do comentário */
30
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Ponto e vírgula (;): os comandos nalinguagem C precisam de um ponto e vírgula (;) no final para indicar que o 
comando terminou. Nesse sentido, o ponto e vírgula (;) funciona como um terminador de comandos. 
Veja o exemplo a seguir:
printf (“Exemplo de aplicação do ponto e vírgula no final de cada comando em C.”);
Agora, veja o mesmo exemplo sem o ponto e vírgula, ou seja, com erro:
printf (“Contraexemplo de aplicação do ponto e vírgula no final de cada comando em C.”)
Parece que não mudou nada? Sim! Mas, caso você se esqueça de colocar o ponto e vírgula (;) no final dos coman-
dos, será gerado um erro, e a compilação do programa será paralizada até que o erro seja encontrado e resolvido. 
Funções: na linguagem de programação em C, o código-fonte é criado de forma estruturada por meio de módu-
los chamados de funções. Um programa em C pode conter diversas funções. Uma função pode ser entendida 
como um bloco de código que executa uma tarefa específica, e um conjunto de funções compõe um programa 
que resolverá um problema específico. Criar funções permite uma programação mais organizada e evita a repeti-
ção de códigos, já que uma mesma função pode ser chamada várias vezes dentro de um programa (CELES FILHO, 
2004). 
Todo programa em C precisa conter uma função principal chamada de main, que será a função responsável por 
iniciar a execução do programa. Todas as funções precisam ter início e fim; na linguagem C, o início é represen-
tado por uma chave aberta ({), e o fim, por uma chave (}).
Exemplo de uma função principal (main):
void main( ){
 <comandos;> 
}
Você verá a seguir os tipos primitivos de dados para a linguagem C. Todas as funções retornam algum valor ao 
final da sua execução, e esses valores poderão ser um dos tipos desses dados. Existe, porém, um tipo de função 
que dará um retorno “sem valor” ou um retorno com o dado diferente de um dos tipos primitivos. Portanto, os 
retornos dessas funções serão do tipo VOID, que, em inglês, significa vazio.
Além de poder criar suas próprias funções – o que é mais comum –, a linguagem de progra-
mação em C permite ainda que o programador utilize um conjunto de funções preexistentes, 
como funções matemáticas, funções de conversão e funções de calendário. Para mais deta-
lhes sobre as funções preexsietntes na linguagem C, consulte Manzano (2015).
Fique atento!
31
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Para construir e executar as funções em C, saiba que:
• Argumento: é o local da memória que contém o valor que é usado durante a chamada de uma função. 
Esses valores serão de um dos tipos primitivos de dados.
• Parâmetro formal: é o local da memória que recebe o valor contido nos argumentos. Tal valor será de um 
dos tipos primitivos de dados.
É importante que esses locais da memória do computador não recebam o mesmo nome a fim de evitar erros. A 
forma geral para se definir uma função na linguagem C é:
<tipo> <nome>(declaração de parâmetros){
 comandos; 
 return; 
}
Onde: 
<tipo> // tipo de retorno da função 
<nome> // identificador (nome) da função 
(declaração de parâmetros) // parâmetros de entrada da função 
{ // início da função
comandos; // corpo da função (comandos em C) 
return // retorna o valor da função 
} // fim da função
Veja a seguir um exemplo de função principal (main) em C, que imprimirá como saída de dados a mensagem 
“Meu primeiro programa em C”:
#include <stdio.h> // Biblioteca básica de entrada e saída E/S 
void main( ) // Cabeçalho da função sem os parâmetros.
{ // Início 
 printf (“Meu primeiro programa em C!\n”); // Corpo da função 
} // Fim
Obs.: crie um novo projeto utilizando o DEV C++ que você instalou no seu computador. Em seguida copie, cole e 
teste o código anterior.
32
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Durante a construção dos programas, além dos comentários, é importante a boa prática de 
identar o código, pois esta é uma forma de organizar as linhas de código para facilitar a lei-
tura do mesmo. Alguns IDEs permitem uma configuração que faz isso automaticamente; 
outros, não. Para saber como identar os códigos, consulte na web por Regras de estilo para 
código-fonte em C/C++.
Saiba mais
Segundo Celes Filho (2004, p. 41), “a linguagem C exige que se coloque o protótipo da função antes de ela ser 
chamada. O protótipo de uma função consiste na repetição da linha do cabeçalho seguida de ponto e vírgula (;)”.
2.1.1 Tipos de dados
Um programa de computador precisa basicamente que sejam fornecidos dados de entrada, que ocorra o pro-
cessamento dos dados e que sejam gerados os dados de saída. O processamento desses dados pode gerar infor-
mações e conhecimentos úteis para o usuário. O programador precisa indicar quais tipos de dados poderão ser 
tratados por determinado programa. Os tipos primitivos de dados predefinidos e suportados pela linguagem C 
são: o conjunto dos números inteiros, o conjunto dos números reais, os caracteres ou letras e os valores lógicos 
(verdadeiro e falso). Para identificar esses tipos de dados, a linguagem C utiliza palavras reservadas em sua sintaxe 
(MIZRAHI, 2009):
Palavras reservadas podem ser entendidas como os comandos e as instruções próprias de 
uma linguagem de programação. Só podem ser utilizadas para as regras e finalidades para as 
quais foram desenvolvidas. O uso incorreto de uma palavra reservada gerará erro.
Fique atento!
• Int (tipo de dado inteiro). Exemplos: 9, 21, 33.
• Float (tipo de dado real). Exemplos: 3.2, 7.5, 9.9.
• Double (tipo de dado real). A diferença para o float é que um double possui 64 bits, e não 32 bits.
• Char (tipo de dado, caractere ou letra). Exemplos: “a”, “b”, “c”.
• Void: nenhum valor.
Na linguagem C, não existe um tipo primitivo de dados que suporte uma cadeia de caracteres, como, por exem-
plo, uma palavra. Para esses casos, existem funções predefinidas que possibilitam ao programador tratar uma 
cadeia de caracteres. No caso, a linguagem C identificará uma cadeia de caracteres por meio de uma biblioteca 
33
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
que permita trabalhar com um dado do tipo string. Para isso, o programador precisará utilizar a biblioteca pre-
definida <string.h>. Uma das alternativas, nesse caso, será a utilização da função de conversão predefinida 
gets( ) para ler uma string pelo teclado. A função strlen( ) pode ser utilizada para saber o tamanho da String, ou 
seja, a quantidade de caracteres, incluindo os espaços.
Na linguagem de programação em C, os tipos primitivos de dados – int, float, double, char 
e void – podem ter variações de acordo com o tamanho do dado que será manipulado, pois 
todo dado ocupará um espaço na memória do computador (MIZRAHI, 2009).
Fique atento!
2.1.1.1 Inteiros (int)
Os dados numéricos fazem parte do conjunto dos números inteiros; portanto, não entram letras, nem números 
com fração. Um valor do tipo int ocupará 4 bytes (o equivalente a 32 bits) de memória de um computador com o 
sistema operacional Windows. Na Tabela 1, é possível ver as variações do tipo inteiro. A palavra reservada unsig-
ned indica um valor sem o sinal negativo.
Durante a execução de um programa de computador, um número inteiro poderá representar, por exemplo, a 
idade de uma pessoa.
Tabela 1 – Variações do tipo inteiro (int) em C
Tipo de dado inteiro Faixa de abrangência Tamanho
unsigned short int de 0 a 65.535 16 bits
short / short int / signed int / signed short int de -32.768 a 32.767 16 bits
unsigned int / unsigned long int de 0 a 4.292.967.295 32 bits
int / long / long int / signed long int de -2.147.483.648 a 2.147.483.647 32 bits
Fonte: MANZANO, 2013.
Para saber quais são as unidades de medida computacionais, como bit (b), byte (B), kilobyte 
(KB), megabyte (MB), gigabyte (GB), terabyte (TB), entre outros, consulte na web por: “Você usacorretamente as unidades de grandeza da informática?”.
Saiba mais
34
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
2.1.1.2 Real (float)
Os dados numéricos fazem parte do conjunto dos números reais ou fracionários; portanto, só não entram letras. 
Um valor do tipo float ocupará 4 bytes (o equivalente a 32 bits) de memória de um computador com o sistema 
operacional Windows. Na Tabela 2, é possível ver as variações do tipo real. A palavra reservada long indica um 
valor real que ocupará acima de 4 bytes na memória do computador. 
Durante a execução de um programa de computador, um número real poderá representar, por exemplo, a altura 
de uma pessoa.
Tabela 2 – Variações do tipo real (float) em C
Tipo de dado real Faixa de abrangência Tamanho
float de -3.438 a 3.438 32 bits
double de -1.7308 a 1.7308 64 bits
long double de -3.44932 a 1.14932 96 bits
Fonte: MANZANO, 2013.
2.1.1.3 Caractere (char)
Letras, símbolos e números são dados do tipo caractere desde que estejam entre aspas simples (‘ ’). Um valor do 
tipo char ocupará 1 byte (o equivalente a 8 bits) de memória de um computador com o sistema operacional Win-
dows. Na Tabela 3, você poderá ver as variações do tipo char. As aspas duplas (“ ”) serão utilizadas em uma cadeia 
de caracteres, ou seja, nas strings. 
Tabela 3 – Variações do tipo caractere (char) em C
Tipo de dado inteiro Faixa de abrangência Tamanho
char / signed char de -128 até 127 8 bits
unsigned char de 0 até 255 8 bits
char Pode ser considerado signed char ou unsigned 
char, dependendo do sistema
8 bits
Fonte: MANZANO, 2013.
Durante a execução de um programa de computador, um caractere poderá representar, por exemplo, o sexo de 
uma pessoa, sendo: ‘F’ (feminino) ou ‘M’ (masculino).
Na linguagem C, é possível converter um tipo de dado em outro. Essa operação é chamada 
de casting (conversão). A sintaxe (tipo) valor permite realizar a conversão. Para saber mais 
sobre a conversão de tipos de dados em C, consulte Manzano (2015).
Saiba mais
35
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Agora que você conhece os tipos primitivos de dados aceitos pela linguagem de programação em C, chegou a 
hora de saber como esses dados podem ser armazenados na memória do computador e manipulados pelo pro-
cessador. As próximas seções abordarão esse assunto. Siga em frente! 
2.1.2 Definição e declaração de variáveis e constantes
Quando se trata de computação, mais especificamente de programação de computadores, os termos variável 
e constante devem ser entendidos como uma região da memória do computador que receberá um dado de 
determinado tipo. Tanto uma variável quanto uma constante só conseguem armazenar um valor de um tipo por 
vez. A diferença é que, em uma constante, esse valor não poderá ser alterado durante a execução do programa; 
logo, será constante enquanto o programa existir – daí vem a definição de constante. Por exemplo, o valor de Pi 
(3,1416) é, por definição, um valor constante e, portanto, não poderia sofrer variações (MONZANO, 2015).
Já em uma variável, é possível programar para que o valor armazenado sofra variações durante a execução do 
programa; logo, vem o nome variável. 
Por exemplo, uma região da memória que armazenará o valor do resultado da soma entre dois números é uma 
variável, pois o valor da soma poderá variar dependendo dos valores do primeiro e do segundo número (CELES 
FILHO, 2004). 
Resumindo: constante é uma região da memória do computador que pode receber um valor de determinado tipo 
e este valor não poderá mudar durante a execução do programa. Variável é uma região da memória do compu-
tador que pode receber um valor de determinado tipo e este valor poderá mudar/variar durante a execução do 
programa.
A região da memória do computador, seja ela uma constante ou uma variável, precisará ser identificada, ou seja, 
você, programador, terá que dar um nome a essa região. Para nomear constantes e variáveis, é necessário que o 
nome:
• Comece, obrigatoriamente, com uma letra ou com o caractere underline (_).
• Seja exclusivo e possua, no máximo, 32 caracteres. 
• Não tenha espaço em branco, nem caracteres especiais, como acentos, símbolos, cedilha, etc.
• Não use palavras reservadas da linguagem C.
Uma dica importante é escolher nomes curtos e significativos tanto para constantes como 
para as variáveis. Normalmente, as variáveis são mais utilizadas do que as constantes.
Fique atento!
Uma constante que fosse armazenar o valor 3,1416 poderia receber o nome de Pi. Já uma variável que fosse 
receber resultados da soma poderia receber o nome de SOMA, e uma variável que fosse receber nomes de alunos 
poderia receber o nome de NOME_DO_ALUNO.
36
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
A linguagem C é case sensitive. Isso significa que ela diferencia letras maiúsculas de letras 
minúsculas. Assim, a variável nomeada soma e a outra com o nome SOMA seriam entendi-
das, pela linguagem C, como duas variáveis distintas, ou seja, regiões diferentes da memória 
do computador.
Para declarar ou criar uma constante em C, utiliza-se uma das seguintes sintaxes:
#define <rótulo> <valor> 
ou
const <tipo> <rótulo> = <valor>;
Exemplos de declarações de constantes utilizando a palavra reservada #define:
#define X 10 // definição da constante X que armazena um valor do tipo inteiro.
#define X 3.5 // definição da constante X que armazena um valor do tipo real.
#define X “joão” // definição da constante X que armazena cadeia de caracteres.
#define X ‘c’ // definição da constante X que armazena um caractere.
Exemplo de declarações de variáveis utilizando a palavra reservada const:
const int X = 1; // definição da constante X que armazena um valor do tipo inteiro.
const float PI = 3.1416; // definição da constante PI que armazena um float.
const char LETRA = ‘a’; // definição da constante LETRA que armazena um valor do tipo caractere.
A declaração de constantes utilizando o #define não ocupa espaço na memória do compu-
tador. Para saber mais, consulte Manzano (2015).
Fique atento!
37
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Para declarar ou criar uma variável em C, utiliza-se a seguinte sintaxe:
<tipo> <nome_da_variável>;
A declaração de uma variável pode acontecer de duas formas: direta e indireta. Na forma direta, o programador 
atribuirá um valor inicial para a variável enquanto escreve o código. Já na forma indireta, quem atribuirá um 
valor para a variável será o usuário, no momento da entrada de dados, enquanto estiver utilizando o programa 
(PINHEIRO, 2012).
Exemplos de declaração direta de variáveis:
• int X = 10.
• float Y = 7.9.
• double Z = 999999.999999.
• char LETRA = ‘A’.
Uma variável do tipo double poderá armazenar um número real de até 64 bits, enquanto uma variável do tipo 
float poderá armazenar um número de até 32 bits (MIZRAHI, 2009).
Exemplos de declaração indireta de variáveis:
• int X.
• float Y.
• char LETRA.
2.1.3 Operador de atribuição
Você já deve ter percebido o uso do símbolo “=” para atribuir um valor a uma constante ou variável. Por exemplo: 
int X = 2 significa que a variável X recebeu o valor 2 ou que o valor 2 foi atribuído para a variável X.
Na linguagem C, o operador de igualdade é “==”. Por exemplo: A==B é o mesmo que conferir 
se o conteúdo da variável A é igual ao conteúdo da variável B.
Esse e outros operadores serão estudados nas próximas seções.
Fique atento!
2.1.4 Operadores matemáticos
Operadores matemáticos ou aritméticos permitem realizar operações utilizando constantes e/ou variáveis. 
Alguns operadores são aplicados apenas a tipos específicos; por exemplo, os operadores ++, -- e % são aplicados 
somente quando o tipo é int (PINHEIRO, 2012). 
38
Construção de Algoritmos | Unidade 2 - Tipos de Dados,Constantes, Variáveis, Operadores e Expressões em C
Esses operadores são classificados em dois tipos: unário e binário. Operadores unários são aplicados em apenas 
uma variável. Já os operadores binários são aplicados em um conjunto de variáveis – por exemplo, em adição, 
divisão, multiplicação e exponenciação. O Quadro 1 apresenta os operadores unários e binários matemáticos da 
linguagem C (SCHILDT, 1996).
Quadro 1 – Operadores matemáticos e/ou aritméticos em C
Operação Operador em C Tipo Sintaxe
Adição unária + Unário +a
Adição + Binário a + b
Incremento pré-fixado de 1 em 1 ++ Unário ++a
Incremento pós-fixado de 1 em 1 ++ Unário a++
Atribuição por adição cumulativa += Binário a += b
Subtração unária - Unário -a
Subtração - Binário a - b
Decremento pré-fixado de 1 em 1 -- Unário --a
Decremento pós-fixado ' Unário a'
Atribuição por subtração cumulativa -= Binário a -= b
Multiplicação * Binário a * b
Atribuição por multiplicação *= Binário a *= b
Divisão / Binário a / b
Atribuição por divisão cumulativa /= Binário a /= b
Módulo (resto) % Binário a % b
Atribuição por módulo (resto) cumulativo %= Binário a %= b
Fonte: Adaptado de MANZANO, 2015.
Para saber mais sobre os operadores aritméticos em C, consulte Pinheiro (2012).
Saiba mais
2.1.5 Operadores relacionais
Operadores relacionais são aplicados com a finalidade de estabelecer uma relação entre constantes e/ou variá-
veis. O Quadro 2 apresenta os operadores relacionais da linguagem C.
Quadro 2 – Operadores relacionais em C
Operador Relação Sintaxe
< Menor que a < b
> Maior que a > b
39
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Operador Relação Sintaxe
<= Menor ou igual a <= b
>= Maior ou igual a >= b
== Igual a == b
!= Diferente a != b
Fonte: Adaptado de PINHEIRO, 2012.
Dica: para um melhor entendimento sobre a sintaxe dos operadores relacionais, pense em 
dois valores, sendo um para a variável a, e outro para a variável b. Pensou? Agora, anote esses 
valores, volte no Quadro 2 e faça a respectiva substituição. Como resultado, você deverá 
encontrar o valor lógico verdadeiro ou o valor lógico falso.
Fique atento!
2.1.6 Operadores lógicos
Operadores lógicos permitem operações de negação, conjunção ou disjunção, sendo o resultado verdadeiro (1) 
ou falso (0).
Quadro 3 – Operadores lógicos em C
Operador lógico Operação Sintaxe
E/AND && Conjunção a && b
Ou/OR || Disjunção a || b
Não/NOT ! Negação !a
Fonte: Adaptado de PINHEIRO, 2012.
2.1.7 Expressões matemáticas
As expressões aritméticas ou matemáticas na linguagem C são formadas com operadores e funções predefinidas 
cujos operandos são constantes e/ou variáveis dos tipos int ou float. A seguir, é possível observar um exemplo de 
expressão aritmética.
X = A + B - 2 * C / sqrt(D)
40
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Onde:
A, B, C, D, X Variáveis. 
2 Valor constante.
Sqrt ( ) Função predefinida que retorna o valor da raiz quadrada.
+, -, *, / = Operadores aritméticos.
= Operador de atribuição.
O resultado de uma expressão aritmética dependerá dos valores armazenados nas variáveis e/ou constantes.
2.1.8 Expressões lógicas
As expressões lógicas na linguagem C são formadas com operadores lógicos de conjunção (AND) e de disjunção 
(OR), cujos operandos são constantes e/ou variáveis do tipo lógico. A seguir, é possível observar um exemplo de 
expressão lógica.
X = A && B OR C
Onde: 
A, B, C, X Variáveis. 
&& , OR Operadores lógicos.
Os resultados possíveis para as expressões lógicas podem ser observados por meio de tabelas-verdade. Compu-
tacionalmente, você deve considerar V = 1 e F = 0. Veja:
Quadro 4 – Tabela-verdade para o operador lógico de conjunção AND (&&)
A Operador lógico B Resultado lógico
V && V V
V && F F
F && V F
F && F F
Fonte: Elaborado pelo autor.
41
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Quadro 5 – Tabela-verdade para o operador lógico de disjunção OR (||)
A Operador lógico B Resultado lógico
V || V V
V || F V
F || V V
F || F F
Fonte: Elaborado pelo autor.
2.1.9 Expressões mistas e tabela de prioridades
As expressões mistas na linguagem C são formadas com operadores aritméticos, lógicos e relacionais, cujos ope-
randos são constantes e/ou variáveis dos tipos primitivos. A seguir, é possível observar um exemplo de expressão 
mista na linguagem C.
X = (A + B) <= 2 && C OR D
Onde:
A, B, C, D, X Variáveis. 
2 Valor constante.
<= Operador relacional.
+ Operador aritmético.
= Operador de atribuição.
&& , || Operadores lógicos.
O resultado final da expressão mista dependerá dos valores armazenados nas variáveis e da ordem de resolução 
das operações, que deverá seguir a ordem de prioridade de operações. A ordem de prioridades de operações em 
C é apresentada no Quadro 6.
Quadro 6 – Precedência dos operadores na linguagem C
Ordem de precedência Operador
1º ( ) [ ] -> .
2º Sizeof & * (type) - -- ++ ~ ! 
3º * / %
4º + -
5º << >>
42
Construção de Algoritmos | Unidade 2 - Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
Ordem de precedência Operador
6º < <= > >=
7º == !=
8º &
9º ^
10 |
11 &&
12 ||
13 : ?
14 etc -= += = 
15 ,
Fonte: Elaborado pelo autor.
Operadores no mesmo nível de precedência devem ser executados da esquerda para a direita na ordem em que 
aparecerem.
Veja um exemplo de solução de uma expressão mista:
Considere a expressão mista X = (A + B) <= 2 && C OR D e os respectivos valores para as variáveis A, B, C, D; 2, 3, 
V e F. Agora, faça a substituição dos valores na expressão e acompanhe a resolução que seguiu a procedência do 
Quadro 6:
X = (A + B) <= 2 && C OR D
X = (2+3) <= 2 && V OR F
X = 5 <= 2 && V OR F
X = F && V OR F
X = F OR F
X = F
No caso deste último exemplo, a variável X armazenará um valor lógico, lembrando que, computacionalmente, V 
é o mesmo que o valor de nível lógico alto 1, e F é o mesmo que o valor lógico de nível = 0.
Síntese da unidade
Nesta unidade, você compreendeu os componentes de um programa em C, como: constantes, variáveis, ope-
radores, atribuições e expressões. Para continuar, é importante que você organize seus horários e ambiente de 
estudos.
43
Considerações finais
Parabéns, você chegou ao final da unidade 2 desta disciplina. Você deu 
mais um passo importante para iniciar a construção de algoritmos e de 
programas de computador. Agora, siga em frente!
Construção de 
Algoritmos
Construção 
de Algoritmos
1ª edição
2018
Presidente do Grupo Splice
Reitor
Diretor Administrativo Financeiro
Diretora da Educação a Distância
Gestor do Instituto de Ciências Sociais Aplicadas
Gestora do Instituto da Área da Saúde
Gestora do Instituto de Ciências Exatas
Autoria
Parecerista Validador
Antônio Roberto Beldi
João Paulo Barros Beldi
Claudio Geraldo Amorim de Souza
Jucimara Roesler
Henry Julio Kupty
Marcela Unes Pereira Renno
Regiane Burger
Ronan Loschi Rodrigues Ferreira
Fabiano Prado Marques
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte
desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos
direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
44
 3Unidade 33. Função de Entrada e Função 
de Saída em C
Para iniciar seus estudos
Durante o estudo desta unidade, você compreenderá os conceitos e as 
funções de entrada e saída de dados na linguagem de programação C. 
Para isso, é importante organizar seus horários e seu ambiente de estudos.
Objetivos de Aprendizagem
• Recordar as funções de entrada e de saída em C.
• Diferenciar as funções de entrada e de saída em C.
• Usar as funções de entrada e de saída em C.
45
Construção de Algoritmos| Unidade 3 - Função de Entrada e Função de Saída em C
Introdução da unidade
Nesta unidade, você estudará sobre as funções de entrada e de saída da linguagem de programação C. Primeira-
mente, ser-lhe-ão apresentados os conceitos sobre a função de saída de dados e, em seguida, os conceitos sobre 
a função de entrada de dados. Ao final, você aprenderá a aplicar simultaneamente as funções de entrada e saída 
de dados para a programação de computadores.
3.1 Função de entrada e função de saída em C
As funções de entrada e de saída de dados permitem uma interação direta com o usuário, seja por meio dos dis-
positivos de entrada de dados, bem como pelos dispositivos de saída de dados. Além disso, a maioria dos progra-
mas utiliza-se das funções de entrada e de saída de dados para ler os dados do usuário, processá-los e produzir 
os dados de saída. Por isso, recomenda-se uma atenção especial ao conteúdo desta unidade.
3.1.1 Função de saída em C printf
A saída de dados de um programa acontece por meio de unidades de saída de dados, como monitor, impressora 
e fone de ouvido. Isso ocorre após o computador processar os dados fornecidos por uma unidade de entrada, 
gerando-se, assim, uma saída. Essa saída de dados é, normalmente, apresentada ao usuário.
As saídas de dados podem ocorrer para fornecer alguma informação, apresentar resultados do processamento, 
solicitar ou passar alguma informação de orientação ao usuário. 
A linguagem C faz a saída dos dados em um dispositivo de saída de dados executando a função printf( ). Para que 
a função printf( ) seja reconhecida e executada, o programador precisará incluir, no cabeçalho do programa, a 
biblioteca-padrão de entrada/saída stdio.h (standard input/output), utilizando a diretiva de compilação #include. 
Essa biblioteca contém o código da função printf( ). A sintaxe da função de saída de dados, printf( ), na lingua-
gem C, tem o seguinte formato (FORBELLONE, 2015):
printf(<”mensagem_de_texto”>, <lista_de-valores> );
Onde:
• printf – função de saída na linguagem C, contida na biblioteca stdio.h.
• “mensagem_de_texto” – podendo conter:
• Textos, que serão reproduzidos na saída (pode haver mais de um texto).
• Os textos são livres e podem estar intercalados com outros componentes da <mensagem de texto>.
• Referências, que serão substituídas por um valor declarado no segundo parâmetro da função printf().
46
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
• A referência indica o tipo de dado que deverá ser inserido naquela posição da <mensagem de 
texto>.
• A primeira referência está associada ao primeiro valor, a segunda referência ao segundo valor, e 
assim por diante.
• Uma referência é identificada pelo caractere especial “%”, seguida do tipo de dado do valor, sendo:
• %d ou &i para o tipo int.
• %f para o tipo float.
• %c para o tipo char.
• %s para uma cadeia de caracteres (string).
• Comandos, que atuarão para modificar a execução da saída de dados.
• Um comando é identificado pelo caractere “\”, seguido de outro caractere.
• Os comandos mais comuns são: 
• “\n”, para avançar para a próxima linha (newline).
• “\t” para avançar para o próxima posição de tabulação (horizontal tab).
• “\a” para o alerta sonoro (alert beep).
• “\b” para retroceder uma posição (backspace).
• “\” para retornar à primeira posição da linha (carriage return).
• “\0” caractere vazio (null character).
• lista_de_valores, podendo ser:
• Uma constante do mesmo tipo da referência.
• Uma variável do mesmo tipo da referência.
• Uma expressão aritmética, cujo resultado seja do tipo da referência.
• Uma função, cujo valor retornado seja do tipo da referência.
Exemplo 1: neste exemplo, considere a saída de dados como uma mensagem de texto qualquer.
printf (“Mensagem de texto qualquer! \n”);
Nesse caso, a saída de dados será uma mensagem que aparecerá para o usuário, conforme está mostrado na 
Figura 19. Observe que apenas o conteúdo de texto entre aspas aparece como saída. O comando “\n” não apa-
rece na tela, mas fez com que o cursor se posicionasse no início da próxima linha.
47
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Figura 19 – Representação de uma saída de dados
Mensagem de texto qualquer!
Fonte: Elaborada pelo autor.
Exemplo 2: neste exemplo, a saída de dados será a altura de uma pessoa. Nesse caso, o valor é mostrado como 
uma literal numérica de conteúdo 1.8:
printf (“%f \n”, 1.8);
A mensagem que aparecerá para o usuário está representada na Figura 20.
Figura 20 – Representação de uma saída de dados
1.8
Fonte: Elaborada pelo autor.
48
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Exemplo 3: neste exemplo, a saída de dados também será a altura de uma pessoa. Nesse caso, considere que o 
conteúdo está armazenado na variável, identificada como altura, com o valor 1.87. Agora observe que a unidade 
“metros” é outro texto que aparece na mensagem, após o valor da variável altura.
printf (“A altura é igual a %0.2f metros! \n”, altura);
A mensagem que aparecerá para o usuário está representada na Figura 21.
Figura 21 – Representação de uma saída de dados
A altura é igual a 1.87 
metros!
Fonte: Elaborada pelo autor.
O comando \n executa o avanço do cursor para a próxima linha. Logo, \n\n\n avançará 3 
vezes, saltando 2 linhas.
A referência %0.2f indica que um valor do tipo float aparecerá com duas casas decimais.
Fique atento!
Veja no Quadro 7 uma síntese dos códigos de formato de saída para a linguagem C.
49
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Quadro 7 – Síntese dos códigos de controle de saída para a linguagem C
%i ou %d Permite a saída de um dado do tipo int.
%x ou %X Permite a saída de um dado do tipo int em hexadecimal.
%f Permite a saída de um dado real do tipo float ou double.
%e ou %E Permite a saída de um dado em notação científica 
(mantissa e expoente).
%c Permite a saída de um dado do tipo char.
%s Permite a saída de uma cadeia de caracteres (string).
%% Terá um % na saída.
Fonte: Adaptado de MANZANO, 2016.
3.1.2 Função de entrada em C – scanf 
A entrada de dados de um programa ou a leitura de dados acontece por meio de unidades de entrada de dados, 
como teclado, mouse ou tela com tecnologia touchscreen, que é sensível ao toque. Então, quando um usuário 
digita em um teclado, clica em um mouse ou toca em uma tela touchscreen, os dados são enviados para o compu-
tador por meio de sinais elétricos (DALMAS, 2016).
Esses sinais elétricos são, incialmente, convertidos pelo computador para valores binários (representados por 0 e 
1) e armazenados em memória em bits, bytes, kilobytes, megabytes, gigabytes, terabytes. Para o usuário, esses valores 
são os dados de entrada, por exemplo: um número, uma letra, uma frase, etc. Esses dados são armazenados em 
endereços de memória, associados a nomes de variáveis, sendo utilizados pelo computador durante a execução 
dos programas (MANZANO, 2016).
A linguagem C faz a entrada dos dados de um dispositivo de entrada de dados executando a função scanf( ). 
Para que a função scanf( ) seja reconhecida e executada, o programador precisará incluir, no cabeçalho do pro-
grama, a biblioteca-padrão de entrada/saída stdio.h (standard input/output), utilizando a diretiva de compilação 
#include. Essa biblioteca contém o código da função scanf( ). A sintaxe da função de entrada de dados, scanf( 
), na linguagem C tem o seguinte formato:
scanf(<”código_de_controle”>, <&variável>);
Onde:
scanf – função de entrada na linguagem C.
• código_de_controle – identifica um tipo de dados (int, float, char), precedido de %. Por exemplo: “%i” 
permitirá a leitura de um dado do tipo inteiro.
• & – operador de endereço, que indica a localização (endereço) da variável na memória do computador.
• Variável – identificador (nome) da variável, que identifica o endereço de memória onde o valor lido será 
armazenado. A variável deve ser domesmo tipo que consta no código_de_controle.
50
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Veja a seguir alguns exemplos de execução da função de entrada de dados. 
Exemplo 1: neste exemplo, considere a entrada de dados como sendo a idade de uma pessoa, cujo valor será 
armazenado no endereço de memória identificado pelo nome da variável idade.
scanf(“%i”, &idade);
Nesse caso, o dado de entrada ficará armazenado no endereço da variável idade. Entende-se, então, que a idade 
de uma pessoa será um dado do tipo primitivo int (inteiro).
Exemplo 2: neste exemplo, considere a entrada de dados como sendo a altura de uma pessoa.
scanf(“%f”, &altura);
Nesse caso, o dado de entrada ficará armazenado no endereço da variável altura. Entende-se, então, que a altura 
de uma pessoa será um dado do tipo primitivo float (real).
Exemplo 3: neste exemplo, considere a entrada de dados como sendo uma letra do alfabeto:
scanf(“%c”, &letra);
Nesse caso, o dado de entrada ficará armazenado no endereço da variável letra. Entende-se, então, que uma 
letra será um dado do tipo primitivo char (caractere).
Exemplo 4: neste exemplo, considere a entrada de dados como sendo uma frase (cadeia de caracteres).
scanf(“%s”, &frase);
Nesse caso, o dado de entrada ficará armazenado no endereço da variável frase. Entende-se, então, que uma 
frase será um dado do tipo char com várias ocorrências (cadeia de caracteres).
O Quadro 8 apresenta uma síntese dos códigos de formato de entrada para a linguagem C.
Quadro 8 – Síntese dos códigos de controle de entrada para a linguagem C
%i Permite a leitura de um dado do tipo int (inteiro).
%d Permite a leitura de um dado do tipo int (inteiro).
%f Permite a leitura de um dado do tipo float (real).
%f Permite a leitura de um dado do tipo double (real).
%c Permite a leitura de um dado do tipo char (caractere).
%s Permite a leitura de uma cadeia de caracteres do tipo char (string).
Fonte: Adaptado de MANZANO, 2016.
51
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Os comandos da linguagem C são escritos com letras minúsculas, sendo essa uma exigência 
da maioria dos compiladores atuais.
Fique atento!
3.1.3 Aplicação das funções de entrada e saída em C
Durante a programação de computadores, o funcionamento das funções de entrada e de saída acontece, na 
maioria das vezes, de forma simultânea, dependendo da necessidade do problema a ser resolvido. Agora que as 
funções de entrada e de saída de dados já foram apresentadas, será possível desenvolver e testar os primeiros 
programas de computador. Veja os exemplos de problemas a seguir e, posteriormente, copie e teste cada um 
deles no Dev C++.
Problema 1: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
da idade de uma pessoa. Em seguida, esse programa deve imprimir uma mensagem informando a idade digitada. 
#include <stdio.h>
int main( ){
 int idade;
 printf(“Digite a idade da pessoa: \n”);
 scanf(“%i”, &idade);
 printf(“A idade digitada foi = %i anos!\n”, idade);
 return 0;
}
Obs.: neste exemplo, suponha que o usuário tenha digitado o valor 18 para a idade da pessoa.
Nesse caso, a mensagem que aparecerá para o usuário está representada na Figura 22.
Figura 22 – Representação de uma saída de dados
Digite a idade da pessoa:
18
A idade digitada 
foi = 18 anos!
Fonte: Elaborada pelo autor.
52
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Problema 2: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
da idade e a altura de uma pessoa. Em seguida, esse programa deve imprimir uma mensagem informando a 
idade e a altura digitadas.
#include <stdio.h>
int main( ){
 int idade;
 float altura;
 printf(“Digite a idade da pessoa: \n”);
 scanf(“%i”, &idade);
 printf(“Digite a altura da pessoa: \n”);
 scanf(“%f”, &altura);
 printf(“A idade digitada foi = %i anos!\n”, idade);
 printf(“A altura digitada foi = %0.2f metros!\n”, altura);
 return 0;
}
Obs.: neste exemplo, suponha que o usuário tenha digitado o valor 18 para a idade da pessoa e o valor 1.7 para 
a sua altura.
Nesse caso, a mensagem que aparecerá para o usuário está representada na Figura 23.
Figura 23 – Representação de uma saída de dados
Digite a idade da pessoa:
18
Digite a altura da pessoa:
1.7
A idade digitada foi = 18 anos!
A altura digitada foi = 1.70 metros!
Fonte: Elaborada pelo autor.
Na linguagem de programação C, durante a entrada de dados, a vírgula dos dados do tipo 
float ou double é representada pelo ponto decimal. Portanto, para entrar com o valor 1,7 do 
exemplo, o usuário deve digitar 1.7.
Fique atento!
53
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Problema 3: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
de cinco letras do alfabeto do idioma português. Em seguida, esse programa deve imprimir cada uma das letras, 
na mesma ordem em que foram digitadas. A impressão deve ocorrer tanto com uma letra por linha como com 
todas as letras na mesma linha.
#include <stdio.h>
int main( ){
 char letra1, letra2, letra3, letra4, letra5;
 printf(“Digite a primeira letra: \n”);
 scanf(“%c”, &letra1);
 fflush(stdin);
 printf(“Digite a segunda letra: \n”);
 scanf(“%c”, &letra2);
 fflush(stdin);
 printf(“Digite a terceira letra: \n”);
 scanf(“%c”, &letra3);
 fflush(stdin);
 printf(“Digite a quarta letra: \n”);
 scanf(“%c”, &letra4);
 fflush(stdin);
 printf(“Digite a quinta letra: \n”);
 scanf(“%c”, &letra5);
 printf(“\n”);
 printf(“Primeira letra digitada = %c.\n”, letra1);
 printf(“Segunda letra digitada = %c.\n”, letra2);
 printf(“Terceira letra digitada = %c.\n”, letra3);
 printf(“Quarta letra digitada = %c.\n”, letra4);
 printf(“Quinta letra digitada = %c.\n\n\n”, letra5);
 printf(“Todas as letras na mesma linha e na ordem em que foram digitadas = %c, %c, 
%c, %c, %c.”, letra1, letra2, letra3, letra4, letra5);
 return 0;
}
Obs.: neste exemplo, suponha que o usuário tenha digitado as letras a, e, i, o, u.
Nesse caso, a mensagem que aparecerá para o usuário está representada na Figura 24.
54
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Figura 24 – Representação de uma saída de dados
Digite a primeira letra:
a
Digite a segunda letra:
e
Digite a terceira letra:
i
Digite a quarta letra:
o
Digite a quinta letra:
u
Primeira letra digitada = a.
Segunda letra digitada = e.
Terceira letra digitada = i.
Quarta letra digitada = o.
Quinta letra digitada = u.
Todas as letras na mesma linha e na ordem em que foram digitadas = a, e, i, o, u.
Fonte: Elaborada pelo autor.
A função fflush(stdin) será muito útil quando for necessário ler mais de um caractere pelo 
teclado. Essa função exclui os caracteres não lidos (lixo) que ficaram na “memória” ou buffer 
do teclado, assim como os caracteres de controle utilizados pelo sistema operacional.
Saiba mais
Problema 4: escreva um programa de computador utilizando a linguagem C que imprima a mensagem OLÁ 
MUNDO dentro e no centro de uma “caixa”.
55
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
#include <stdio.h>
#include <locale.h>
int main( )n{
 setlocale(LC_ALL, “Portuguese”);
 printf(“------------------------------------------------\n”);
 printf(“| |\n”);
 printf(“| |\n”);
 printf(“| |\n”);
 printf(“| OLÁ MUNDO! |\n”);
 printf(“| |\n”);
 printf(“| |\n”);
 printf(“| |\n”);
 printf(“------------------------------------------------\n”);return 0;
}
Obs.: neste exemplo, não foi necessária a entrada de dados, apenas de saída, pois não foi necessário solicitar 
nenhuma informação para o usuário.
Nesse caso, a mensagem que aparecerá para o usuário está mostrada na Figura 25.
Figura 25 – Representação de uma saída de dados
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| OLÁ MUNDO! |
| |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fonte: Elaborada pelo autor.
A inclusão da biblioteca #include <locale.h> e da função setlocale(LC_ALL, “Portuguese”) 
permitirá que o compilador acentue corretamente as palavras, mas o usuário deve informar os 
dados do tipo float ou double com vírgula, e não mais com ponto decimal.
Saiba mais
56
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Problema 5: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) cinco 
valores numéricos reais. Em seguida, esse programa deve calcular o valor da média dos números digitados e 
imprimir o valor da média.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 float n1, n2, n3, n4, n5, soma, media;
 printf(“Digite o valor do primeiro número: \n”);
 scanf(“%f”, &n1);
 printf(“Digite o valor do segundo número: \n”);
 scanf(“%f”, &n2);
 printf(“Digite o valor do terceiro número: \n”);
 scanf(“%f”, &n3);
 printf(“Digite o valor do quarto número: \n”);
 scanf(“%f”, &n4);
 printf(“Digite o valor do quinto número: \n”);
 scanf(“%f”, &n5);
 soma = n1 +n2 + n3 + n4 + n5;
 media = soma / 5.0;
 printf(“O valor da média entre os números digitados: %.2f, %.2f, %.2f, %.2f, 
%.2f é = %.2f.”, n1, n2, n3, n4, n5, media);
 return 0;
}
Obs.: neste exemplo, suponha que o usuário tenha digitado os valores 3; 7,5; 9; 10 e 32,5. Observe que os núme-
ros foram digitados com vírgula ao invés do ponto decimal; isto se deu devido à utilização da função setloca-
le(LC_ALL, “Portuguese”);. Observe também que os números mostrados na saída estão com duas casas deci-
mais; isso se deve às referências aos valores na função printf() estarem especificadas como %.2f e com vírgulas 
devido à função setlocale();
Nesse caso, a mensagem que aparecerá para o usuário está representada na Figura 26.
57
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Figura 26 – Representação de uma saída de dados
Digite o valor do primeiro número:
__ 3
Digite o valor do segundo número:
__ 7,5
Digite o valor do terceiro número:
__ 9
Digite o valor do quarto número:
__ 10
Digite o valor do quinto número:
__ 32,5
O valor da média entre os números digitados: 
3,00, 7,50, 9,00, 10,00, 32,50 é = 12,40.
Fonte: Elaborada pelo autor.
Problema 6: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) três 
números reais e imprima as somas parciais desses números.
#include <stdio.h>
#include <locale.h>
int main() {
 setlocale(LC_ALL, “Portuguese”);
 float num1, num2, num3, somaParcial;
 
 printf(“Informar o primeiro número: “);
 scanf(“%f”, &num1);
 printf(“Informar o segundo número: “);
 scanf(“%f”, &num2);
 printf(“Informar o terceiro número: “);
 scanf(“%f”, &num3);
 somaParcial = 0.0;
 printf(“SomaParcial = %.2f\n”, somaParcial);
 somaParcial = somaParcial + num1;
 printf(“SomaParcial + %.2f = %.2f\n”, num1, somaParcial);
 somaParcial += num2;
 printf(“SomaParcial + %.2f = %.2f\n”, num2, somaParcial);
 somaParcial += num3;
 printf(“SomaParcial + %.2f = %.2f\n”, num3, somaParcial);
 
 return 0;
}
58
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
Saída do programa:
Informar o primeiro número: 10,5
Informar o segundo número: 20,3
Informar o terceiro número: 40,5
SomaParcial = 0,00
SomaParcial + 10,50 = 10,50
SomaParcial + 20,30 = 30,80
SomaParcial + 40,50 = 71,30
Problema 7: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) as letras 
“a” e “r” e imprima a palavra “arara” chamando a função printf() uma única vez.
#include <stdio.h>
int main(){
 char letra1, letra2;
 
 printf(“Informar o primeira letra: “);
 scanf(“%c”, &letra1);
 fflush(stdin);
 printf(“Informar o segunda letra: “);
 scanf(“%c”, &letra2);
 fflush(stdin);
 printf(“Palavra = %c%c%c%c%c\n”, letra1, letra2, 
letra1, letra2, letra1);
 return 0;
}
Saída do programa:
Informar a primeira letra: a
Informar a segunda letra: r
Palavra = arara
Problema 8: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) três 
números inteiros e imprima (exiba) sua soma e seu produto, deixando uma linha em branco entrar após as entra-
das e entre linhas impressas (exibidas).
59
Construção de Algoritmos | Unidade 3 - Função de Entrada e Função de Saída em C
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL, “Portuguese”);
 
 int num1, num2, num3, soma, produto;
 
 printf(“Informar o primeiro número: “);
 scanf(“%d”, &num1);
 printf(“Informar o segundo número: “);
 scanf(“%d”, &num2);
 printf(“Informar o terceiro número: “);
 scanf(“%d”, &num3);
 soma = num1 + num2 + num3;
 produto = num1 * num2 * num3;
 printf(“\n”);
 printf(“Soma de %d + %d + %d = %d\n”, num1, num2, num3, soma);
 printf(“\n”);
 printf(“Produto de %d x %d x %d = %d\n”, num1, num2, num3, produto);
 
 return 0;
}
Saída do programa:
Informar o primeiro número: 10
Informar o segundo número: 20
Informar o terceiro número: 30
Soma de 10 + 20 + 30 = 60
Produto de 10 x 20 x 30 = 6000
Síntese da unidade
Por meio desta unidade, você foi capaz de entender os conceitos sobre as funções de entrada e saída para a 
linguagem de programação C. Além disso, foi possível testar pequenos programas e observar a aplicação dessas 
funções na prática.
60
Considerações finais
Parabéns, você chegou ao final da unidade 3 desta disciplina e aprendeu 
a aplicar as funções de entrada e de saída de dados para a programação 
de computadores utilizando a linguagem C. Com isso, o seu poder para 
construir programas de computador ficou maior. Agora, siga em frente!

Outros materiais