Você está na página 1de 21

Lgica para programao Prof.

Valdir Gil Pillat


1 Lgica para Programao
Antes de iniciarmos na lgica para programao devemos entender o que lgica.
Desde os tempos primitivos o homem utiliza-se do raciocnio lgico para a realizao das
suas atividades. Isso comprovado pelo fato de ele ter estabelecido seqncias adequadas,
ou seja, seqncias lgicas para a realizao das suas tarefas com sucesso. Podemos citar
alguns exemplos relacionados s suas atividades do dia-a-dia:
- Para tomar banho, primeiro tira a roupa para no molh-la e tambm para
estabelecer contato direto entre sua pele e a gua;
- Para chupar uma bala preciso tir-la da embalagem;
Lgica de programao a tcnica de encadear pensamentos para atingir
determinado objetivo.
Na informtica o uso da lgica aplica-se a todas as reas para construo e
funcionamento do hardware e do software. Por exemplo, na construo de um circuito
integrado para o teclado, trabalha-se com o conceito de portas lgicas para a verificao da
passagem ou no de pulsos eltricos, a fim de que seja estabelecida uma comunicao entre
os componentes. J na construo de software, por meio do raciocnio lgico que o
homem constri algoritmos que podem ser transformados em programas de computador
capazes de solucionar problemas cada vez mais complexos.
Para nos auxiliar na resoluo dos problemas de construo de algoritmos aplicados
informtica, faremos uso da lgica formal dedutiva. No entanto, para que sejam reunidos
dados para a soluo dos problemas, muitas vezes utilizaremos o raciocnio lgico indutivo.
A lgica preocupa-se com a forma da construo do pensamento. Isso permite que
se trabalhe com variveis para que possa aplicar o mesmo raciocnio a diferentes
problemas. Por exemplo:
Gerson cientista.
Todo cientista estudioso.
Logo, Gerson estudioso.
Substituindo as palavras Gerson e estudioso por A e B:
A cientista.
Todo cientista B.
Logo, A B.
O raciocnio lgico nos conduz a uma resposta que pode ser "verdadeiro" ou "falso".
Na construo de algoritmos para a soluo de problemas computacionais, trabalha-se com
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


esse tipo de raciocnio. As informaes a ser analisada so representadas por variveis que
posteriormente recebero valores. As variveis, por sua vez, representaro as premissas. por
exemplo:
Dados dois valores quaisquer, deseja-se saber qual o maior.
Os dois valores so representados pelas variveis A e B. Analisa-se o problema a
fim de averiguar qual a melhor maneira de descobrir a soluo, ento se monta a
seqncia para que seja verificada a questo. Para descobrir a soluo, pode-se partir de
problemas similares j resolvidos e, por analogia, aplicar o mesmo ao problema atual, ou
podem-se estudar formas de resolv-lo buscando dados com especialistas no assunto em
questo.
Nesse caso, vamos substituir as variveis por valores conhecidos, apenas como
modelo para facilitar o entendimento do raciocnio aplicado:
A ser substituda por 7 e B, por 19.
Para que seja verificado o maior valor, deve-se fazer uma comparao, por
exemplo: 7 maior do que 19?
Logo tem-se a resposta: falso.
Ento, pode-se concluir que 19 o maior nmero entre os dois.
Quando os valores so desconhecidos, na representao para a soluo do problema,
trabalha-se apenas com as variveis:
A maior do que B?
Se a resposta "verdadeiro", A o maior valor.
Se a resposta "falso", B o maior valor.
Exerccios 1
1. Dada as premissas a seguir, verifique quais so as sentenas que representam
a concluso correta:
I - Cavalos so animais. Animais possuem patas. Logo:
a) Cavalos possuem patas.
b) Todos os animais so cavalos.
c) Os cavalos possuem quatro patas.
II Joo um homem. Homem humano. Logo:
a) Maria no humana.
b) Joo humano.
c) Todos humanos so homens.
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


2. Crie uma sequncia lgica para tomar banho.
3. Faa uma sequncia lgica para somar dois nmeros e multiplicar o
resultado pelo primeiro nmero.
4. Descreva com detalhes a sequncia lgica para Trocar um pneu de um carro.
5. Faa uma sequncia lgica para trocar uma lmpada. Descreva com
detalhes.
6. Faa uma sequncia lgica para fazer um sanduche.
7. Faa uma sequncia lgica para fazer um suco de laranja.
8. Faa uma sequncia lgica omelete.
9. Faa uma sequncia lgica para multiplicar dois nmeros e subtrair o
primeiro nmero lido do resultado da multiplicao.
10. Faa uma sequncia lgica para ler quatro valores e calcular a soma dos
mesmos.
1.1 Desenvolvendo algoritmos
1.1.1 Pseudocdigo
Os algoritmos so descritos em uma linguagem chamada pseudocdigo. Este nome
um rascunho posterior implementao em uma linguagem de programao, ou seja,
quando formos programar em uma linguagem, por exemplo, C estaremos gerando cdigo
em C. Por isso os algoritmos so independentes das linguagens de programao. Ao
contrrio de uma linguagem de programao no existe um formalismo rgido de como
deve ser escrito o algoritmo.
O algoritmo deve ser fcil de interpretar e fcil de codificar. Ou seja, ele deve ser o
intermedirio entre a linguagem falada e a linguagem de programao.
a) Regras para construo do Algoritmo
Para escrever um algoritmo precisamos descrever a seqncia de instrues, de
maneira simples e objetiva. Para isso utilizaremos algumas tcnicas:

Usar somente um verbo por frase

Imaginar que voc est desenvolvendo um algoritmo para pessoas que no


trabalham com informtica

Usar frases curtas e simples

Ser objetivo

Procurar usar palavras que no tenham sentido duvidoso.

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


b) Fases
importante ressaltar que qualquer tarefa que siga determinado padro pode ser
descrita por um algoritmo, como por exemplo:
COMO FAZER ARROZ DOCE
ou ento
CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE
Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema
apresentado em trs fases fundamentais.
Onde temos:

ENTRADA: So os dados de entrada do algoritmo


PROCESSAMENTO: So os procedimentos utilizados para chegar ao resultado
final
SADA: So os dados j processados
Estrutura de um algoritmo
algoritmo Exemplo_algoritmo
var
Var1, Var2: TIPO
inicio
//Cdigo
fim_algoritmo
OBS.: Os comandos: // representa uma linha de comentrio: var: o local onde as
variveis so declaradas e os comandos inicio e fim_algoritmo indicam onde a sequncia
lgica deve ser inserida
1.1 Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a mdia final dos alunos da 3 Srie. Os
alunos realizaro quatro provas: P1, P2, P3 e P4.
Onde: Mdia Final = (P1 + P2 + P3 + P4)/4
Para montar o algoritmo proposto, faremos trs perguntas:

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


a) Quais so os dados de entrada?
R: Os dados de entrada so P1, P2, P3 e P4
b) Qual ser o processamento a ser utilizado?
R: O procedimento ser somar todos os dados de entrada e dividi-los por 4
(quatro)
(P1 + P2 + P3 + P4)/4
c) Quais sero os dados de sada?
R: O dado de sada ser a mdia final
Algoritmo
algoritmo Ex1.1
var
P1,P2,P3,P4,M:real
inicio
leia (P1)
leia (P2)
leia (P3)
leia (P4)
Some todas as notas e divida o resultado por 4
escreva (resultado da diviso)
fim_algoritmo
c) Teste de Mesa
Aps desenvolver um algoritmo ele dever sempre ser testado. Este teste chamado
de TESTE DE MESA, que significa, seguir as instrues do algoritmo de maneira precisa
para verificar se o procedimento utilizado est correto ou no.

Veja o exemplo:

Utilize a tabela abaixo:

Nota da Prova 1

P1 P2 P3 P4 Mdia

Nota da Prova 2
Nota da Prova 3
Nota da Prova 4

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


1.1.2 FLUXOGRAMA
O fluxograma consiste em analisar o problema e escrever o algoritmo de sua soluo
utilizando smbolos grficos.
Vantagens:
o entendimento de elementos grficos mais simples
boa ferramenta para ilustrar em uma viso global o funcionamento do sistema
Desvantagens:
necessrio aprender uma nova simbologia
O algoritmo resultante pode no apresentar muitos detalhes, dificultando sua
traduo para uma linguagem de programao
Um algoritmo detalhado pode ser complexo de entender
Abaixo segue os smbolos utilizados para construir um fluxograma
Direo do fluxo

Incio/Fim

Entrada de Dados

Processamento

Tomada
de deciso

Sada de Dados

Exemplo: Crie um algoritmo para mostrar o resultado da multiplicao de dois


nmeros.
Pseudocdigo
Passo 1: Leia os dois nmeros que sero multiplicados
Passo 2: Multiplicar os nmeros
Passo 3: Escrever o resultado obtido na multiplicao
Fluxograma
Incio

N1, N2

M=N1*N2

Escreva M

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Fim

Lgica para programao Prof. Valdir Gil Pillat


EXERCCIOS 2
1) Identifique os dados de entrada, processamento e sada no algoritmo abaixo:

LEIA cdigo da pea

LEIA valor da pea

LEIA Quantidade de peas

Calcule o valor total da pea (Quantidade * Valor da pea)

ESCREVA o cdigo da pea e seu valor total

2) Faa um algoritmo para Calcular o estoque mdio de uma pea, sendo que
ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTIDADE MXIMA) /2
3) Teste o algoritmo da questo anterior com dados definidos por voc.
4) Construa um algoritmo que leia a cotao do dlar, um valor em dlar e no final
mostre este valor em real.
5) Construa um algoritmo que leia quatro nmeros e calcule o quadrado para cada um.

1.2 Constantes, Variveis e Tipos de Dados


Variveis e constantes so os elementos bsicos que um programa manipula. Uma
varivel um espao reservado na memria do computador para armazenar um tipo de
dado determinado.
Variveis devem receber nomes para poderem ser referenciadas e modificadas
quando necessrio. Um programa deve conter declaraes que especificam de que tipo so
as variveis que ele utilizar e s vezes um valor inicial. Tipos podem ser, por exemplo:
inteiros, reais, caracteres, etc. As expresses combinam variveis e constantes para calcular
novos valores.
1.2.1 Constantes
Constante um determinado valor fixo que no se modifica ao longo do tempo,
durante a execuo de um programa. Conforme o seu tipo, a constante classificada como
sendo numrica, lgica e literal.
Exemplo de constantes:

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


1.2.2 Variveis
Varivel a representao simblica dos elementos de um certo conjunto. Cada
varivel corresponde a uma posio de memria, cujo contedo pode se alterado ao longo
do tempo durante a execuo de um programa. Embora uma varivel possa assumir
diferentes valores, ela s pode armazenar um valor a cada instante.
Exemplos de variveis:

1.2.3 Tipos de Variveis


As variveis e as constantes podem ser basicamente de quatro tipos: Numricas,
caracteres, Alfanumricas ou lgicas.

Numricas

Especficas

para

armazenamento

de

nmeros,

que

posteriormente podero ser utilizados para clculos. Podem ser ainda


classificadas como Inteiras ou Reais. As variveis do tipo inteiro so para
armazenamento de nmeros inteiros e as Reais so para o armazenamento de
nmeros que possuam casas decimais. (%i, %d, %f, %g).

Caracteres - Especficas para armazenamento de conjunto de caracteres que


no contenham nmeros (literais). Ex: nomes. (%c, %s).

Alfanumricas - Especficas para dados que contenham letras e/ou


nmeros. Pode em determinados momentos conter somente dados numricos
ou somente literais. Se usado somente para armazenamento de nmeros, no
poder ser utilizada para operaes matemticas. (%c, %s).

Lgicas - Armazenam somente dados lgicos que podem ser Verdadeiro ou


Falso. (%i, %d).

1.2.4 Declarao de Variveis


As variveis s podem armazenar valores de um mesmo tipo, de maneira que
tambm so classificadas como sendo numricas, lgicas e literais.
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


1.2.4.1 Identificao das variveis para os algoritmos
Toda varivel deve ser identificada, isto , deve receber um nome. O nome da
varivel deve ser nico e deve estar de acordo com algumas regras.

No utilizar espao entre letras. Por exemplo, em vez de nome do cliente,


o correto seria nome_do_cliente ou nomecliente. O caractere sublinha ou
underline ( _ ) pode ser utilizado para representar o espao as letras.

No iniciar o nome da varivel com algarismo (nmeros). Por exemplo,


no usar 2valor. O correto seria valor2.

No utilizar palavras reservadas, isto , palavras que so utilizadas nos


algoritmos para representar aes especficas. Por exemplo:
se palavra que representa uma condio ou teste lgico;
var palavra que representa uma condio ou teste lgico;

No utilizar caracteres especiais, como acentos, smbolos (? / : @ # etc.),


, entre outros.

Ser sucinto e utilizar nomes coerentes.

1.2.5 Comando de Entrada e Sada de Dados


escreva (<lista-de-expresses>) Escreve no dispositivo de sada padro o
contedo de cada expresso que compem (<lista-de-expresses>). As expresses dentro
desta lista devem estar separadas por vrgulas; depois de serem avaliadas, seus resultados
so impressos na ordem indicada.
escreval (<lista-de-expresses>) idntico ao escreva, com a diferena que insere
uma quebra de linha no final.
leia (<lista-de-variveis>) Recebe os valores digitados pelo usurio, atribuindoos s variveis cujos nomes esto em <lista-de-variveis> ( respeitada a ordem
especificada nesta lista).
Exemplo:
algoritmo "exemplo 1"
var x: inteiro
inicio
leia (x)
escreva (x)
fimalgoritmo

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

Lgica para programao Prof. Valdir Gil Pillat


Exemplo:
algoritmo "exemplo"
var x: real
y: inteiro
a: caractere
l: logico
inicio
x <- 2.5
y <- 6
a <- "teste"
l <- VERDADEIRO
escreval ("x", x:4:1, y+3:4) // Escreve: x 2.5 9
escreval (a, "ok")
// Escreve: testeok (e depois pula linha)
escreval (a, " ok")
// Escreve: teste ok (e depois pula linha)
escreval (a + " ok")
// Escreve: teste ok (e depois pula linha)
escreva (l)
// Escreve: VERDADEIRO
fimalgoritmo
EXERCCIOS 3
1) O que uma constante? D dois exemplos.
2) O que uma varivel? D dois exemplos.
3) Verifique se as variveis abaixo possuem nomes corretos e justifique as alternativas
falsas:
a) n#1

b) temp

c) n_1

d) $din e) n 1

f) K2K

g) n1

h) U F

i) 2nome

j) dep

k) nome2 l) val#r

4) Faa um teste de mesa no algoritmo abaixo e preencha a tabela com os dados do teste:
algoritmo Ex2.4
var
Salario,Abono,Salnovo:real
inicio
leia (Salario)
leia (Abono)
Salnovo=Salario +abono
escreva (Salnovo)
fim_algoritmo

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

10

Lgica para programao Prof. Valdir Gil Pillat


Salrio Abono Salnovo
600,00 60,00
350,00

5) Sabendo-se que Jos tem direito a 15% de reajuste de salrio, complete o algoritmo
abaixo:
NOME = "JOS"
SALARIOATUAL = 1200,00
REAJUSTE =
VALORREAJUSTE =
SALNOVO =
SALNOVO
1.3 Operadores
Os operadores so utilizados para representar expresses de clculo, comparao,
condio e atribuio. Temos trs tipos de operadores:

Operadores Aritmticos

Operadores Relacionais

Operadores Lgicos

1.3.1 Operadores Aritmticos


Os operadores aritmticos so os utilizados para obter resultados numricos. Alm
da adio, subtrao, multiplicao e diviso, podem utilizar tambm o operador para
exponenciao.
Os smbolos para os operadores aritmticos so:
OPERAO
Adio
Subtrao
Multiplicao
Diviso
Exponenciao
Hierarquia das Operaes Aritmticas

SMBOLO
+

*
/
** ou ^

1 ( ) Parnteses
2 Exponenciao
3 Multiplicao, diviso (o que aparecer primeiro)
4 + ou (o que aparecer primeiro)
Exemplo
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

11

Lgica para programao Prof. Valdir Gil Pillat


TOTAL = PRECO * QUANTIDADE
1 + 7 * 2 ** 2 1 = 28
3 * (1 2 ) + 4 * 2 = 5
1.3.2 Operadores Relacionais
Os operadores relacionais so utilizados para estabelecer uma relao entre valores
ou expresses. Estes operadores sempre retornam valores lgicos (verdadeiro ou falso/ True
ou False). Para estabelecer prioridades no que diz respeito a qual operao executar
primeiro, utilize os parnteses.
Os operadores relacionais so:
Descrio
Igual a
Diferente de
Maior que
Menor que
Maior ou igual a
Menor ou igual a

Smbolo
==
<> ou !=
>
<
>=
<=

Exemplo:
Tendo duas variveis A = 5 e B = 3
Os resultados das expresses seriam:
Expresso
A=B
A <> B
A>B
A<B
A >= B
A <= B
1.3.3 Operadores Lgicos

Resultado
Falso
Verdadeiro
Verdadeiro
Falso
Verdadeiro
Falso

Os operadores lgicos so utilizados para concatenar ou associar expresses que


estabelecem uma relao de comparao entre valores. O resultado final verdadeiro ou
falso.
Os operadores lgicos so:
E
OU
NO
E / AND Uma expresso AND (E)

AND
OR
NOT
verdadeira se todas as condies forem

verdadeiras

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

12

Lgica para programao Prof. Valdir Gil Pillat


OR/OU Uma expresso OR (OU) verdadeira se pelo menos uma condio for
verdadeira
NOT Uma expresso NOT (NO) inverte o valor da expresso ou condio, se
verdadeira inverte para falsa e vice-versa.
A tabela abaixo mostra todos os valores possveis criados pelos trs operadores
lgicos (AND, OR e NOT)
1 Valor
V
V
F
F
V
V
F
F
V
F

Operador
AND
AND
AND
AND
OR
OR
OR
OR
NOT
NOT

2 Valor
V
F
V
F
V
F
V
F

Resultado
V
F
F
F
V
V
V
F
F
V

1.3.4 Operaes Lgicas


Operaes Lgicas so utilizadas quando se torna necessrio tomar decises em um
diagrama de bloco.
Num diagrama de bloco, toda deciso ter sempre como resposta o resultado
VERDADEIRO ou FALSO.
Como no exemplo do algoritmo CHUPAR UMA BALA. Imaginemos que
algumas pessoas no gostem de chupar bala de Morango, neste caso teremos que modificar
o algoritmo para:
Chupar uma bala.
Pegar a bala
A bala de morango?
Se sim, no chupe a bala
Se no, continue com o algoritmo
Retirar o papel
Chupar a bala
Jogar o papel no lixo

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

13

Lgica para programao Prof. Valdir Gil Pillat


EXERCCIOS 4
1) Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo.
Informe se as expresses so verdadeiras ou falsas.
SALARIO

IR

SALLIQ

EXPRESSO

100,00

0,00

100

(SALLIQ >= 100,00)

200,00

10,00

190,00

(SALLIQ < 190,00)

300,00

15,00

285,00

SALLIQ = SALARIOIR

V ou F

2) Sabendo que A=3, B=7 e C=4, informe se as expresses abaixo so verdadeiras


ou falsas.
a) (A+C) > B ( )
b) B >= (A + 2) ( )
c) C = (B A) ( )
d) (B + A) <= C ( )
e) (C+A) > B ( )
3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so
verdadeiras ou falsas.
a) (A > C) AND (C <= D) ( )
b) (A+B) > 10 OR (A+B) = (C+D) ( )
c) (A>=C) AND (D >= C) ( )
1) Calcule o valor das seguintes expresses:
a.
b.
c.
d.

5+3*8-(4+2)
3+10-8/4
3*8+(5+3)-(5+1)
3+(5+(8-3)-5+(10-6))

1.5 Estrutura de Deciso e Repetio


Como vimos na seo anterior em Operaes Lgicas, verificamos que na maioria
das vezes necessitamos tomar decises no andamento do algoritmo. Essas decises
interferem diretamente no andamento do programa. Nesta apostila so apresentados dois
tipos de estrutura: Deciso e Repetio.
1.5.1 Comandos de Deciso
Os comandos de deciso ou desvio fazem parte das tcnicas de programao que
conduzem a estruturas de programas que no so totalmente sequenciais. Com as instrues
de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

14

Lgica para programao Prof. Valdir Gil Pillat


maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados
anteriores. As principais estruturas de deciso so: Se Ento Fim, Se ento Seno Fim e
Caso Selecione Fim
1.5.1.1 SE(Condio) ENTAO / IF (condio) { }
A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou
seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinado
comando.
Imagine um algoritmo que determinado aluno somente estar aprovado se sua mdia
for maior ou igual a 5, veja no exemplo de algoritmo como ficaria.
se(MEDIA >= 5)entao
ALUNO APROVADO
fimse
Em C
if (MEDIA >= 5) conceito = APROVADO;
Ou
if (MEDIA >= 5)
{
conceito = APROVADO;
}
1.5.1.2 SE(Condio) ENTAO SENAO / IF(condio) {} ELSE{}
A estrutura de deciso SE/ENTAO/SENAO, funciona exatamente como a
estrutura SE, com apenas uma diferena, em SE somente podemos executar comandos
caso a condio seja verdadeira, diferente de SE/SENAO pois sempre um comando ser
executado independente da condio, ou seja, caso a condio seja verdadeira o comando
da condio ser executado, caso contrrio o comando da condio falsa ser executado.
Em algoritmo ficaria assim:
se (MEDIA >= 5) entao
ALUNO APROVADO
senao
ALUNO REPROVADO
fimse

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

15

Lgica para programao Prof. Valdir Gil Pillat


Em C
if (MEDIA >= 5)
{
conceito = APROVADO;
}
else
{
conceito = REPROVADO;
}
No exemplo acima est sendo executada uma condio que, se for verdadeira,
executa o comando APROVADO, caso contrrio executa o segundo comando
REPROVADO. Podemos tambm dentro de uma mesma condio testar outras
condies. Como no exemplo abaixo:
Em C
if (MEDIA >= 5)
{
if (MEDIA >= 7)
{
conceito = APROVADO;
}
else
{
conceito = Aluno Necessita fazer outra Avaliao;
}
}
else
{
conceito = REPROVADO;
}
1.5.1.3 ESCOLHA CASO / SWITCH {}

A estrutura de deciso escolha/caso utilizada para testar, na condio, uma nica


expresso, que produz um resultado, ou, ento, o valor de uma varivel, em que est
armazenado um determinado contedo. Compara-se, ento, o resultado obtido no teste com
os valores fornecidos em cada clusula Caso.
No exemplo do algoritmo abaixo, recebida uma varivel Op e testado seu
contedo, caso uma das condies seja satisfeita, atribudo para a varivel Titulo a String
Opo X, caso contrrio atribudo a string Opo Errada.
06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

16

Lgica para programao Prof. Valdir Gil Pillat


Titulo = ""
leia (Op)
escolha Op
caso 1
Titulo = "Opo 1"
caso 2
Titulo ="Opo 2"
caso 3
Titulo ="Opo 3"
caso 4
Titulo ="Opo 4"
caso 5
Titulo ="Opo 5"
outrocaso
Titulo = "Opo Errada"
fimescolha
Em C utilizamos a seguinte sequncia de comandos para representar o algoritmo
anterior.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
char TITULO[8];
int op;
printf ("DIGITE A OPO");
scanf("%i",&op);
switch (op){
case 1:
strcpy(TITULO,"OPO 1");break;
case 2:
strcpy(TITULO,"OPO 2"); break;
case 3:
strcpy(TITULO,"OPO 3"); break;
case 4:
strcpy(TITULO,"OPO 4"); break;
case 5:
strcpy(TITULO,"OPO 5"); break;
default:
strcpy(TITULO,"OPO ERRADA");
}
printf("%s",TITULO);
getch();
}

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

17

Lgica para programao Prof. Valdir Gil Pillat


EXERCCIOS 5
1) Elabore um algoritmo que leia um nmero. Se positivo armazene-o em A, se for
negativo, em B. No final mostrar o resultado.
2) Ler um nmero e verificar se ele par ou mpar. Quando for par armazenar esse
valor em P e quando for mpar armazen-lo em I. Exibir P e I no final do
processamento.
3) Construa um algoritmo para ler uma varivel numrica N e imprimi-la somente
se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero.
4) Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um
algoritmo que calcule seu peso ideal, utilizando as seguintes frmulas:
Para homens: (72.7*h) 58
Para mulheres: (62.1*h) - 44.7 (h = altura)
5) Faa um teste de mesa do algoritmo apresentado abaixo, de acordo com os
dados fornecidos:
LER SALBASE
LER GRATIF
SALBRUTO = SALBASE + GRATIF
Se SALBRUTO < 1000 ento
IR = SALBRUTO * (15/100)
Seno
IR = SALBRUTO * (20 / 100)
Fim se
SALLIQ = SALBRUTO IR
Mostra SALLIQ
6) Joo Papo-de-Pescador, homem de bem, comprou um microcomputador para
controlar o rendimento dirio de seu trabalho. Toda vez que ele traz um peso de
peixes maior que o estabelecido pelo regulamento de pesca do estado de So
Paulo (50 quilos) deve pagar um multa de R$ 4,00 por quilo excedente. Joo
precisa que voc faa um algoritmo que leia a varivel P (peso de peixes) e
verifique se h excesso. Se houver, gravar na varivel E (Excesso) e na varivel
M o valor da multa que Joo dever pagar. Caso contrrio mostrar tais variveis
com o contedo ZERO.

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

18

Lgica para programao Prof. Valdir Gil Pillat


7) Elabore um algoritmo que leia as variveis C e N, respectivamente cdigo e
nmero de horas trabalhadas de um operrio. E calcule o salrio sabendo-se que
ele ganha R$ 10,00 por hora. Quando o nmero de horas exceder a 50 calcule o
excesso de pagamento armazenando-o na varivel E, caso contrrio zerar tal
varivel. A hora excedente de trabalho vale R$ 20,00. No final do
processamento imprimir o salrio total e o salrio excedente.
8) Desenvolva um algoritmo que:

Leia 4 (quatro) nmeros;

Calcule o quadrado de cada um;

Se o valor resultante do quadrado do terceiro for >= 1000, imprima-o e


finalize;

Caso contrrio, imprima os valores lidos e seus respectivos quadrados.

9) Faa um algoritmo que leia um nmero inteiro e mostre uma mensagem


indicando se este nmero par ou mpar, e se positivo ou negativo.
10) A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3
grupos de indstrias que so altamente poluentes do meio ambiente. O ndice de
poluio aceitvel varia de 0,05 at 0,25. Se o ndice sobe para 0,3 as indstrias
do 1 grupo so intimadas a suspenderem suas atividades, se o ndice crescer
para 0,4 as indstrias do 1 e 2 grupo so intimadas a suspenderem suas
atividades, se o ndice atingir 0,5 todos os grupos devem ser notificados a
paralisarem suas atividades. Faa um algoritmo que leia o ndice de poluio
medido e emita a notificao adequada aos diferentes grupos de empresas.
11) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma
das seguintes categorias:

Infantil A = 5 a 7 anos

Infantil B = 8 a 11 anos

Juvenil A = 12 a 13 anos

Juvenil B = 14 a 17 anos

Adultos = Maiores de 18 anos

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

19

Lgica para programao Prof. Valdir Gil Pillat


1.5.2 Comandos de Repetio
Os comandos de repetio so utilizados quando necessrio que um determinado
conjunto de instrues ou comandos execute um nmero definido ou indefinido de vezes,
ou enquanto um determinado estado de processos prevalecerem ou at que seja alcanado.
Trabalharemos com modelos de comandos de repetio:

Enquanto (condio) ... Fim_enquanto (while (condio) {})

Repita ...At_que (condio) (Do ... {}while (condio));

Para ... De ... At ... Passo ... Seguinte (for(...;...;...){})

1.5.2.1 Enquanto (condio) faca ... Fimenquanto (while (condio) {})


Neste caso, o bloco de operaes ser executado enquanto a condio x for
verdadeira. O teste da condio ser sempre realizado antes de qualquer operao.
Enquanto a condio for verdadeira o processo se repete. Podemos utilizar essa
estrutura para trabalharmos com contadores.
Em algoritmo a estrutura a seguinte:
Nr = 0
enquanto (Nr <=100) faca
Nr = Nr + 1
fimenquanto
Em C:
Nr = 0;
while (Nr <= 100)
{
Nr = Nr + 1;
}
1.5.2.2 Repita ...ate (condio) (Do ... {}while(condio));
Neste caso primeiro so executados os comandos, e somente depois realizado o
teste da condio. Se a condio for verdadeira, os comandos so executados novamente,
caso seja falso encerrado o comando DO.
Em algoritmo a estrutura a seguinte:
Nr = 0
repita
Nr = Nr + 1
ate (Nr <=100)

06/02/2015

Em C
Nr = 0;
do
{
Nr = Nr + 1;
} while (Nr <= 100);

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

20

Lgica para programao Prof. Valdir Gil Pillat


1.5.2.3 Para ... De ... Ate ... Passo ... faca (for(...;...;...){})
Este comando de repetio semelhante ao comando enquanto ... processar, pois ele
depende da condio verdadeira para executar a repetio do cdigo.
Em algoritmo a estrutura a seguinte:
para Nr de 0 ate 100 passo +1 faca
$Cdigo
fimpara
Em C
for(Nr=0;Nr<=100;Nr=Nr+1)
{
//cdigo
}
EXERCCIOS 6
1) Faa um algoritmo que determine o maior entre N nmeros. A condio de
parada a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior at que
a entrada seja igual a 0 (ZERO).
2) Faa um algoritmo que conte de 1 a 100 e a cada mltiplo de 10 emita uma
mensagem: Mltiplo de 10.
3) Elabore um algoritmo que gera e escreve os nmeros mpares dos nmeros lidos
entre 100 e 200.
4) Construa um algoritmo que leia 500 valores inteiros e positivos e:
Encontre o maior valor
Encontre o menor valor
Calcule a mdia dos nmeros lidos
Bibliografia
Ascencio, Ana Fernanda Gomes; de Campos, Edilene Aparecida Veneruchi.
Fundamentos da programao de computadores: Algoritmos, Pascal, C/C++, e Java, 2
ed., Pearson, 2007
Moraes, P. S. Lgica de programao, Unicamp, 2000. Disponvel em:
http://www.siban.com.br/destaque/21_carta.pdf Acessado em: 30/07/2012

06/02/2015

http://www1.univap.br/~valdirgp
e-mail: valdirgp@univap.br

21