Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação I
Universidade do Estado do Amazonas
Lógica de
Programação I
E d i ç õ e s
2 0 0 7
Ficha Técnica
Odwald Schreder
Coordenador Geral
Projeto gráfico
Aurelino da Silva Bentes
Revisão
Ângela Timótia Pereira Lima
3. O VisuAlg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.1. Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2. A Tela Principal do VisuAlg 2.0 . . . . . . . . . . . . . . . . . 40
3.2.1 A barra de Tarefas do VisuAlg . . . . . . . . . . . . . . 41
3.2.2 Barra de Status . . . . . . . . . . . . . . . . . . . . . . 43
3.2.3 Quadro de Variáveis . . . . . . . . . . . . . . . . . . . 44
3.3. A Linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5. Expressões e Operadores . . . . . . . . . . . . . . . . . . . . . . . 69
5.1.Operador de Atribuição. . . . . . . . . . . . . . . . . . . . . . 69
5.2 Expressões Aritméticas: . . . . . . . . . . . . . . . . . . . . . 72
5.2.1. Operadores aritméticos . . . . . . . . . . . . . . . . . 72
6. Estrutura de um algoritmo . . . . . . . . . . . . . . . . . . . . . . 81
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
10
Tecnologia em Análise e Desenvolvimento de Sistemas
Lógica de Programação I
Capítulo 1
Introdução ao Estudo
da Resolução
de Problemas
Utilizando o computador
Problema Recurso
Fome de manhã (café da manhã) Frutas na geladeira
ATIVIDADES
Situação
Situação Desejada
Inicial (Objetivo)
Como ir de A para B?
A B
ATIVIDADES
1.3.Seu chefe lhe diz simplesmente que seu relatório está muito
ruim, sem fornecer motivos para tal, e que você precisa
melhorá-lo. Você será capaz de resolver o problema (fazer
com que seu relatório agrade ao chefe)? Por quê?
1.4.Uma pessoa lhe diz que suas roupas não são boas e que
precisa melhorar seu vestuário, sem lhe fornecer maiores
detalhes. Mesmo que você possua dinheiro e vá a uma loja
de vestuário você poderia resolver o problema de “vestir-se
melhor”? Por quê?
1.5. Escolha 3 dos problemas de seu dia-a-dia que citou anterior-
mente e descreva a situação inicial, a desejada (objetivo) e
os recursos de que dispõe.
1.3. Algoritmos
Consumir um chiclete:
1. pegar o chiclete;
2. retirar o papel;
3. mascar o chiclete;
4. jogar o papel no lixo;
5. jogar o chiclete no lixo.
Escovar os dentes:
1. Pegar a escova;
2. Colocar a pasta de dentes na escova;
3. Molhar a escova;
4. Escovar os dentes;
5. Enxaguar a boca;
6. Enxaguar a escova.
OBJETIVO
ATIVIDADES
Figura 1.3: Situação Inicial dos Discos no Problema das Torres de Hanói
23
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
ATIVIDADES
Processamento
Entrada Saída
Figura 1.5: Representação do Processamento de Dados
(P1 + P2 + P3 + P4) / 4.
ATIVIDADES
1.6.Lógica de Programação
?
??
??
Linguagem de
Programação
Algoritmo
Programa
Tradução
?
29
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
??
Fase de
Resolução
? ?? 1
do Problema
?
Problema
Solução
na forma de
Algoritmo
2 Fase de Implementação
(Codificação do Algoritmo
Solução como um em alguma Ling. de Programação
programa de computador
30
Tecnologia em Análise e
Tecnologia em Análise e Desenvolvimento deIntrodução
Sistemas à Informática Desenvolvimento de Sistemas
Lógica de Programação I
Capítulo 2
Descrevendo Algoritmos
2.1. Introdução
32
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
ATIVIDADES
2.2. Fluxogramas
FIGURA SIGNIFICADO
separado.
Posicionar a escada
embaixo da lâmpada
Outro exemplo é o algoritmo de
“trocar uma lâmpada” descrito anteri- Buscar uma lâmpada nova
Início
A principal vantagem do uso do
fluxograma é que muitas vezes o
N1
entendimento de sua representação
gráfica é mais fácil e simples que
utilizando apenas a escrita. Como N2
Fim
ATIVIDADES
36
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
inicio
escreva ("Entre com o primeiro número (N1)")
leia (N1)
escreva ("Entre com o segundo número (N2)")
leia (N2)
Soma <- (N1+N2)
escreva ("A soma dos números é")
escreva (Soma)
fimalgoritmo
38
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
ATIVIDADES
39
Tecnologia em Análise e
Tecnologia em
Desenvolvimento AnáliseIntrodução
de Sistemas e Desenvolvimento
à Informática de Sistemas
Lógica de Programação I
Capítulo 3
O VisuAlg
3.1. Introdução
3.3.A Linguagem
algoritmo "semnome"
// Função :
// Autor :
// Data :
inicio
// Seção de Comandos
fimalgoritmo
45
Tecnologia em Análise e
Tecnologia em
Desenvolvimento AnáliseIntrodução
de Sistemas e Desenvolvimento
à Informática de Sistemas
Lógica de Programação I
Capítulo 4
Tipos de Dados
e Variáveis
4.1. Introdução: funcionamento do acesso
à memória em um computador
Processador
UCP
Dispositivo Dispositivo
de Entrada de Saída
(Teclado mouse, Leitura Escrita (Impressora
etc.) vídeo, disco, etc.)
Memória
Entrada (Endereço e conteúdo) Saída
Dados
Controle
A B C
BIT:
?É o menor item da informação binária.
? A palavra bit é uma contração de Binary digit (dígito
binário). Significa que um dígito pode assumir um dos dois
valores ou estados diferentes 0 ou 1.
?Os bits quando são agrupados podem representar dados e
programas.
BYTE:
?É um conjunto de bits. (figura 4.3).
?Um byte é formado por 8 bits.
PALAVRA:
?É um conjunto de bytes.
?Uma palavra e formada por bytes, a quantidade de bytes
que formará uma palavra depende da máquina considera-
da.
byte
10110101010000
bit
4.2.2 Constantes
USANDO O VISUALG
4.2.3. Variáveis
4.2.4. Identificadores
forma, quando um recurso for ser usado, ele será acionado pelo
seu nome para participar do processamento desejado dentro do
algoritmo.
EXEMPLO 4.2:
Alpha J , XJ, XYZ J, FGTS J
?Devem começar por um caractere alfabético, ou seja, por
uma letra;
EXEMPLO 4.3:
Notas J Salário J 98_notas L 5x L
?Não devem ser usados caracteres especiais (!@#$%&*/-
+<>?), ou seja no identificador só pode ter, após o primei-
ro caractere, letras, números e sublinhada ( _ );
EXEMPLO 4.4:
A:B ou a:b L x-y ou X-Y L nota 2 J
a98_notas J a_5x L
? Podem ser seguidos por mais caracteres alfabéticos ou
numéricos;
EXEMPLO 4.5:
A23 J abc123 J
?Não podem conter espaços em branco;
53
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
EXEMPLO 4.6:
Nome próprio L abc 123 L
?Devem ser únicos;
?Não podem ter o mesmo nome de uma palavra reservada.
ATIVIDADES
54 a) (w)
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
b) AwA
c) UHHi?
d) “maria”
e) *10
f) cm/G
g) P{0}
h) ASDRUBAL
i) DIAMÊS/ANO
j) TELEFONE
4.3.1.1 Numéricas
INTEIRO:
- Toda e qualquer informação numérica que pertença ao
conjunto dos números inteiros relativos (negativa, nula
ou positiva) [FORBELONE].
- Os números inteiros são aqueles que não possuem
componentes decimais ou fracionários, podendo ser
positivos ou negativos. [LOPES 02]
EXEMPLO 4.7
Vejamos algumas proposições declarativas comuns em que
56 é usado o tipo inteiro:
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
REAL:
Toda e qualquer informação numérica que pertença ao
conjunto dos números reais (negativa, nula ou positiva),
corresponde ao conjunto matemático dos valores numé-
ricos reais.
EXEMPLO 4.8
Vejamos algumas proposições declarativas comuns em que
é usado o tipo real:
a) Ela tem 1,73 metros de altura.
b) Meu saldo bancário e de 1000,00 reais.
c) No momento a bebê pesa 10 kilos.
4.3.1.2 String
CARACTER:
Toda e qualquer informação composta de um conjunto
de caracteres alfanuméricos: numéricos(0..9),
alfabéticos (A..Z,a..z) e especiais (por exemplo *, &, ^,
%, #, $), estando sempre descritos entre aspas (“”). O
conjunto de caracteres também é chamado de cadeia de
caracteres ou string.
EXEMPLO 4.9
Vejamos algumas proposições declarativas comuns em que
é usado o tipo caractere:
a) Constava no aviso “Não entre.”.
b) O parque municipal estava repleto de placas: “Não pise
na grama”.
c) O nome do santo é “São Jorge”.
4.3.1.3 Lógicas
LÓGICO:
Toda e qualquer informação que pode assumir apenas
duas situações (biestáveis). Conjunto de valores possíve-
is na lógica convencional (booleana) - FALSO ou
VERDADEIRO. Esse tipo só apresenta um desses dois
valores, sendo eles mutuamente exclusivos.
58
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
EXEMPLO 4.10
Vejamos algumas proposições declarativas comuns em que
é usado o tipo lógico:
a) A porta está aberta ou fechada.
b) A lâmpada pode estar acesa ou apagada.
ATIVIDADES
60
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
<lista-de-variáveis> : <tipo-de-dado>
<lista-de-variáveis> : vetor "["<lista-de-
intervalos>"]" de <tipo-de-dado>
? ??
Percepção das
impressões
sensoriais
?
?
Saída do resultado
Processo de Pensamento dos processos
Com o auxílio da nossa memória,
de pensamento
executamos diversos processos,
como controlar, comparar
combinar, deduzir, etc.
62 Figura 4.5 - Representação do Processamento
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
110g de mandioca
100g de cenoura pequena
Declaração das 1 colher (sopa) de cebola ralada
variáveis de entrada 2 colheres (chá) de azeite de oliva
100g de carne moída
5 colheres (sopa) de macarrão conchinha
Preparo:
Numa panela, aqueça o azeite de oliva e refogue a
cebola até murchar. Acrescente a carne e refogue
por mais 3 minutos. Junte a mandioca e a cenoura
picada e 1 xícara (chá) de água.
Algoritmo
Cozinhe, mexendo de vez em quando, por 25
minutos ou até os legumes ficarem macios. Então,
adicione o macarrão e uma pitada de sal e cozinhe
até ficar macio e com um pouco de caldo. Coloque
a preparação em um prato e amasse.
Saída
Fonte: www.cybercook.com.br
Figura 4.6 - Receita 63
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
leia (<lista-de-variáveis>)
escreva (<lista-de-expressões>)
Exemplos:
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: teste ok (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
65
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
EXEMPLO 4.11
PROBLEMA:
Imprimir a mensagem: “O ALUNO DEVE EXERCITAR PARA
APRENDER”
RESOLUÇÃO:
O Algoritmo 4.1 mostra uma solução que utiliza apenas
uma seqüência simples.
var
num : inteiro
inicio
fimalgoritmo
ATIVIDADES
4.7 Revisão
68
Tecnologia em Análise e
Tecnologia em Análise e Desenvolvimento deIntrodução
Sistemas à Informática Desenvolvimento de Sistemas
Lógica de Programação I
Capítulo 5
Expressões e operadores
Os operadores têm grande utilidade no desenvolvimento de
algoritmos, com eles é possível comparar e efetuar cálculos
entre constantes e variáveis. Comandos utilizando operadores
serão muito utilizados em nossos algoritmos.
OPERAÇÃO SÍMBOLO
ATRIBUIÇÃO
IDENTIFICADOR EXPRESSÃO
Onde:
ßÉ o símbolo de atribuição
EXEMPLO 5.1
X
? 10
Indica que a variável x irá receber o valor 10. Portanto a
?
variável X á do tipo NUMÉRICO INTEIRO
Y
? 5.2 + 3.0
Indica que a variável Y ira receber o RESULTADO da
?
EXPRESSÃO 5.2+3.0 que é 8.2, logo a variável Y é do tipo
NUMÉRICO REAL
X ß
500
X ß
1000
X ß
200
a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
vet[1] <- vet[1] + (a * 3)
matriz[3,9] <- a/4 – 5
nome_do_aluno <- "José da Silva"
sinalizador <- FALSO
71
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
EXEMPLO 5.2
3 * (1—2) + 4 * 2 = 5
PROBLEMA :
Calcular a soma de dois números inteiros.
RESOLUÇÃO:
O primeiro passo é obter os dados do problema que são dois
números, em seguida somar esses dois valores e, finalmente,
fornecer o valor de saída, que é o resultado da operação efetua-
da. Vamos ver a seqüência das operações:
73
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
var
A : inteiro
B : inteiro
soma : inteiro
inicio
leia(A,B)
soma <- (A+B)
escreva(soma)
fimalgoritmo
Não Não
Variável com Constante
Alfanumérica
Sim
Nome: “JOSÉ”
Não
Figura 5.1 - Variáveis 75
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
EXEMPLO 5.4
Tendo duas variáveis A = 5 e B = 3, os resultados das expres-
sões seriam:
Expressão Resultado
A=B Falso
A <> B Verdadeiro
A>B Verdadeiro
A<B Falso
A>=B Verdadeiro
A<=B Falso
76
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
Prioridade Operadores
1ª Not
2ª And
3ª Or
4ª = > < >= <= <>
EXEMPLO 5.5
Expressões Resultado
A=B AND B>C Falso
A <> B OR B<C Verdadeiro
A>B NOT Verdadeiro
A<B AND B>C Verdadeiro
A >= B OR B=C Falso
A <= B NOT Falso
Operadores Aritméticos
Operadores de Caracteres
Operadores Relacionais
Operadores Lógicos
ATIVIDADES
80
Tecnologia em Análise e
Tecnologia em Análise e Desenvolvimento de Introdução
Sistemas à Informática Desenvolvimento de Sistemas
Lógica de Programação I
Capítulo 6
Estrutura de um
algoritmo
A partir deste capítulo, os algoritmos serão construídos em
uma estrutura em “pseudocódigo” ou “português estruturado”
como mostrado no Algoritmo 6.1.
Seqüenciação
?
Seleção (Decisão)
?
Repetição (Iteração, Loop)
?
DICAS:
Nas linguagens de programação, os comandos são geral-
mente separados por ponto-e-vírgula. Isto possibilita que
mais de um comando seja escrito por linha.
Neste curso de lógica, você deve colocar apenas um
comando por linha, o ponto-e-vírgula não é necessário. Com
esta estratégia, os algoritmos ficam mais legíveis
Outra estratégia muito usada é a de indentar os blocos de
comandos. Indentar significa afastar (use a tecla tab ou 4
espaços) todos os comandos do bloco, de modo que facilite a
leitura do algoritmo.
<comando 1>
<comando 2>
<comando 3>
.
.
.
<comando n>
EXEMPLO 6.1
PROBLEMA:
Ler 4 notas de um aluno, calcular e escrever a sua média. 83
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
var
inicio
fimalgoritmo
EXEMPLO 6.2
PROBLEMA:
Ler 3 notas de um aluno, calcular e escrever a sua média
ponderada segundo o critério de pesos de 2, 3 e 5, respectiva-
mente.
84
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
var
n1, n2, n3, mediaFinal : real
inicio
escreva (mediaFinal)
EXEMPLO 6.3
PROBLEMA:
Ler uma temperatura em graus Fahrenheit e transformá-la
em Celsius segundo a fórmula: C = 5/9(F-32).
var
celsius, fahrenheit : real
inicio
leia(fahrenheit)
celsius <- (9/5) * (fahrenheit - 32)
escreva (celsius)
fimalgoritmo
EXEMPLO 6.4
PROBLEMA:
Ler as coordenadas de dois pontos:
?Ponto 1 (P) em x1, y1 e
?Ponto 2 (Q) em x2, y2.
var
x1, y1, x2, y2, distancia : real
inicio
escreva (distancia)
fimalgoritmo
86
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
se <condição> entao
<comando 1>
<comando 2>
<comando 3> Bloco
. verdade
.
.
<comando n>
fimse
se <condição> entao
<comando 1>
<comando 2> Bloco
. verdade
.
.
<comando n>
senao
<comando 1>
<comando 2> Bloco
. falso
.
.
<comando n>
fimse
EXEMPLO 6.5
PROBLEMA:
Lê quatro notas de um aluno e calcula a sua média, infor-
mando se o aluno está aprovado (média >= 6,0) ou reprovado
(média < 6,0).
var
inicio
EXEMPLO 6.6
PROBLEMA:
Ler 2 valores inteiros e escrever o resultado da divisão do
primeiro pelo segundo. 89
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
var
v1, v2 : inteiro
divisao : real
inicio
fimalgoritmo
EXEMPLO 6.7
PROBLEMA:
Ler 2 valores inteiros e escrever o resultado da divisão do
primeiro pelo segundo.
var
v1, v2 : inteiro
divisao : real
inicio
fimalgoritmo
EXEMPLO 6.8
PROBLEMA:
Ler 2 valores inteiros e informar se o segundo é divisor do
primeiro. Considere que o segundo valor nunca é zero.
91
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
algoritmo "Divisores"
var
n1, n2 : inteiro
inicio
fimalgoritmo
EXEMPLO 6.9
PROBLEMA:
Ler um número inteiro e escrever se este é par ou ímpar.
var
num : inteiro
inicio
leia (num)
se (num % 2) = 0 entao
escreval ("Número Par")
senao
escreval ("Número Ímpar")
fimse
fimalgoritmo
EXEMPLO 6.10
PROBLEMA:
Ler 2 valores inteiros e escrevê-los em ordem crescente.
var
n1, n2 : inteiro
inicio
se n1 > n2 entao
escreval(n2, n1)
senao
escreval(n1, n2)
fimse
fimalgoritmo
EXEMPLO 6.11
PROBLEMA:
Ler um raio não negativo para uma esfera e calcular seu
volume.
var
raio, volume : real
inicio
fimalgoritmo
6.1.2.1Seleção encadeada
EXEMPLO 6.12
PROBLEMA:
Lê uma idade e informa se a pessoa já alcançou a maiorida-
de ou não. Não se deve aceitar valores de idade inválidos.
algoritmo "Maioridade"
var
idade : inteiro
inicio
leia (idade)
se (idade >=0) e (idade < 18) entao
escreva ("Indivíduo Menor de Idade")
senao
se (idade >= 18) e (idade <= 130) entao
escreva ("Individuo Maior de Idade")
senao
escreva ("Erro: Idade inválida!")
fimse
fimse
fimalgoritmo
EXEMPLO 6.13
PROBLEMA:
Ler um valor inteiro, determinar e escrever se o valor lido é
positivo, negativo ou zero.
95
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
var
num : inteiro
inicio
leia(num)
se num > 0 entao
escreval("Número positivo!")
senao
se num < 0 entao
escreval("Número Negativo!")
senao
escreval("Zero!")
fimse
fimse
fimalgoritmo
EXEMPLO 6.14
PROBLEMA:
Ler uma nota quantitativa e escrever a nota qualitativa
segundo os critérios abaixo:
[0..2] Sem rendimento [7..8] Bom
[3..4] Insuficiente [9..10] Excelente
[5..6] Regular
96
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
var
nota : real
inicio
leia (nota)
se (nota >= 0) e (nota <=2) entao
escreva ("Sem Rendimento")
senao
se (nota = 3) ou (nota = 4) entao
escreva ("Rendimento Insuficiente")
senao
se (nota = 5) ou (nota = 6) entao
escreva ("Rendimento Regular")
senao
se (nota = 7) ou (nota = 8) entao
escreva ("Rendimento Bom")
senao
se (nota = 9) ou (nota = 10) entao
escreva ("Rendimento Excelente")
fimse
fimse
fimse
fimse
fimse
fimalgoritmo
EXEMPLO 6.15
PROBLEMA:
Lê uma idade e informa se a pessoa é um eleitor obrigatório
(entre 18 e 69 anos), facultativo (entre 16 e 17 anos e acima de
70) ou não é eleitor (menos de 16 anos).
algoritmo "Eleitores"
var
idade: inteiro
inicio
leia (idade)
se (idade = 16) ou (idade = 17) ou ((idade >= 70) e (idade
<= 130)) entao
escreva ("Eleitor Facultativo")
senao
se (idade >= 18) e (idade < 70) entao
escreva ("Eleitor Obrigatório")
senao
se (idade >= 0) e (idade < 16) entao
escreva("Não é Eleitor")
senao
escreva ("Erro: Idade inválida!")
fimse
fimse
fimse
fimalgoritmo
EXEMPLO 6.16
PROBLEMA:
Calcula as raízes de uma equação o segundo grau (se houve-
rem) dados os coeficientes (a, b, c) da equação.
var
a, b, c, delta, x1, x2 : real
inicio
leia (a, b, c)
delta <- (b * b) - (4 * a * c)
fimalgoritmo
escolha <variável>
caso <expressão constante 1>
<comando 1>
caso <expressão constante 2>
<comando 2>
...
caso <expressão constante n>
<comando n>
outrocaso
<este comando será executado se o valor testado
não corresponder a nenhuma opcao>
fimescolha
Algoritmo 6.21. Modelo geral da seleção de múltipla escolha.
EXEMPLO 6.17
PROBLEMA:
Ler um código que representa uma escolha de um cardápio.
Escrever o nome do prato correspondente. De acordo com os
valores abaixo:
1: Peixe frito
2: Frango à milanesa
3: Churrasco
4: Pizza
5: Hamburguer com fritas
6: Feijoada
100
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
inicio
escolha codPrato
caso 1
escreval ("Peixe frito")
caso 2
escreval ("Frango à milanesa")
caso 3
escreval ("Churrasco")
caso 4
escreval ("Pizza")
caso 5
escreval ("Hamburguer com fritas")
caso 6
escreval ("Feijoada")
outrocaso
escreval ("Código inválido")
fimescolha
fimalgoritmo
Algoritmo 6.22. Opções do cardápio de um restaurante.
EXEMPLO 6.18
PROBLEMA:
Ler o nome de um time de futebol e informar se é um dos
times cariocas, paulistas ou de outro estado.
101
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
var
time: caractere
inicio
escolha time
caso "Flamengo", "Fluminense", "Vasco", "Botafogo"
escreval ("É um time carioca.")
caso "São Paulo", "Palmeiras", "Santos", "Corinthians"
escreval ("É um time paulista.")
outrocaso
escreval ("É de outro estado.")
fimescolha
fimalgoritmo
<comando 1>
<comando 2>
<comando 3>
.
.
.
<comando n>
EXEMPLO 6.19
PROBLEMA:
Ler 4 notas de 40 alunos, calcular e escrever cada média.
var
n1, n2, n3, n4, media : real
cont : inteiro
inicio
cont <- 1
fimenquanto
fimalgoritmo
EXEMPLO 6.20
PROBLEMA: Ler 4 notas de n alunos, calcular e escrever
cada média.
var
n1, n2, n3, n4, media : real
cont, n : inteiro
inicio
cont <- 1
leia (n)
enquanto cont <= n faca
fimenquanto
106 Algoritmo 6.26. Média de 4 notas para n alunos.
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
<comando 1>
<comando 2>
<comando 3>
.
.
.
<comando n>
var
n1, n2, n3, n4, media : real
cont, n : inteiro
inicio
leia (n)
para cont de 1 ate n faca
fimpara
fimalgoritmo
EXEMPLO 6.21
PROBLEMA:
Mostrar a tabuada de multiplicação de um número lido.
num x 6 = ?
?
num x 7 = ?
?
num x 8 = ?
?
num x 9 = ?
?
num x 10 = ?
?
var
num, i : inteiro
inicio
fimalgoritmo
EXEMPLO 6.22
PROBLEMA:
Ler 10 número 3 e verificar qual é o maior dentre eles.
RESOLUÇÃO (Algoritmo 6.30):
?Ler um número 10 vezes.
?Armazenar a primeira leitura em uma variável maior.
?A cada nova leitura, testar se o valor é maior que o valor da
variável maior. Neste caso, este é o maior valor até então,
portanto, maior recebe o valor lido.
var
num, maior, i : inteiro
inicio
escreva("Numero 1: ")
leia(num)
maior <- num
para i de 2 ate 10 faca
escreva("Numero ", i, ": ")
leia(num)
fimalgoritmo
EXEMPLO 6.23
PROBLEMA:
Ler N números e verificar qual é o menor dentre eles.
var
N, num, menor, i : inteiro
inicio
leia (N)
se (n > 0) entao
escreva("Numero 1: ")
leia(num)
menor <- num
para i de 2 ate N faca
escreva("Numero ", i, ": ")
leia(num)
fimalgoritmo
111
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
EXEMPLO 6.24
PROBLEMA:
Ler uma seqüência de números que termina com um sinali-
zador (flag) igual a –999 que deve ser desprezado.
var
N, num, maior, menor, i : inteiro
inicio
a
i <- 1
escreva("Numero 1: ")
leia(num)
menor <- num
maior <- num
fimalgoritmo
112 Algoritmo 6.32. Maior e Menor de uma seqüência de valores lidos.
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
var
num, maior, menor, i : inteiro
inicio
fimenquanto
se (maior <> -9999) entao
escreval("O menor numero lido foi: ", menor)
escreval("O maior numero lido foi: ", maior)
fimse
fimalgoritmo
Algoritmo 6.33. Menor e Maior de uma seqüência de números (com interrompa)
EXEMPLO 6.25
PROBLEMA:
Ler 3 valores e verificar se podem ser lados de um triângulo.
Em caso afirmativo, informar o tipo de triângulo: eqüilátero,
isósceles ou escaleno.
algoritmo "Triângulos"
var
l1, l2, l3 : real
inicio
fimalgoritmo
EXEMPLO 6.26
PROBLEMA:
Ler 3 valores e verificar se podem ser lados de um triângulo.
Em caso afirmativo, informar se é triângulo retângulo.
var
l1, l2, l3: inteiro
inicio
escreval("Lados do Triangulo")
leia(l1)
leia(l2)
leia(l3)
fimalgoritmo
115
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
ATIVIDADES
ce -
bf e af -
cd
x= y=
ae -
bd ae -
bd
117
Tecnologia em Análise e
Tecnologia em
Desenvolvimento AnáliseIntrodução
de Sistemas e Desenvolvimento
à Informática de Sistemas
Lógica de Programação I
Bibliografia
[MOURSUND07] MOURSUND, David. Increasing your expertise as
a problem solver: Some roles of computers. Disponível em: <
h t t p : / / w w w. u o r e g o n . e d u / ~ m o u r s u n d / B o o k s / P S -
Expertise/index.htm>. Acesso em 05/06/2007
119
Tecnologia em Análise e
Tecnologia em
Desenvolvimento AnáliseLógica
de Sistemas e Desenvolvimento
de Programação I de Sistemas
Lógica de Programação I
Anexo
Exercícios
Estruturas Seqüenciais
Estruturas de Seleção
125
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
Estruturas de Repetição
127
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
128
Tecnologia em Análise e
Lógica de Programação I Desenvolvimento de Sistemas
129
Tecnologia em Análise e
Desenvolvimento de Sistemas Lógica de Programação I
130