Buscar

Livro de Logica de Programação Estruturada (1)

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

m
i
pan
o
ol
cio
o
e
ê
É
EE
|
a
E
l
o
4
E
ú
R
i
E
E
FARSA
ESe
ARSnas
E
H
i
n
a
 
aESP
 
cedo
a
e
e
”
-
/
5
*
 
 
P tá j 1Fe acio OLOHHDCOLCLOCELHOSODOSEBOLODOVDHOCOGAUCODCOGOSOOGOCUVOCSOVEACHODOLOHADOBOSGHAB 3
1 Conceitos Preliminares cessscsscsssesesesosessesscoscssssseccsossosÀ
1.1 Introdução...rrreereerereraceaaanereneeenarenaneeenerecanerends 15
1.2 Um Primeiro Exemplo .............eeeeeeeeeeeeerecerenererrenaneeas 16
1.3 Definição da Linguagem ..........ccisteseeeerereeerereeeneeaceneaeenoa 19
1.4 Conceito de Algoritmo ..........eeereeeereeeeerereenreeeeereneeraranenos 19
1.5 Exercícios Propostos ............cttieiteererereeneeeaeraneraneneenanens 21
2 AlgorritmOS....cceeeeereersereeeereereeerrerreeeneeceeersenserseerseros 23
2.1 Tipos deValores...23
2.2 Variáveis ....eescerreeeecenecrecareraenceaerenceeneeencornneraaceeenesanersanes DD
2.3 Expressões ........ceeeeeeeseenerecereeeerareneeneeaceneereeseeneraceneranarcereranaa 27
2.4 Compatibilidade de Tipos................issesererreerereos 31
2.5 Comandos de Entrada e Saída...see32
2.6 Constantes ..........cccccieeeercrereacereracareranerenanaraeaaereraeaanernaaco DA
2.7 Exercícios Resolvidos ...........iccieererereeaneranerenanerennoa 35
2.8 Exercícios Propostos ..........cese e eisreeseeeneenerneeaerecenacenerecenes 39
3 Estruturas de Seleção ....ccccccrcorsesececosososoesecososaoocasocos LO
 
3.1 Comando Se...aaaeaaerersrerereatrenanan ne cerarerenenaneass 45
3.2 Ninhos de Comandos Se .........reereeceereaneeranaceess 47
3.3 Comando Escolha ................titrereeetseerareaecenececneneeneneeneao 50
3.4 Exercícios Resolvidos een nana aeee rear cre cr aaa nana nana racer arena aan aa arerends 54
3.5 Exercícios Propostos erre nana renan aeee rrenan er entaa na oa er ana ne cnaa as srenansea 57
4 Estruturas de R
4.1 Introdução...iiitertasereersreeeeeererereaeeeneraceennererenaeneness
4.2 Comando Enquanto-Faça ..............c is reriereeneereneeneenereeneceeeas 62
4.3 Repetição Controlada pelo Usuário ...........mesmos 65
4.4 Comando Repita...esecerrerneeneeearaeneeceneeneacaceneaao 70
4.5 Comando Para-Faça ........icecereecereeeeeanarenencrenento 71
4.6 Exercícios Resolvidos .........eeerenemeseeeserenossarenenacecaceneneaa 73
2º» L
4.7 Exercícios Propostos ..........ceereseeneeneerececerecenceeeenenencernaa 80
 
 
5 Tipos Estruturados Homogêneos........ccccccecoceccoros DG
5.1 Introdução...reeeereeaeacenerraeraceranarencacanerearacaceaneaaao 93
2.2 Declaração Tipo ............siseeceneceneeenereceeacaseecareacerererreento 95
5.3 Utilização de Variáveis Indexadas ...........ittemneess 96
5.4 Variáveis Multidimensionais............eesrentes 105
5.5 Exercícios Resolvidos ..........eeeeeeseemeeneeeeeeencenenieass 110
2.6 Exercícios Propostos ............ccseeeeeteserreeeeeeeeceraeoneencennos 119
Subal Í 126 ti a goritmos DODHODOSDOSLCOLLHHOBEALDHSODOSGOHOLHAAHGDODOHCAOLONCCLGENHEHGHHHAOSHSB 5
6.1 Introdução .........eeerereenenacererenacrerenarerenencracenenereeaanto 125
6.2 Subalgoritmo Função...rererererareerans 125
6.3 Parâmetros e Argumentos...129
6.4 Localidade ............irrcerereeneerraceneenacaeraaateas 130
6.5 Passagem de Argumentos...............iiisreaeaas 130
6.6 Subalgoritmo Procedimento ................i 131
6.7 Exercício Resolvidos...134
6.8 Exercícios Propostos ...............iiiieeereereeraceecenos 151
Prefácio
Imaginamos que muitos devem estar se perguntando: Por
que um livro de algoritmos, numa época onde as ferramentas de
programação visual estão por toda parte e, aparentemente, o
programador pouco tem a fazer?
Sem dúvida alguma, os benefícios das ferramentas visuais
como Visual Basic, Delphi, etc. são infinitos comparados com a
programação convencional. No entanto, em qualquer software
que você use, com certeza, existe programação a qual as
ferramentas visuais não podem gerar pois não advinhamo que
se passa pela mente de um programador. E todo programa
decente, tem que haver um valor agregado pelo programador.
Ferramentas quefacilitam o desenvolvimento de aplicações
com interface gráfica são uma realidade, e devem ser utilizadas,
sem dúvida, pois elas permitem que o programadorse concentre
nos aspectos relativos ao problemaa ser resolvido. É exatamente
no desenvolvimento do lado “pensante” dos programas que este
livro vem contribuir.
Este livro tem por objetivo a apresentação dos conceitos
fundamentais que devem ser levados em consideração quando
da eleboração de um programa, sem apresentar nenhuma
linguagem de programação. Assim, a representação destes
conceitos é apresentada através de umalinguagem própria a qual
denominamosde pseudocódigo.
 
 
1.1 Introdução
O computador tornou-se uma poderosa ferramenta, presente nas
mais variadas áreas da atividade humana, devido fundamentalmente
ao fato de o mesmo ser uma máquina programável. Essa caracterís-
tica faz dele uma máquina que pode ser usada na determinação da
SOlução dos mais variados tipos de problemas.
Basicamente, um computador consiste de uma máquina que
executa ordens. Assim, para que ele apresente a solução de um pro-
blema, é necessário que execute um programa, o qual fará com que
se obtenha a solução. Como uma definição preliminar, pode-se dizer
que programar um computador consiste na elaboração de uma se-
quência de instruções, de forma que, ao serem executadas, o compu-
tador obtenha a solução de um determinado problema.
O nosso objetivo neste livro é apresentar as características e
conceitos envolvidos na escrita de um programa de computador.
Afinal, se um programa de computador consiste em uma segiiência
de instruções, como são essas instruções? Que características apre-
sentam? Que tipo de instrução um computador pode executar?
Mais do que responder a essas perguntas, procuraremos, no
decorrer desse livro, apresentar os conceitos envolvidos na modela-
gem da resolução de um problema em computador. Essa modelagem
pode ser feita a partir de vários paradigmas. Neste livro, abordaremos
o paradigma Programação Estruturada. De acordo com esse
paradigma, a escrita de um programa, para a resolução de um deter-
minado problema, está baseada na divisão do problema maior em
problemas menores. Para cada problema menor, identifica-se quais os
dados que esse problema apresenta e a que resultados se quer chegar.
Os dados que o problema apresenta são denominados Entradas e os
resultados desejados são denominados Saídas. Definidas as entradas
e saídas, deve-se determinar que tipo de processamento deve ser exe-
cutado para que, a partir das entradas, obtenham-se as saídas.
Inirodução à Programação - Algoritmos
Assim, a escrita de um programa envolve todo um processo de
análise do problema, onde a divisão de um problema maior em pro-
blemas menores constitui-se em característica fundamental. Como
inicialmente estaremos apresentando e discutindo problemas bas-
tante simples, essa característica não será levada em consideração
nos primeiros capítulos.
1.2 Um Primeiro Exemplo
Para que se tenha uma visão mais clara do quesignifica programar
um computador, vamos analisar um pequeno problema e escrever
para este uma primeira versão de um programa. Obviamente que,
por menor que seja o problema, aconstrução de um programa que
resolva esse problema envolve um conjunto razoável de informa-
ções. Por questões didáticas, neste primeiro exemplo, alguns concei-
tos não serão discutidos.
Suponha que o nosso problema seja escrever um programa que
faça com que o computador resolva o seguinte problema:
“Dadas a base e a altura de um triângulo, determinar
a sua área”.
Pelo enunciado do problema, podemos concluir que este apre-
senta como dados (entradas) os valores da base e da altura, os quais
são necessários para a resolução do problema. Também podemos
concluir que a solução do problema consiste em se encontrar o valor
da área do triângulo. Temos, então, como saída, o valor da área.
Para que possamos escrever uma primeira versão de progra-
ma para esse problema, é necessário que saibamos alguns conceitossobre como funciona um computador. Afinal, que tipo de instruções
um computador pode éxecutar? Como são armazenados os valores
que processa? Que conhecimentos tem o computador?
Dados os objetivos deste livro, vamos visualizar um computa-
dor como sendo uma máquina cega, que conhece um comunto limita-
do de instruções e só as executa se solicitado. Vamos considerar, por
enquanto, que um computador consiste em uma máquina que sabe:
” Ler;
“ Escrever;
“” Efetuar operações aritméticas básicas, tais como: adição, sub-
tração, multiplicação e divisão.
ConceitosPreliminares
 
A maioria das instruções que o computador executa está, de
alguma forma, associada ao processo de armazenamento de valores
na sua memória ou ao processo de cópia de valores de sua memória.
Assim, se quisermos que o computador saiba qual o valor da altura
do triângulo, que, conforme vimos, é necessário para o cálculo da
área, devemos instruí-lo de forma que leia um valor, a ser fornecido
pelo usuário, e que esse valor seja armazenado em algum local de
sua memória. O computador só sabe ou conhece aqueles valores que
estão armazenados em sua memória.
Fisicamente, a memória de um computador consiste em
um conjunto de elementos denominados bytes, cujo estudo foge ao
escopo deste livro. Entretanto, para efeito de construção de um pro-
grama, podemos considerar a memória como sendo um conjunto de
posições, conforme apresentado na Fig. 1.1, onde cada posição rece-
be uma identificação (um nome) e armazena um determinado valor.
 
 
Base Idade Xi Nota
"80 Rs ces sa psi25|5[95
Aluno A12 Area Altura
" Joao|XBtdhjfa|160|40| 
 
Fig. 1.1 - Representação da memória (exemplo).
Cada posição de memória sempre armazena um valor. Se o
computador executar uma instrução fazendo com que um novo va-
lor seja armazenado em determinada posição, então o valor antigo
será destruído. Devemos considerar que, em uma posição, sempre se
tem algum valor armazenado, mesmo que nenhum valor tenha sido
explicitamente lá colocado. Se nenhum valor foi explicitamente ar-
mazenado em determinada posição, considera-se que esta possui um
“lixo”. É fundamental que o leitor entenda o funcionamento da me-
mória, pois a maioria das instruções que o computador executa tem
por base a sua memória.
Dadas essas considerações, podemos escrever o programa que
faz com que o computador calcule a área de um triângulo, como segue:
Inicio
Leia Base
Leia Altura
Area < Base * Altura / 2
Escreva Area
Fim
18
Introdução à Programação -Algoritmos
Veja que nosso programa usou as posições de memória Base,
Altura e Area. O nome de uma posição de memória é definido pelo
programador. Por questão de legibilidade, é sempre recomendável
que os nomes das posições de memória sejam significativos. O nome
de uma posição de memória é significativo quando expressa de algu-
ma forma qual o conteúdo da posição. Assim, por exemplo, se
quisermos que o computador armazene o valor da idade de alguém,
é conveniente que a posição que armazenará esse valor seja
identificada por Idade.
deja a instrução:
Leia Base
A execução dessa instrução faz com que o computador fique
aguardando que o usuário digite umvalor . O valor digitado é então
lido pelo computador e, conforme determina a instrução, é armaze-
nado na posição de memória Base. Todo comando Leia deve
especificar pelo menos uma posição de memória. O valor lido será
armazenado na posição de memória especificada pelo comando Leia.
Note que, antes da execução da instrução Leia Base, algum va-
lor existia na posição de memória Base. Com a execução da instru-
ção, O valor fornecido pelo usuário será armazenado na posição Base
e o antigo valor lá existente será destruído. Lembre-se: mesmo que o
programa não tenha mandado armazenar nenhum valor em uma
posição, algum valor a posição conterá. Conforme já foi colocado,
quando nenhuma instrução foi executada de forma a armazenar
um valor em determinada posição, diz-se que a posição contém um
“lixo”.
Seja a instrução:
Area <— Base * Altura / 2
A execução dessa instrução faz com que o computador copie os
valores contidos nas posições de memória Base e Altura, multiplique
um pelo outro e divida o resultado por 2. O resultado final obtido,
conforme determina a instrução, deve ser armazenado na posição de
memória Area. Veja que usamos os caracteres * e / para representar
as operações de multiplicação e divisão, respectivamente. Já o símbolo
<— é usado para indicar que o resultado da expressão à direita deve ser
armazenado na posição de memória especificada à esquerda.
Coma execução da instrução
Escreva Area
Conceitos Preliminares
 
o valor que estiver armazenado na posição de memória Area será
copiado e mostrado na tela.
1.3 Definição da Linguagem
Conforme pode ser observado na seção anterior, para escrever nossa
primeira versão de um programa, usamos uma determinada lingua-
gem. Uma linguagem pode ser definida como um conjunto de sím-
bolos e regras utilizados em um processo de comunicação. Em ter-
mos de programação de computadores, várias são as linguagens dis-
poníveis, cada qual com suas características.
Nosso objetivo neste livro é apresentar ao leitor, os conceitos
envolvidos na construção de um programa de computador, sem,
contudo, entrar em aspectos relativos a uma determinada lingua-Sor WS UR Bo A Si NS O CD E RÃ RA eds a dopoaIA TsERA WA Y VEIA RTA ah. us Ty Rus não À
gem de programação.
Assim, estaremos usando durante todo o livro uma linguagem a
qual denominaremos de Pseudocódigo. Esse pseudocódigo, assim cha-
mado por não ser uma linguagem de programação propriamente dita,
tem por base o português e suas características básicas procuram seguir
o especificado em linguagens de programação tradicionais. Mais espe-
cificamente, esse pseudocódigo será apresentado de uma forma bastan-
te similar à linguagem de programação Pascal. Considerando que o
pseudocódigo não constitui-se em uma linguagem de programação dis-
ponível em computador, o conjunto de instruções escrito em
pseudocódigo será denominado de Algoritmo, em vez de Programa.
Ao usarmos um pseudocódigo em vez de uma linguagem de
programação, não necessitamos nos preocupar com detalhes especí-
ficos da linguagêm. Isto possibilita que o projetista se concentre fun-
damentalmente na montagem lógica da resolução do problema.
1.4 Conceito de Algoritmo
Podemos definir algoritmo como sendo uma sequência finita e lógica
de instruções executáveis, especificadas em uma determinada lin-
guagem, que mostram como resolver determinado problema.
Veja que essa definição não está presa à utilização ou não do
computador. Qualquer sequência de instruções que mostra como
19
Introdução à Programação - Algoritmos
resolver um problema constitui-se em um algoritmo. Uma receita de
bolo é um bom exemplo de algoritmo. Uma receita de bolo constitui-
se em uma sequência finita e lógica de instruções, as quais mostram
o que uma cozinheira deve fazer, e em que ordem, para obter um
bolo. Veja que a receita especifica todos os passos em uma sequência
onde a ordem das instruções ou passos é fundamental.
Um algoritmo deve especificar quais são as instruções que de-
vem ser executadas e em que ordem. Se o problema for, por exem-
plo, calcular a média aritmética de três valores, o seguinte algoritmo
poderia ser usado por alguém que fosse resolver este problema:
- Conhecer os três valores;
- Determinar a soma dos três valores;
- Dividir a soma por 3, encontrando a média;
- Mostrar a média encontrada.
Nosso objetivo neste livro é apresentar e discutir os conceitos
relativos à construção de algoritmos para execução em computador.
Conforme já colocamos anteriormente, estaremos utilizando um
pseudocódigo, que tem por base palavras do português e sua estru-
tura é bem similar à linguagem de programação Pascal. Assim, os
algoritmos que estaremos discutindo terão todas as características
de um programa, exceto a linguagem.
Para o problema do cálculo da média dos três valores, pode-se
escrever o seguinte algoritmo:
Inicio
LeiaValora (
Leia Valorb (
Leia Valorc (
Soma — Valora + Valorb + Valorc (
Media — Sonia / 3 (
Escreva Media (
Fim
A execução das instruções (1), (2) e (3) faz com que o compu-
tador leia os valores dos quais se deseja determinar a média. Veja
que, de acordo com as instruções, o primeiro valor será lido e arma-
zenado na posição de memória identificada com o nome Valora; o
segundo valor será armazenado na posição Valorb; e o terceiro, na
posição Valorc. À execução da instrução (4) faz com que sejam co-
piados e somados os valores que estão armazenados nas posições
Valora, Valorbe Valorc. O resultado obtido, de acordo com a ins-
 
Conceitos Preliminares
 
trução será armazenado na posição de memória Soma. A execução
da instrução (5) faz com que o valor armazenado em Soma seja divi-
dido por 3 e o resultado seja armazenado na posição Media. A
instrução (6) faz com que seja mostrado o valor armazenado na po-
sição Media. Todos esses tipos de instruções serão apresentados em
maiores detalhes no próximo capítulo.
Pelos exemplos apresentados, podemos concluir que a cons-
trução de um algoritmo envolve todo um processo de análise do pro-
blema, com o objetivo de abstrair-se uma solução. Nessa análise, deve-
se identificar claramente quais os dados que são necessários para a
resolução do problema. Esses dados são denominados entradas. Tam-
bém deve ficar claro a que resultados se quer chegar, ou seja, em que
consiste a solução do problema. Aos resultados a que se quer chegar,
denominamos saídas. Voltamos a lembrar, entretanto, que o princí-
pio fundamental da programação estruturada consiste em conside-
rar o problema a ser solucionado como sendo composto por
subproblemas. Dividindo-se o problema maior em subproblemas
menores, estes serão mais facilmente resolvidos. Tais aspectos serão
discutidos no Capítulo 6.
1.5 Exercícios Propostos
1. Explique o que significa programar um computador?
2. O que você entendeu por programação estruturada?
3. Defina Algoritmo. Dê exemplos.
4. Como pode ser visualizada a memória de um computador?
5. Escreva/jum algoritmo para calcular a área de um círculo.
Área do círculo = 3,1415 * Raio?
6. Escreva um algoritmo que calcule o perímetro e a área de
um quadrado.
21
 
2.1 Tipos de Valores
Um algoritmo, que conformejá visto, constitui-se em uma sequência
de instruções a serem executadas para a obtenção da solução de um
determinado problema, pode manipular vários valores. Hisses valo-
res podem ser os dados apresentados pelo problema, dados interme-
diários gerados durante a execução do algoritmo ou mesmo OS Vaio»
res que representam a solução do problema. Sejam, por exemplo, as
informações relativas a um funcionário de uma empresa:
Nome : José da Silva
Idade 25
Sexo -M
Salário : 1200.00
Veja que, nesse pequeno exemplo, vários valores foram utilizados.
Note que José da Silva é um valor que representa o nome do funcionário,
assim como 25 é um valor que representa a idade do funcionário. Com o
valor 1200.00, que representa o salário do funcionário, poderíamos, por
exemplo, efetuar uma multiplicação, se assim fosse necessário. Já com o
valor José da Silva, essa operação não faria qualquer sentido.
Assim, pódemos concluir que os valores manipulados dentro
de um algoritmo podem ser classificados em vários tipos, cada tipo
com suas próprias características e operações. Cada linguagem de
programação tem sua própria classificação. Em nosso pseudocódigo,
classificaremos os valores nos seguintes tipos básicos:
“ Inteiro
“ Real
“ Caractere
“ Literal
“ Lógico
24
Introdução à Programação - Algoritmos
Valores Tipo Inteiro
São valores que representam quantidades numéricas inteiras, tais
como a idade de uma pessoa, o número de funcionários de uma
empresa, o número de páginas deste livro, etc. |
Exemplos de valores do tipo inteiro:
17
-5
+90
O
Valores Tipo Real
São valores que representam quantidades reais, ou seja, valores que
apresentam parte fracionária, tais como o salário de um funcioná-
rio, a média de um grupo de valores, a altura de uma pessoa, etc.
Vamos assumir que os valores reais serão sempre representados uti-
lizando-se o ponto decimal.
Exemplos de valores do tipo real:
4.5
1200.93
-0.00005
+15.0
0.0
Valores Tipo Caractere
São valores utilizados para representar informações onde apenas
um caractere é necessário, tais como o valor do sexo de uma pessoa
(M ou F), uma letra do alfabeto, etc. Todo valor do tipo caractere
apresenta apenas um caractere. Vamos assumir que valores do tipo
caractere devem sempre ser especificados entre apóstrofos. Veja que
qualquer caractere constitui-se em um valor do tipo caractere.
Exemplos de valores do tipo caractere:
444
Y
42H
i
5
“* (espaço)
Algoritmos
 
Valores Tipo Literal
São utilizados na representação de informações onde se faz necessá-
ria a utilização de zero ou mais caracteres, tais como o nome de uma
pessoa, o nome de uma cidade, uma determinada frase, etc. Um
valor do tipo literal constitui-se em uma sequência dezero ou mais
caracteres especificados entre apóstrofos.
Exemplos de valores do tipo literal:
“Antonio da Silva”
“Rua Felipe Schmidt”
“Olho d”agua”
1234”
“ (literal nulo)
Valores Tipo Lógico
São apenas dois valores: verdadeiro e falso. São utilizados na repre-
sentação do valor de uma expressão lógica ou afirmações, tais como
6>4 (verdadeiro) ou “A terra gira em torno da lua” (falso). Veremos
exemplos de utilização em capítulos futuros.
2.2 Variáveis
Conforme apresentado no Capítulo 1, uma posição de memória
sempre armazena um determinado valor. Se um outro valor for
atribuído à posição, então o valor anterior será destruído. Assim, O
conteúdo de uma posição de memória pode variar durante a execu-
ção de um algoritmo. Dessa forma, passaremos a denominar uma
posição de memória de Variável.
Nome das Variáveis
Cada linguagem de programação tem suas próprias regras para for-
mação do nome de uma variável. Assumiremos para o nosso
pseudocódigo a seguinte regra:
O nome de uma variável pode ser composto por letras,
dígitos e o caractere sublinhado (. ), sendo que o primeiro
caractere deve ser uma letra.
i
a
E
m
26
Introdução à Programação -Algoritmos
Assumiremos também que, para nomes de variáveis, o uso de
letras maiúsculas ou minúsculas é indiferente. Assim, os nomesSalario
e SALARIO identificam a mesma variável.
Tipo das Variáveis
Umavariável é uma posição de memória e, portanto, armazena sem-
pre determinado valor. Cada variável utilizada em um algoritmo
deverá ser declarada de um determinado tipo, de acordo com o tipo
de valor que irá armazenar. Dessa forma, se uma variável for decla-
rada como sendo do tipo Inteiro, então esta só poderá receber valores
do tipo inteiro. Considerando essas novas informações, o nosso
algoritmo visto no Capítulo 1, que calcula a média aritmética de três
valores inteiros, fica conforme segue:
Algoritmo MediaAritmetica
VariávVELSfod
a
Valora, Valorb, Valorc, Soma : Inteiro
Media : Real
Inicio
Leia Valora
fo comando acima faz com que um valor seja lido e
armazenado na variável identificada pelo nome Valoraf
Leia ValorDb
Leia Valorc
Soma <— Valora + Valorb + Valorc
(O comando acima calcula a soma dos três valores e
o resultado é armazenado na variável Soma/
Media <— Soma / 3
(O comando acima faz com que o conteúdo da posição
de memória Soma seja dividido por 3 e o resultado
obtido seja armazenado na variável Media/
Escreva Media
(Faz com que o conteúdo de Media seja mostrado ao
usuário).
Fim
Algoritmo MediaAritmetica - Cálculo da média aritmética de três valores.
Observe que demos um nome ao nosso algoritmo. Também
colocamos comentários a respeito de algumas instruções, os quais
foram especificados entre chaves. A colocação de comentários, tam-
bém chamada de documentação, é importante para análise e manu-
tenção futura, pois conferirá maior clareza ao algoritmo. Todo co-
Algoritmos
 
mentário será especificado entre chaves. Observe também que cada
uma das variáveisutilizadas no algoritmo foi declarada como sendo
de um tipo. Assim, a declaração
Variáveis
Valora, Valorb, Valorc, Soma: Inteiro
Media : Real
define que as variáveis Valora, Valorb, Valorc e Soma serão do
tipo Inteiro e, portanto, somente valores inteiros poderão ser arma-
zenados nelas. Já a variável Media foi declarada como tipo Real e,
portanto, somente pode receber valor do tipo Real.
 
Es
2.3 Expressões
res, separados por caracteres especiais, que indicamas
que devem ser executadas. Assim, a expressão
Valora + Valorb + Valorc
indica o cálculo da soma dos conteúdos das variáveis Valora, Valorb
e Valorc. Já o comando
Soma — Valora + Valorb + Valorc
indica que o valor da expressão Valora + Valorb+ Valorc deve ser
armazenado na variável Soma.
Seja o comando:
Resultado <— Valora «< 10
Nesse caso, Valora < 10 constitui-se em uma expressão cujo
valor pode ser gerdadeiro ou falso, dependendo do valor armazenado
na variável Valora. Assim, a expressão Valora < 10 apresenta como
resultado um Valor do tipo Lógico. Na variável Resultado será armaze-
nado o valor verdadeiro, se o conteúdo da variável Valora for menor
que 10. Caso o conteúdo de Valora não seja menor que 10, então o
valor da expressão Valora < 10 será falso e a variável Resultado, que
deve ser declarada do tipo Lógico, receberá o valor falso.
Os operadores básicos utilizados em uma expressão podem ser
classificados em: Aritméticos, Relacionais e Lógicos. Os operadores
aritméticos especificam operações aritméticas, tal como em Valor.a
+ Valorb. Os operadores relacionais especificam uma relação, tal
27
Introdução à Programação - Algoritmos
como em Valora < 10. Os operadores lógicos especificam uma ope-
ração lógica, como no comando
Resultado <— (Valora > 10) E (Valora < 20)
onde é utilizado o operador lógico E. Nesse exemplo, Resultado
receberá o valor verdadeiro se o conteúdo da variável Valora for
maior que 10 e menor que 20; caso contrário, Resultado receberá o
valor faiso.
Operadores Aritméticos
Expressam operações aritméticas. Veja a Fig. 2.1:
 
 
 
 
 
 
 
 
 
Operador Significado Exemplo |Tipo dos operandos
+ Adição a+b Reais e/ouinteiros
- Subtração | a-b Reais e/ou inteiros
Multiplicação a“*b Reais e/ou inteiros
/ Divisão real a/b Reais e/ou inteiros
DIV Divisão inteira a DIV b Inteiros
Bia, do “RESJO Resto da divisão inteira) a RESTO b Inteiros
A - Exponenciação a“ b Reais e/ou inteiros
 
 
Fig. 2.1 - Lista dos operadores aritméticos.
Veja os exemplos de operações aritméticas no algoritmo a seguir.
Algoritmo Exemplo
Variáveis
a, b, d, Sobra : Inteiro
Cc, É : Real
Inicio ,
a «e 22 fArmázena o valor 22 na variável a.)
be 4 :
(o comandoa seguir faz a divisão real do conteúdo
da variável a pelo conteúdo de b. A variável c
receberá o valor 5.51
ce a/b
(O comando a seguir faz a divisão inteira do conteúdo
de a pelo conteúdo de b. A variável d receberá o valor5/
de a Div b
(No próximo comando é calculado o resto da divisão
inteira do conteúdo da variável a pelo conteúdo da
variável b. A variável Sobra receberá o valor 21
28
Algoritmos
 
Sobra <— a Resto Db
fe 2.0 **b fArmazenará na variável £f o valor 16.0)
Fim
Algoritmo Exemplo - Uso de operadores aritméticos.
 
Hierarquia das Operações Aritméticas
Dentro de uma expressão aritmética podem aparecer várias opera-
ções. As operações aritméticas serão executadas de acordo com a
seguinte ordem:
1º) O que estiver entre parênteses;
2º) Exponenciação;
3º) Multiplicação, divisão real, divisão inteira, ou resto da di-
visão Inteira;
4º) Adição ou subtração.
Quando aparecerem duas ou mais operações de mesma hie-
rarquia, estas são executadas na ordem em que aparecem na ex-
pressão, da esquerda para direita. Considere, por exemplo, a fór-
mula a seguir:
2+a
b-—3
O comando para calcular o valor de y, de acordo com a fórmu-
la acima, pode ser colocado como:
-Dx+x y
ye(2+a)/(b-3)-2%x + x**3
De acordó com a hierarquia, no cálculo do valor da expressão,
as operações serão executadas na seguinte ordem:
1º) (2ta)
2º) (b-3)
3º) x**3
4º) divisão do resultado de 1º) com resultado de 2º)
5º) 2x
6º) subtração do resultado de 4º) com resultado de 5º)
7) adição do resultado de 6º) com o resultado de 3º)
Introdução à Programação - Algoritmos
Operadores Relacionais
Expressam operações de relação. São apresentados na Fig. 2.2.
 
 
 
 
 
 
 
Operador Significado Exemplo
> Maior que Idade > 18
>= Maior ou igual que NumDep >=2
< Menor que Nota < 6.0
<= Menor ou igual que x <=25
= Igual que Nome = 'Antonio
<> Diferente de Sexo <>'f 
 
Fig. 2.2 - Operadores relacionais.
Operadores Lógicos
Expressam operações lógicas. As linguagens de programação, em
geral, apresentam vários operadores lógicos. Aqui, em nosso
pseudocódigo, consideraremos apenas os operadores lógicos E, Ou e
Não. Veja a seguir alguns exemplos de comandos com expressões
que usam operadores lógicos e relacionais.
FoiAprovado < (Media >= 6.0) E ( Frequencia > 0.75)
EContribuinte < (Salario > 1000.00) Ou ( Idade < 75)
TemSol < Não EstaNublado
Observe que os operadores lógicos Ou e E são aplicados sempre a
dois operandos, enquanto que o operador Não é aplicado a um único
operando. Esses operandos podem ser expressões, desde que tenham
comoresultado um valor lógico (verdadeiro oufalso). A Fig. 2.3 apresen-
ta o resultado de operagões envolvendo os operadores E e Ou.
 
 
 
 
 
Operando 1 Operando 2 Resultado com E Resultado com OU
verdadeiro verdadeiro verdadeiro verdadeiro
verdadeiro falso falso verdadeiro
falso verdadeiro falso verdadeiro
falso falso falso falso 
 
Fig. 2.3 - Operaçõeslógicas E e Ou.
 
Assim, a expressão (Media >= 6.0) E (Frequencia > 0.75) terá
como resultado o valor verdadeiro somente se as duas condições fo-
rem verdadeiras,isto é, se o conteúdo davariável Media for maior ou
Algoritmos
 
igual a 6.0 e, simultaneamente, se o conteúdo da variável Frequencia
for maior que 0.75. Caso uma das condições seja falsa, ou mesmo se
ambas forem falsas, então toda a expressão terá como resultado o
valor falso. Já a expressão (Salario > 1000.00) Ou ( Idade < 75), terá
como resultado o valor verdadeiro, se uma das condições for verda-
deira ou se ambas forem verdadeiras. Assim, basta que o conteúdo
da variável Salario seja maior que 1000.00 para que a expressão
(Salario > 1000.00) Ou (Idade < 75) tenha o valor verdadeiro.
O operador Não, que deve ser aplicado a um único operando
lógico, faz com que o resultado da operação seja o inverso do valor
do operando. Assim, com a execução do comando
TemSol <- Não EstaNublado
será armazenado o valor verdadeiro na variável TemSol se o conteú-
do da variável EstaNublado for falso. Veja que, se EstaNublado tem
o valor faiso, então a expressão Não EstaNublado tem o valor contrá-
rio, isto é, verdadeiro.
Quando uma expressão tem como resultado um valor lógico,
então denominamos de expressão lógica.
2.4 Compatibilidade de Tipos
O valor a ser armazenado em uma variável deve ser do mesmotipo
da variável. Assim, se em um algoritmo tivermos o comandos:
A <- 10.5
Resultado — 7/2
Aprovado <- (Media >= 6.0) E ( Frequencia > 0.75)
então as variáveis A e Resultado deverão ser declaradas do tipo Real,
pois 10.5 é umvalor real e 7/2 dá como resultado também um valor
real. Já a variável Aprovado deve ser declarada como sendo do tipo
Lógico, pois a expressão (Media >= 6.0) E ( Frequencia > 0.75) tem
como resultado um valor do tipo lógico, ou seja, é uma expressão
lógica. Veja o Algoritmo Exemplo?41.
Algoritmo Exemplo241
Variáveis
Nom : Literal
Peso, NumCar, X : Real
Num : Inteiro
Introdução àProgramação -Algoritmos
Inicio
Num <- 5
Nom <— “Isto e um exemplo”
Peso <- 100.1
NumCar — 20
X — 3
Nom <- “Trocaram meu conteúdo”
Peso <- (Peso / X) * 0.0
NumCar <— Num * X
Xx—- 10 - (X + 5)
NumCar < NumCar / 38
Fim
Algoritmo Exemplo?41 - Compatibilidade de tipos.
Veja na Tabela 2.1 o acompanhamento dos valores que as va-
riáveis assumiramdurante aexecução desse algoritmo. A execução
manual de um algoritmo com a observação dos valores assumidos
pelas diversas variáveis tem por objetivo verificar possíveis proble-
mas no algoritmo. À execução manual de um algoritmo também
denomina-se Teste de Mesa.
 
 
 
 
Num Peso NumCar X Nom
5 100.4. 20.0 SA ictoe tm MVdelas! Dio
0.0 15.0 2.0 Trocaram meu conteúdo
5.0 
 
Tabela 2.1 - Valores das variáveis do algoritmo Exemplo?41.
O algoritmo Exemplo?41 mostra que, durante a sua execu-
ção, o conteúdo de uma variável pode mudar. Entretanto, cada novo
valor armazenado na variável deve ser do mesmo tipo da variável.
Como exceção, consideraremos em nosso pseudocódigo que é per-
mitido atribuir um valor do tipo Inteiro a uma variável declarada
como sendo do tipo Real.
2.5 Comandos de Entrada e Saída
Um comando de entrada (leitura) tem-por função transferir dados do
meio externo para a memória de trabalho do computador. Vamos assu-
mir em nosso pseudocódigo que os dados do meio externo entram no
computador através de seu teclado. Assim, a execução do comando
Leia NumeroDependentes
 
c
o
a
me
ms
o
c
o
m
a
m
p
i
e
Po
ce
ni
ha
ço
 
Algoritmos
 
faz com que o computador fique aguardando que um valor seja
digitado. O valor digitado será armazenado na variável
Numero.Dependentes. Um comando de leitura pode especificar a lei-
tura de um ou vários valores. Assim, a execução do comando
Leia Nome, NumeroDependentes, Salario
faz com que o computador aguarde que três valores sejam digitados.
O primeiro valor será armazenado na variável Nome, o segundo na
variável NumeroDependentes e o terceiro na variável Salario. Lem-
bre-se que cada valor a ser digitado deve ser do mesmo tipo da vari-
ável que o recebe.
Ao contrário de um comando de entrada, um comando de sa-
ída é utilizado quando necessitamos apresentar valores ao meio ex-
terno. Assumiremos que esses valores serão apresentados ao meio
externo através da tela de um monitor. Assim, se quisermos que o
computador mostre o valor que está armazenado na variável Soma,RÃ DA bel Rap
o seguinte comando deve ser executado:
Escreva Soma
Um comando Escreva pode especificar a saída de vários valo-
res. Assim, o comando
Escreva Nome, “Media : '*, Media
faz com que seja mostrado na tela o conteúdo da variável Nome,
seguido do valor tipo literal 'Media :” e, após, o conteúdo da variá-
vel Media. Assumiremos em nosso pseudocódigo que cada comando
Escreva imprime uma linha na tela. Veja o algoritmo a seguir:
Algoritmo Exemplo251
Variáveis
NomedgAluno : Literal
Idade : Inteiro
Nota : Real
Inicio
Leia NomedoAluno
Leia Idade
Leia Nota
Escreva “Nome do Aluno: * , NomedoAluno
Escreva “Idade: *., Idade
Escreva “Nota da Prova: *., Nota
Fim
Algoritmo Exemplo?51 - Uso dos comandos de Entrada e Saída.
34
Introdução à Programação - Algoritmos
Considerando que, ao executar os comandos de leitura, o usu-
ário digite Joao” para NomedoAluno, 25 para Idade e 9.5 para Nota,
a tela teria a seguinte aparência após a execução das instruções des-
se algoritmo:
 
Joao
25
9.5
Nome do Aluno: Joao
“Idade:25
Nota da Prova: 9.5
 
 
 
 
 
2.6 Constantes
Em muitas situações, ao escrevermos um algoritmo, necessitamos
trabalhar com valores que não se alterarão durante toda execução
do algoritmo. A esses valores denominamos Constantes. Constante
é uma quantidade fixa, invariável, cujo valor é definido no início do
algoritmo, não podendo ser alterado durante a sua execução. Assim,
se SalMinimo identifica uma constante, então não será permitido
que alguma instrução do algoritmo modifique o seu valor. Como
uma constante constitui-se em um valor, esta poderá ser de qualquer
um dos tipos vistos na seção 2.1. Veja o algoritmo
ExemplodeConstante.
Algoritmo ExemplodeConstante
Constantes
SalMinimo 400.00
Mensagem = 'Resultados'
Variáveis |
Salario Í : Real
Quantidade : Inteiro
Inicio é
(Não é permitido alterar os valores de SalMinimo e
Mensagem]
Leia Salario
Quantidade <- Salario Div SalMinimo
Escreva Mensagem
Escreva 'O funcionário tém salário de: "., Salario
Escreva 'O qual equivale a ", Quantidade, ' Salários”
Escreva “Valor do salário mínimo: '", SalMinimo
Fim
Algoritmo ExemplodeConstante - LIso de constantes.
 
Algoritmos
 
No algoritmo ExemplodeConstante são declaradas duas cons-
tantes, Mensagem e SalMinimo, que são utilizadas dentro do algoritmo
e que, por definição, não poderão ser alteradas. A utilização de cons-
tantes para valores que não mudam durante a execução do algoritmo
tem como vantagem a facilidade de futura manutenção do algoritmo.
Assim, se o valor do salário-mínimo for alterado pelo governo, basta
alterar-se o valor da constante SalMinimo que, automaticamente,
todas as instruções que utilizam essa constante ficam atualizadas.
Veja que, se não tivéssemos utilizado a constante SalMinimo, o va-
lor 400,00 deveria ser especificado em vários pontos dentro do
algoritmo, o que poderia resultar em possível erro por esquecimento,
caso fosse necessário a sua alteração.
Resolvidos
 
2.7 Exercícios
Exercício 1
Veja os valores armazenados em cada uma das variáveis após a exe-
cução de cada comando do algoritmo a seguir. O caractere ? está
sendo utilizado para denotar um valor não conhecido (um lixo).
A B C X
Algoritmo Exemplo -
Variáveis
Í
! ! Í !
A, B : Real ? ? - -
C, X : Inteiro ? ? ? ?
Inicio ? ? ? ?
A << 6.0 6.0 ? ? ?
B<- A/2 6.0 3.0? ?
Ce 1 6.0 3.0 11 ?
xe cpdiva 6.0 3.0 11 2
C «< CResto 2 6.0 3.0 1 2
B<- 5.4 6.0 5.4 1 2
Ce c+a 6.0 5.4 2 2
Ac B+2 7.4 5.4 2 2
Fim
Exercício 2
Considere o problema de calcular as raízes de uma equação de segun-
do grau. Uma equação de segundo grau tem a seguinte forma geral:
Ax + Bx+C=0
35
 
 
Introdução à Programação - Algoritmos
As raízes podem ser determinadas através da fórmula:
-B+Bº —-4AC
“o ZA
Em nossa resolução, vamos assumir que as raízes de uma equa-
ção de segundo grau sejam sempre reais. Fazendo uma análise desse
problema com o objetivo de determinar quais dados são necessários
para a sua resolução, conclui-se que é necessário o conhecimento dos
valores dos coeficientes 4, Be C. Também pode-se concluir, pela defini-
ção do problema, que o objetivo é determinaras raízes da equação.
 
Assim, tem-se:
Entradas: Os coeficientes da equação (A, B, €).
Saídas: As raízes da equação (xl , x2).
Estando claramente definido e analisado o problema, parte-se
para a construção do algoritmo, o qual ficará como segue:
Algoritmo SegundoGrau
Variáveis
A, B, CC, xl, x2 : Real
Inicio
(O comando a seguir faz com que sejam lidos três valores.
Os valores serão armazenados nas variáveis A, Be C)
Leia A, B, €
(O comando a seguir calcula a primeira raiz e armazena
em x1/
x1 — (-B+(B**2-4*A*C) **0.5) /(2*A)
(O comando a seguircalcula a segunda raiz e armazena
em x2 1
x2 € (-B-(B*+2-4*A*C)**0.5) /(2%A)
(Os comandosa seguirprocedem a saída dos resultados|
Escreva “Raízes da equação fornecida”
Escreva 'Raiz 1: !, x1
Escreva 'Raiz 2 : !, x2
Fim
Algoritmo Segundo.Grau - Cálculo das raízes de uma equação de segundo grau.
Exercício 3
Considere a determinação do salário líquido de um funcionário, as-
sumindo que sobre seu salário bruto incide um desconto de 8.5%
 
Algoritmos
 
para a previdência. Feito o desconto para a previdência, sobre o res-
tante é aplicado um desconto de 26,6%, a título de imposto de ren-
da. O algoritmo deve mostrar o nome do funcionário, o seu salário
bruto e o seu salário líquido.
Fazendo uma análise desse problema, pode-se concluir que,
para que seja possível a sua resolução, devemos ter como dados o
nome do funcionário e o valor de seu salário bruto. Assim, tem-se:
Entradas: Nome do funcionário
Salário Bruto
Pelo enunciado do problema, também facilmente pode-se con-
cluir que a sua solução consiste em mostrar os valores do nome,
salário bruto e salário líquido do funcionário. Assim, tem-se:
Saídas: Nome do Funcionário
"Salário Bruto
Salário Líquido
Pela definição do problema, observa-se que o descontopara a
previdência é calculado diretamente a partir do salário bruto. Já o
desconto para o imposto de renda é calculado sobre o salário bruto
menos o desconto da previdência. Por fim, o salário líquido será cal-
culado a partir do salário bruto menos os descontos para a previdên-
cia e imposto de renda. O algoritmo fica comosegue:
Algoritmo Funcionario
Variáveis
Nome : Literal
SalBruto, SalLiq, Inss, Irf : Real
Inicio
Entradajdos dados necessáriospara resolução doproblema
Leia Nome
Leia SalBruto
Cálculo dos descontos e do salário líguido
Inss - SalBruto *8.5 / 100
Irf — (SalBruto - Inss) * 26.6 / 100
SalLig <«- SalBruto - Inss - IrÊ
Saída dos valores solicitados - relatório
Introdução à Programação - Algoritmos
Escreva “Funcionário : ', Nome
Escreva 'Salario Bruto ; “*, SalBruto
Escreva 'Salário Líquido : ", SalLig
Fim
Algoritmo Funcionario - Cálculo do pagamento de umfuncionário.
Exercício 4
Dados os pontos 4, de coordenadas Af(x1,y1), e B, de coordena-
das B(x2,y2), escreva um algoritmo que determine a distância en-
tre os dois pontos. À distância entre dois pontos representados no
sistema de coordenadas cartesianas é dada por:
 
dist= (02 -x17 + (92 - 1)
Pela definição do problema conclui-se que, para a sua resolu-
ção, deve-se ter como entradas as coordenadas de cada um dos pon-
tos. Como saída tem-se o valor da distância entre os pontos.
Assim, tem-se:
Entradas: Coordenadas do ponto 4, ou seja, x1 e y1
Coordenadas do ponto B, ou seja, x2 e y?
Saída: Distância entre 4 e B
Veja o algoritmo DistanciaPontos a seguir:
Algoritmo DistanciaPontos
Variáveis
Dist, X1, Y1, X2, Y2 : Real
Inicio Ê
/ 0000000> mena ucanmenn2unnncul uno.
Entrada das coordenadas do primeiro ponto - A(x1,y1)
eia,
/ == 0000 nnnnnDn
Entrada das coordenadas do segundo ponto - B(x2,y2)
dam,
/ == e umnnnnnnnnDnn
Determinação da distância e saída do resultado
==amamnanaj
 
Algoritmos
 
Dist e ( (X2-X1)**2 + (V2-YI)**2) **0.5
Escreva 'Distância entre os pontos : “, Dist
Fim
Algoritmo DistanciaPontos - Cálculo da distância entre dois pontos.
2.8 Exercícios Propostos
1. Quais os valores das expressões a seguir:
2 +43 * 6
12 /3 * 2-5
31 / 4
31 Div 4
31 Resto 4
94x (1/2)
16*%%0.5
2. Considere o seguinte trecho de algoritmo:
Algoritmo Exerl
variáveis
Pig, Vari, Total, A, 1 : Inteiro
Valora , X : Real
Inicio
Vari e 2
Total <— 10
Valora — 7.0
A «e -4
1 <— 80
Xe 4.0
Diga quais os valores armazenados em cada uma das variá-
veis após a execução de cada um dos comandosa seguir:
X e fotal / Vari o
Xe sXx+1
A-A+
Pig e 10
Ae I Div Pig
A << A + IT Resto 6
Valora — Pig * Valora + X
3 Considerando o conteúdo das variáveis conforme a seguir,
diga qual o valor de cada uma das expressões:
 
 
for 'ana 10 FALS
Nome
|
Apelido
|
Quer
|
Ax
|
Fesp K Karoi
 
(o
)
 
 
Introdução à Programação - Algoritmos 
 
a) Nome = Apelido
b) (Nome = Oquer) E (Nome <> 'ANa”)
Cc) Nome = "Nome!
d) (K>=Karol+1) Ou (Qquer=' ana”)
e) Não Resp
f) Não Resp) E (K < Aux)
e) (Aux <= Aux / K+kK) E ((Resp) Ou (Apelido=' flor'))
h) K > Karol + (K - Karol)
i) ((Não Resp E Resp) Ou (Não Resp)) E (Resp Ou (Não Resp) )
4. Considerandoa, b, c, d como variáveis, escreva os comandos
para
calcular o valor de x das fórmulas a seguir. Use a divisão real.
b
+4a
ac
x=2T"["5"—
d-2a
3+c
 
“bb” -4ac+2a”
X=
Za
(b+1)
 
5. Faça o teste de mesa, isto é, diga qual o valor armazenado
em cada variável, após a execução de cada um dos coman-
dos do algoritmo a seguir:
Algoritmo Exercicios
Variáveis
O, W, R « Inteiro
Ex j: Real
Inicio
OQ <— 10
OQ <— 10 + 30
W <— -1
We W+Q
OQ <-— Q Resto W
O <— W Div (0+40)
Ex <— 2*0 / WU
Re 0
Re R+ d
Re R+ dl
Fim
40
 
Algoritmos
 
. Escreva um algoritmo que determine a área e o perímetro de
“um retângulo.
. Dados três números reais, faça um algoritmo que:
a) Determine a soma dos três números;
b) Determine a raiz quadrada do produto dos três
números.
. Escreva um algoritmo que forneça o valor em graus
Fahrenheit de uma temperatura expressa em graus
Celsius.
 
f = 2c +32
5
. Faça um algoritmo para calcular o volume de uma esfera de
raio r.
V = 4mrº
3
10.Uma pessoa comprou quatro artigos em uma loja. Para
11.
12.
13.
cada artigo, tem-se nome, preço e percentual de descon-
to. Faça um algoritmo que imprima nome, preço e preço
com desconto de cada artigo. Imprima também o total a
pagar.
Faça um algoritmo que leia os preços de três mercadorias
em 01/04 e 01/05 e tendo como base a variação dos preços
dessas mercadorias, calcule a taxa de inflação ocorrida no
período.
Suponha que você foi ao supermercado e comprou:
N quilos de café, cujo custo unitário é Q;
L litros de leite, cujo custo unitário é P;
B quilos de banana, cujo custo unitário é T.
Faça um algoritmo que imprima: nome do produto, total
gasto com cada produto e o total gasto no mercado.
Uma sorveteria vendetrês tipos de picolés. Sabendo-se
que o picolé tipo 1 é vendido por R$1,50, 0 do tipo 2 por
R$2,00 e o do tipo 3 por R$0,75, faça um algoritmo que,
para cada tipo de picolé, mostre a quantidade vendida e o
total arrecadado.
42
Introdução à Programação - Algoritmos
14,
15.
16.
17.
18.
19.
20.
A revendedora de carros Pica-Pau Ltda paga a seus funcio-
nários vendedores dois salários-mínimos fixos, mais uma
comissão fixa de R$150,00 por carro vendido e mais 5% do
valor das vendas. Faça um algoritmo que determine o salá-
rio total de um vendedor.
Uma empresa produz três tipos de peças mecânicas: para-
fusos, porcas e arruelas. Tem-se os preços unitários de cada
tipo de peça e sabe-se que sobre esses preços incidem des-
contos de 10% para porcas, 20% para parafusos e 30% para
arruelas. Escreva um algoritmo que calcule o valor total da
compra de um cliente. Deve ser mostrado o nome do cliente,
o número de cada tipo de peça que comprou, o total de des-
conto e o total a pagar pela compra.
Considerando que, para um consórcio, sabe-se o número
ma La
pagas eototal de prestações, a quantidade de prestações
valor atual da prestação, escreva um algoritmo que determi-
ne o total pago pelo consorciado e o saldo devedor.
Dado que se tem o valor de um ângulo expresso em graus,
minutos e segundos (exemplo: 35º47'59º), escreva um
algoritmo que forneça o valor desse ângulo em radianos.
Suponha que um caixa disponha apenas de notas de 1, 10 e
100 reais. Considerando que alguém está pagando uma com-
pra, escreva um algoritmo que mostre o número mínimo de
notas que o caixa deve fornecer como troco. Mostre também
o valor da compra, o valor do troco e a quantidade de cada
tipo de nota do troco. Suponha que o sistema monetário não
utilize centavos.
É
Escreva um algoritmo que determine o número de dias que
uma pessoa'já viveu. Considere que um mês tenha 30 dias.
A Empresa Pica-Pau do Brasil produz camisinhas. Sua pro-
dução semanal chega a atingir 10.000 unidades, que é ex-
portada para todo o planeta. Essa produção só acontece
quando não há queda de energia durante a semana. À cada
queda de energia, a produção cai em 5%, pois necessita-se
de um determinado tempo para que as máquinas voltem a
funcionar. Faça um algoritmo para estimar a produção da
empresa, caso falte energia duas vezes em um mês.
 
Algoritmos
 
21. Considere que, para um automóvel que realizou determi-
nado percurso, tenha-se: marca, quilometragem inicial, qui-
lometragem final, litros consumidos e capacidade do tan-
que de combustível. Faça um algoritmo que mostre um rela-
tório contendo, além desses dados, qual o consumo do auto-
móvel em km/litros e qual a sua autonomia.
22. O custo ao consumidor de um carro novo é a soma do custo de
23.
fábrica com a percentagem de lucro do revendedor e com o
custo dos impostos (aplicados ao custo de fábrica). Supondo
que a percentagem do revendedor seja de 25% e que os impos-
tos custam 45% do custo de fábrica, faça um algoritmo para
determinar o preço final do automóvel (custo ao consumidor).
Faça um algoritmo paracalcular a quantidade de barbante
necessária para amarrar um pacote. O algoritmo terá como
. 4
entradas a largura, altura e comprimento do pacote, emcentí-
metros. Para que o pacote fique firme, são necessárias três amar-
ras. Considere que uma amarra consuma 10 cm de barbante.
24. O sistema de avaliação de determinada disciplina é composto
29.
26.
por três provas. A primeira prova tem peso 2, a segunda pro-
va tem peso 4e a terceira prova tem peso 6. Faça um algoritmo
para calcular a média final de um aluno dessadisciplina.
Faça um algoritmo que calcule a quantidade de galões de
tinta necessária, bem como o seu custo, para pintar um tan-
que de combustível em formato cilíndrico. A área a ser pin-
tada é calculada conforme a seguir:
AREAC = 2*1*Rº + 2*1*R*H
onde R é o raio da base do tanque e H, a altura. Sabe-se que o
galão dé 3,6 litros de tinta custa R$60,00 e que cadalitro de
tinta pinta três metros quadrados em média. Para que se obte-
nha uma pintura de qualidade são necessárias duas demãos.
Faça um algoritmo que, para quatro valores reais, a, b, ce d,
determine:
a) a média aritmética;
b) a média harmônica (MH);
c) a média geométrica (MG);
d) a média quadrática (MO).
E
d
o
ás
Introdução à Programação - Algoritmos
 
á
L 1 1 1
+++—
a bed
MG =abcd
2 2 2 2
no=(º +b o +d
MEH =
 
 
27. Faça um algoritmo que leia um valor inteiro positivo e me-
nor que 1000, armazene-o numa variável do tipo Inteiro e
determine a soma dos dígitos que formam o valor.
Exemplo: o valor 397 tem soma dos dígitos igual a 19.
 
 
 
Estruturas de Seleção 
 
3.1 Comando Se
Frequentemente, na construção de algoritmos, vamos nos defrontar
com problemas onde é necessário selecionar uma, entre duas ou mais
situações possíveis. Suponha, por exemplo, um algoritmo em que se
necessite mostrar o conteúdo de uma variável do tipo Inteiro, somen-
te se seu conteúdo for maior que 10. Considerando uma variável de
nome Nota, poderíamos escrever:
Se Nota > 10 Então
Escreva Nota
Fim Se
Consideramos que, quando for executado o comando Se, caso
o conteúdo da variável Nota seja maior que dez, então será executa-
do o comando Escreva Nota. Caso o conteúdo de Nota não seja maior
que dez, então não será executado o comando Escreva Nota.
Suponha outro algoritmo que mostre, para dois valores intei-
ros, qual o maior deles (algoritmo Maximo1).
Algoritmo Maximo1
Variáveis
Valor'a, Valorb : Inteiro
Inicio
Leia Valora, Valorb
Se Valora > Valorb Então
Escreva 'Maior Valor: ', Valora (1)
Senão
Escreva 'Maior Valor: ', Valorb 2]
Fim Se
Fim
Algoritmo Maximo1 - Maior de dois valores.
46
Introdução à Programação - Algoritmos
O algoritmo Maximo1 solicita inicialmente a entrada de dois
valores, os quais são armazenados nas variáveis Valora e Valorb. Ao
ser executado o comando Se, é calculado o valor da expressão lógica
Valora > Valorb. Se o conteúdo da variável Valora for maior que o
conteúdo da variável Valorb, ou seja, se a expressão Valora > Valorb
tiver o valor verdadeiro, então será executado o comando (1) e, após, o
fluxo de execução do algoritmo passará para o primeiro comando
após o Fim Se. Caso o conteúdo de Valora não seja maior que Valorb,
isto é, caso o valor da expressão lógica Valora > Valorb seja falso,
então será executado o comando (2/ e, após, o fluxo de execução pas-
sará para o primeiro comando após o Fim Se. Veja que, caso os dois
valores sejam iguais, então a expressão lógica tem o valor falso e será
executado o comando (2), o qual informará o maior valor como sendo
o conteúdo de Valorb. Isto não corresponde à realidade. Assim, esse
algoritmo só funciona se os dois valores forem diferentes. Discutire-
mos esse problema novamente mais adiante.AL RNA ud Pr+ ALCA A Y AARA ERES KARLA
Pelos exemplos apresentados, concluímos que o comando Se
tem por função fazer com que seja selecionada uma, entre duassitu-
ações possíveis, e pode ser apresentado sob as seguintes formas:
a) Comando Se sem a cláusula Senão:
Se expressão lógica Então
Comando 1
Comando 2
o
a
Comando N
Fim Se
Nessa forma de éomando Se, os comandos Comando 1, Comando
2, -.. , Comando N serão executados somente se a expressão lógica tiver
O valor verdadeiro. Assim, quando o fluxo de execução chegar no
comando Se, será calculado o valor de expressão lógica e caso valha
verdadeiro serão executados os comandos Comando 1, Comando 2,
Comando N. Após a execução desses comandos, o fluxo segue para a
execução do primeiro comando após o Fim Se. Se a expressão lógica
tiver o valor faiso, então o fluxo segue diretamente para o primeiro
comando após o Fim Se sem executar nenhum dos comandos coloca-
dos internamente ao Se. Veja que dentro de um comando Se pode-
mos colocar qualquer comando, inclusive outro comando Se.
 
Estruturas de Seleção
 
b) Comando Se com a cláusula Senão:
Se expressão lógica Então
Comando 1
Comando 2
o
e
Senão
Comando a
Comando b
o
2
Fim Se
Em um comando Se com a cláusula Senão, quando o fluxo de
execução chegar no Se, será avaliada a expressão lógica. Caso a ex-
pressão lógica tenha o valor verdadeiro, então serão executados os
comandos colocados entre o Se e a cláusula Senão (Comando 1, Co-
mando 2, ...) e após o fluxo de execução segue para o primeiro co-
mando após o Fim Se. Se, ao avaliar a expressão lógica, esta tiver o
valor falso, então serão executados os comandos colocados entre a
cláusula Senão e o Fim Se (Comando a, Comando b, ...) e após o fluxo
de execução segue para o primeiro comando após o Fim Se.
3.2 Ninhos de Comandos Se
Dentro de um comando de seleção (comando Se), podemos colocar
qualquer tipo de comando. Assim, dentro de um Se, pode-se ter outros
comandos de seleção. No algoritmo Maximo1, que determina o mai-
or entre dois valores, vimos que, se os dois números são iguais, O
algoritmo informará como resposta que Valorb é o maior valor, o que
obviamente nãoé verdade. Assim, esse algoritmo não está correto.
Note que, na determinação do maior valor entre dois valores,
temos três situações possíveis: Valora maior que Valorb, Valora
menor que Valorb e os dois valores iguais. Com um único Se conse-
guimos avaliar apenas duas situações. Para levar em conta as três
situações, um outro comando de seleção faz-se necessário. A solu-
ção para esse problema é apresentada pelo algoritmo Maximo2.
Algoritmo Maximo2
Variáveis
Valora, Valorb : Inteiro
47
48
introdução à Programação - Algoritmos
Inicio
Leia Valora, Valorb
Se Valora > Valorb Então
Escreva 'Maior Valor: ", Valora
Senão
Se Valora < Valorb Então
Escreva 'Maior Valor: *, Valorb.
Senão
Escreva '0Os dois valores são iguais”
Fim Se
Fim Se
Fim
Algoritmo Maximo2 - Maior entre dois valores.
Note que, nessa nova versão, caso o valor da expressão Valora
> Valorb sejafalso, ofluxo de execução irá executar O que estiver
dentro do Senão ão piimeiro se. »reniro o Senão GO primeiro ve, um
outro Se é executado, sendo então verificado se o conteúdo de Valora
é menor que o conteúdo de Valorb. Caso Valora seja menor que
Valorb, o algoritmo identificará Valorb como sendo o maior valor.
Veja que o comando de seleção que está colocado dentro do Senão do
primeiro Se só será executado se, ao executar o primeiro Se, a expres-
são Valora > Valorb for falsa. Se Valora > Valorb tiver o valor
falso, então conclui-se que Valora não é o maior valor. Logo, sea
expressão Valora < Valorb também for falsa, então também Valorb
não poderá ser o maior valor, o que permite concluir que os dois
valores são iguais.
Observe que os comandos colocados entre o Se e a cláusula
Senão foram deslocados em relação à coluna (linha vertical) relativa
ao Se. Também os comandos colocados entre a cláusula Senão e o
Fim Se foram deslocados em relação ao Senão e Fim Se. Esse processo
denomina-se Identação e tem por objetivo facilitar a visualização de
que sequência de comandos será executado quando o comando Se
for executado.
Os exemplos a seguir mostram o teste de mesa para algoritmos
que apresentam comandos de seleção aninhados.
Exemplo1
Conteúdo das variáveis PAN S
Algoritmo Exemplol - =
Variáveis - -
A, S : Inteiro ? ?
 
 
 
Estruturas de Seleção
 
Inicio
A <- 6
Se A < 3 Então
S <— 3*A
Senão
Se A < 5 Então
Ss €<— 2 *% À
Senão
S << 0
Fim Se
Fim Se
Escreva “Valor de A:
Escreva “Valor de &S:
Fim
Exemplo 2
Algoritmo Exemplo2
Variáveis
A, B, Z : Inteiro
x, H : Real
Inicio
A e 2
B+<-— 4
XxX e 5
Se A <> B Então
24 <— B Resto A
B<— B Div A
He X/ A
Fim Se
Se 2 >= B Então
Escreva A, B, X, Z4, H
Fim
f
f
f
/
i
D
D
D
D
D
O
D
S
M
S
A
S
D
O
N
O
D
O
O
D
a
2
A
S
To
i
I
h
o
D
S
D
O
N
O
E
R
R
D
E
S
D
3
O
N
A
A
a
N
t
i
S
O
O
O
O
I
T
)
2
?
?
Õ
Ó
Ó
Ó
Ó
X H
2 ?
? ?
2? 2
? ?
5.0 ?
5.0. ?
5.0 2?
5.0 ?
5.0 2.5
5.0 2.5
5.0 2.5
5.0 0.0
5.0 0.0
Considere agora a construção de um algoritmo que, dada a
idade de uma pessoa, informe se esta é criança, adolescente ou adul-
to. Considerar as faixas etárias conforme a seguir.
Idade até 12 anos
Idade maior que 12 e menor que 18 anos
Idade maior ou igual a 18 anos
: Criança
: Adolescente
: Adulta
50
Introdução à Programação - Algoritmos
Fazendo uma análise desse problema, podemos concluir que, para
a sua resolução, deve-se conhecer a idade da pessoa, a qual se constitui
em uma entrada do problema. A solução do problema consiste em mos-
trar-se uma mensagem dizendo se a pessoa é criança, adolescente ou
adulta. Essa mensagem constitui-se na saída do problema. O algoritmo
deve então solicitar do usuário o valor da idade da pessoa e executar os
testes necessários para identificar se é criança, adolescente ou adulta. A
solução é apresentada pelo algoritmo FaixaEtaria.
Algoritmo FaixaEtaria
Variáveis
Idade : Inteiro
Inicio
f£O comando a seguir solicita que o usuário digite a
idade |
Escreva 'Entre com valor da idade :
f/O comando a seguir aguarda que o usuário digite um
valor. O valor digitado será armazenado na variável
Idade |
Leia Idade
Se Idade < = 12 Então
(Executará o comando a seguircaso Idade seja <= 12)
Escreva “Criança”
Senão
(Executará o comando Se a seguir somente se Idade
<= 12 tiver o valor falso/
Se Idade < 18 Então
Escreva 'Adolescente”
Senão
Escreva “Adulto!
Fim Se
Fim Se (Fim, do comando Se Idade <=12]
Fim E
Algoritmo FaixaEtaria - Uso do comando Se.
3.3 Comando Escolha
Suponha que o conceito de um aluno seja determinado em fun-
ção de sua nota. Suponha também que essa nota seja um valor
inteiro na faixa de O a 100. O problema está em, dada a nota,
determinar o respectivo conceito. Considere, ainda, os conceitos
conforme a seguir:
 
Estruturas de Seleção
 
Nota Conceito
O a 49 Insuficiente
50 a 64 Regular
65a 84 Bom
85 a 100 Ótimo
O algoritmo Conceito1, através da utilização de comandos Se
aninhados, apresenta a solução do problema.
Algoritmo Conceito1
Variáveis
Nota : Inteiro
Conceito : Literal
Inicio
Leia Nota
Se Nota <= 49 Então
“Conceito <- '“Inguficiente'
Senão
Se Nota <= 64 Então
Conceito <— “Regular!
Senão
Se Nota <= 84 Então
Conceito <— *Bom'
Senão
Conceito — “Otimo!
Fim Se
Fim Se
Fim Se
Escreva 'Conceito do aluno: *, Conceito
Fim
Algoritmo Conceito1 - Determinação do conceito emfunção da nota.
No algoritino Conceito1, vários testes são feitos sobre o con-
teúdo davariável Nota. Em vez de escrevermosos vários testes utili-
zando Se aninhados, e considerando que todos os testes são realiza-
dos sobre uma mesma expressão, podemos utilizar um comando al-
ternativo que tem essa função. O comando Escolha pode ser usado
sempre que for necessária a realização de várias seleções, tendo-se
por base a mesma expressão. Usando o comando Escolha, o proble-
ma da determinação do conceito de um aluno pode ser resolvido
conforme apresentado no algoritmo Conceito2. Observe que, enquan-
to o comando Se permite a escolha de uma alternativa entre duas
possíveis, o comando Escolha possibilita a escolha de uma alternati-
va entre as várias possíveis.
t
m
Introdução à Programação - Algoritmos
 
Algoritmo Conceito2
Variáveis
Nota : Inteiro
Conceito : Literal
Inicio
Leia Nota
Escolha Nota
0..49 : Conceito <— "“Inguficiente'
50..64 : Conceito <— “Regular!
65..84 : Conceito <— "Bom
Senão
Conceito <— “Otimo”
Fim Escolha
Fim
Algoritmo Conceito2 - Uso do Escolha.
Estamos assumindo que, ao executar o comando Escolha no
algoritmo Conceito2, será avaliada cada uma das opções de valores
para Nota. Veja que a opção 65..64, por exemplo, significa valores
que vão desde 65 até 84. Assim, se o valor de Nota estiver nessa
faixa, essa opção será satisfeita. As opções serão sempre avaliadas
na ordem em que aparecem e serão executadas as instruções relati-
vas à primeira opção que satisfazer o valor de Nota. Caso nenhuma
das opções satisfaça o valor da expressão do Escolha, então serão
executadas as instruções colocadas no Senão.
A forma geral do Escolha pode ser colocada como:
Escolha Expressão
Op1 : Instruções relativas a Op1
Op2 : Instruções relativas a 0Op2
Opn : Instruções relativas a Opn
Senão ;
Instruções
Fim Escolha
Expressão consiste em uma expressão cujo valor será usado para
definir quais instruções serão executadas. Veja que as opções de va-
lores (Op1 a Opn ) serão avaliadas na ordem em que aparecem e que,
caso nenhuma das opções satisfaça o valor de Expressão, então serão
executadas as instruções colocadas no Senão. Vamos assumir tam-
bém que as opções apresentadas no comando Escolha devem ser va-
lores do mesmo tipo de Expressão. Cada opção pode ser expressa na
 
to
 
 
 
Estruturas de Seleção
 
forma de faixa, conforme aparece no algoritmo Conceito2, na forma
de uma lista de um ou mais valores separados por vírgula ou, ainda,
numa combinação de ambas as formas.
Outro exemplo de uso do comando Escolha aparece no algoritmo
Operacoes, que toma como entrada qual a operação a ser feita, bem
como os dois operandos e efetua a operação solicitada.
Algoritmo Operacoes
Variáveis
Op1 , Op2, Resultado : Real
Óperacao : Caractere
Opvalida : Lógico
Inicio
Escreva 'Entre com o primeiro operando:
Leia Opl
Escreva 'Entre com o segundo operando:
Leia 0Op2
Opvalida <- verdadeiro
[Os comandos Escreva a seguir colocam na tela
informações ao usuário/
Escreva 'Escolha uma das seguintes opções:
Escreva '+ (para somar os dois operandos)”
Escreva '- (para subtrair o segundo operando do primeiro)”
Escreva '* (para multiplicar os dois operandos)!
Escreva '/ (para dividir o primeiro operandopelo segundo) '
Leia Operacao
Escolha Operacao
1
“+' : Resultado < Op1l + Op2.
“-* : Resultado <- Op1l - 0Op2
**" : Resultado <- Op1l * Op2
'/' : Resultado <— Op1l / Op2
Senão /
Escreva 'Operação inválida...!
opvalida < falso
Fim Escolha
Se Opvalida Então
Escreva 'O resultado da operaçãosolicitadafoi: *, Resultado
Fim Se
Fim
Algoritmo Operacoes - Exemplo de uso do comando Escolha.
A seguir é apresentado mais um exemplo de algoritmo onde
aparece um comando Escolha. O algoritmo AnalisaCaractere analisa o
caractere fornecido pelo usuário e informa qual o tipo desse caractere.
u
m
Ca
d
Introdução à Programação- Algoritmos
Algoritmo AnalisaCaractere
Variáveis
Car : Caractere
Inicio
Escreva 'Digite um caractere qualquer'
Leia Car
Escolha Car
ALA! : Escreva "Você digitou uma letra maiúscula”
'al da! : Escreva 'Você digitou uma letra minúscula”
“OM. Ng! : Escreva *Você digitou um dígito”
pd, NR, 2 Escreva “Você digitou sinal de pontuação!/ f 2 f f
Senão
Escreva 'Caractere não classificado...
Fim Escolha
Fim
Algoritmo AnalisaCaractere - Outro exemplo de uso do comando Escolha.
Resolvidos
 
3.4 Exercícios
Exercício 1
Considere que se queira escrever um algoritmo que, para um núme-
ro inteiro positivo N, determine se esse número é par ou não. Um
número inteiro positivo é par se o mesmo for divisível exatamente
por 2. Assim, o problema pode ser resolvido tomando-se o resto da
divisão inteira do número N por 2 e verificando se esse resto é Zero
ou não. Veja o algoritmo Par a seguir:
Algoritmo Par.
Variáveis Í
N : InteiroInicio É
Leia N
Se N Resto 2 = O Então
Escreva JN, ' é um número par'
Senão |
Escreva N, ' não é um número par'
Fim Se
Fim
Algorimo Par - Informa se um inteiro é par ou não.
 
 
Estruturas de Seleção
 
Exercício 2
Considere agora que se queira escrever um algoritmo quecalcule o
valor do imposto de renda de um contribuinte. Considere que o va-
lor do imposto é calculado de acordo com a tabela a seguir.
Renda Anual Alíquota Dedução
Até R$10000,00 0% -
> R$10000 e <= R$25000 10% 1000
Acima de R$25000 25% 4750
De acordo com o problema, para que seja possível a sua resolu-
ção, é necessário ter-se como entrada o valor da renda anual do con-
tribuinte. Sobre o valor da renda anual, deve-se aplicar um processo
de seleção de forma a determinar que alíquota deve ser aplicada. Com
a determinação da alíquota (percentual), o valor do imposto deve ser
calculado aplicando-se a alíquota à renda anual e subtraíndo-se o va-
lor da dedução. Veja o algoritmo ImpostoRenda a seguir.
Algoritmo ImpostoRenda
Variáveis
RendaAnual, Imposto : Real
Inicio
Leia RendaAnual
(Determinação da alíquota e cálculo do imposto!)
Se RendaAnual <= 10000.0 Então
Imposto €-— 0.0
Senão
(aqui a renda anual é > que 10000.0 e deve-se
portânto aplicar outra seleção para determinar
se deve-se aplicar 10% ou 25%;
se RendaAnual <= 25000.0 Então
imposto < RendaAnual * 0.1 - 1000.0
Senão
Imposto <— RendaAnual * 0.25 - 4750.0
Fim Se
Fim Se
Escreva “Valor do imposto:”, Imposto
Fim
Algoritmo ImpostoRenda - Determina o imposto de renda de um contribuinte em função de
sua renda anual,
55
56
Introdução à Programação - Algoritmos
Exercício 3
sejam 4, B e C números inteiros, todos diferentes. Entre esses números se
deseja determinar qual o maior valor. A resolução desse problema pode ser
obtida aplicando-se o seguinte algoritmo: Se A for maior que B e também
for maior que C, então 4 é o maior valor. Caso A não seja o maior valor,
então o maior valor está entre Be C. Veja o algoritmo Maximo a seguir:
Algoritmo Maximo
Variáveis
A, B, € : Inteiro
Inicio
Leia A, B, €
Se (A > B) E (A > C) Então
Escreva “Maior valor: “, A
Senão
Se B > C Então
Escreva 'Maior valor: ", B
Senão
Escreva 'Maior valor: *, €
Fim Se
Fim Se
Fim
Algoritmo Maximo - Determina o maior valor entre três inteiros.
Esse problema também pode ser resolvido usando-se uma va-
riável para armazenar o maior valor (variável Max, por exemplo).
Pode-se assumir, inicialmente, que À é o maior valor, ou seja, faz-se
Max receber o valor de A. Após, compara-se Max com B. Caso B seja
maior que Max, então Max deve receber o valor de B. O mesmo pro-
cesso deve ser feito com C. Veja o algoritmo Maximo? a seguir:
Algoritmo Maximo?
Variáveis o
A, B, C, Max Inteiro
Inicio
Leia A, B; C
Max <— A [assume inicialmente que A é o maior)
Se B > Max Então
Max «— B
Fim Se
Se €C > Max Então
Max €<— C
Fim Se
Escreva 'Maior valor : *, Max
Fim
Algoritmo Maximo2 - Determina o maior valor entre três inteiros.
 
 
 
Estruturas de Seleção
 
 
3.5 Exercícios Propostos
1. Escreva o comando de seleção para cada uma das situações
a seguir:
a) Se X for maior que Y ou se Z for menor ou igual a 30,
multiplique X por 2. Caso contrário, divida X por 2 e
divida Z por 5;
b) Se o desconto for menor que 25% e o preço do produ-
to for maior que R$25000,00, então mostre o nome do
produto.
2. Escreva um algoritmo que, para um determinado valor, in-
formese este é positivo, negativo ou zero.
3. Uma empresa de vendas oferece para seus clientes um des-
conto, que é função do valor da compra do cliente. Esse des-
; o
conto é de 20% se o valor da compra for maior ou iguala R$
5000,00 e 15% se for menor. Faça um algoritmo para impri-
mir o valor da compra e o desconto obtido por um determi-
nado cliente.
4. Um vendedor tem seu salário calculado em função do valor
total de suas vendas. Esse cálculo é feito de acordo com o
seguinte critério: se o valor total de suas vendas for maior
que R$20000,00, o vendedor receberá como salário 10% do
valor das vendas. Caso contrário, receberá apenas 7,5% do
valor das vendas. Escrever um algoritmo que determine o
valor ganho pelo vendedor.
5. Uma empresa de vendas tem três corretores. A empresa paga
ao corretor uma comissão calculada de acordo como o valor
de suas vendas. Se o valor total da venda de um corretor for
maior que R$50000,00, a comissão será de 12% do valor ven-
dido. Seo valor da venda do corretor estiver entre R$30000,00
e R$50000,00 (incluindo extremos), a comissão será de 9,5%.
Em qualquer outro caso a comissão será de 7%. Escreva um
algoritmo que gere um relatório contendo nome, valor da
venda e comissão de cada um dos corretores. O relatório deve
mostrar também o total de vendas da empresa.
6. Considere que o último concurso vestibular apresentou três
provas: Português, Matemática e Conhecimentos Gerais.
Considerando que para um candidato tem-se um registro
contendo o seu nome e as notas obtidas em cada umadas
provas, construir um algoritmo que forneça:
57
Introdução à Programação - Algoritmos
a) O nome e as notas em cada prova do candidato;
b) A média do candidato;
c) Uma informação dizendo se o candidato foi aprovado
ou não. Considere que o candidato é aprovado se sua
média for maior que 5.0 e se não apresentou nenhuma
nota abaixo de 4.0.
7. Construa um algoritmo que, para três valores reais, impri-
ma o maior e o menor deles.
8. Construa um algoritmo que, considerando que se tenha o nome
e a quantidade em estoque de quatro produtos, mostre quais
produtos estão abaixo do estoque mínimo (30 unidades).
9. Considerando as faixas especificadas a seguir, escreva um
algoritmo que, para um determinado valor inteiro, imprima
qual a faixa que o mesmo pertence.
Faixa 4 Valores abaixo de 100
Faixa B Valores de 100 a 150 (inclusive extremos)
Faixa C Valores de 151 a 300 (inclusive extremos)
Faixa X Quaisquer outros valores
10. Um hotel cobra R$80,00 a diária e mais uma taxa de servi-
ços. À taxa de serviços é de:
R$5,50 por diária, se o número de diárias for maior que 15;
R$6,00 por diária, se o número de diárias for igual a 15;
R$8,00 por diária, se o número de diárias for menor
que 15.
Construa um algoritmo que mostre o nome e a conta de um
cliente.
RE 11. Escreva um algoritmo que, para uma conta bancária, leia o
e seu número,O saldo, o tipo de operação a ser realizada (de-
Po pósito ou retirada) e o valor da operação. Após, determine e
mostre o novo saldo. Se o novo saldo ficar negativo, deve ser
mostrada também a mensagem Conta estourada.
|
1
|
12. Faça um algoritmo queleia três valores e verifique se estes
podem representar os lados de um triângulo. Em caso afir-
mativo, especificar o tipo do triângulo. Para que os valores
representem os lados de um triângulo, é necessário que qual-
quer um dos lados seja menor que a soma dos outros dois
lados. Um triângulo pode ser classificado como equilátero,
isósceles ou escaleno.
 
Estruturas de Seleção
 
 
13. Faça um algoritmo que, tendo como dados de entrada a al-
tura (h) e o sexo de uma pessoa, calcule seu peso ideal utili-
zando as seguintes fórmulas:
Homens: Peso ideal =72.7*h-58
Mulheres: Peso ideal=62.1*h-44,7
14. Faça um algoritmo que, dada a idade de um nadador, clas-
sifique-o em uma das seguintes categorias:
Infantil A 5 - 7 anos;
Infantil B 8 - 10 anos;
 
Juvenil A 11 - 13 anos;
Juvenil B 14 - 17 anos;
Adulto 18 - 60 anos;
Senior Acima de 60 anos.
15. Faça um algoritmo que tome como entrada dois valores in-
teiros e mostre uma mensagem dizendo se esses números
são ou não múltiplos um do outro.
16. Construir um algoritmo que tome como entrada três valores
e os imprima em ordem crescente.
17. Faça um algoritmo que leia os três comprimentos de lados
de um possível triângulo, q, be c, e os ordene em ordem de-
crescente, de modo que a represente o maior dos lados. A
seguir, determine e mostre o tipo de triângulo que esses três
lados formam, com base nas seguintes definições:
valores não formam triângulo algum;lSea > b+c
Se a? = bc
Se a? > b2+c? - valores formam um triângulo obtusângulo;
valores formam um triângulo retângulo;
Se a? gb?+c? - valores formam um triângulo acutângulo;
Se a=b=c - valores formam um triângulo equilátero.
Se o triângulo não for equilátero e apresentar dois lados
iguais, então é isósceles. 
59 
 
 
R
c
 
e
 
 Estruturas de Repetição
 
4.1 Introdução
Existem situações em que, para se obter a solução do problema, é
necessário fazer com que um grupo de instruções seja executado
várias vezes. Este capítulo tem por objetivo apresentar e discutir
estruturas (comandos) que possibilitem a execução de uma sequên-
cia de instruções várias vezes, com o programador escrevendo essacom prog or escrevendo
sequência apenas uma vez.
Suponha, por exemplo, que um determinado clube social te-
nha registrado a quantidade de latas de cerveja vendidas no último
carnaval. Considerando que cada lata foi vendida a R$2,00, deseja-
se saber o total arrecadado no último carnaval com a venda das
latas de cerveja. Obviamente que, para esse problema, tem-se como
entrada a quantidade de latas vendidas e deseja-se saber, como so-
lução do problema (saída), qual o total arrecadado. Veja, a seguir, o
respectivo algoritmo (algoritmo ClubeSocial1).
Algoritmo ClubeSocial1
Variáveis
QtidadeVendida |: Inteiro
ValorArrecadado : Real
Inicio
Leia QtidadeVendida
ValorArrecadado < QtidadeVendida*2.0
Escreva ValorArrecadado
Fim
Algoritmo ClubeSocial1 - Calcula total arrecadado com venda de latas de cerveja.
Veja que o problema apresentado, consiste em determinar-se
o total arrecadado com a venda de latas de cerveja no último carna-
val. Se desejarmos determinar o total arrecadado, em cada um dos
últimos três carnavais, o algoritmo poderia ser escrito conforme a
seguir (algoritmo ClubeSocial2):
Introdução à Programação - Algoritmos
Algoritmo ClubeSocial2
Variáveis
QtidadeVendida |: Inteiro
ValorArrecadado : Real
Inicio
Determinação do total arrecadado do último ano
Leia QtidadeVendida
ValorArrecadado <- Qtidade|Vendida*2. 0
Escreva ValorArrecadado
Determinação do total arrecadado do penúltimo ano
Leia QOtidadeVendida
ValorArrecadado <- QOtidadeVendida*2.00
Escreva ValorArrecadado
Determinação do total arrecadado do antepenúltimo ano
DDD nnD0n00000 000000000 =0ncD20200000 000000000 00—1
Í
Leia QtidadeVendida
ValorArrecadado < OQtidadeVendida*2.00
Escreva ValorArrecadado
Fim
Algoritmo ClubeSocial2 - Venda dos três últimos anos.
Observe no algoritmo ClubeSocial2 que a solução do proble-
ma é a mesma para cada ano. Assim, as instruções para cada um
dos anos podem ser as mesmas. Observe também que, se quisésse-
mos determinar o total arrecadado em cada um dos últimos trinta
anos, usando a mesma metodologia, teríamos que escrever trinta
vezes o mesmo Srupo,de instruções, o que obviamente se tornaria
impraticável.
Considerando que, para cada um dos casos, as instruções a
serem executadas são as mesmas, é muito mais adequado que se
escreva o grupo de instruções apenas uma vez e que se instrua O
computador para que repita a execução das instruções um determi-
nado número de vezes.
=) gre
 
Uma das formas de fazermos com que um grupo de instruções seja
executado várias vezes é utilizando o comando Enquanto-Faça. Para
 
 
E
E
A
EN
TE
R
E E
I
N
r
t
a
a
o
pr
t
q
u
ee
rt
na
pp
ro
s
ga
it
a
a
q
p
r
a
s
e
r
c
m
 
 
Estruturas de Repetição
 
analisar sua forma e funcionamento, vamos considerar o seguinte
problema:
“Escrever um algoritmo que, a partir do saldo bancário da
conta de um cliente, imprima a mensagem Conta Estourada se
o saldo for negativo, e a mensagem Conta Normal, se o saldo
não for negativo”.
Pela definição do problema, podemos considerar que se tem
como entradas o número da conta e o valor do saldo bancário do
cliente e, como saída, uma mensagem dizendo se a conta tem ou
não saldo negativo. O algoritmo para o problema pode ser escrito
como segue (algoritmo Banco1):
Algoritmo Banco1
Variáveis
Saldo : Real
Numeroconta : Inteiro
Inicio
Leia Numeroconta, Saldo
Se Saldo < O Então
Escreva Numeroconta, 'Conta Estourada”
Senão
Escreva Numeroconta, 'Conta Normal!
Fim Se
Fim
Algoritmo Banco1 - Verificação do saldo de um cliente.
Veja que o algoritmo Banco1 resolve o problema conside-
rando a existência de uma única conta. Se quisermos considerar a
existência de várias contas, o que é a situação mais comum, e para
a qual faz muitoímais sentido a utilização de uma máquina para a
sua resolução, teremos que fazer com que as instruções que resol-
vem o problema para a conta de um cliente sejam repetidas várias
vezes. Para isso, faz-se necessário um comando que, ao ser execu-
tado faça que determinado grupo de instruções seja repetido vári-
as vezes. Conforme já colocado, o comando Engquanto-Faça tem essa
função e sua forma geral pode ser escrita como segue.
Enquanto expressão lógica Faça
Conjunto de instruções
Fim Enquanto
63
Introdução àProgramação -Algoritmos
Assimcomo a estrutura de seleção Se tem por base uma ex-
pressão lógica, também a estrutura de repetição Enquanto-Faça apre-
senta uma expressão lógica. O Enquanto-Faça faz com que o grupo
de instruções colocado em seuinterior seja repetido enquanto o va-
lor da expressão lógica for verdadeiro. Sempre que o fluxo de execu-
ção chegar no Enquanto, será calculado o valor da expressão lógica.
Se esta apresentar o valor verdadeiro, então o fluxo de execução pas-
sará para a execução das instruções internas ao Enquanto, na ordem
em que aparecem. Ao encontrar o Fim Enquanto, o fluxo de execu-
ção retornará ao Enquanto e será novamente avaliada a expressão
lógica. Se esta tiver o valor verdadeiro, as instruções internas ao En-
quanto serão novamente executadas. Se, quando o fluxo de execu-
ção chegar ao Enquanto, a expressão lógica apresentar o valor falso,
então o fluxo será transferido para a execução da primeira instru-
ção após o Fim Enquanto.
Com isso, poodemos concluir que em algum momento do pro-
cesso de repetição das instruções internas ao Enquanto será necessá-
rio que a expressão lógica assuma o valor falso, pois, do contrário, o
Fluxo |jamais sairá do Enquanto e o conjunto de instruções será repe-
tido infinitas vezes.
Voltando ao nosso problema de análise do saldo bancário,
se quisermos um algoritmo que faça a análise para dez contas,
podemos escrever a solução conforme a apresentada pelo
algoritmo Banco2.
Algoritmo Banco2
Variáveis
Saldo : Real
Numeroconta, Contador : Inteiro
Inicio
Contador — É
Enquanto Contador < 10 Faça
Contador< Contador + 1
Leia Numeroconta, saldo
se Saldo < O Então
Escreva Numeroconta, “Conta Estourada'
Senão
Escreva Numeroconta, “Conta Normal“
Fim Se
Fim Enquanto
Fim
Aleoritmo Banco2 - Análise das contas de dez clientes.
 
Estruturas deRepetição
 
Observe que, no algoritmo Banco2, utilizamos a variável Con-
tador, que inicialmente recebe o valor zero. Na primeira vez que O
fluxo de execução chega ao Enquanto, a expressão lógica, Contador <
10 tem o valor verdadeiro. Assim, são executados todos os comandos
internos ao Enquanto. Observe também que, no grupo de comandos
internos ao Enquanto, colocamos o comando
Contador <—- Contador + 1
o qual fará com que o conteúdo da variável Contador seja
incrementado de uma unidade toda vez que for executado. Assim,
a cada vez que for executado o grupo de instruções que estiver den-
tro do Enquanto, Contador aumentará de uma unidade, até que che-
gue ao valor 10, quando então, ao retornar ao início do Enquanto,
será verificado que a expressão lógica vale falso. Conforme seu fun-
cionamento, se o valor da expressão lógica for falso, o fluxo de exe-
cução sairá automaticamente do Enquanto e passará para a execu-
ção da próxima instrução após o Fim Enquanto.
No algoritmo Banco2, todos os comandos colocados interna-
mente ao comando Enquanto foram deslocados em relação a coluna
do Enquanto - Fim Enquanto. Conforme já vimos, esse processo deno-
mina-se identação e tem por objetivo facilitar

Outros materiais