Algoritmos e Programação

Download Report

Transcript Algoritmos e Programação

Algoritmos e
Programação
Thyago Maia Tavares de Farias
Aula 10
Sumário

Revisão do conteúdo para o 1º estágio
Revisão

Algoritmos


Sequência de instruções finita;
Instruções ordenadas de forma lógica;


Objetivam a solução de uma tarefa ou problema;




Execução passo a passo;
Resultam saída(s) a partir de entrada(s) que podem ser inseridas pelo
usuário ou pelo próprio algoritmo;
Algoritmo correto = Saída(s) esperada(s);
Envolvem aspectos computacionais e não computacionais;
Podem existir mais de um algoritmo que atingem o mesmo
resultado (mesma saída);
Revisão

Porque criamos algoritmos?
Computadores não interpretam linguagem natural;
 Computadores são projetados para executar tarefas
(instruções) bem determinadas;
 Linguagem algorítmica é similar às linguagem de
programação;
 Aprendendo a criar algoritmos, estamos aptos a
programar em qualquer linguagem de programação;

Revisão

Representações de um
algoritmo:
SUBJETIVIDADE
Descrição narrativa;
 Fluxograma
 Pseudocódigo, Português
Estruturado ou Portugol;

PRECISÃO
Revisão

Linearização de expressões


Para contrução de algoritmos que realizam cálculos
matemáticos, TODAS expressões aritméticas devem ser
linearizadas;
Linearizadas = Colocadas em linha;
Linearização de expressões

Operadores aritméticos disponíveis para o
português estruturado:
Adição (+)
 Subtração (-)
 Multiplicação (*)
 Divisão (/)
 Divisão inteira (\)
 Exponenciação (^ ou Exp)
 Módulo, ou resto da divisão (%)

Linearização de expressões

Operadores relacionais disponíveis no Português
estruturado:
Maior (>)
 Menor (<)
 Maior ou igual (>=)
 Menor ou igual (<=)
 Igual (=)
 Diferente (<>)

Linearização de expressões

Operadores lógicos
Atuam em expressões, também resultando em
valores lógicos VERDADEIRO ou FALSO;
 Tipos de operadores:

E: Resulta verdadeiro se AMBAS AS PARTES forem
verdadeiras;
 OU: Resulta verdadeiro se UMA DAS PARTES é
verdadeira;
 NÃO: Nega uma afirmação. Se verdadeiro, torna-se falso;
Se falso, torna-se verdadeiro;

Revisão

Forma geral de um algoritmo
Algoritmo “forma”
Var
Inicio
// Lista de instruções
fimalgoritmo
Revisão

Variáveis
Posição de memória capaz de reter e representar um
valor ou expressão;
 Finalidade de armazenar dados ou informações;
 São associados a nomes (identificadores);
 Possuem os seguintes tipos:

Inteiro (Ex.: 2, 4, 456)
 Real ou numerico (Ex.: 2.3)
 Literal ou caractere (Ex.: “Revisão”)
 Logico (verdadeiro ou falso)

Exercício

Analise o algoritmo abaixo e informe o valor que cada variável
possui após sua execução:
Algoritmo “verifica_variavel”
Var a,b,c: inteiro
Inicio
a <- 45
b <- 30
c <- a - b
se (c > 10) entao
b <- b – a
senao
a <- b – a
fimse
fimalgoritmo
Revisão

Comandos escreva e escreval

Utilizados para escrever mensagens ou valores de
variáveis;
escreva escreve algo e mantém o cursor na mesma linha
 Escreval escreve algo e pula uma linha


Ex.:
escreva(“Minha primeira mensagem”)
 escreval(idade)

Comandos de entrada e saída

Comandos leia

Utilizado para ler um valor digitado pelo usuário;

Ex.:
leia(nome)
 leia(idade)
 Leia(altura)
 Leia(distancia)

Exercício

Faça um algoritmo que receba o valor do quilo
de um produto, a quantidade de quilos e calcule
o valor final a ser pago.
Revisão - Estrutura condicional

Para criarmos estruturas condicionais simples
em Português Estruturado, utilizamos as
palavras reservadas se, entao e fimse
se condicao entao
// lista de comandos caso a condição seja
// verdadeira
fimse
Estrutura condicional

Exemplo 2:
Algoritmo “exemplo_senha”
Var senha: literal
inicio
escreval(“Digite a senha”)
leia(senha)
Se (senha = “soueu123”) entao
escreval(“Acesso liberado!”)
Fimse
fimalgoritmo
Revisão - Estrutura condicional

Para criarmos estruturas condicionais com duas opções
de escolha, utilizamos as palavras reservadas se, entao,
senao e fimse
se condicao entao
// lista de comandos caso a condição seja
//VERDADEIRA
senao
// lista de comandos caso a condição seja FALSA
fimse
Estrutura condicional

Exemplo 3:
Algoritmo “exemplo_se_senao”
Var numero: inteiro
inicio
numero <- 4
Se (numero > 3) entao
escreva(“A variável é maior que 3”)
senao
escreva(“A variável é menor ou igual a 3”)
Fimse
fimalgoritmo
Exercício

Escreva um algoritmo que retorne o nome do
produto a partir do seu código. Considere os
seguintes códigos:
001 – Parafuso
002 – Porca
003 – prego
Revisão - Comando de seleção
múltipla

Para várias condições, podemos utilizar o
comando de seleção múltipla escolha;
escolha expressao
caso resultado_1
// Lista de instruções
caso resultado_2
// Lista de instruções
...
outrocaso
// Lista de instruções
fimescolha
Comando de seleção múltipla

Exemplo:
algoritmo “exemplo_caso”
var sexo: literal
inicio
escreval(“Digite seu sexo (M ou F)”)
leia(sexo)
escolha(sexo)
caso “M”
escreval(“O usuário é Homem”)
caso “F”
escreval(“O usuário é Mulher”)
fimescolha
fimalgoritmo
Exercício

Utilizando o comando escolha...caso, escreva um
algoritmo que retorne o nome do produto a
partir do seu código. Considere os seguintes
códigos:
001 – Parafuso
002 – Porca
003 – prego
Para qualquer outro código - Diversos
Revisão - Repita...ate

Utilizamos as palavras reservadas repita e ate
para formar o laço de repetição;

Forma geral:
repita
// Lista de instruções
ate expressão lógica
Revisão - Repita...ate

Exemplo - Algoritmo que escreve os números
de 1 a 10:
algoritmo “Mostra10”
var numero: inteiro
inicio
numero <- 1
repita
escreva(numero)
numero <- numero + 1 // contador
ate numero > 10
fimalgoritmo
Exercícios

Faça um algoritmo que escreva os números
pares entre 1 e 10.
Exercícios (Geral)

Escreva um algoritmo que lê um número inteiro
positivo e o mostre por extenso. Este número
deverá variar entre 1 e 10. Se o usuário
introduzir um número que não pertença a este
intervalo, mostre a frase “número inválido”.

Escreva um algoritmo que receba um número
inteiro e informe se o mesmo é negativo ou
positivo.
Exercícios (Geral)

Escreva um algoritmo que lê dois números
inteiros e escreva os mesmos em ordem
crescente e decrescente.

Escreva um algoritmo que leia um número e, se
ele for maior que 20, imprimir sua metade.

Escreva um algoritmo que leia dois números e
responda se a divisão entre eles é exata ou não.
Exercícios (Geral)

Faça um algoritmo que sempre lê e escreve
números inteiros pares. Quanto um número
ímpar for digitado, o algoritmo deverá parar de
receber e escrever valores.