You are on page 1of 80

Tpicos Abordados

Introduo aos algoritmos;


Estrutura Sequencial;
Estruturas Condicionais:
SE...ENTO...SENO
ESCOLHA...CASO

Estruturas de Repetio:
PARA
ENQUANTO
REPITA...AT
1

Introduo aos
Algoritmos

Introduo aos
Algoritmos

Sequncia finita de instrues,


ordenadas de forma lgica para a
resoluo de uma determinada
tarefa ou problema;
No envolve apenas aspectos
computacionais;
Exemplos
Uma receita de bolo;
Manual de instrues;
3

Introduo aos
Algoritmos

Algoritmo uma espcie de passo a


passo de aes (instrues);
Algoritmos retornam uma sada (ex.:
um ovo frito) a partir de uma ou
mais entradas (ex.: um ovo) atravs
de uma sequncia de passos;
Os passos so executados um aps o
outro (de forma sequencial);
4

Introduo aos
Algoritmos

Um algoritmo est correto quando


sua sequncia de instrues retorna
uma sada esperada;
Podem existir um ou mais algoritmos
que retornam uma sada esperada;

Mas podem existir algoritmos mais


eficientes que outros;
5

Por que criamos


algoritmos?

A linguagem natural no pode ser


interpretada por computadores;
Computadores so projetados para
executar tarefas bem definidas a partir de
instrues;
Para desenvolver software, utilizamos
linguagens de programao...

A linguagem algortmica similar a uma linguagem de


programao;

Logo, aprendendo a criar algoritmos,


estamos aptos a programar em qualquer
6
linguagem de programao;

Tipos de algoritmos

Tipos de algoritmos

Descrio
Narrativa;

SUBJETIVIDADE

Fluxograma;
Pseudocdigo,
Portugus
Estruturado ou
Portugol;

PRECISO

Tipos de algoritmos

Fluxograma

Descrevem o fluxo de
ao de um
determinado trabalho
lgico;
Usa smbolos
convencionais,
permitindo poucas
variaes;
Representados por
smbolos
geomtricos;

Tipos de algoritmos
Fluxograma Conjunto de Smbolos:
INCIO OU FIM DE
ALGORITMO

ENTRADA
DE DADOS

CLCULO OU
ATRIBUIO DE
VALOR

SADA DE
DADOS

FLUXO DE DADOS

DECIS
O
10

Tipos de algoritmos
Exerccio: Faa um algoritmo
(fluxograma) que calcula a mdia de
trs notas de um determinado aluno
e informa se o aluno est aprovado
ou reprovado.
O aluno estar aprovado se sua mdia
for maior ou igual a 7;
11

Tipos de algoritmos
Fluxograma Exerccio:
INCIO

N1, N2,
N3

MEDIA
>= 7
SIM

MEDIA = (N1 + N2 +
N3) / 3

APROVADO

NO
REPROVA
DO

FIM
12

Tipos de algoritmos

Portugus Estruturado (Portugol)

Linguagem mais restrita que o


portugus em linguagem natural;
Simplificao extrema do portugus;
Significados bem definidos para todos
os termos utilizados nas instrues;
Possui um conjunto de palavras e
regras especficas (sintaxe da
linguagem);
13

Tipos de algoritmos

Portugus Estruturado (Portugol)

Normalmente as implementaes so
feitas em papel, escritas a mo;

14

Estrutura Sequencial em
Portugol

Estrutura sequencial
Forma bsica de um algoritmo em
portugol:
ALGORITMO
VARIVEIS
DECLARE

TIPOS DE
DADOS

INSTRUES

FIM_ALGORITMO

16

Tipos de algoritmos
Exemplo: Faa um algoritmo que
calcula e apresenta a multiplicao
entre dois nmeros.

17

Tipos de algoritmos
ALGORITMO
DECLARE N1, N2, M NUMERICO
ESCREVA Digite dois nmeros
LEIA N1, N2
M <- N1 * N2
ESCREVA MULTIPLICAO = , M
FIM_AL
GORITMO
18

Variveis

Variveis
Trata-se de uma representao para
uma posio de memria;
Capaz de reter e representar um valor
ou expresso;

Tem a finalidade de armazenar dados


ou informaes de um programa por
um curto espao de tempo;
Tempo de execuo;
20

Variveis
Toda varivel associada a um tipo
de valor;
O tipo de uma varivel identifica o
tipo de valor que ela poder receber;
No Portugol, declaramos variveis
logo aps a palavra reservada
DECLARE.
21

Exemplo
ALGORITMO
DECLARE N1, N2, M NUMERICO
NOME LITERAL
ESCREVA Digite dois nmeros
LEIA N1, N2
M <- N1 * N2
ESCREVA MULTIPLICAO = , M
FIM_ALGORITMO
22

Tipos de dados

Tipos de dados
TIPO
Numricos

Literais ou
caracteres
Lgicos

DESCRIO
Representa valores inteiros e
reais
Ex.: 2, 5, -3, 100, -151, 5.6,
-3.45...
Representa texto entre aspas
duplas
Ex.: Sport Recife, B,
1234
Representa os valores lgicos
24
VERDADEIRO ou FALSO

Exemplo
ALGORITMO
DECLARE NOME, ENDERECO LITERAL
IDADE, PESO NUMERICO
EH_SOLTEIRO LOGICO
NOME <- Thyago
ENDERECO <- Rua Tal, 555
IDADE <- 29
EH_SOLTEIRO <- falso
FIM_ALGORITMO
25

Operador de atribuio

Operador de atribuio
Utilizado para inserir um valor ou o
resultado de uma expresso em uma
varivel;
Representado por uma seta apontando
para a esquerda (<-);
S podemos atribuir valores do mesmo
tipo da varivel;
27

Exemplo
ALGORITMO
DECLARE NOME, ENDERECO LITERAL
IDADE, NUM1, NUM2, SOMA
NUMERICO
EH_SOLTEIRO LOGICO
NOME <- Thyago
ENDERECO <- Rua Tal, 555
IDADE <- 29
SOMA <- NUM1 + NUM2
EH_SOLTEIRO <- falso
28
FIM_ALGORITMO

Comandos de entrada e
sada em Portugol

Comandos de entrada e
sada
Comando de entrada (leia)
Utilizado para ler um valor digitado
pelo usurio, armazenando o
referido valor em uma varivel
indicada no comando;

30

Comandos de entrada e
sada
Comando de sada (escreva)
Utilizado para escrever mensagens ou
valores de variveis na sada padro;

31

Exemplo
Faa um algoritmo que leia o nome e
a idade de um indivduo, exibindo-os
logo em seguida;

32

Exemplo
ALGORITMO
DECLARE NOME LITERAL
IDADE NUMERICO
ESCREVA Digite seu nome
LEIA NOME
ESCREVA Digite sua idade
LEIA IDADE
ESCREVA Seu nome , NOME
ESCREVA Sua idade: , IDADE
FIM_ALGORITMO
33

Estruturas Condicionais

Estruturas
Condicionais
Na vida real tomamos decises a todo
momento, baseadas em escolhas;
Em algoritmos, chamamos tais decises
de condies;
Associada a uma condio, existir uma
possvel alternativa;
Exemplo: Se o Sport no vencer o Santa Cruz
na prxima partida, seu tcnico ser demitido;
35

Estruturas
Condicionais
Para criarmos estruturas condicionais
simples em Portugol, utilizamos as
palavras reservadas SE e ENTAO;
Sintaxe:
SE condicao ENTAO
INICIO
// Instrues
FIM
36

Exemplo
Faa um algoritmo que leia a idade
de um indivduo e informe se o
mesmo atingiu a maioridade.

37

Exemplo
ALGORITMO
DECLARE idade NUMERICO
ESCREVA Digite sua idade:
LEIA idade
SE (idade >= 18) ENTAO
INICIO
ESCREVA Voc atingiu a
maioridade
FIM
FIM_ALGORITMO

38

Estruturas
Condicionais
Para criarmos estruturas condicionais
com duas opes de escolha em
Portugol, utilizamos as palavras
reservadas SE, ENTAO e SENAO;

39

Estruturas
Condicionais
Sintaxe:
SE (condicao) ENTAO
INICIO
// Instrues que
// a condio for
FIM
SENAO
INICIO
// Instrues que
// a condio for
FIM

sero executadas se
verdadeira

sero executadas se
falsa
40

Exemplo
Faa um algoritmo que leia a idade
de um indivduo e informe se o
mesmo atingiu a maioridade ou no.

41

Exemplo
ALGORITMO
DECLARE idade NUMERICO
ESCREVA Digite sua idade:
LEIA idade
SE (idade >= 18) ENTAO
INICIO
ESCREVA Voc atingiu a maioridade
FIM
SENAO
INICIO
ESCREVA Voc no atingiu a maioridade
FIM
FIM_ALGORITMO
42

Estruturas
Condicionais
Tambm podemos implementar estruturas
condicionais com mais de uma condio
(expresso);
Subexpresses podem formar uma nica
expresso a partir do uso dos operadores
lgicos E ou OU;
Para sabermos se determinada expresso
ser verdadeira ou falsa, deveremos
checar a sada lgica de cada 43

Exemplo
Uso do operador lgico OU:
Faa um algoritmo que l uma sigla de
um estado brasileiro (considere que o
usurio s ira digitar um dos seguintes
estados: PE, PB, SP ou RJ) e informa se o
estado digitado pertence ao Nordeste ou
ao Sudeste.

44

Exemplo
ALGORITMO
DECLARE sigla LITERAL
ESCREVA Digite uma sigla (PE, PB, RJ, SP):
LEIA sigla
SE (sigla = PE) OU (sigla = PB) ENTAO
INICIO
ESCREVA do Nordeste!
FIM
SE (sigla = RJ) OU (sigla = SP) ENTAO
INICIO
ESCREVA do Sudeste!
FIM
FIM_ALGORITMO
45

Comando de Seleo
Mltipla
Em algumas situaes, existem
situaes mutuamente exclusivas:
Se uma situao for executada, as
demais no sero;

Em casos desse tipo, um comando


de seleo mltipla mais indicado
do que o comando SE;

46

Comando de Seleo
Mltipla
Sintaxe:
ESCOLHA (VARIAVEL)
INCIO
CASO VALOR_1
// Instrues que sero executadas caso
// VARIAVEL seja igual a VALOR_1
CASO VALOR_2
// Instrues que sero executadas caso
// VARIAVEL seja igual a VALOR_2
OUTROCASO
// Instrues que sero executadas caso
// VARIAVEL NO seja igual a VALOR_1 e VALOR_2
FIM
47

Exemplo
Faa um algoritmo que l o sexo de
um indivduo (M ou F) e informa se o
mesmo homem ou mulher;

48

Exemplo
ALGORITMO
DECLARE sexo LITERAL
ESCREVA Digite seu sexo:
LEIA sexo
ESCOLHA (sexo)
INICIO
CASO M
ESCREVA um homem
CASO F
ESCREVA uma mulher
OUTROCASO
ESCREVA Caractere invlido!
FIM
49

Exemplo
FIM_ALGORITMO

50

Estruturas de Repetio

Estruturas de
Repetio
Uma estrutura de repetio utilizada
quando...
Um trecho do algoritmo (lista de instrues) ou
at mesmo o algoritmo inteiro precisa ser
repetido;

O nmero de repeties poder ser fixo ou


estar atrelado a uma condio;
Fixo, quando sabemos quantas vezes um
determinado trecho de cdigo ser executado;
Atrelado a uma condio, quando a repetio
de instrues depende de uma ao,
52 de um

Estrutura de Repetio
PARA

PARA
Nesta estrutura, uma varivel de controle
inicializada com um valor. Para cada
iterao, seu valor comparado com um
valor final;
A execuo da lista de instrues se
repetir at que a varivel de controle seja
maior que o valor final;
Para cada iterao, a varivel de controle
incrementada;
54

PARA
Sintaxe:
PARA variavel <- val_inicial ATE val_final FACA
INICIO
// Lista de instrues
FIM

55

Exemplo
Faa um algoritmo que escreva os
nmeros entre 1 e 5 (incluindo-os).

56

Exemplo
ALGORITMO
DECLARE i NUMERICO
PARA i <- 1 ATE 5 FACA
INICIO
ESCREVA i
FIM
FIM_ALGORITMO
57

PARA
Para alterarmos a forma de
contagem do lao (crescente ou
decrescente) e quanto a varivel de
controle ser incrementada ou
decrementada, utilizamos a palavra
reservada PASSO, seguida de um
PARA variavel <- val_inicial ATE val_final
valor;
PASSO valor_passo FACA
INICIO
// Lista de instrues

FIMForma geral:
58

Exemplo
Faa um algoritmo que escreva os
nmeros pares entre 1 e 10.

59

Exemplo
ALGORITMO
DECLARE i NUMERICO
PARA i <- 2 ATE 10 PASSO 2 FACA
INICIO
ESCREVA i
FIM
FIM_ALGORITMO
60

Enquanto

Enquanto
Nesta estrutura, uma expresso
lgica avaliada. Se a mesma for
verdadeira, uma lista de comandos
ser executada;
A execuo da lista se repetir at
que a avaliao da condio resulte
em FALSO;
62

Enquanto
Forma geral:
ENQUANTO (condio) FACA
INICIO
// Lista de instrues
FIM

63

Exemplo
Faa um algoritmo que l diversos
nmeros positivos e escreve o dobro
de cada um. Quando um nmero
negativo for digitado, o algoritmo
dever parar de ler nmeros.

64

Exemplo
ALGORITMO
DECLARE numero, dobro NUMERICO
ESCREVA Digite um nmero:
LEIA numero
ENQUANTO (numero >= 0) FACA
INICIO
dobro <- numero * 2
ESCREVA dobro
ESCREVA Digite um nmero:
LEIA numero
FIM
FIM_ALGORITMO
65

Repita...ate

Repita...ate
Nesta estrutura, todas as instrues
so executadas e uma expresso
lgica avaliada;
Sua lista de expresses se repetir
at que a avaliao da condio
resulte em VERDADEIRO;
Cada repetio da lista de instrues
contida na estrutura chamada de
iterao;
A estrutura Repita...at tambm
67

Repita...ate
Utilizamos as palavras reservadas
repita e ate para formar o lao de
repetio;
Forma geral:
REPITA
// Lista de instrues
ATE condio
68

Exemplo
Faa um algoritmo que escreva os
nmeros entre 1 e 10.

69

Exemplo
ALGORITMO
DECLARE numero NUMERICO
numero <- 1
REPITA
ESCREVA numero
numero <- numero + 1
ATE numero > 10
FIM_ALGORITMO
70

Exerccios

Exerccio
Faa um algoritmo que l o salrio
base de um funcionrio, calcula e
mostra o salrio a receber, sabendose que o funcionrio tem gratificao
de 5% sobre o salrio base e paga
imposto de 7% sobre este salrio.

72

Exerccio
ALGORITMO
DECLARE sal, sal_receber, grat, imp
NUMERICO
ESCREVA Digite seu salrio:
LEIA sal
grat <- sal * 5/100
imp <- sal * 7/100
sal_receber <- sal + grat - imp
FIM_ALGORITMO
73

Exerccio
Faa um algoritmo que l o cdigo
correspondente ao cargo de um
funcionrio, seu salrio atual e escreva o
cargo correspondente, o valor do aumento
e seu novo salrio.
CDIGO

CARGO

PERCENTUAL

ESCRITURRIO

50%

SECRETRIO

35%

CAIXA

20%

GERENTE

10%

DIRETOR

No tem
aumento
74

Exerccio
ALGORITMO
DECLARE codigo, salario, aumento, novo_salario
NUMERICO
ESCREVA Digite o cdigo do cargo:
LEIA codigo
ESCREVA Digite o salrio:
LEIA salario
ESCOLHA (codigo)
INICIO
CASO 1
ESCREVA Escriturrio
aumento <- salario * 50/100
75

Exerccio
CASO 2
ESCREVA Secretrio
aumento <- salario * 35/100
CASO 3
ESCREVA Caixa
aumento <- salario * 20/100
CASO 4
ESCREVA Gerente
aumento <- salario * 10/100
CASO 5
ESCREVA Diretor
aumento <- 0
76

Exerccio
OUTROCASO
ESCREVA Cdigo invlido
FIM
novo_salario <- salario + aumento
ESCREVA Valor do aumento:, aumento
ESCREVA O novo salrio :, novo_salario
FIM_ALGORITMO

77

Exerccio
Faa um algoritmo que l a idade de
10 pessoas, calcula e escreve:
A idade do mais velho;
A quantidade de pessoas com idade
entre 12 e 18 anos (incluindo-os);

78

Exerccio
ALGORITMO
DECLARE i, idade, maior, quant NUMERICO
PARA i <- 1 ATE 10 FACA
INICIO
ESCREVA Digite sua idade:
LEIA idade
SE (idade > maior) ENTAO
INICIO
maior <- idade
FIM
79

Exerccio
SE (idade >= 12) E (idade <= 18)
ENTAO
INICIO
quant <- quant + 1
FIM
FIM
ESCREVA maior
ESCREVA quant
FIM_ALGORITMO
80

You might also like