Buscar

Notas de Aula -Computacao - EngCivil

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

Universidade de Mogi das Cruzes 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Computação 
 
Profa. MSc. Viviane Guimarães Ribeiro 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Mogi das Cruzes, SP 
2013
 2
Sumário 
 
APRESENTAÇÃO DA DISCIPLINA ...................................................................................................... 4 
EMENTA ................................................................................................................................................... 4 
OBJETIVO DA DISCIPLINA ......................................................................................................................... 4 
TÓPICOS DO SEMESTRE ............................................................................................................................ 4 
METODOLOGIA ......................................................................................................................................... 4 
AVALIAÇÃO .............................................................................................................................................. 4 
DATAS IMPORTANTES ............................................................................................................................... 5 
BIBLIOGRAFIA BÁSICA ............................................................................................................................. 5 
BIBLIOGRAFIA COMPLEMENTAR .............................................................................................................. 5 
1. INTRODUÇÃO À LÓGICA ................................................................................................................ 6 
2. ALGORITMOS ...................................................................................................................................... 9 
2.1. FORMAS DE REPRESENTAÇÃO DE UM ALGORITMO ........................................................................... 10 
3. FLUXOGRAMA .................................................................................................................................. 11 
4. PSEUDOCÓDIGO ............................................................................................................................... 16 
5. LINGUAGEM C ................................................................................................................................... 20 
5.1. BREVE HISTÓRICO ........................................................................................................................... 20 
5.2. AMBIENTE DE DESENVOLVIMENTO.................................................................................................. 20 
5.3. TIPOS DE DADOS .............................................................................................................................. 22 
5.4. DECLARAÇÃO DE VARIÁVEIS .......................................................................................................... 22 
5.5. OPERADORES ................................................................................................................................... 23 
5.5.1. Atribuição ............................................................................................................................... 23 
5.5.2. Aritméticos .............................................................................................................................. 23 
5.5.3. Incremento e Decremento ....................................................................................................... 24 
5.5.4. Aritmético de Atribuição ......................................................................................................... 24 
5.5.5. Relacionais .............................................................................................................................. 24 
5.5.6. Lógicos - && - E..................................................................................................................... 24 
5.5.7. Lógicos - || - OU ..................................................................................................................... 25 
5.5.8. Lógicos - ! – NÃO ................................................................................................................... 25 
5.5.9. Condicional Ternário .............................................................................................................. 25 
5.5.10. Tabela de Precedência .......................................................................................................... 25 
6. ESTRUTURA SEQUENCIAL ............................................................................................................ 26 
6.1. SAÍDA DE DADOS ............................................................................................................................. 26 
7.1.1. printf() ..................................................................................................................................... 26 
6.1.2. puts() ....................................................................................................................................... 30 
6.1.3. putchar() ................................................................................................................................. 32 
6.2. ENTRADA DE DADOS ....................................................................................................................... 34 
6.2.1. scanf() ..................................................................................................................................... 34 
6.2.2. gets() ....................................................................................................................................... 36 
6.2.3. getchar() .................................................................................................................................. 37 
6.2.4. getche() ................................................................................................................................... 38 
6.2.5. getch() ..................................................................................................................................... 40 
7. ESTRUTURA DE DECISÃO .............................................................................................................. 45 
7.1. IF() ................................................................................................................................................... 45 
7.2. IF() ELSE .......................................................................................................................................... 47 
7.3. ENCADEAMENTO DE IF() .................................................................................................................. 50 
7.4. SWITCH() ......................................................................................................................................... 53 
8. ESTRUTURA DE REPETIÇÃO ........................................................................................................ 67 
8.1. FOR() ............................................................................................................................................... 67 
8.2. WHILE() ........................................................................................................................................... 73 
8.3. DO... WHILE() ................................................................................................................................... 76 
 3
8.4. COMANDO BREAK ........................................................................................................................... 78 
8.5. COMANDO CONTINUE ......................................................................................................................79 
APÊNDICE A – BIBLIOTECAS ............................................................................................................ 82 
APÊNDICE B - FUNÇÕES MATEMÁTICAS ..................................................................................... 83 
APÊNDICE C – PALAVRAS RESERVADAS NA LING. C ............................................................... 84 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 4
Apresentação da Disciplina 
 
Nome da Disciplina: Computação 
Professora MSc. Viviane Guimarães Ribeiro 
E-mail: viviane_umc@yahoo.com.br 
 
Ementa 
Conceitos de algoritmo, programação estruturada utilizando a Linguagem C e técnicas de 
programação estruturada. 
 
Objetivo da Disciplina 
Ao final do semestre letivo o aluno deverá ter as habilidades, os conhecimentos e as 
competências em informática necessárias para que possa utilizar o computador como 
ferramenta na vida acadêmica e profissional. Além disso, o aluno deverá ter conhecimento em 
conceitos básicos de programação estruturada. 
 
Tópicos do Semestre 
1) Algoritmo e Programação Estruturada: Conceitos 
2) Representação de Algoritmos: Descrição Narrativa 
3) Representação de Algoritmos: Fluxograma 
4) Representação de Algoritmos: Pseudocódigo / Português Estruturado / Portugol 
5) Estruturas de Controle: Sequencial 
6) Estruturas de Controle: Decisão Simples e Composta 
7) Estruturas de Controle: Decisão Encadeada e Multipla Escolha 
8) Estrutura de Repetição com Variável de Controle 
9) Estrutura de Repetição com Teste no Início e no Fim 
10) Linguagem C: Conceitos 
11) Linguagem C: Comandos de Entrada e Saída 
12) Linguagem C: Comando de Decisão Simples e Composta - if 
13) Linguagem C: Comando de Decisão de Múltipla Escolha - switch 
14) Linguagem C: Comando de Repetição - for 
15) Linguagem C: Comando de Repetição - while 
16) Linguagem C: Comando de Repetição - do.. while 
17) Linguagem C: Uso dos comandos break e continue 
18) Linguagem C: Vetores e MatrizesIntrodução à Lógica 
 
Metodologia 
Aulas expositivas e práticas com acompanhamento dos alunos nos computadores. Exercícios 
de fixação. 
 
Avaliação 
M1 = P1(70%) + AP(20%) + Listas(10%) 
 
ND = P1(70%) + AP(20%) + Listas(10%) 
 
M2 = 0,7*ND + 0,3*PI 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 5
MS = (M1+M2*2)/3 
 
 
Onde: P1 e P2 são provas individuais agendadas. 
AP são as atividades práticas realizadas em sala (sem a necessidade de agendamento 
prévio) ou em casa. 
PI nota da Prova Integrada (conforme instrução normativa UMC 002/2010). 
Listas exercícios individuais realizados em casa entregues em datas pré-
estabelecidas. 
 
Datas Importantes 
P1 – 01/10 
P2 – 03/12 
Recuperação – 17/12 
 
OBS1: Não será aplicada prova substitutiva. 
OBS2: A disciplina tem caráter acumulativo, portanto em todas as provas será cobrado 
todo o conteúdo estudado até o momento no semestre. 
 
Bibliografia Básica 
 
• SALIBA, Walter Luiz Caram, Técnicas de Programação: Uma abordagem estruturada, 
Makron Books, São Paulo, 1993-2005. 
 
• GUIMARÃES, Ângelo de Moura; LAGES, Newton Alberto de Castilho, Algoritmos e 
Estruturas de Dados, Livros Técnicos e Científicos, Rio de Janeiro, 1994. 
 
• BOENTE, Alfredo, Aprendendo a programar em linguagem C – do básico ao avançado, 
Brasport, Rio de Janeiro, 2003. 
 
• PEREIRA, Silvio do Lago, Algoritmo e Lógica de Programação em C: uma abordagem 
didática, Editora Érica, São Paulo, 2010. 
 
Bibliografia Complementar 
 
• SCHILDT, Herbert, C completo e total, Pearson Makron Books, São Paulo, 2004. 
 
• FARRER, H. et all, Algoritmos Estruturados, Livros Técnicos e Científicos, Rio de Janeiro, 
1999. 
 
• MANZANO, José Augusto Navarro Garcia; OLIVEIRA, Jayr Figueiredo de, Algoritmos: 
Lógica para desenvolvimento de programação de computadores, Editora Érica, São Paulo, 
2004. 
 
• HICKSON, Rosângela, Aprenda a programar em C, C++ e C#, Editora Campus, Rio de 
Janeiro, 2002. 
 
• CHILDT, Herbert, Linguagem C: Guia do usuário, McGraw-Hill, São Paulo, 1986. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 6
1. Introdução à Lógica 
 
A palavra lógica é originária do grego logos, que significa linguagem racional. De 
acordo com o dicionário Michaelis, lógica é a análise das formas e leis do pensamento, mas 
não se preocupa com a produção do pensamento, quer dizer, não se preocupa com o conteúdo 
do pensamento, mas sim com a forma deste, isto é, com a maneira pela qual um pensamento 
ou uma ideia são organizados e apresentados, possibilitando que cheguemos a uma conclusão 
por meio do encadeamento dos argumentos. 
Os argumentos podem ser dedutivos ou indutivos. Os argumentos indutivos são 
aqueles com que, a partir dos dados, se chega a uma resposta por meio da analogia, ou seja, 
pela comparação com algo conhecido, porém esse tipo de raciocínio não oferece certeza de 
que a resposta será de fato verdadeira. É necessário conhecer os fatos ou as situações para 
que se possa fazer a comparação. Por exemplo: ontem não havia nuvens no céu e não 
choveu. Hoje não há nuvens no céu, portanto não vai chover. 
Já os argumentos dedutivos são aqueles cuja conclusão é obtida como conseqüência 
das premissas, isto é, por meio da análise das situações ou fatos, pode-se obter a resposta. 
Trabalha-se com a forma das sentenças, sem que haja a necessidade do conhecimento prévio 
das situações ou fatos. Por exemplo: Joana é uma mulher. As mulheres são seres humanos. 
Logo, Joana é um ser humano. 
Desde os tempos primitivos o homem utiliza-se do raciocínio lógico para a realização 
de suas atividades. Isso é comprovado pelo fato de ele ter estabelecido sequências adequadas 
para a realização de suas tarefas com sucesso. Podemos citar alguns exemplos relacionados 
às suas atividades do dia – a – dia: 
• Uma pessoa adulta, para tomar banho, primeiro tira a roupa para não molhá-la 
e também para estabelecer contato direto entre sua pele e a água. 
• Uma criança, desde pequena, aprende que, para chupar uma bala, é preciso 
tirá-la da embalagem. 
 
A lógica é aplicada a diversas ciências. Na informática e na computação, aplica-se a 
todas as suas áreas, para a construção e funcionamento do hardware e do software. Por 
exemplo, na construção de um circuito integrado para o teclado, trabalha-se com o conceito de 
portas lógicas para a verificação da passagem ou não de pulsos elétricos, a fim de que seja 
estabelecida uma comunicação entre os componentes. Já na construção de software, é por 
meio do raciocínio lógico que o homem constrói algoritmos que podem ser transformados em 
programas de computador capazes de solucionar problemas cada vez mais complexos. 
Como foi visto anteriormente, a lógica preocupa-se com a forma da construção de 
pensamento. Isto permite que se trabalhe com variáveis para que se possa aplicar o mesmo 
raciocínio a diferentes problemas. Por exemplo: 
 
João é cientista. 
Todo cientista é estudioso. 
Logo, João é estudioso. 
 
Substituindo as palavras “João” e “estudioso” por A e B: 
 
A é cientista. 
Todo cientista é B. 
Logo, A é B. 
 
O raciocínio lógico nos conduz a uma resposta que pode ser “verdadeiro” ou “falso”. Na 
construção de algoritmos para a solução de problemas computacionais, trabalha-se com esse 
tipo de raciocínio. As informações a serem analisadas são representadas por variáveis que 
posteriormente receberão valores. As variáveis, por sua vez, representarão as premissas. Por 
exemplo: Dados dois valores quaisquer, deseja-se saber qual é o maior. 
Os dois valores são representados pelas variáveis A e B. Analisa-se o problema a fim 
de averiguar qual é a melhormaneira de descobrir a solução, então se monta a sequência para 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 7
que seja verificada a questão. Para descobrir a solução, pode-se partir de problemas similares 
já resolvidos e, por analogia, aplicar o mesmo método ao problema atual, ou podem-se estudar 
formas de resolvê-lo buscando dados com especialistas no assunto em questão. 
Neste caso, vamos substituir as variáveis por valores conhecidos, apenas como 
modelo para facilitar o entendimento do raciocínio aplicado: 
A será substituída por 7 e B, por 19. 
Para que seja verificado o maior valor, deve-se fazer uma comparação, por exemplo: 7 
é maior que 19? 
Logo tem-se a resposta falso. 
Então, pode-se concluir que 19 é o maior número entre os dois. 
Quando os valores são desconhecidos, na representação para a solução do problema, 
trabalha-se apenas com as variáveis: 
A é maior que B? 
Se a resposta é “verdadeiro”, A é o maior valor. 
Se a resposta é “falso”, B é o maior valor. 
 
Exercícios 
 
1. Dadas as premissas a seguir, verifique quais são as sentenças que representam a 
conclusão correta: 
I- Cavalos são animais. Animais possuem patas, Logo: 
a. Cavalos possuem patas. 
b. Todos os animais são cavalos. 
c. Os cavalos possuem quatro patas. 
 
II- Retângulos são figuras que têm ângulos. Temos uma figura sem nenhum ângulo. Logo: 
a. Essa figura pode ser um circulo. 
b. Não é possível tirar conclusões. 
c. Essa figura não é um retângulo. 
 
III- Se o verde é forte, o vermelho é suave. Se o amarelo é suave, o azul é médio. Mas ou 
o verde é forte ou o amarelo é suave. Forte, suave e médio são as únicas tonalidades 
possíveis. Logo: 
a. O azul é médio. 
b. Ou o vermelho é suave ou o azul é médio. 
c. O amarelo e o vermelho são suaves. 
 
2. Sabe-se que existem pessoas desonestas e que existem corruptos. Admitindo-se 
verdadeira a frase “Todos os corruptos são desonestos”, é correto concluir que: 
a. quem não é corrupto é honesto. 
b. existem corruptos honestos. 
c. alguns honestos podem ser corruptos. 
d. existem mais corruptos do que honestos. 
e. existem desonestos que são corruptos. 
 
3. Se é verdade que “Alguns A são R” e que “Nenhum G é R”, então é necessariamente 
verdadeiro que: 
a. algum A não é G. 
b. algum A é G. 
c. nenhum A é G. 
d. algum G é A. 
e. nenhum G é A. 
 
4. Em uma comunidade, todo trabalhador é responsável. Todo artista, se não for filósofo, ou é 
trabalhador ou é poeta. Ora, não há filósofo e não há poeta que não seja responsável. 
Portanto, tem-se que, necessariamente: 
a. todo responsável é artista. 
b. todo responsável é filósofo ou poeta. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 8
c. todo artista é responsável. 
d. algum filósofo é poeta. 
e. algum trabalhador é filósofo. 
 
5. Analise e descreva uma maneira de mover os discos do pino A para o pino C, usando o 
pino B como espaço auxiliar, de modo que: 
a. apenas um disco seja movido de cada vez; 
b. nenhum disco seja posicionado sobre outro disco de diâmetro menor; 
c. os discos sejam imediatamente transferidos de um pino para o outro. 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 9
2. Algoritmos 
 
Um algoritmo é uma sequência de ações finitas encadeadas e lógicas que devem ser 
seguidas para a resolução de um problema ou para a execução de uma tarefa. Os algoritmos 
são amplamente utilizados nas disciplinas ligadas à área de ciências exatas. 
No dia a dia, as pessoas utilizam-se de algoritmos de maneira intuitiva, sem que haja a 
necessidade de planejar previamente a sequência de passos para a resolução das tarefas 
quotidianas. Dentre os inúmeros exemplos existentes, podemos citar: 
 
1. Quando uma pessoa prepara um bolo, segue uma receita, que nada mais é do 
que um algoritmo em que casa instrução é um passo a ser seguido para que o 
prato fique pronto com sucesso: 
• Bata 4 claras em neve; 
• Adicione 2 xícaras de açúcar; 
• Adicione 2 xícaras de farinha de trigo, 4 gemas, 1 colher de fermento e 2 
colheres de chocolate; 
• Bata por 3 minutos; 
• Unte uma assadeira com margarina e farinha de trigo; 
• Coloque o bolo para assar durante 20 minutos em temperatura média. 
 
2. Um motorista que necessita efetuar a troca de um pneu furado segue uma rotina 
para realizar esta tarefa: 
• Verifica qual pneu está furado; 
• Posiciona o macaco para levantar o carro; 
• Pega o estepe; 
• Solta os parafusos; 
• Substitui o pneu furado; 
• Recoloca os parafusos; 
• Desce o carro; 
• Guarda o pneu furado e as ferramentas utilizadas. 
 
Porém, no contexto da ciência da computação, estamos interessados em definir 
algoritmos que serão executados por computadores e não por pessoas. Assim, ao definir um 
algoritmo computacional, precisamos nos restringir a um conjunto bastante limitado de passos 
(ou operações) que um computador é capaz de executar. Além disso, precisamos de uma 
notação que permita descrever precisamente estes passos, sem nenhuma ambiguidade. 
Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três 
fases fundamentais: entrada de dados, processamento e saída de dados. 
 
 
 
 
 
 
Entrada: são os dados necessários para o inicio do processamento. 
Processamento: são procedimentos que utilizam os dados de entrada para chegar ao 
resultado final. 
Saída: são os dados já processados. 
 
A figura a baixo faz uma analogia entre o processamento computacional e o humano. 
 
Entrada Processamento Saída 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 10
 
 
Imagine o seguinte problema: Calcular a média final de um aluno. Pelas provas os 
alunos receberão 2 notas: N1, N2. Onde: 
 
Média Final = (nota1 + nota2 * 2 )/3 
 
a) Quais são os dados de entrada? 
R: Os dados de entrada são nota1 e nota2. 
 
b) Qual será o processamento a ser utilizado? 
R: O procedimento será multiplicar a nota2 por dois, somar o resultado com o valor 
da nota1 e dividir o resultado da soma por 3. 
c) Quais serão os dados de saída? 
R: O dado de saída será a média final 
2.1. Formas de representação de um algoritmo 
 
Um algoritmo pode ser representado das seguintes maneiras: 
 
• Descrição Narrativa: utiliza linguagem natural para especificar os passos para a 
realização das tarefas. Isso dá margens a más interpretações e ambigüidades. 
Não é muito utilizada. 
• Fluxograma: é uma forma universal de representação, pois utiliza de formas 
geométricas para ilustrar os passos a serem seguidos para a resolução dos 
problemas. Bastante utilizado, é também chamados por alguns autores de 
diagrama de blocos. 
• Diagrama de Chapin (Diagrama Nassi-Shneiderman/Diagrama N-S): apresenta 
a solução do problema por meio de um diagrama de quadros com uma visão 
hierárquica e estruturada. Esse tipo de diagrama não é muito utilizado, pois é 
muito difícil representar recursividade, entre outros procedimentos. 
• Pseudocódigo (Portugol/Português Estruturado): utiliza linguagem estruturada. 
É bastante utilizado para representação da resolução de problemas 
computacionais. 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 11
3. Fluxograma 
 
É uma representação gráfica de algoritmos onde formas geométricas diferentes 
implicam ações (instruções, comandos) distintas. Tal propriedade facilita o entendimento das 
ideias contidas nos algoritmos e justifica sua popularidade. 
A seguir são apresentados os principais símbolos e suas descrições. É importante 
lembrar que existem pequenas diferenças entreas simbologias utilizadas pelos diferentes 
autores. 
 
Início/Fim 
 
 
 
Fluxo de Dados 
 
 
 
 
 
 
Entrada de dados 
 
 ou ou 
 
 
 
 
 
 
Saída de dados 
 
 ou 
 
Atribuição 
 
 
 
Conector 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 12
 
Decisão 
Se 
 
 
 
Escolha 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 13
 
Repetição 
Para 
 
 
 
Enquanto 
 
 
 
Repita 
 
 
 
 
 
Em um fluxograma, os passos de um algoritmo são representados por símbolos e a 
ordem de execução desses passos é representada por setas conectando os símbolos. Cada 
símbolo pode conter uma anotação indicando sua finalidade específica. 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 14
Exemplo 1: 
 
 
 
 Note que todo dado manipulado pelo computador deve estar armazenado em alguma 
posição de sua memória. Uma posição de memória contendo um dado que pode ser alterado 
pelo algoritmo é denominada variável. 
Basicamente uma variável possui três atributos: um nome, um tipo de dado associado 
à mesma e a informação por ela guardada. 
Toda variável possui um nome que tem a função de diferenciá-la das demais. Cada 
linguagem de programação estabelece suas próprias regras de formação de nomes de 
variáveis. 
Adotaremos as seguintes regras: 
• Um nome de variável deve necessariamente começar com uma letra; 
• Um nome de variável não deve conter nenhum símbolo especial, exceto a 
sublinha ( _ ). 
 
Obviamente é interessante adotar nomes de variáveis relacionados às funções que 
serão exercidas pelas mesmas dentro de um programa. 
Outro atributo característico de uma variável é o tipo de dado que ela pode armazenar. 
Este atributo define a natureza das informações contidas na variável. Por último, há o atributo 
informação, que nada mais é do que a informação útil contida na variável. 
Uma vez definidos, os atributos nome e tipo de dados de uma variável não podem ser 
alterados e assim permanecem durante toda a sua existência, desde que o programa que a 
utiliza não seja modificado. Por outro lado, o atributo informação está constantemente sujeito a 
mudanças, de acordo com o fluxo de execução do programa. Por exemplo, se definirmos que 
uma determinada variável é chamada salário e é destinada a guardar números reais, é possível 
que seu conteúdo seja, num dado instante, igual a 1.500,00 e posteriormente modificado para 
3.485,21, de acordo com o programa executado. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 15
Em resumo, o conceito de variável foi criado para facilitar a vida dos programadores, 
permitindo acessar informações na memória dos computadores por meio de um nome, em vez 
do endereço de uma célula de memória. 
 
Exercícios 
1. Explique o que é uma variável e escreva a regra para criação de nome de variáveis em 
algoritmos. 
2. Dados os identificadores (nomes das variáveis) abaixo, sublinhe apenas aqueles 
nomes que são aceitos em Algoritmos. 
 
VALOR SALARIO-LIQUIDO X X2 A1B2C3 
1ºnome 1 3 x 4 Maria Km/h 
preço ‘Nota’ Média XYZ SalarioLiquido 
preco Nota-do-aluno NoTa Algoritmo profissao 
 
3. Escreva um algoritmo em Fluxograma para cada situação abaixo: 
a) Carlos precisa calcular a área de uma sala. Sabe-se que a sala é retangular. 
b) O professor de matemática precisa calcular a média de um aluno. Para tanto ele 
precisa levar em consideração 4 notas do aluno. 
c) Ler um número inteiro e imprimir seu sucessor e seu antecessor. 
d) Ler o saldo de uma aplicação e imprimir o novo saldo, considerando um reajuste de 
1%. 
e) Ler duas variáveis inteiras e trocar o conteúdo entre elas apresentando o nome de 
cada variável com seu respectivo valor ao usuário. 
f) O preço de um produto ao consumidor é a soma do preço de custo e da porcentagem 
do imposto. Faça um algoritmo que leia o nome do produto, o custo de fábrica e a 
porcentagem do imposto. Exiba o nome do produto e o preço final ao consumidor. 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 16
4. Pseudocódigo 
 
O pseudocódigo é um tipo de algoritmo que utiliza uma linguagem flexível, 
intermediária entre a linguagem natural e a linguagem de programação. Aqui, cada símbolo 
utilizado no fluxograma possui uma palavra chave equivalente, o que torna o fluxograma livre 
de ambiguidades. 
Esta forma de representação de algoritmos é mais rica em detalhes, como a definição 
dos tipos das variáveis usadas. 
 Na verdade, esta representação é suficiente para permitir que a tradução de um 
algoritmo nela representado para uma linguagem de programação específica seja praticamente 
direta. 
Forma geral: 
 
 Algoritmo <nome do algoritmo>; 
 <declaração de variáveis>; 
 <subalgoritmos> 
 Início 
 <corpo do algoritmo>; 
 Fim 
 
 
Exemplo 1: 
 
Algoritmo Media; Identificação do algoritmo 
Var nota1, nota2, mf: real; Declaração de variáveis 
Inicio 
Escreva (“Entre com a primeira nota: ”); 
Leia (nota1); 
Escreva (“Entre com a segunda nota: ”); 
Leia (nota2); Corpo do algoritmo 
mf ← (nota1 + nota2 * 2) / 3; 
Escreva (“Média final: ”, mf); 
Fim 
 
 
Para definir o nome de um algoritmo, deve-se seguir a mesma regra para criação de 
nomes de variáveis, ou seja, o nome do algoritmo deve iniciar com uma letra e não conter 
caracteres especiais. 
Todas as variáveis utilizadas no algoritmo devem ser declaradas. É neste momento 
que definimos o nome da variável e o tipo de dado que será armazenado na mesma. Na 
confecção de algoritmos, utilizamos os tipos de dados primitivos (literal, lógico, inteiro e real), 
uma vez que os algoritmos apenas representam a solução dos problemas. Já na confecção de 
programas existem desdobramentos para esses tipos de dados a fim de adequá-los melhor ao 
propósito de cada linguagem e à resolução prática dos problemas. Veja na tabela a seguir os 
tipos de dados primitivos utilizados em algoritmos. 
 
Tipo de Dados Definição Capacidade de armazenamento 
inteiro Representa números inteiros 
(sem casas decimais) positivos 
ou negativos. 
2 bytes = 28 x 28 = 65.536 
possibilidades (-32.768 à 32.767). 
real Representa números reais (com 
casas decimais) positivos ou 
negativos. 
4 bytes = 28 x 28 x 28 x 28 = 
4.294.967.296 possibilidades 
(-3,4E-38 à +3,4E+38). 
literal Poderá receber letras, números e 
símbolos. 
OBS: Os números armazenados 
1 byte para cada caracter 
necessário. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 17
em uma variável cujo tipo de 
dado é literal não podem ser 
utilizados para cálculo. 
lógico Poderá ser verdadeiro (1) ou falso 
(0) 
1 byte 
 
O corpo do algoritmo é a área reservada para a resolução do problema. Nesta parte, 
devem-se escrever todos os passos lógicos necessários para solucionar o problema, tais 
como: 
• representar a entrada de valores para as variáveis; 
• representar as operações de atribuição, lógicas e aritméticas; 
• representar a abertura e fechamento de arquivos; 
• representar os laços de repetição; 
• representar a exibição dos resultados; 
• representar as estruturas de decisão; entre outros. 
 
 
Início/Fim 
 
 
 
Início 
 
Fim 
 
 
Entrada de dados 
 
Leia (<variável>); 
 
Saída de dados 
 
Escreva (<valor a ser impresso>); 
 
Atribuição 
 
<variável> ← <valor>; 
 
 
DecisãoSe 
 
Se (<condição>) 
 Então 
 <Comando 1>; 
 Senão 
 <Comando 2>; 
Fim_Se 
 
Escolha 
 
Escolha (<variável>) 
 Caso <valor_1>: 
 <Comando 1>; 
 Caso <valor_2>: 
 <Comando 2>; 
..... 
 Caso <valor_n>: 
 <Comando n>; 
 Senão 
 <Comando n + 1>; 
Fim_Escolha 
 
 
 
 
Para 
 
Para <var> de <início> até <fim> incr de <inc> faça 
 <comando>; 
Fim_Para 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 18
Repetição 
 
 
 
Enquanto 
 
Enquanto (<condição>) faça 
 <comando>; 
Fim_Enquanto 
 
Repita 
 
Repita 
 <comando>; 
até que (<condição>); 
 
 
 
Exercícios 
 
1. Classifique os dados especificados abaixo de acordo com seu tipo (inteiro, real, 
literal ou lógico). 
 
0.7845 “-0.0” 
“+35987” “abc” 
.V. .F. 
“.F.” -0.0 
32 +36 
32.0 -1 
 
2. Preencha a “Declaração de variáveis” com o tipo de dados, levando em consideração 
os dados armazenados em cada uma das variáveis da tabela abaixo: 
 
Identificadores num1 num2 sexo letra Profissao nome media peso 
Conteúdo 
(Dados) 
100 4 F .V. Médico Fernanda 5.7 67.8 
 
Var 
 num1, num2: ________________________________ 
 sexo: ______________________________________ 
 letra: _______________________________________ 
 Profissao,nome: ______________________________ 
 media, peso: _________________________________ 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 19
3. Escreva um algoritmo em Pseudocódigo para cada situação abaixo: 
a. O professor de matemática precisa calcular a média de um aluno. Para tanto ele 
precisa levar em consideração 4 notas do aluno. 
b. Ler um número inteiro e imprimir seu sucessor e seu antecessor. 
c. Ler duas variáveis inteiras e trocar o conteúdo entre elas apresentando o nome de 
cada variável com seu respectivo valor ao usuário. 
d. O preço de um produto ao consumidor é a soma do preço de custo e da porcentagem 
do imposto. Faça um algoritmo que leia o nome do produto, o custo de fábrica e a 
porcentagem do imposto. Exiba o nome do produto e o preço final ao consumidor. 
e. Dados o tamanho de um arquivo (em bits), bem como a velocidade da conexão (em 
bits por segundo), informe o tempo necessário para o download do arquivo. 
f. Dados um capital C, uma taxa de juros mensal fixa J e um período de aplicação em 
meses M, informe o montante F no final do período (F = C * (1 + J/100)M). 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 20
5. Linguagem C 
 
Para que um computador possa desempenhar uma tarefa é necessário que esta seja 
detalha passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se 
chama de programa. Neste sentido, um programa nada mais é que um algoritmo escrito numa 
forma compreensível pelo computador. 
Um programa pode ser escrito em diversas linguagens de programação, como por 
exemplo: Pascal, Fortran, COBOL, Clipper, Basic, C, etc. 
Durante este semestre iremos estudar a linguagem C. 
 
5.1. Breve Histórico 
 O C é uma linguagem de programação genérica que é utilizada para a 
criação de programas diversos como: processadores de texto, planilhas 
eletrônicas, sistemas operacionais, programas de comunicação, programas 
para automação industrial, gerenciadores de banco de dados, programas de 
projetos assistidos por computador, programas de solução de problemas da 
Engenharia, Física, Química e outras ciências. 
As instruções da Linguagem C consistem de termos semelhantes a expressões 
algébricas, acrescidas de certas palavras chave em inglês. 
 C foi desenvolvida a partir de duas linguagens anteriores, a BCPL e B, criadas no final 
da década de 60. Ambas as linguagens eram definidas sem tipo, ou seja, qualquer dado 
ocupava um mesmo espaço na memória. 
A linguagem C foi criada por Dennis Ritchie e Ken Thompson, em 1972, no centro de 
pesquisa da Bell Laboratories. Sua primeira utilização importante foi a reescrita do sistema 
Unix. Em meados da década de 70, o Unix foi liberado para utilização nas universidades, 
dando o impulso para o sucesso da linguagem. 
 ANSI C (American National Standards Institute) é a versão da linguagem C 
padronizada em 1989 nos EUA como também no mundo através da International Standards 
Organization — ISO. 
C++ é uma linguagem derivada da linguagem C. O conjunto de instruções que fazem 
parte da linguagem C também é parte de C++. Os elementos principais que foram adicionados 
à linguagem C para dar origem a C++ consistem na ideia de programação orientada ao 
objetos. 
 Qualquer programa em C compilado no padrão ANSI também pode ser compilado em 
C++, ou seja, C e C++ são compatíveis. 
 
5.2. Ambiente de Desenvolvimento 
 Um compilador, também chamado de ambiente de desenvolvimento, é um programa 
que interpreta os comandos escritos em uma linguagem de programação e os converte em 
uma forma que o computador seja capas de executar. Em geral, há vários compiladores 
diferentes para uma mesma linguagem de programação. Como exemplo de compiladores para 
a linguagem C, podemos citar o Turbo C (proprietário), o DEV C (gratuito) e o Pelles C 
(gratuito). No decorrer deste semestre, utilizaremos o ambiente de desenvolvimento Pelles C1. 
 
 
5.2.1 Criação de programas utilizando o Pelles C 
Para desenvolver um programa usando o compilador Pelles C for Windows, você deve, 
para cada programa, proceder da seguinte forma: 
1º passo: inicie a execução do programa Pelles C; 
2º passo: no menu desse programa, selecione a opção File � New � Project. 
 
1
 O compilador Pelles C for Windows pode ser obtido gratuitamente em www.smorgasbordet.com/pellesc 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 21
3º passo: na janela New Projects, selecione Win32 Console program (EXE), digite o 
nome de projeto e clique no botão OK. 
4º passo: no menu, selecione a opção File � New � Source code. 
5º passo: digite o programa em linguagem C. 
6º passo: no menu, selecione a opção File � Save as, digite o nome do programa 
(que pode ser o mesmo dado ao projeto) e clique no botão Salvar. 
7º passo: clique no botão Sim, da caixa que apresenta a pergunta “Do you want to add 
the file ‘...’ to the current Project? ”. 
 8º passo: no menu, clique no botão Execute ( ). 
 
 
Figura 1- Tela de digitação do programa 
 
 
Figura 2 - Tela de execução do programa 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 22
5.3. Tipos de dados 
 
Tipo de 
Dado 
Quantidade 
de Byte 
Descrição Faixa de 
Abrangência 
Equivalente em 
Algoritmo 
char 1 Armazena caracteres 
alfanuméricos 
-127 a 127 literal 
int 2 É utilizado para armazenar 
números inteiros negativos e 
positivos 
-32.767 a 
32.767 
inteiro 
float 4 Armazena números com casas 
decimais (números reais) 
Seis dígitos de 
precisão 
real 
double 8 Armazena números com casas 
decimais (números reais) 
Dez dígitos de 
precisão 
real 
void 1 É utilizado como retorno de 
funções e tipo de ponteiros 
- - 
bool 1 Valor booleano. Pode assumir 
um dos dois valores: true ou 
false NOTA: esse é um tipo 
que foi adicionado 
recentemente pelo padrão 
ANSI-C++. Nem todos os 
compiladores suportam-no. 
true ou false lógico 
5.4. Declaração de Variáveis 
Um programa em linguagem C não funciona se você não declarar suas variáveis. As 
variáveis são declaradas em qualquer lugar do programa, desde que antes de serem utilizadas. 
Uma declaração de variável consiste no nome de um tipo seguido do nome da variável 
(identificador),seguido de ponto-e-vírgula. 
Por exemplo: 
 int contador; 
 float acumulador; 
 
Inicializar uma variável significa atribuir um valor a ela na mesma instrução de sua 
declaração. Utiliza-se o operador de atribuição (=) para a definição do valor inicial. 
Exemplo: 
 int contador = 0; 
 float tempo = 30.00; 
 
Você pode usar quantos caracteres quiser para um nome de variável, sendo o primeiro 
caractere obrigatoriamente uma letra ou o sublinhado. 
Somente os 32 primeiros caracteres de um nome de variável são significativos e não é 
permitido o uso de uma palavra-chave da linguagem. Em C, letras maiúsculas e minúsculas 
são diferentes. 
Exemplo de um programa com definição de variáveis: 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 23
 
Figura 3 - Código fonte. Exemplo de declaração de variáveis. 
 
 
 
Figura 4 - Tela produzida pelo programa da figura 3. 
 
5.5. Operadores 
Um operador é um símbolo usado para criar expressões, a partir de constantes e 
variáveis. 
5.5.1. Atribuição 
É o sinal de igual (=). Atribui a expressão da direita à variável à sua esquerda. Em C 
podem ocorrer atribuições múltiplas. 
 
Operação Algoritmo Linguagem C 
Atribuição � = 
 
Ex.: 
 y = 3; 
 y = x = 3; 
 y = ( x = 3 ); 
5.5.2. Aritméticos 
Existem operadores denominados binários (trabalham com dois operandos) e unários 
(funcionam com um operando). 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 24
Operadores aritméticos binários 
 
Operação Algoritmo Linguagem C 
Soma + + 
Subtração - - 
Multiplicação * * 
Divisão inteira div / 
Divisão real / / 
Resto da divisão inteira mod % 
 
 
Operadores aritméticos unários 
 
Operação Algoritmo Linguagem C 
Menos unitário (mult. o valor 
ou variável por -1) 
- - 
5.5.3. Incremento e Decremento 
Incrementam (++) ou decrementam (–) a variável operando de 1. Podem ser prefixado 
ou pós- fixado. 
 Ex.: 
 x = x + 1; 
 ++ x; ou x++; adiciona 1 a x 
5.5.4. Aritmético de Atribuição 
Combinam operações aritméticas com atribuições. Compactam as operações. Segue a 
regra: 
variável operação= expressão 
 Ex.: 
 i += 2; equivale a i = i + 2 
 x *= y + 1; equivale a x = x * (y + 1) 
 t /= 2.5; equivale a t = t/2.5 
 p %= 5; equivale a p = p % 5 
5.5.5. Relacionais 
 
Operação Algoritmo Linguagem C 
Maior > > 
Maior ou igual >= >= 
Menor < < 
Menor ou igual <= <= 
Igual = == 
Diferente <> != 
 
 Os operadores relacionais têm precedência menor que os aritméticos. 
5.5.6. Lógicos - && - E 
Resulta 1 (V) somente se as duas expressões forem verdadeiras. 
 
A B Algoritmo Linguagem C A e B A&&B 
0 0 0 0 
0 1 0 0 
1 0 0 0 
1 1 1 1 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 25
5.5.7. Lógicos - || - OU 
Resulta 0 (F) somente se as duas expressões forem falsas. 
 
A B Algoritmo Linguagem C A ou B A||B 
0 0 0 0 
0 1 1 1 
1 0 1 1 
1 1 1 1 
5.5.8. Lógicos - ! – NÃO 
Resulta 1 (V) somente se a expressão for falsa. 
 
A B Algoritmo Linguagem C 
não A não B !A !B 
0 0 1 1 1 1 
0 1 1 0 1 0 
1 0 0 1 0 1 
1 1 0 0 0 0 
 
5.5.9. Condicional Ternário 
É o único que opera sobre três expressões. 
exp1 ? exp2 : exp3; 
 
 A exp1 é avaliada primeiro. Se for verdadeira, exp2 é avaliada e seu resultado é o valor 
da expressão como um todo. Se exp1 for zero (falso), exp3 é avaliada e será o valor da 
expressão condicional. 
 Ex: 
 max = (a > b)?a : b; 
 
 Neste exemplo a variável que contém o maior valor numérico entre a e b será atribuída 
a max. 
 
5.5.10. Tabela de Precedência 
O nível de precedência dos operadores é avaliado da esquerda para a direita. Os 
parênteses podem ser utilizados para alterar essa ordem, sendo indicado seu uso a fim de 
tornar o programa (a expressão) mais legível. 
 
 A tabela abaixo mostra a precedência dos operadores vistos até agora. 
 
 
Maior () 
 !, ++, --, -(unário) 
 *, /, % 
 +, - 
 ==, != 
 && 
 || 
 ?: 
Menor +=, -=, *=, /= 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 26
6. Estrutura Sequencial 
 
As operações de entrada e saída de dados permitem a interação de um programa e/ou 
algoritmo com o usuário, seja permitindo que o mesmo digite valores (entrada de dados) ou 
exibindo informações (saída de dados). Estas operações são representadas tanto em 
algoritmos (fluxograma e pseudocódigo) quanto em linguagem C. 
6.1. Saída de Dados 
Esta operação permite que o programa exiba mensagens ou valores de variáveis, 
através do monitor. 
 
Fluxograma Pseudocódigo 
 
 
 
Escreva (“Boa noite”); 
 
 
 
Escreva (x); 
 
 
 
Escreva (“Soma: ”, s); 
 
Em linguagem C, existem 3 funções (comandos) diferentes que permitem a saída de 
dados: printf(), puts() e putchar(). 
 
7.1.1. printf() 
O printf() é uma função utilizada para saída de informações. É a função mais genérica 
de saída de dados, pois pode ser usado em qualquer situação. 
A função printf() requer a utilização dos códigos de formatação de tipos de variáveis. 
 
Código printf() Formato 
%c Apenas um caracter. 
%d Decimal inteiro. 
%e Notação científica. 
%f Ponto flutuante – float ou double. 
%g %e ou %f (o mais curto). 
%o Octal. 
%s Cadeia de caracteres – String. 
%u Decimal sem sinal. 
%x Hexadecimal. 
%% Coloca na tela um % 
 
 
 Além dos códigos de formatação a função printf() permite a utilização de códigos 
especiais para a exibição de caracteres específicos. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 27
 
Códigos especiais Significado 
\n Nova linha. 
\t Tab. 
\b Retrocesso. 
\” Aspas. 
\’ Apóstrofo. 
\\ Barra invertida. 
\f Salta página de formulário. 
\0 Nulo. 
\x Mostra caracter hexadecimal. 
\a Produz o som de um beep. 
 
 
Exemplo 1: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Exemplo1; 
Var x: inteiro; 
Inicio 
 x ← 2; 
 Escreva (“Tenho ”,x, “irmãos.”); 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 28
Exemplo 2: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Exemplo2; 
Inicio 
 Escreva (“Juan tem 25 anos de idade.”); 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
Exemplo 3: 
Fluxograma Algoritmo 
 
 
 
 
 
 
 
Algoritmo Exemplo3; 
Inicio 
 Escreva (“A letra j ”); 
 Escreva (“pronuncia-se jota”); 
Fim 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 29
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 30
6.1.2. puts() 
Representa a saída de uma única literal por vez, seguida do caracter de nova linha, ou 
seja, a função muda de linha automaticamente sem que haja a necessidade do 
pressionamento da tecla de entrada de dados, ENTER. 
 
 
Exemplo 4: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Exemplo4; 
Inicio 
 Escreva (“Gabriel”); 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
Exemplo 5: 
Fluxograma Algoritmo 
 
 
 
 
Algoritmo Exemplo5; 
Inicio 
 Escreva (“Digite seu nome”); 
Fim 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 31
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 Engenharia Civil - ComputaçãoProfa. MSc. Viviane Guimarães Ribeiro 32
6.1.3. putchar() 
Representa a saída de apenas um caracter na tela do computador e não acrescenta 
uma nova linha automaticamente. As duas instruções seguintes são equivalentes. 
 
 putchar(‘w’); 
 printf(“%c”, ‘w’); 
 
Exemplo6: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Exemplo6; 
Inicio 
 Escreva (“A primeira letra ”); 
 Escreva (“do alfabeto é... ”); 
 Escreva (“a”); 
Fim 
Linguagem C 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 33
Tela 
 
 
 
 
Neste exemplo foi utilizada a biblioteca <conio.h> que permite ao programador usar a 
função clrscr() para limpar a tela do computador e a função gotoxy(COL,LIN) para posicionar o 
cursor em um ponto de coluna e linha na tela do computador. Note que, segundo a convenção 
adotada pelo compilador Pelles C, todas as funções que não são padrão em C têm seus 
nomes iniciados com um caracter de sublinha ( _ ). 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 34
6.2. Entrada de Dados 
Esta operação permite que o usuário forneça dados ao programa, através de sua 
interação com o teclado. 
 
Fluxograma Pseudocódigo 
 
 
 
Leia (x); 
 
 
 
Leia (n1, n2); 
 
 
 
Leia (nome); 
 
Em linguagem C, existem 5 funções (comandos) diferentes que permitem a entrada de 
dados: scanf(), gets(), getchar(), getche() e getch(). 
 
6.2.1. scanf() 
 É utilizada para permitir ao usuário realizar uma entrada de dados, geralmente através 
do teclado. Assim como a função printf() requer a utilização dos códigos de formatação de tipos 
de variáveis. 
 
Código printf() Formato 
%c Apenas um caracter. 
%d Decimal inteiro. 
%e Notação científica. 
%f Ponto flutuante – float ou double. 
%g %e ou %f (o mais curto). 
%o Octal. 
%s Cadeia de caracteres. 
%u Decimal sem sinal. 
%x Hexadecimal. 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 35
Exemplo 7: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Soma; 
Var a, b, soma: inteiro; 
Inicio 
 Escreva (“Entre com dois números: ”); 
 Leia (a,b); 
 soma ← a + b; 
 Escreva (“Soma= ”, soma); 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
Na função scanf() utiliza-se o & antes de cada variável para indicar o endereço de 
memória no qual o conteúdo da variável estará armazenado. Este é de uso obrigatório quando 
tratamos variáveis do tipo numérico (inteira ou real). 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 36
6.2.2. gets() 
 Essa função processa tudo que foi digitado até que a tecla ENTER seja pressionada. O 
caracter ENTER não é acrescentado à literal, mas sim identificada como término da mesa. 
 
Exemplo 8: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Nome; 
Var nome: literal[35]; 
Inicio 
 Escreva (“Digite seu nome: ”); 
 Leia (nome); 
 Escreva (“Como vai ”, nome); 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 37
 
 
 
 
6.2.3. getchar() 
 Essa função é utilizada quando queremos efetuar a entrada de apenas um caracter, 
não dispensando a necessidade de se pressionar a tecla ENTER para finalizar. 
 
Exemplo 9: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Tecla1; 
Var ch: literal[1]; 
Inicio 
 Escreva (“Digite uma tecla: ”); 
 Leia (ch); 
 Escreva (“A tecla que você pressionou foi ”, ch); 
Fim 
Linguagem C 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 38
Tela 
 
 
 
 
6.2.4. getche() 
 Essa função edita um caracter do teclado e permite que ele seja mostrado na tela do 
computador. É dispensável o pressionamento da tecla ENTER por parte do usuário. Isso já 
ocorre de forma automática. 
 
Exemplo 10: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Tecla1; 
Var ch: literal[1]; 
Inicio 
 Escreva (“Digite uma tecla: ”); 
 Leia (ch); 
 Escreva (“A tecla que você pressionou foi ”, ch); 
Fim 
Linguagem C 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 39
Tela 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 40
6.2.5. getch() 
Essa função permite que o usuário forneça um caracter através do teclado. Este 
caracter não será mostrado na tela do computador. Também é dispensável o pressionamento 
da tecla ENTER. 
Esta função também atende à necessidade como recurso de parada temporária da 
execução do programa. 
 
Exemplo 11: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Tecla1; 
Var ch: literal[1]; 
Inicio 
 Escreva (“Digite uma tecla: ”); 
 Leia (ch); 
 Escreva (“A tecla que você pressionou foi ”, ch); 
 Escreva (“A função getch() causou uma pausa 
no programa.”); 
Fim 
Linguagem C 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 41
Tela 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 42
Exercícios 
 
1. Observe o fluxograma abaixo e escreve o pseudocódigo equivalente. 
 
 
 
 
 
2. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C para 
calcular o valor de y como função de x, segundo a função y(x)=3x+2, em um domínio real. 
 
3. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que calcule 
o consumo médio de um automóvel (medido em km/l), dado que são conhecidos a distância 
total percorrida e o volume de combustível consumido para percorrê-la (medido em litros). 
 
4. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C para 
calcular o quadrado de um número inteiro. 
 
5. Considerando o programa abaixo execute a simulação (teste de mesa), preenchendo a 
tabela conforme os valores de entrada lançados em cada linha. 
 
 
#include <stdio.h> 
main() 
{ 
 float X, Y, F; 
 printf ("Entre com o valor de x: "); 
 scanf ("%f", &X); 
 printf ("Entre com o valor de y: "); 
 scanf ("%f", &Y); 
 F = (2 * X) + 3 * (Y * Y); 
 printf ("Funcao = %.2f\n", F); 
} 
 
 
 
 
 
 
 
X Y F 
2 5 
5 8 
1 12 
10 4 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 43
6. Observe a figura abaixo e marque um X no programa que cria a tela apresentada. 
 
 
 
 
a) ( ) #include<stdio.h> 
main(){ 
float c, l, p, t; 
printf("Medidas? "); 
scanf("%d %d", &l, &c); 
printf("Preco m2? "); 
scanf("%d",&p); 
t = c*l*p; 
printf("Custo total R$ %.2d\n",t); 
} 
 
b) ( ) #include<stdio.h> 
main(){ 
int c, l, p, t; 
printf("Medidas? "); 
scanf("%f %f", &l, &c); 
printf("Preco m2? "); 
scanf("%f",&p); 
t = c*l*p; 
printf("Custo total R$ %.2f\n",t); 
} 
c) ( ) #include<stdio.h> 
main(){ 
float c, l, p, t; 
printf("Medidas? "); 
scanf("%f %f", &l, &c); 
printf("Preco m2? "); 
scanf("%f",&p); 
t = c*l*p; 
printf("Custo total R$ %.2f\n",t); 
} 
 
d) ( ) #include<stdio.h> 
main(){ 
float c, l, p, t; 
printf("Medidas? "); 
scanf("%f %f", l, c); 
printf("Preco m2? "); 
scanf("%f",&p); 
t = c*l*p; 
printf("Custo total R$ %.2d\n",t); 
}7. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que leia o 
saldo de uma aplicação e imprimir o novo saldo, considerando um reajuste de 15%. 
 
8. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que receba 
o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e 
o novo salário. 
 
9. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que calcule 
e mostre a área de um circulo. Sabe-se que: piR2. 
 
10. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que 
receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: 
- A idade desta pessoa hoje; 
- A idade desta pessoa em 2015. 
 
11. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que 
converta segundos em minutos e segundos. Por exemplo, 252 segundos equivalem a 4 
minutos e 12 segundos. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 44
12. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que dados 
dois lados de um triângulo retângulo calcule e exiba a respectiva hipotenusa 
 
13. Faça um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que 
receba o número de horas trabalhadas e o valor do salário mínimo. Calcule e mostre o salário a 
receber seguindo as regras abaixo: 
a. o valor da hora trabalhada vale a metade do salário mínimo; 
b. o salário bruto equivale ao número de horas trabalhadas multiplicado pelo valor 
da hora trabalhada; 
c. o imposto equivale a 3% do salário bruto; 
d. o salário a receber equivale ao salário bruto menos o imposto. 
 
14. Dado o Fluxograma abaixo, indique o programa em linguagem C correto. 
 
 
 
 
 
 
A) ( ) #include<stdio.h> 
 main() 
 { float a,b; 
 printf(“Digite um número: ”); 
 scanf(“%f”, &a); 
 a = a % 100; 
 printf(“%f”,b); 
 } 
 
B) ( ) #include<stdio.h> 
 main() 
 { int a,b; 
 printf(“Digite um número: ”); 
 scanf(“%d”, a); 
 a = a % 100; 
 printf(“%d”,b); 
 } 
 
C) ( ) #include<stdio.h> 
 main() 
 { int a,b; 
 printf("Digite um numero: "); 
 scanf("%d", &a); 
 b = a % 100; 
 printf("%d",b); 
 } 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 45
7. Estrutura de Decisão 
 
Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do 
resultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. 
A classificação das estruturas de decisão é feita de acordo com o número de condições 
que devem ser testadas para que se decida qual o caminho a ser seguido. Têm-se 2 tipos de 
estrutura de decisão: 
• Se; 
• Escolha. 
 
Em linguagem C, o equivalente ao Se é a função if() e o equivalente ao Escolha é a 
função switch(). 
7.1. if() 
Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado 
desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comandos 
compostos) é executado. Caso contrário, ou seja, quando o resultado da avaliação for falso 
(.F.), nada é executado e o fluxo de execução segue para o primeiro comando após o fim da 
estrutura. 
 
Fluxograma 
 
 
 
Pseudocódigo 
 
 Se (condição) 
 Então 
 Comando 1; 
 Fim_Se 
 
Linguagem C 
 
 if (condição) 
 { 
 Comando 1; 
 } 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 46
Exemplo 1: 
Fluxograma Algoritmo 
 
 
 
Algoritmo Exemplo1; 
Var a: inteiro; 
Inicio 
 Escreva (“Entre com o valor de A: ”); 
 Leia (a); 
 Se (a<0) 
 então 
 Escreva (“O valor de A é menor que zero”); 
 Fim_Se 
Fim 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 47
 
 
 
 
7.2. if() else 
Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado 
desta avaliação for verdadeiro (.V.), então um determinado conjunto de instruções (comandos 
compostos) é executado. Caso contrário, ou seja, quando o resultado da avaliação for falso 
(.F.), um comando diferente é executado. Após a execução de uma das partes (verdadeira ou 
falsa) o fluxo de execução segue para o primeiro comando após o fim da estrutura. 
 
Fluxograma 
 
 
 
Pseudocódigo 
 
 Se (condição) 
 Então 
 Comando 1; 
 Senão 
 Comando 2; 
 Fim_Se 
 
Linguagem C 
 
 if (condição) 
 { 
 Comando 1; 
 } 
 else 
 { 
 Comando 2; 
 } 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 48
Exemplo 2: 
Fluxograma 
 
 
 
 
Algoritmo 
Algoritmo Exemplo2; 
Var salario: real; 
Inicio 
 Escreva (“Entre com o salario: ”); 
 Leia (salario); 
 Se (salário>50000) 
 então 
 Escreva (“Você ganha bem”); 
 senão 
 Escreva (“Você precisa ganhar mais”); 
 Fim_Se 
Fim 
 
Linguagem C 
 
 
 
Tela 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 49
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 50
7.3. Encadeamento de if() 
Trata-se de um recurso que permite ao usuário utilizar uma estrutura if dentro de outra 
obtendo, assim, diversas respostas possíveis. 
 
Exemplo 3: 
Fluxograma 
 
 
 
 
Pseudocódigo 
 
Algoritmo Encadeamento; 
Var num: inteiro; 
Inicio 
 Escreva (“Entre com um número: ”); 
 Leia (num); 
 Se (num = 0) 
 Então 
 Escreva (“Número zero.”); 
 Senão 
 Se ( num < 0) 
 Então 
 Escreva (“Número negativo.”); 
 Senão 
 Escreva (“Número positivo.”); 
 Fim_Se 
 Fim_Se 
Fim 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 51
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 52
Exercícios 
 
1. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que peça 
para o usuário informar dois números inteiros. Ao final do processamento, imprimir qual é o 
maior e o menor desses números. 
 
2. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que peça 
para o usuário informar três números inteiros. Ordenar estes números de forma crescente e 
apresentar o resultado na tela. 
 
3. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C para ler um 
número real, se este número for negativo, transforme-o em positivo e exiba o resultado ao 
operador. 
 
4. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C para ler um 
número real equivalente ao comprimento de uma peça. Verificar se o valor lido encontra-se 
dentro da faixa de tolerância especificada, informando o resultado ao operador (limite 
especificado: 20 ± 0,000002 cm). 
 
5.Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que efetue 
o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber 
um reajuste de 15% caso seu salário seja menor que 500, se o salário for maior ou igual a 500 
e menor ou igual a 1000, seu reajuste será de 10%, caso seja ainda maior que 1000, o reajuste 
deverá ser de 5%. 
 
6. Observe o fluxograma abaixo e escreve o programa em Linguagem C equivalente. 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 53
7. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que leia 
três números e se o último desses números for menor ou igual a 5 então ele faz a quarta 
variável receber a subtração das duas primeiras multiplicada pela terceira, se não, receber a 
soma das duas primeiras multiplicada pela terceira. Apresentar na tela os três números e o 
resultado. 
 
8. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que leia 
três valores para os lados de um triângulo e verifique se eles formam um triângulo. Se 
formarem, dizer que tipo de triângulo ele é: isósceles, escaleno ou equilátero. 
 
9. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que receba 
um número inteiro e mostre em qual faixa de números inteiros ele aparece: 
a. Abaixo de 15; 
b. Entre 15 e 35; 
c. Acima de 35. 
 
10. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que dada 
a idade de um nadador classifica-o em uma das seguintes categorias: 
 
Categoria Idade 
Infantil A 5 - 7 anos 
Infantil B 8 - 10 anos 
Juvenil A 11-13 anos 
Juvenil B 14-17 anos 
Adulto Maiores de 18 anos 
7.4. switch() 
A utilização do switch oferece inúmeras vantagens em relação a utilização da estrutura 
ninho de if’s. Um exemplo prático é a facilidade de escrita de uma estrutura composta por 
múltiplas escolhas, que requer diversas alternativas, a partir de um certo programa de 
computador. Porém, a estrutura switch só pode ser utilizada quando estamos testando 
uma situação de igualdade para uma mesma variável. 
 
Fluxograma 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 54
Pseudocódigo 
 
 Escolha (variável) 
 Caso <valor_1> 
 Comando 1; 
 Caso <valor_2> 
 Comando 2; 
 ..... 
 Caso <valor_n> 
 Comando n; 
 Senão 
 Comando n + 1; 
 Fim_escolha 
 
Linguagem C 
 
switch (variável) 
 { case “valor_1”: 
 Comando 1; 
 case “valor_2”: 
 Comando 2; 
....... 
 case “valor_n”: 
 Comando n; 
 default: 
 Comando n + 1; 
 } 
 
 
Exemplo 4: 
Fluxograma 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 55
Pseudocódigo 
Algoritmo Exemplo4; 
Var opcao: literal[1]; 
Inicio 
 Escreva (“Entre com uma letra: ”); 
 Leia (opcao); 
 Escolha (opcao) 
 caso “A”: 
 Escreva (“Letra A”); 
 caso “B”: 
 Escreva (“Letra B”); 
 caso “C”: 
 Escreva (“Letra C”); 
 caso “D”: 
 Escreva (“Letra D”); 
 senão: 
 Escreva (“Não é A, B, C nem D.”); 
 Fim_Escolha 
Fim 
 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 56
Nesta estrutura é opcional a utilização da cláusula default para representar uma 
alternativa que significa “Em nenhum dos casos anteriores”. 
 Também é importante saber que a execução do comando switch segue os seguintes 
passos: 
 1. A expressão é avaliada. 
 2. Se o resultado da expressão for igual a uma constante, então a execução começará 
a partir do comando associado a essa constante e prossegue com a execução de todos os 
comandos até o fim do switch, ou até que se encontre uma instrução de parada denominada 
break. 
3. Se o resultado da expressão não for igual a nenhuma das constantes e já estiver 
sido incluída no comando switch a opção default, o comando associado ao default será 
executado. Caso contrário, isto é, se a opção default não estiver presente, o processamento 
continuará a partir do comando seguinte ao switch. 
 
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 57
 Os operadores lógicos apresentados no item 6.6.6, 6.6.7 e 6.6.8 são normalmente 
utilizados em conjuntos com a estrutura de decisão if(). A seguir são apresentados exemplos 
de programas que fazem uso destes operadores. 
Exemplo 5: 
Fluxograma 
 
 
 
 
Algoritmo 
 
Algoritmo Exemplo5; 
Var n1,n2: inteiro; 
Inicio 
 Escreva (“Digite dois números: ”); 
 Leia (n1,n2); 
 Se ((n1=0)e(n2=0)) 
 então 
 Escreva (“Você forneceu apenas o 
 número zeros”); 
 senão 
 Escreva (“Soma= ”, n1+n2); 
 Fim_Se 
Fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 58
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 59
Exemplo 6: 
Fluxograma 
 
 
 
 
Algoritmo 
 
Algoritmo Exemplo6; 
Var n1,n2: inteiro; 
Inicio 
 Escreva (“Digite dois números: ”); 
 Leia (n1,n2); 
 Se ((n1<0ou(n2<0)) 
 então 
 Escreva (“Pelo menos um dos 
 números é negativo”); 
 senão 
 Escreva (“Você informou apenas 
 números positivos”); 
 Fim_Se 
Fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 60
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 61
Exemplo 7: 
Fluxograma 
 
 
 
 
Algoritmo 
 
Algoritmo Exemplo7; 
Var n: inteiro; 
Inicio 
 Escreva (“Digite um número: ”); 
 Leia (n); 
 Se (nao(n<>0)) 
 então 
 Escreva (n,“ é igual de zero”); 
 senão 
 Escreva (n, “ é diferente a zero”); 
 Fim_Se 
Fim 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 62
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 63
Exercícios 
 
11. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que peça 
para o usuário informar uma letra qualquer. No final do processamento, o programa deverá 
informar se a letra é vogal ou consoante. 
 
12. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que leia 
dois números fornecidos pelo usuário e uma operação matemática (soma, subtração, 
multiplicação e divisão). Efetuar a operação matemática escolhida utilizando os números 
fornecidos e exibir o resultado. 
 
13. Uma agência bancária possui dois tipos de investimentos, conforme o quadro a seguir. 
Faça um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que receba o 
tipo de investimento e o valor do investimento, calcule e mostre o valor corrigido de acordo com 
o tipo de investimento de todos os clientes do banco. 
 
Tipo Descrição Rendimento mensal 
1 Poupança 3% 
2 Fundosde renda fixa 4% 
 
14. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C que 
receba o código correspondente ao cargo de um funcionário e mostre o cargo: 
 
Código Cargo 
1 Escriturário 
2 Secretária 
3 Caixa 
4 Gerente 
5 Diretor 
 
15. Faça um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C para 
calcular a conta final de um hóspede de um hotel fictício, contendo: o nome do hóspede, o tipo 
do apartamento, o número de diárias utilizadas, o valor unitário da diária, o valor total das 
diárias, o valor do consumo interno, o subtotal, o valor da taxa de serviço e o total geral. 
Considere que: 
a. Serão lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), 
o número de diárias utilizadas pelo hóspede e o valor do consumo interno do 
hóspede; 
b. O valor da diária é determinado pela seguinte tabela: 
 
TIPO DO APTO. VALOR DA DIÁRIA (R$) 
A 150,00 
B 100,00 
C 75,00 
D 50,00 
 
c. O valor total das diárias é calculado pela multiplicação do número de diárias 
utilizadas pelo valor da diária; 
d. O subtotal é calculado pela soma do valor total das diárias e o valor do 
consumo interno; 
e. O valor da taxa de serviço equivale a 10% do subtotal; 
f. O total geral resulta da soma do subtotal com a taxa de serviço. 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 64
16. Analise os trechos de fluxogramas abaixo e informe o valor que será exibido na tela para o 
usuário. Considere os seguintes valores: A = 2, B = 3, C = 5, D = 9. 
 
 
.não. (D>5) X � (A+B)*D X � (A-B) div C Saída 
 
 
 
 
(A>2) .e. (B<7) X � (A+2)*(B-2) X � (A+B) div D * (C+D) Saída 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 65
 
 
 
(A<>2) .ou. .não. 
(B<7) 
X � A+B - 7 X � D - C Saída 
 
 
 
 
 
 
 
 
 
 
 
 
.não. (A>2) .ou. 
.não.(B<>7) 
X � D*A div C X � C div (A - B) Saída 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 66
 
 
(A = 2) .ou. (B < 7) X � (A+2)*D X � (A+B) div D Saída 
 
 
 
 
 
 
 
 
 
 
 
 
 
.não. (C >A) .e. .não.(B 
<= 7) 
X � D*A X � (A+B) div 2 Saída 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 67
8. Estrutura de Repetição 
 
Essas estruturas são utilizadas para que uma parte de seu programa possa ser 
repetida n vezes sem a necessidade de reescrevê-lo. Também são conhecidas como LOOP ou 
laços. 
 
 Existem 3 estruturas de repetição na linguagem C: 
• for (laço contado), equivalente ao Para; 
• while (laço condicional), equivalente ao Enquanto; 
• do... while (laço condicional), equivalente ao Repita. 
 
8.1. for() 
A ideia básica do comando for é que você execute um conjunto de comandos, um 
número fixo de vezes, enquanto uma variável de controle é incrementada ou decrementada a 
cada passagem pelo loop. 
 
Fluxograma 
 
 
 
Pseudocódigo 
 
Para <var> de <início> até <fim> incr de <inc> faça 
 Comando 1; 
Fim_para 
 
Linguagem C 
 
 for ( <var> = <início>; <condição saída> ; <inc> ) 
 { 
 Comando 1; 
 } 
 
 
Observe que dentro dos parênteses existem 3 expressões separadas por ponto-e-
virgula. A primeira expressão é, normalmente, a inicialização da variável de controle do for. A 
segunda expressão é um teste lógico que, enquanto o resultado for verdadeiro, reflete em 
continuação do laço. A terceira expressão é, normalmente, o incremento ou decremento da 
variável de controle do for. 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 68
 
Exemplo 1: 
Fluxograma 
 
 
 
Pseudocódigo 
 
Algoritmo Exemplo1; 
Var i: inteiro; 
Inicio 
 Para i de 1 até 10 com incremento de 1 faça 
 Escreva (i); 
 Fim_Para 
Fim 
 
Linguagem C 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 69
Tela 
 
 
 
 
Exemplo 2: 
Fluxograma 
 
 
 
Pseudocódigo 
 
Algoritmo Exemplo2; 
Var i,j : inteiro; 
Inicio 
 Para i de 1 até 10 com incremento de 1 faça 
 Para j de 1 até 10 com incremento de 1 faça 
 Escreva (i, “x”, j, “=”, i*j); 
 Fim_Para 
 Fim_Para 
Fim 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 70
Linguagem C 
 
 
 
Tela 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 71
 
 
 
 
 
Veja, neste exemplo, que o laço externo(i) executa 10 vezes, enquanto o laço interno(j) 
executa 10 vezes para cada passagem do laço externo, totalizando assim, 10x10 = 100 vezes. 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 72
Exercícios 
 
1. Considerando o fluxograma abaixo execute a simulação (teste de mesa), preenchendo a 
tabela conforme os valores de entrada lançados em cada linha. 
 
 
 
 
ant atual i prox 
 
 
 
 
 
 
 
 
 
 
 
 
2. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C, que 
imprima todos os números inteiro existentes entre 1 e 20 em ordem crescente. Utilize a 
estrutura Para. 
 
3. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C, que leia 
um número N através do teclado e, em seguida, calcule e imprima a soma de 1 até N. Utilize a 
estrutura for. 
4. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C, para ler 10 
números e imprimir o quadrado de cada número. Utilize a estrutura for. 
 
5. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C, para ler o 
número de matrícula e 4 notas de sete alunos, calcular a sua média aritmética e imprimir o 
número de matricula do aluno, as 4 notas, a sua média e imprimir Reprovado se a média for 
menor que 3, Exame se 3 <= média < 7 e Aprovado se média =>7. Utilize a estrutura for. 
 
6. Criar um algoritmo (Fluxograma e Pseudocódigo) e o programa em linguagem C, para 
calcular o imposto de renda de 10 contribuintes considerando: 
a)os dados do contribuinte, nº do CPF, nº de dependentes e renda anual. 
b)desconto de R$ 100,00 por dependente. 
c) até R$ 1000,00 contribuinte isento, de R$ 1000,01 a R$ 5000,00 pagar 5% e acima 
de R$ 5000,00 pagar 10%. 
Utilize a estrutura for. 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 73
8.2. while() 
É o mais genérico dos 3 e pode ser usado para substituir os outros 2; em outras 
palavras, o laço while supre todas as necessidades. Já os outros dois são usados por uma 
questão de comodidade. 
 
Fluxograma 
 
 
 
Pseudocódigo 
 
Enquanto (condição) faça 
 Comando 1; 
Fim_enquanto 
 
Linguagem C 
 
while (condição) 
{ 
 Comando 1; 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Engenharia Civil - Computação 
 
 
Profa. MSc. Viviane Guimarães Ribeiro 74
 
Exemplo 3: 
Fluxograma 
 
 
 
Pseudocódigo 
 
Algoritmo

Outros materiais