Buscar

Algoritmos_VisuAlg_UniBH_2PorPagina

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

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

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ê viu 3, do total de 43 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

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

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ê viu 6, do total de 43 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

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

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ê viu 9, do total de 43 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

Prévia do material em texto

UniBH 09/09/2014
Algoritmo e Estruturas de Dados 1
Algoritmo e Estruturas de Dados - 02/20141
ALGORITMOS
VisuAlg
Prof. Ana Gavinho 
2
� Algoritmo : definição
� Descreve um padrão de comportamento através de 
um conjunto bem definido e finito de ações 
(comandos) que irão produzir um resultado desejado 
(apresenta uma solução para um problema).
� É uma seqüência de instruções ordenadas de forma 
lógica para a resolução de uma determinada tarefa ou 
problema.
� Seqüencia ordenada de passos que deve ser seguida 
para realizar uma tarefa
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 2
3 Algoritmo e Estruturas de Dados - 02/2014
Não computacional
É um algoritmo cuja
seqüência de passos, a
princípio, não pode ser
executada por um
computador.
Computacional
Para ser executado
por um computador,
deve ter instruções
corretas e sem
ambigüidades.
Algoritmo
4
Exemplo 1 de Algoritmo
Algoritmo e Estruturas de Dados - 02/2014
É 
computacional?
Receita de 
Omelete
� Ingredientes
• 4 ovos ou mais
• Sal, pimenta do reino
• Salsa picada
• Óleo ou manteiga
Modo de preparo
1) Bata os ovos inteiros até espumarem.
2) Tempere com sal, pimenta e salsa
3) Leve um frigideira ao fogo com óleo e deixe esquentar, 
derrame os ovos de forma que tome o fundo da frigideira.
4) Deixe fritar em fogo brando.
5) Levante as bordas com o auxílio de uma espátula e vá 
enrolando até que fique dourado.
6) Retire para uma travessa e sirva bem quente.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 3
5
Exemplo 2 de Algoritmo
Algoritmo e Estruturas de Dados - 02/2014
É 
computacional?
algoritmo “Media”
var 
a, b, media : real 
inicio
leia (a, b)
media ���� (a+b)/2
escreva (“Media = “, media)
fimalgoritmo
6
Algoritmo detalhado
Algoritmo e Estruturas de Dados - 02/2014
Algoritmo 1:
1. Colocar um ovo na frigideira
2. Esperar o ovo ficar frito
3. Remover o ovo da frigideira
Como fritar um ovo?
Algoritmo 2:
1. Colocar a frigideira no fogo 
2. Colocar óleo e esperar até o óleo ficar quente
3. Quebrar o ovo separando a casca e colocar o conteúdo do ovo na 
frigideira
4. Esperar um minuto
5. Retirar o ovo da frigideira
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 4
7
Algoritmo: formas de representação
� Descrição narrativa
� Fluxograma
� Pseudocódigo ou linguagem estruturada ou portugol
� Obter as notas da primeira e da segunda prova
� Calcular a média aritmética das duas notas
� Se a média for >= 7 então o aluno foi aprovado, 
senão (nota < 7) o aluno foi reprovado
MEDIA <-
(N1+N2)/2
INICIO
MEDIA 
>= 7
“APROVA
DO”
N1, N2
FIM
“REPROVAD
O”
v
F
Algoritmo e Estruturas de Dados - 02/2014
8
Algoritmo: descrição narrativa
� Exemplo : Cálculo da média de um aluno
� Obter as notas da primeira e da segunda prova
� Calcular a média aritmética das duas notas
� Se a média for >= 7 então o aluno foi aprovado, 
senão (nota < 7) o aluno foi reprovado
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 5
9
Algoritmo: fluxograma
� Principais formas geométricas
OPERACÃO
INICIO / FIM
DECISÃO
SAÍDA DE 
DADOS
ENTRADA DE 
DADOS
A CONECTOR
Algoritmo e Estruturas de Dados - 02/2014
10
Algoritmo: fluxograma (cont.)
� Exemplo : Cálculo da média de um aluno
MEDIA <-
(N1+N2)/2
INICIO
MEDIA >= 7 “APROVADO”N1, N2
FIM
A
“REPROVADO”
V
F
A
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 6
11
Algoritmo: pseudocódigo
� Pseudocódigo ou linguagem estruturada ou portugol
� Muito semelhante a forma em que os programas são 
escritos
� Possui definição dos tipos de variáveis usadas no 
algoritmo
� Permite a tradução de um algoritmo para uma linguagem 
de programação específica de forma praticamente direta
� Neste curso, vamos usar a linguagem estruturada VisuAlg
Algoritmo e Estruturas de Dados - 02/2014
12
Algoritmo
Algoritmo e Estruturas de Dados - 02/2014
1) Por que um algoritmo não pode tem um comando 
como “Escreva todos os números pares”?
2) Escreva um algoritmo que produza os valores:
2 4 6 8 10
3) Escreva um algoritmo que produza os valores:
1 3 5 7 9
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 7
13
VisuAlg
� O corpo do programa usa um bloco de comandos para escrever 
o algoritmo em VisuAlg
algoritmo "semnome"
// comentário
var
<declaração de variáveis> CORPO DO PROGRAMA
inicio
< comandos > 
fimalgoritmo
� comentários são usados para documentar programas.
� as variáveis são opcionais. Um programa pode não ter variáveis.
� o bloco de comandos tem pelo menos um comando.
Algoritmo e Estruturas de Dados - 02/2014
14
Declaração de variáveis
<identificadores> : tipo 
Exemplo:
algoritmo “DeclaraVariaveis"
var indice, a, b : inteiro
nome, sobrenome: caractere 
tem : logico
inicio
< comandos > 
fimalgoritmo
Começam com letra !
valores verdadeiro ou falsológico
conjunto de caracteres alfanuméricoscaracter
número real positivo, nulo ou negativoreal
número inteiro positivo, nulo ou negativointeiro
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 8
Algoritmo e Estruturas e Dados - 02/201415
Que tipos de 
dados seriam 
usados para 
cada 
informação 
pessoal deste 
cadastro?
16
Estes nomes de identificadores são validos? Por que?
Algoritmo e Estruturas de Dados - 02/2014
• “nota1”
• salario-liquido
• salarioliquido
• SalarioLiquido
• a1b2c3
• km/h
• #produto
• leia
• nota1
• nota1+nota2
• matricula
• 1nota
• X2
• @gmail.com
• nota(1)
• a:b
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 9
17
Crie uma 
variável 
(nome e tipo) 
para cada 
informação 
pessoal deste 
cadastro.
Algoritmo e Estruturas de Dados - 02/2014
18
Comandos de atribuição
<identificador> ���� <expressão> 
� expressão: pode ser um 
valor, um identificador ou uma 
expressão aritmética ou lógica
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 10
19
Comandos de atribuição
Exemplo:
algoritmo “Atribuicao"
var a, b, c, delta : real
nome, sobrenome : caractere
tem, amaior : logico
inicio
a ���� 1 // recebe um valor
b ���� 2 // recebe um valor
c ���� a // recebe o conteúdo de um identificador 
delta ���� b^2 – 4*a*c // recebe o valor da expressão aritmética
nome ���� “Jose” // recebe um valor
sobrenome ���� “Silva” // recebe um valor 
tem ���� falso // recebe um valor
amaior ���� (a>b) // recebe o valor da expressão lógica
fimalgoritmo
Algoritmo e Estruturas de Dados - 02/2014
20
Comandos de atribuição (cont.)
� operadores aritméticos sobre inteiros e reais: 
+ soma
- subtração
* multiplicação
^ potenciação
ex: 10 + 30 resultado: 40
ex: 30 - 20 resultado: 10
ex: 20 * 4,2 resultado: 84.0
ex: 4,5**2 resultado: 20,25
Algoritmo e Estruturas de Dados - 02/2014
ex: “Porto” + “Seguro” resultado: “PortoSeguro”
� operadores de caracteres
+ 
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 11
21
Comandos de atribuição (cont.)
ex: 11 div 2 resultado: 5 
ex: 11 mod 2 resultado: 1
� operadores aritméticos sobre inteiros:
\ - divisão inteira
MOD ou % - resto da divisão
ex: 11.0 / 2.0 resultado: 5.5
� operadores aritméticos sobre reais
/ - divisão real 
Algoritmo e Estruturas de Dados - 02/201422
Quais comando de atribuição estão corretos?
Algoritmo e Estruturas de Dados - 02/2014
var indice, a, b : inteiro
nome, primeironome, sobrenome: caractere 
tem : logico
a � 1 a � verdadeiro
b � “2” b � 2
indice � a + b indice � nome + sobrenome 
indice � indice +1
primeironome � “Jose” 
sobrenome � “Silva”
nome � primeironome + sobrenome 
nome � indice 
tem � falso tem � a
tem � (a>b)
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 12
23
Comandos de entrada e saida
Saída: escreva (<expressão>) ou 
escreval (<expressão>)
� expressão: pode ser um identificador, 
uma string ou uma expressão aritmética
Entrada: leia (<identificadores>)
� variáveis já declaradas no corpo do 
programa
Algoritmo e Estruturas de Dados - 02/2014
24
Calcule a média aritmética entre dois números
Exemplo1:
algoritmo “Media”
var 
a, b, media : real 
inicio
leia (a, b)
media ���� (a+b)/2
escreva (“Media = “, media)
fimalgoritmo
Exemplo2:
algoritmo “Media2num”
var 
a, b : real 
inicio
leia (a, b)
escreva (“ A media entre “, a, ” e ”, b, 
” é igual a ”, (a+b)/2)
fimalgoritmo
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 13
25
Exercícios:
1) Calcule a média aritmética entre 3 números.
2) Um aluno ficou para a prova final porque a média entre 
as notas de suas 2 provas foi menor que 7. Ele fez a 
prova final e teve uma nova média – a média final -
calculada a partir da média aritmética entre os valores da 
prova final e da antiga média. Leia a nota das três provas 
e calcule sua média final.
Algoritmo e Estruturas de Dados - 02/2014
26
Comandos de estrutura de decisão
� condição usa operadores lógicos e relacionais
Simples:
se <condição> 
então
<comandos>
fimse
Composta:
se <condição> 
então
<comandos>
senão
<comandos> 
fimse
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 14
e retorna V se as partes forem verdadeiras.
ou retorna V se uma das partes for verdadeira, ou ambas.
não inverte de V para F e vice-versa
27
� operadores lógicos:
> maior que
>= maior ou igual
< menor que
<= menor ou igual
= Igual
<> diferente
�operadores relacionais:
Algoritmo e Estruturas de Dados - 02/2014
28
Exemplo1: Leia um número e diga se ele é positivo ou não
algoritmo “Positivo”
var 
a : real 
inicio
leia (a)
se (a > 0) entao
escreva (a, “ é positivo“)
senao
escreva (a, “ não é positivo“)
fimse
fimalgoritmo
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 15
29
Exemplo2: Leia dois números e diga se eles são + ou -
Algoritmo “Comparação”
var
a, b : real
inicio
leia (a, b)
se (a>0) e (b>0) entao
escreva (“Ambos +”)
senao 
se (a<0) e (b<0) entao 
escreva(“Ambos -”)
senao 
escreva(“Um é + e outro -”)
fimse
fimse
fim
Algoritmo e Estruturas de Dados - 02/2014
x y x E y x OU y NÃO x 
V V
V F
F V
F F
30
Complete o quando abaixo
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 16
x y z x E y E z x E y OU z x OU y E z x OU y OU z
V V V
V V F
V F V
V F F
F V V
F V F
F F V
F F F
31
Complete o quando abaixo
Algoritmo e Estruturas de Dados - 02/2014
32
Qual o valor (V ou F) de cada expressão lógica abaixo?
a = 5
b = 10
. a < b . (a+b) < 15 . (a+b) < (b-a)
. a <= b . (a+b) <= 15 . (a+b) <= (b-a)
. b >= a . (a+b) >= 15 . (a+b) >= (b-a)
. a = b . (a+b) = 15 . (a+b) = (b-a)
. a <> b . (a+b) <> 15 . (a+b) <> (b-a)
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 17
33
Qual o valor (V ou F) de cada expressão lógica abaixo?
a = 5 b = 10
. (a < b) E ((a+b) < 15) E ((a+b) < (b-a))
. (a < b) OU ((a+b) < 15) OU ((a+b) < (b-a))
. (a < b) E ((a+b) < 15) OU ((a+b) < (b-a))
. (a < b) OU ((a+b) < 15) E ((a+b) < (b-a))
. (a <= b) E ((a+b) <= 15) OU ((a+b) <= (b-a))
. (b >= a) OU ((a+b) >= 15) E ((a+b) >= (b-a))
. (a = b ) OU ((a+b) = 15) OU ((a+b) = (b-a))
Algoritmo e Estruturas de Dados - 02/2014
34
Exercícios
1. Leia 2 números e diga qual o maior, qual o menor ou se eles 
são iguais.
2. Leia 3 números e diga qual o maior e qual o menor deles.
3. Leia n números e diga qual o maior e qual o menor deles 
(veremos isto na semana que vem).
4. Leia um numero N e diga se ele é par ou não.
5. Na lanchonete da faculdade, você comprou algumas garrafas 
de água mineral. Leia o preço da garrafa, a quantidade 
comprada e calcule o valor total. Leia o valor pago em dinheiro 
e calcule o troco.
6. Leia os números A e B, troque seus valores e imprima-os.
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 18
35
Exercícios (cont.) :
7) Informe se um aluno está aprovado ou não. Leia as notas 
da primeira e da segunda prova e calcule sua média. Se 
ela for maior ou igual a 7 (sete), o aluno esta aprovado, 
senão está em prova final. Leia a nota da prova final e 
calcule sua média final, que é a média aritmética entre a 
nota da prova final e da antiga média. Se a média final for 
maior ou igual a 5 (cinco), o aluno está aprovado senão 
está reprovado.
Algoritmo e Estruturas de Dados - 02/2014
36
Comando ESCOLHA
escolha <expressa-de-selecao>
caso <condição11 >, <condição12> ... <condição1N> 
<comandos1> 
caso <condição21 >, <condição22> ... <condição2N> 
<comandos2> 
...
outrocaso
<comandos> 
fimescolha
Algoritmo e Estruturas de Dados - 02/2014
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 19
Algoritmo e Estruturas de Dados -
02/2014
37
Comando ESCOLHA (cont.)
Exemplo1: 
De qual estado é o 
time de futebol?
Algoritmo “Times” 
var
time : caractere
inicio
leia (time)
escolha time
caso “Flamengo”, “Fluminense” 
escreval (“É um time carioca”)
caso “Palmeiras”, “Santos” 
escreval (“É um time paulista”)
outrocaso 
escreval (“É de outro estado”)
fimescolha
fimalgoritmo
38
Exercícios – usando SE e ESCOLHA
Algoritmo e Estruturas de Dados - 02/2014
1. Uma pessoa entre 0 e 11 anos é uma criança; entre 12 e 17 anos 
é um adolescente e com 18 anos ou mais é um adulto. Leia a 
idade de uma pessoa e diga qual sua classificação.
2. Selecione um produto abaixo pelo código e escreva que o 
nome do produto e seu preço.
1 – Água mineral - R$ 1,50.
2 – Suco de laranja - R$ 2,50
3 – Vitamina - R$ 3,50
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 20
Algoritmo e Estruturas de Dados -
02/2014
39
Comando ENQUANTO
enquanto <condição> faca 
<comandos> 
fim enquanto
� <condição> usa operadores lógicos e relacionais
� <comandos> são executados quando a condição é verdadeira
� o valor de <condição> é alterado dentro do bloco de 
comandos
Algoritmo e Estruturas de Dados -
02/2014
40
Exemplo1: leia 5 números e calculo o dobro de cada um
Algoritmo “Dobro” 
var
i, num, dobro : inteiro
inicio
i ���� 0;
enquanto (i< 5) faca
leia (num)
dobro ���� num*2
imprima (“Dobro de “, num, “é “,dobro)
i ���� i+1
fimenquanto
fimalgoritmo
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 21
Algoritmo e Estruturas de Dados -
02/2014
41
Exemplo2: leia vários números até ler o número zero. Diga qual o 
menor número lido. 
Algoritmo “MenorValor”
var
valor, menor : inteiro
inicio
leia (valor)
menor ���� valor
enquanto (valor <> 0) faca
se (valor < menor) entao 
menor ���� valor
fim se
leia (valor)
fimenquantoescreva(“O menor valor é “, menor)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
42
Exercícios
1. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, dizer 
quantos números foram lidos.
2. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, 
imprimir o maior valor lido.
3. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, 
imprimir a sua soma.
4. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, 
imprimir a média dos números lidos.
5. Leia N registros contendo a altura e o código de sexo dos alunos de uma turma 
( M e F). Parar ao ler a altura zero. Ao final, imprimir:
• A maior, a menor e a media da altura das mulheres
• A maior, a menor e a media da altura dos homens
• A maior, a menor e a media da altura da turma
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 22
Algoritmo e Estruturas de Dados -
02/2014
43
Exercícios
6. Leia 100 notas de alunos. Diga qual a maior nota, qual ao menor nota ou se 
elas são iguais.
7. Leia vários números, parar ao ler o número zero. Diga qual o maior número, 
qual o menor ou se eles são iguais.
Algoritmo e Estruturas de Dados -
02/2014
44
Comando REPITA
repita 
<comandos> 
ate <condicao>
� <condição> usa operadores lógicos e relacionais
� <comandos> são executados pelo menos uma vez
� quando <condição> for verdadeira, o comando REPITA termina
�o valor de <condição> é alterado dentro do bloco de 
comandos
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 23
Algoritmo e Estruturas de Dados -
02/2014
45
Exemplo1: leia 5 números e calculo o dobro de cada um
Algoritmo “Dobro”
var 
i, num, dobro : inteiro
inicio
i ���� 0
repita
leia (num)
dobro ���� num*2
escreval (“ O dobro é “,dobro)
i ���� i+1
ate (i = 5)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
46
Exemplo2: leia vários números até ler o número zero. Diga qual o 
menor número lido. 
Algoritmo “MenorValor”
var
valor, menor : inteiro
inicio
menor ���� 99999 // maior valor que existe
repita
leia (valor)
se (valor <> 0) entao
se (valor < menor) entao
menor ���� valor
fimse
fimse
ate (valor = 0)
escreva (“O menor valor é “, menor)
fimalgoritmo
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 24
Algoritmo e Estruturas de Dados -
02/2014
47
Comando PARA
para v de <inicio> ate <fim> passo p faça 
<comandos> 
fimpara
� a variável v começa com o valor inicial <inicio>
�é incrementada com o valor p a cada loop
� o comando termina quando a variável v atinge o valor <fim>
Algoritmo e Estruturas de Dados -
02/2014
48
Exemplo1: leia 5 números e calculo o dobro de cada um
Algoritmo “Dobro”
var 
i, num, dobro : inteiro
inicio
para i de 1 ate 5 faca
leia (num)
dobro ���� num*2
escreval (“ O dobro é “,dobro)
fimpara
fimalgoritmo
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 25
Algoritmo e Estruturas de Dados -
02/2014
49
Exemplo2: leia 5 números e diga qual o menor valor lido.
Algoritmo “MenorValor”
var
i, valor, menor : inteiro
inicio
menor ���� 99999 // maior valor que existe
para i de 1 ate 5 passo 1 faca
leia (valor)
se (valor < menor) entao
menor ���� valor
fimse
fimpara
escreval (“O menor valor é “, menor)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
50
Comando INTERROMPA
� usado dentro de comandos de repetição:
� enquanto
� repita
� para
� ele termina o comando de repetição onde esta 
declarado e vai executar o comando seguinte ao 
comando de repetição.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 26
Algoritmo e Estruturas de Dados -
02/2014
51
Algoritmo “Dobro”
var
i, num : inteiro
inicio
i ���� 0
repita
leia (num)
escreval (“ O dobro é “, num*2)
i ���� i+1
se (i = 5) entao
interrompa
fimse
ate falso
fimalgoritmo
Exemplo1: leia 5 números e calculo o dobro de cada um
Algoritmo e Estruturas de Dados -
02/2014
52
Exemplo2: Leia vários números até ler o número zero. Diga qual o 
menor número lido. 
Algoritmo “MenorValor”
var
valor, menor : inteiro
inicio
leia (valor)
menor ���� valor
enquanto verdadeiro faca
se (valor = 0) entao
interrompa
fimse
se (valor < menor) entao 
menor ���� valor
fim se
leia (valor)
fimenquanto
escreva(“O menor valor é “, menor)
fimalgoritmo
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 27
Algoritmo e Estruturas de Dados -
02/2014
53
Exercícios
1. Usando o comando REPITA, ler N números inteiros e positivos, parar 
ao ler o numero zero. Ao final, dizer quantos números foram lidos.
2. Usando o comando REPITA, ler N números inteiros e positivos, parar 
ao ler o numero zero. Ao final, imprimir o maior valor, o menor e sua 
soma.
3. Usando o comando REPITA, ler N números inteiros e positivos, parar 
ao ler o numero zero. Ao final, imprimir sua media.
4. Imprima os 5 primeiros números pares positivos (zero é par?).
5. Usando o comando PARA, ler 5 números inteiros e positivos. Ao final, 
imprimir o maior valor, o menor, sua soma e a media.
6. Na serie de Fibonacci, o numero atual é igual a soma dos dois números 
anteriores. Ex: 1 1 2 3 5 8 13 ..... Usando o comando PARA, leia um 
número N >=2 e imprima os N termos da série.
Algoritmo e Estruturas de Dados -
02/2014
54
Vetores
� variáveis que possuem o mesmo nome e são do mesmo tipo
� cada variável é acessada por um índice a partir de um valor 
inicial e um valor final
<identificadores> : vetor [<valor-inic> ...<valor-fim >] de tipo 
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 28
Algoritmo e Estruturas de Dados -
02/2014
55
Quantos elementos tem cada vetor?
vet
0 1 2 3 4
108642
serotevlista
-2 -1 0 1 2 3 4
Exemplos:
�nota : vetor [1 .. 4] de real
� vet : vetor [ 0.. 4] de inteiro
� lista : vetor [-2..4] de caractere
nota
1 2 3 4
8642
Algoritmo e Estruturas de Dados -
02/2014
56
Exemplo: leia e armazene 4 notas em um vetor 
Algoritmo “Armazena”
var
i : inteiro
nota : vetor [1..4] de inteiro
inicio
para i de 1 ate 4 passo 1 faca
leia (nota[i])
fimpara
fimalgoritmo
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 29
Algoritmo e Estruturas de Dados -
02/2014
57
Exercícios
1. Crie um vetor de 5 posições com números inteiros positivos. 
Leia e armazene 5 valores. Em que posição esta o maior 
valor? Qual a posição do menor valor? Quantos números 
pares há neste vetor?
2. Crie um vetor de 6 posições com números inteiros. Leia e 
armazene 6 valores. Inverta as posições dos números do vetor: 
o primeiro com o último, o segundo com o penúltimo e assim 
por diante.
3. Faça o mesmo para um vetor com 5 posições.
4. Em um vetor de 4 posições, 3 são notas de um aluno e a 
quarta é sua media final. Leia as notas deste aluno, armazene-
as no vetor e calcule sua media final.
Algoritmo e Estruturas de Dados -
02/2014
58
Exercício – mais difícil
1. Para a ordenação de vetores, no método da bolha 
compara-se o primeiro elemento com o segundo e 
troca-se a posição se eles estiverem fora de ordem. 
Sucessivamente, compara-se o segundo com o terceiro, 
o terceiro com o quarto até levar o maior elemento ao 
fim do vetor. Se os elementos forem testados sem ser 
feita nenhuma troca é porque já estão ordenados (use 
um flag). Faça um algoritmo para o método da bolha.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 30
Algoritmo e Estruturas de Dados -
02/2014
59
Matrizes
� a matriz é um vetor que possui mais de um índice
� composta de variáveis com o mesmo nome e do mesmo tipo
� cada variável éacessada por dois índices a partir de um 
valor inicial e um valor final
<identif> : vetor [< v-inic>..<v_fim > , < v-inic>..<v-fim >] de tipo
Algoritmo e Estruturas de Dados -
02/2014
60
Exemplo1:
� notasTurma : vetor [1..4, 1..10] de real
Quantos alunos tem a turma e quantas notas tem cada aluno?
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 31
Algoritmo e Estruturas de Dados -
02/2014
61
Exemplo1: leia e armazene 4 notas de 10 alunos de uma turma
Algoritmo “ArmazenaNotas”
var
indAluno, indNota : inteiro
notasTurma : vetor [1..4, 1..10] de inteiro
inicio
para indAluno de 1 ate 10 passo 1 faca 
para indNota de 1 ate 4 passo 1 faca
leia (notasTurma[ indNota, indAluno ])
fimpara
fimpara 
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
62
Exemplo2:
� diasSemana : vetor [ 1.. 7 , 1..4] de inteiro
Quantos dias tem a semana e quantas semanas tem a matriz?
�diasAno : vetor [1..30 , 1..12] de real
Quantos dias tem cada mês?
Quantos meses tem o ano?
Quantos elementos tem a matriz (quantos dias tem o ano)?
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 32
Algoritmo e Estruturas de Dados -
02/2014
63
Exercícios
1. Um professor tem uma turma de 35 alunos. Ele deseja, usando 
uma matriz, ler e armazenar as 2 das notas de cada aluno. Em 
seguida, calcular e armazenar a média de casa aluno. Faça um 
algoritmo que leia as notas, calcule a média e diga a situação do 
aluno: aprovado se media >= 7, senão ele esta em prova final.
2. Imprima a seguinte matriz abaixo:
11 12 13
21 22 23
31 32 33
Algoritmo e Estruturas de Dados -
02/2014
64
Subprogramas
� Subprograma
�é um programa que auxilia o programa principal através da 
realização de uma determinada sub-tarefa.
� é chamados dentro do corpo do programa principal como se 
fosse um comando.
� após seu término, a execução do programa continua a partir do 
ponto onde foi chamado.
� cada subprograma, além de ter acesso às variáveis do programa 
que o chamou (são as variáveis globais), pode ter suas próprias 
variáveis (são as variáveis locais).
�
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 33
Algoritmo e Estruturas de Dados -
02/2014
65
� Subprograma
� são escritos após a declaração das variáveis e antes do corpo do 
programa principal
� parâmetros são informações passadas a um subprograma 
quando este é chamado.
� funções são subprogramas que retornam um valor. 
� procedimentos são subprogramas que não retornam um valor.
� O VisuAlg possibilita declaração e chamada de subprogramas 
nos moldes da linguagem Pascal: procedimentos e funções com 
passagem de parâmetros por valor ou referência
Algoritmo e Estruturas de Dados -
02/2014
66
Procedimentos
procedimento <nome_proced> [ <parametros>] 
// Seção de declaração de variáveis locais
inicio
// Seção de Comandos
fimprocedimento
É opcional.
Se declarada, indica passagem de parâmetros por referência (seu valor pode ser 
alterado e retornado ao programa principal)
Senão, indica passagem de parâmetros por valor.
• <parametros> é uma seqüência, separadas por ponto e virgula de:
[var] <nomes-de-parâmetros>: <tipo-de-dado>
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 34
Algoritmo e Estruturas de Dados -
02/2014
67
Exemplo1: Procedimento sem parâmetro para soma de 2 números
Algoritmo “ProcSemParm”
var 
// var globais 
n, m, resposta : inteiro
procedimento soma
var 
// var locais
aux: inteiro
inicio
aux <- n + m
resposta <- aux
fimprocedimento 
Inicio
n <- 4
m <- 9
soma
escreva(resposta)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
68
Exemplo2: Procedimento com parâmetro (por valor) para soma 
de 2 números
Algoritmo “ProcComParm”
var 
// var globais 
n, m, resposta : inteiro
procedimento soma (x,y:inteiro)
inicio
// resposta é var global
resposta <- x+y
fimprocedimento 
Inicio
n <- 4
m <- 9
soma (m,n)
escreva(resposta)
fimalgoritmo
Passagem de parâmetro 
por valor.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 35
Algoritmo e Estruturas de Dados -
02/2014
69
Exemplo3: Procedimento com parâmetro (por referência) para
soma de 2 números
Algoritmo “ProcComParmRef”
var 
// var globais 
n, m, resposta : inteiro
procedimento soma (x,y:inteiro;
var result:inteiro)
inicio
result <- x+y
fimprocedimento 
Inicio
n <- 4
m <- 9
soma (m,n,resposta)
escreva(resposta)
fimalgoritmo
Passagem de parâmetro 
por referência.
Algoritmo e Estruturas de Dados -
02/2014
70
Função
funcao <nome_funcao> [ <parametros>] : tipo 
// Seção de declaração de variáveis locais
inicio
// Seção de Comandos
fimprocedimento
É opcional.
Se declarada, indica passagem de parâmetros por referência (seu valor pode ser 
alterado e retornado ao programa principal)
Senão, indica passagem de parâmetros por valor.
• <parametros> é uma seqüência, separadas por ponto e virgula de:
[var] <nomes-de-parâmetros>: <tipo-de-dado>
Tipo do valor 
retornado pela 
função. 
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 36
Algoritmo e Estruturas de Dados -
02/2014
71
Algoritmo 
“FuncaoSemParm”
var 
// var globais 
n, m, resposta : inteiro
funcao soma: inteiro
var 
// var locais
aux: inteiro
inicio
aux <- n + m
retorne aux
fimfuncao 
Exemplo1: função sem parâmetro para soma de 2 números
Inicio
n <- 4
m <- 9
resposta <- soma
escreva(resposta)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
72
Algoritmo 
“FuncaoComParm”
var 
// var globais 
n, m, resposta : inteiro
funcao soma(x,y : inteiro): 
inteiro
inicio
retorne x+y
fimfuncao 
Exemplo 2: função com parâmetro (por valor) para soma de 2 
números
Inicio
n <- 4
m <- 9
resposta <- soma (m,n)
escreva(resposta)
fimalgoritmo
Passagem de 
parâmetro por valor.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 37
Algoritmo e Estruturas de Dados -
02/2014
73
Recursão
� recursão é a possibilidade de um programa chamar a si mesmo
�Exemplo: o fatorial de um numero N = N * ( N-1) * (N-2)* ... * 2 * 1
Algoritmo “Recursao”
var 
fat, n: inteiro
funcao fatorial (x: inteiro): 
inteiro
inicio
se x <= 2 entao
retorne x
senao
retorne x * fatorial(x-1)
fimse
fimfuncao
inicio
leia (n)
fat <- fatorial(n)
fimalgoritmo
Algoritmo e Estruturas de Dados -
02/2014
74
Exercícios
1. Leia dois números inteiros, calcule a sua média usando um 
procedimento e a imprima.
2. Faça o exercício acima usando uma função.
3. Leia dois números inteiros e usando uma função diga qual o maior 
deles.
4. Faça o exercício acima para 3 números, retornando o maior deles.
5. Escreva um procedimento que troque o valor de dois números.
6. Dado um numero de 3 algarismos, faça uma rotina(procedimento ou 
função) que decomponha este numero nos seus digitos. Exemplo: 
número 145 decomposto nos números 1 (centenas), 4 (dezenas) e 5 
(unidades).
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 38
Algoritmo e Estruturas de Dados -
02/2014
75
Exercícios
7. Dado um numero de 3 algarismos, faça uma rotina(procedimento ou 
função) que decomponha este numero nos seus digitos. Exemplo: 
número 145 decomposto nos números 1 (centenas), 4 (dezenas) e 5 
(unidades).
8. O digito verificador de um numero de 3 algarismos é calculado da 
seguinte forma:
DV = (D1*4 + D2*3 + D3*2) mod 10
onde D1 é o primeiro digito do número, D2 seu segundo digito e D3 
seu terceiro digito. Faça um programa que leia uma serie de números 
de no máximo 3 algarismos (parar ao ler zero) e escreva seu DV 
calculado por uma rotina (função ou procedimento).
Algoritmo e Estruturas de Dados -
02/2014
76
Glossário de termos
•Blocode comandos : conjunto de comandos com uma função bem 
definida.
• Comandos : ações, instruções de uma linguagem.
• Função : sub–algoritmo que retorna um valor ou uma informação.
• Identificadores : nomes dados a variáveis, constantes e programas. 
Devem começar por letra e podem ter letras, números ou underscore. 
Não podem ser palavras reservadas ou ter espaços em branco.
• Linguagens de programação : softwares que permitem o 
desenvolvimento de programas. Possuem poder de criação ilimitado 
desde sistemas empresariais até sistemas operacionais.
• Palavra reservada: nomes de comandos da linguagem.
• Procedure: sub-algoritmo que não retorna valor ou informação.
• Programa : é um algoritmo escrito em uma linguagem computacional.
• Variável : nome de um local de memória onde se armazena um 
determinado valor compatível como tipo da variável. 
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 39
Algoritmo e Estruturas de Dados -
02/2014
77
VisuAlg
VisuAlg X Pascal
Algoritmo e Estruturas de Dados -
02/2014
78
VisuAlg X Pascal
algoritmo "semnome"
// comentário
var
<declaração de 
variáveis> 
inicio
< comandos > 
fimalgoritmo
CORPO DO PROGRAMA
Program nomePrograma ;
// comentario
var
<declaração de variáveis>
Begin
< comandos >
End.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 40
Algoritmo e Estruturas de Dados -
02/2014
79
VisuAlg X Pascal
<identificadores> : tipo
VisuAlg Pascal
caráter alfanuméricochar
Conj. caracteres alfanuméricosString[]
real positivo, nulo ou negativoreal
inteiro positivo, nulo ou negativointeger
valores true ou falseboolean
<identificador> ���� <expressão>
leia (<identificadores>)
escreva (<expressão>)
escreval (<expressão>)
<identificador> = <expressão>;
readln (<identificadores>);
write (<expressão>);
writeln (<expressão>);
<identificadores> : tipo
valores verdadeiro ou falsológico
Conj. caracteres alfanuméricoscaracter
real positivo, nulo ou negativoreal
inteiro positivo, nulo o negativointeiro
Algoritmo e Estruturas de Dados -
02/2014
80
VisuAlg X Pascal
se <condição> então
<comandos>
senão
<comandos> 
fimse
escolha <expressa-de-selecao>
caso <condição11 > ...
<comandos1> 
caso <condição21...
<comandos2> 
outrocaso
<comandos> 
fimescolha
VisuAlg Pascal
if <condição> then
<comandos>
else
<comandos> ;
case <variavel> of
valor1 : <comandos1> ;
valor2 : <comandos2> ;
end;
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 41
Algoritmo e Estruturas de Dados -
02/2014
81
VisuAlg X Pascal
enquanto <condição> faca 
<comandos> 
fim enquanto
para v de <inicio> ate <fim> passo p faça 
<comandos> 
fimpara
repita 
<comandos> 
ate <condicao>
VisuAlg Pascal
while <condição> do 
<comandos> ; 
for v := <inicio> to <fim> do 
<comandos> ; 
repeat 
<comandos> 
until <condicao> ;
Algoritmo e Estruturas de Dados -
02/2014
82
VisuAlg X Pascal
procedimento <nome> [ <param>] 
// Seção de declaração de variáveis locais
inicio
// Seção de Comandos
fimprocedimento
funcao <nome> [ <param>] : tipo 
// Seção de declaração de variáveis locais
inicio
// Seção de Comandos
fimprocedimento
VisuAlg Pascal
procedure <nome> [ <param>] ;
// Seção de declaração de variáveis locais
Begin
// Seção de Comandos
End ;
function <nome> [ <param>] : tipo 
// Seção de declaração de variáveis locais
Begin
// Seção de Comandos
End ;
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 42
Algoritmo e Estruturas de Dados -
02/2014
83
Exercícios
1) A conversão de graus Farenheit para graus Centigrados é obtida pela 
fórmula:
C = 5 (F – 32)
9
Faça um algoritmo que leia uma temperatura em graus Farenheit e 
informe seu equivalente em graus Centigrados.
2) O ganhador da Megasena recebeu de prêmio R$10.000.000,00 (dez 
milhões de reais) e o depositou numa caderneta de poupança. 
Após um mês, seu dinheiro irá render 0,5% de juros mais 0,2% de TR.
Calcule qual o novo valor de sua poupança após o primeiro mês de 
rendimento.
Algoritmo e Estruturas de Dados -
02/2014
84
Exercícios
3) Uma firma fez uma pesquisa de mercado sobre a aceitação de um 
determinado produto e entrevistou 2.000 (duas mil) pessoas.
Faça um algoritmo que, fornecido o sexo da pessoa e sua resposta (sim 
ou não), informe:
. quantidade de mulheres que respondeu sim.
. quantidade de mulheres que respondeu não.
. quantidade de homens que respondeu sim. 
. quantidade de homens que respondeu não.
4) Uma firma fez uma pesquisa de mercado sobre a audiência de canal 
de TV em várias casas de uma cidade. Para cada casa visitada, é 
fornecido o número de canal que é assistido: 4, 5, 7 ou 12.
Faça um algoritmo que leia um número indeterminado de canais de TV 
(parar ao ler o canal zero) e ao final informe:
. o número do canal e a quantidade de casas em que ele é assistido.
UniBH 09/09/2014
Algoritmo e Estruturas de Dados 43
Algoritmo e Estruturas de Dados -
02/2014
85
Exercícios
5) O aumento salarial em uma empresa será da seguinte forma:
1. Técnico– 10%
2. Gerente – 7,5%
3. Diretor – 5%
Leia o número do cargo de vários empregados (parar ao ler o cargo zero), o salário 
(deve ser maior que zero) e calcule o aumento a ser recebido.
Algoritmo e Estruturas de Dados -
02/2014
86
Exercício de revisão
Cálculo do salário líquido. 
1) O salário liquido de um empregado é calculado descontado-se de 
seu salário bruto o imposto de renda e a contribuição para o INSS 
da seguinte forma:
IR INSS
SALARIO % DESCONTO
< 1.200,00 0 %
> = 1.200,00 E <2.500,00 6 %
> =2.500,00 9 %
SALARIO % DESCONTO
< 1.500,00 7,50%
> = 1.500,00 E <3.500,00 12,50%
> =3.500,00 20,00%
Leia o salário bruto de vários empregados (parar ao ler o salário zero) e 
calcule seu salário liquido usando subprogramas (funções ou 
procedimentos) para calcular o desconto de IR e de INSS.

Outros materiais