Algoritmos e Programação

Propaganda
Universidade Federal do Vale do São Francisco
Curso de Engenharia da Produção / Elétrica
Algoritmos e Programação – Parte 02
Prof. Jorge Cavalcanti
[email protected]
www.univasf.edu.br/~jorge.cavalcanti
www.twitter.com/jorgecav
1
Algoritmos e Programação
Algoritmos em Pseudocódigo
Pseudocódigo Técnica textual de representação de um
algoritmo - Também conhecida como Português Estruturado
ou Portugol.
Nele os verbos (ações) disponíveis para utilização são
limitados e empregados no imperativo. Deve-se evitar as
expressões excessivamente longas, estas restrições visam
eliminar a possibilidade de ambiguidade.
Técnica é baseada em uma PDL (Program Design
Language), que é uma linguagem genérica na qual é
possível representar um algoritmo de forma semelhante à
das linguagens de programação.
A estrutura de um algoritmo em pseudocódigo pode variar
um pouco de acordo com o autor ou com base na linguagem
de programação que será utilizada posteriormente, mas
essas variações ocorrem apenas na sintaxe, pois a
semântica deve ser exatamente a mesma.
2
Algoritmos e Programação- Prof. Jorge Cavalcanti - Univasf
1
Algoritmos e Programação
Entrada de dados.
Sintaxe leia (<lista de variáveis>)
É necessária a declaração prévia das variáveis, na seção
var.
var n1: inteiro
k: caractere
Exemplos:
leia (n1) - O valor digitado será armazenado na variável n1.
leia (k) - Um ou vários caracteres digitados serão
armazenados na variável k (Definida como caractere).
No caso de utilizar leia (<lista de variáveis>), será
respeitada a ordem da lista de variáveis, da esquerda
para direita.
Exemplo: leia (n1, k, n2)
3
Algoritmos e Programação
Saída de dados.
Sintaxe escreva (<lista-de-variáveis>)
escreval (<lista-de-variáveis>)
Obs: escreval imprime a variável na tela e o cursor
vai para uma nova linha.
Exemplos:
escreva (n1) - Será mostrado na tela o
conteúdo da variável n1.
escreva (“O texto digitado foi ”, k) - Será
mostrado o texto entre “” e depois o conteúdo da
variável k.
4
2
Algoritmos e Programação
Saída de dados.
É possível especificar o número de colunas da tela
e/ou de casas decimais onde se deseja escrever
um determinado valor.
Exemplo: considerando uma variável inteira x, o
comando escreva (x:5) escreve o valor da variável
x em 5 colunas, alinhado-o à direita.
Exemplo: considerando y como uma variável real,
o comando escreva (y:6:2), escreve seu valor em
6 colunas colocando 2 casas decimais.
5
Algoritmos e Programação
Saída de dados.
Exemplo - Abaixo um pseudocódigo de um
algoritmo simples, que recebe um valor inteiro,
fornecido pelo usuário, e o retorna no monitor.
algoritmo “exemplo 1”
var x: inteiro
inicio
leia (x)
escreva (x)
fimalgoritmo
6
3
Algoritmos e Programação
Operador de Atribuição
símbolo <Exemplo:
var a: inteiro
valor1, valor2: real
...
a <- 5
valor1 <- 3.14
valor2 <- valor1
escreva(valor2)
Apenas valores pertencentes ao tipo da variável
podem lhe ser atribuídos.
O valor a ser atribuído pode ser o conteúdo de
uma variável, de uma constante, o resultado de
operações sobre variáveis/constantes ou um valor
diretamente.
7
Algoritmos e Programação
Operador de Atribuição
Exemplo:
Declarações
constante: MÁXIMO = 10
var quantidade, filhos, netos: inteiro
aberto: booleano
altura: real
resposta: caractere
Atribuições
altura <- 1.80
filhos <- 3
netos <- filhos * 2 – 3
quantidade <- MÁXIMO – 5
aberto <- F
aberto <- quantidade < MÁXIMO
resposta <- “S”
8
4
Algoritmos e Programação
Operadores e Hierarquia na operações:
9
Algoritmos e Programação
Operadores
e Hierarquia nas operações:
Exemplos:
3/4+5 = 5.75
3/(4+5) = 0.33333333
3\2*9 = 9
11%3^2 = 2
11%(3^2) = 2
(11%3)^2 = 4
3\2+(65-40)^(1/2) = 6
10
5
Algoritmos e Programação
Operadores e Hierarquia na operações:
Exemplos: 3>7 = FALSO
“A” = “a” = VERDADEIRO
“a” > “B” = FALSO
(3>=13\4) xou (nao (5%2=0)) = FALSO
11
Algoritmos e Programação
Blocos de instruções.
As instruções em uma linguagem de programação
sempre são executadas em sequência.
A utilização de blocos de instruções deixa claro onde a
sequência de instruções começa e termina.
Todo algoritmo tem pelo menos um bloco de
instruções, que indica o início e final do próprio
algoritmo.
Ex.:
<declaração de variáveis>
início
<primeira instrução do bloco>
<segunda instrução do bloco>
...
<última instrução do bloco>
fim
12
6
Algoritmos e Programação
Blocos de instruções.
Ex. Sabendo que a relação entre vértices, arestas e
faces de um objeto geométrico é dada pela fórmula:
vértices + faces = arestas + 2, calcule o número de
vértices de um cubo (06 faces e 12 arestas).
Ex. 01 - Algoritmo “Vértices de um cubo”
var vertices, faces, arestas: inteiro
inicio
faces <- 6
arestas <-12
vertices <- arestas + 2 – faces
fim
13
Algoritmos e Programação
Estrutura de um algoritmo:
algoritmo "soma de dois números” {NOME DO ALGORITMO}
// Função :
// Autor :
// Data : 10/8/2010
// Seção de Declarações
var
a,b,c:inteiro {DECLARAÇÃO DE VARIÁVEIS}
inicio
// Seção de Comandos "){INÍCIO DO ALGORITMO}
escreval("Digite dois números
leia (a)
leia (b)
c:= a + b
escreva ("A soma he:",c)
fimalgoritmo {FIM DO ALGORITMO}
14
7
Algoritmos e Programação
15
Algoritmos e Programação
Passos necessários para a construção de um
algoritmo:
Ler atentamente o enunciado do problema,
compreendendo-o e destacando os pontos mais
importantes;
Definir os dados de entrada, ou seja, quais dados
serão fornecidos;
Definir os dados de saída, ou seja, quais dados serão
gerados depois do processamento;
Definir o processamento, ou seja, quais cálculos serão
efetuados e quais as restrições para esses cálculos. O
processamento é responsável pela obtenção dos dados
de saída com base nos dados de entrada;
Definir as variáveis necessárias para armazenar as
entradas e efetuar do processamento;
Elaborar o algoritmo;
Testar o algoritmo realizando simulações.
16
8
Algoritmos e Programação
EXERCÍCIO (Adaptado do Ex. 01)
Ex. 02 - Sabendo que a relação entre vértices, arestas e
faces de um objeto geométrico é dada pela fórmula:
vértices + faces = arestas + 2, calcule o número de
vértices de um objeto genérico. A entrada será o número de
faces e arestas e a saída será o número de vértices.
Alg. 02 - Algoritmo “Vértices de um objeto genérico”
var vertices, faces, arestas: inteiro
inicio
escreva (“Entre com o número de faces do objeto: “)
leia (faces)
escreva (“Entre com o número de arestas do objeto: “)
leia (arestas)
vertices <- arestas + 2 – faces
escreva (“ O número de vértices do objeto é: “, vertices)
fim
17
Algoritmos e Programação
Ex. 03a - Construa um pseudocódigo para representar um
algoritmo que efetue a multiplicação de dois inteiros quaisquer.
algoritmo “exemplo 3a”
var n1, n2, res: inteiro
inicio
escreva (“Digite o multiplicando inteiro: ”)
leia (n1)
escreva (“Digite o multiplicador inteiro: ”)
leia (n2)
res<- n1 * n2
escreva (“Resultado da multiplicação: ”, res)
fimalgoritmo
18
9
Algoritmos e Programação
Ex. 03b - Construa um pseudocódigo para representar um
algoritmo que efetue a multiplicação de dois inteiros quaisquer.
algoritmo “exemplo 3b”
var n1, n2: inteiro
inicio
escreva (“Digite o multiplicando inteiro: ”)
leia (n1)
escreva (“Digite o multiplicador inteiro: ”)
leia (n2)
escreva (“Resultado da multiplicação: ”, n1*n2)
fimalgoritmo
19
Algoritmos e Programação
Ex. 03c - Construa um pseudocódigo para representar um
algoritmo que efetue a multiplicação de dois inteiros quaisquer.
algoritmo “exemplo 3c”
var n1, n2: inteiro
inicio
escreva ("Digite o multiplicando e em seguida ")
escreva (" o multiplicador (ambos inteiros): ")
leia (n1, n2)
escreva ("Resultado da multiplicação: ", n1*n2)
fimalgoritmo
20
10
Algoritmos e Programação
Ex. 4a - Gere um pseudocódigo que aplique um desconto de
30% sobre o valor de um produto, recebido como entrada, e
retorne o resultado da manipulação na saída padrão.
algoritmo “exercício 4a”
var valor, resultado: real
inicio
escreva (“Entre com o valor do produto: ”)
leia (valor)
resultado <- valor * 0.7
escreva (“Valor com desconto de 30%: ”)
escreva (resultado)
fimalgoritmo
21
Algoritmos e Programação
Ex. 4b - Gere um pseudocódigo que aplique um desconto de
30% sobre o valor de um produto, recebido como entrada, e
retorne o resultado da manipulação na saída padrão.
algoritmo “exercício 4b”
var valor: real
inicio
var valor: real
inicio
escreva (“Entre com o valor do produto: ”)
leia (valor)
valor <- valor * 0.7
escreva (“Valor com desconto de 30%: ”)
escreva (valor:6:2)
fimalgoritmo
22
11
Algoritmos e Programação
Ex. 4c - Gere um pseudocódigo que aplique um desconto de
30% sobre o valor de um produto, recebido como entrada, e
retorne o resultado da manipulação na saída padrão.
algoritmo “exercício 4c”
var valor: real
inicio
escreva (“Entre com o valor do produto: ”)
leia (valor)
escreva (“Valor com desconto de 30%: ”, valor * 0.7:6:2)
fimalgoritmo
23
Algoritmos e Programação
EXERCÍCIOS
1) Escreva um programa que receba dois números e
calcule a média deles.
2) Escreva um programa que receba três números e
depois peça o valor dos pesos e depois calcule a
média ponderada dos números.
3) Faça um programa que leia uma temperatura em
graus Celsius e calcule o correspondente em
Fahrenheit. Sabendo que: F=(180*(C+32))/100
24
12
Algoritmos e Programação
Estruturas de Controle de Fluxo
Os algoritmos desenvolvidos até o momento constituem
uma seqüência de ações que sempre são executadas em sua
totalidade indiferente do valor da entrada de dados.
Para a resolução de determinados problemas ou para a
execução de determinadas tarefas é necessária a realização
de um conjunto distinto de ações e este conjunto é definido
com base na análise da entrada de dados.
Um exemplo simples de uma destas situações é um
algoritmo capaz de efetuar o cálculo do imposto de renda
devido por um determinado contribuinte. Neste caso
dependendo da quantidade de dependentes, do valor de sua
renda e outras fatores o cálculo será feito de formas
distintas.
25
Algoritmos e Programação
Instrução Condicional
Estas instruções permitem que o programador especifique a
seqüência de instruções que será executada.
Considere um problema que exija uma decisão.
Tomemos como exemplo uma divisão, onde haja a
necessidade de que o algoritmo verifique se o divisor é igual
ou diferente de zero. Se for igual não é possível dividir. Se for
diferente é possível dividir.
Sintaxe:
se (<expressão-lógica>) então
<sequência de comandos>
senão
<seqüência de comandos>
fimse
26
13
Algoritmos e Programação
Exemplo: Instrução Condicional
algoritmo "divisão – instrução condicional“
// Seção de Declarações
var
n1, n2: inteiro
resultado: real
inicio
// Seção de Comandos
escreva ("Digite o dividendo:")
leia (n1)
escreva ("Digite o divisor:")
leia (n2)
se (n2=0) entao
escreva ("Impossível dividir por zero")
senao
resultado <- n1/n2
escreva ("O resultado eh:", resultado)
fimse
fimalgoritmo
27
Algoritmos e Programação
28
14
Algoritmos e Programação
Comando de Seleção Múltipla
Em algumas situações ao chegarmos a uma determinada
instrução de um algoritmo devemos selecionar um dentre
alguns trechos a seguir, tendo como base para esta escolha
um conjunto de valores.
Para lidar com casos deste tipo foi criado o comando de
seleção múltipla.
29
Algoritmos e Programação
Sintaxe: Comando de seleção múltipla
escolha (<variável>)
caso <valor11>, <valor12>, ..., <valor1n>
<seqüência-de-comandos-1>
caso <valor21>, <valor22>, ..., <valor2m>
<seqüência-de-comandos-2>
...
outrocaso
<seqüência-de-comandos-extra>
fimescolha
30
15
Algoritmos e Programação
Exemplo:
algoritmo "Times - seleção múltipla"
// Função :
// Autor :
// Data : 10/8/2010
// Seção de Declarações
var
time: caractere
inicio
// Seção de Comandos
escreval ("Digite um nome de time de
futebol:")
leia (time)
escolha (time)
caso "Sport", "Santa Cruz", "Nautico",
"Petrolina"
escreval ("É um time
Pernambucano")
caso "Vitória", "Bahia", "Camaçari",
"Juazeiro"
escreval ("É um time Baiano")
outrocaso
escreval ("É de outro Estado")
fimescolha
fimalgoritmo
31
Algoritmos e Programação
32
16
Algoritmos e Programação
1)
33
Algoritmos e Programação
2) Receba do usuário um número entre 1 e 7, inclusive 1 e 7.
Se ele digitar o número 1 mostre “Hoje é Domingo”, se ele
digitar o número 2 mostre “Hoje é Segunda”.......
3) Peça uma letra e mostre se ela é vogal ou consoante.
4) Peça três números e mostre o maior entre eles.
34
17
Download