Algoritmos e Programação - 2014.1 - Aula de Revisão - 1º Estágio
-
Upload
thyago-maia -
Category
Education
-
view
1.173 -
download
1
Transcript of Algoritmos e Programação - 2014.1 - Aula de Revisão - 1º Estágio
Objetivos
Revisão – 1º Estágio
• Revisar todo conteúdo abordado no primeiro estágio da disciplina;
2
Tópicos Abordados
• Introdução aos algoritmos;• Estrutura Sequencial;• Estruturas Condicionais:– SE...ENTÃO...SENÃO– ESCOLHA...CASO
• Estruturas de Repetição:– PARA– ENQUANTO– REPITA...ATÉ
4
Introdução aos Algoritmos
Sequência finita de instruções, ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema;
Não envolve apenas aspectos computacionais;– Exemplos• Uma receita de bolo;•Manual de instruções;
6
Introdução aos Algoritmos
Algoritmo é uma espécie de passo a passo de ações (instruções);
Algoritmos retornam uma saída (ex.: um ovo frito) a partir de uma ou mais entradas (ex.: um ovo) através de uma sequência de passos;
Os passos são executados um após o outro (de forma sequencial);
7
Introdução aos Algoritmos
Um algoritmo está correto quando sua sequência de instruções retorna uma saída esperada;
Podem existir um ou mais algoritmos que retornam uma saída esperada; Mas podem existir algoritmos mais
eficientes que outros;
8
Por que criamos algoritmos?
A linguagem natural não pode ser interpretada por computadores;
Computadores são projetados para executar tarefas bem definidas a partir de instruções;
Para desenvolver software, utilizamos linguagens de programação...
A linguagem algorítmica é similar a uma linguagem de programação; Logo, aprendendo a criar algoritmos, estamos aptos
a programar em qualquer linguagem de programação;
9
Tipos de algoritmos
Descrição Narrativa;
Fluxograma;
Pseudocódigo, Português Estruturado ou Portugol;
11
SUBJETIVIDADE
PRECISÃO
Tipos de algoritmos
Fluxograma
Descrevem o fluxo de ação de um determinado trabalho lógico;
Usa símbolos convencionais, permitindo poucas variações;
Representados por símbolos geométricos;
12
Tipos de algoritmos
• Fluxograma – Conjunto de Símbolos:
13
INÍCIO OU FIM DE ALGORITMO
CÁLCULO OU ATRIBUIÇÃO DE VALOR
ENTRADA DE DADOS
SAÍDA DE DADOS
DECISÃOFLUXO DE DADOS
Tipos de algoritmos
• Exercício: Faça um algoritmo (fluxograma) que calcula a média de três notas de um determinado aluno e informa se o aluno está aprovado ou reprovado.
– O aluno estará aprovado se sua média for maior ou igual a 7;
14
Tipos de algoritmos
• Fluxograma – Exercício:
15
INÍCIO
MEDIA = (N1 + N2 + N3) / 3
N1, N2, N3
APROVADO
FIM
MEDIA >= 7
SIM NÃO
REPROVADO
Tipos de algoritmos
Português Estruturado (Portugol)
Linguagem mais restrita que o português em linguagem natural;
Simplificação extrema do português; Significados bem definidos para todos os termos
utilizados nas instruções; Possui um conjunto de palavras e regras
específicas (sintaxe da linguagem);
16
Tipos de algoritmos
Português Estruturado (Portugol)
Normalmente as implementações são feitas em papel, escritas a mão;
17
Estrutura sequencial
• Forma básica de um algoritmo em portugol:
ALGORITMODECLARE
FIM_ALGORITMO19
VARIÁVEIS
INSTRUÇÕES
TIPOS DE DADOS
Tipos de algoritmos
• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.
20
Tipos de algoritmos
ALGORITMODECLARE N1, N2, M NUMERICO
ESCREVA “Digite dois números”LEIA N1, N2M <- N1 * N2ESCREVA “MULTIPLICAÇÃO = ” , M
FIM_ALGORITMO
21
Variáveis
• Trata-se de uma representação para uma posição de memória;• Capaz de reter e representar um valor ou
expressão;
• Tem a finalidade de armazenar dados ou informações de um programa por um curto espaço de tempo;• Tempo de execução;
23
Variáveis
• Toda variável é associada a um tipo de valor;
• O tipo de uma variável identifica o tipo de valor que ela poderá receber;
• No Portugol, declaramos variáveis logo após a palavra reservada DECLARE.
24
Exemplo
ALGORITMODECLARE N1, N2, M NUMERICO
NOME LITERALESCREVA “Digite dois números”LEIA N1, N2M <- N1 * N2ESCREVA “MULTIPLICAÇÃO = ” , M
FIM_ALGORITMO25
Tipos de dados
27
TIPO DESCRIÇÃO
Numéricos Representa valores inteiros e reaisEx.: 2, 5, -3, 100, -151, 5.6, -3.45...
Literais ou caracteres
Representa texto entre aspas duplasEx.: “Sport Recife”, “B”, “1234”
Lógicos Representa os valores lógicos VERDADEIRO ou FALSO
Exemplo
ALGORITMODECLARE NOME, ENDERECO LITERAL
IDADE, PESO NUMERICOEH_SOLTEIRO LOGICO
NOME <- “Thyago”ENDERECO <- “Rua Tal, 555”IDADE <- 29EH_SOLTEIRO <- falso
FIM_ALGORITMO
28
Operador de atribuição
• Utilizado para inserir um valor ou o resultado de uma expressão em uma variável;
• Representado por uma seta apontando para a esquerda (<-);
• Só podemos atribuir valores do mesmo tipo da variável;
30
Exemplo
ALGORITMODECLARE NOME, ENDERECO LITERAL
IDADE, NUM1, NUM2, SOMA NUMERICO
EH_SOLTEIRO LOGICONOME <- “Thyago”ENDERECO <- “Rua Tal, 555”IDADE <- 29SOMA <- NUM1 + NUM2EH_SOLTEIRO <- falso
FIM_ALGORITMO 31
Comandos de entrada e saída
• Comando de entrada (leia)
• Utilizado para ler um valor digitado pelo usuário, armazenando o referido valor em uma variável indicada no comando;
33
Comandos de entrada e saída
• Comando de saída (escreva)
• Utilizado para escrever mensagens ou valores de variáveis na saída padrão;
34
Exemplo
• Faça um algoritmo que leia o nome e a idade de um indivíduo, exibindo-os logo em seguida;
35
Exemplo
ALGORITMODECLARE NOME LITERAL
IDADE NUMERICOESCREVA “Digite seu nome”LEIA NOMEESCREVA “Digite sua idade”LEIA IDADEESCREVA “Seu nome é ”, NOMEESCREVA “Sua idade: ”, IDADE
FIM_ALGORITMO36
Estruturas Condicionais
• Na vida real tomamos decisões a todo momento, baseadas em escolhas;
• Em algoritmos, chamamos tais decisões de condições;
• Associada a uma condição, existirá uma possível alternativa;• Exemplo: Se o Sport não vencer o Santa Cruz na próxima
partida, seu técnico será demitido;
38
Estruturas Condicionais
• Para criarmos estruturas condicionais simples em Portugol, utilizamos as palavras reservadas SE e ENTAO;
• Sintaxe:
39
SE condicao ENTAOINICIO
// Instruções
FIM
Exemplo
• Faça um algoritmo que leia a idade de um indivíduo e informe se o mesmo atingiu a maioridade.
40
Exemplo
ALGORITMODECLARE idade NUMERICO
ESCREVA “Digite sua idade:”LEIA idadeSE (idade >= 18) ENTAOINICIO
ESCREVA “Você atingiu a maioridade”FIM
FIM_ALGORITMO41
Estruturas Condicionais
• Para criarmos estruturas condicionais com duas opções de escolha em Portugol, utilizamos as palavras reservadas SE, ENTAO e SENAO;
42
Estruturas Condicionais
• Sintaxe:
43
SE (condicao) ENTAOINICIO
// Instruções que serão executadas se// a condição for verdadeira
FIMSENAOINICIO
// Instruções que serão executadas se// a condição for falsa
FIM
Exemplo
• Faça um algoritmo que leia a idade de um indivíduo e informe se o mesmo atingiu a maioridade ou não.
44
ExemploALGORITMODECLARE idade NUMERICO
ESCREVA “Digite sua idade:”LEIA idadeSE (idade >= 18) ENTAOINICIO
ESCREVA “Você atingiu a maioridade”FIMSENAOINICIO
ESCREVA “Você não atingiu a maioridade”FIM
FIM_ALGORITMO 45
Estruturas Condicionais
• Também podemos implementar estruturas condicionais com mais de uma condição (expressão);
• Subexpressões podem formar uma única expressão a partir do uso dos operadores lógicos E ou OU;
• Para sabermos se determinada expressão será verdadeira ou falsa, deveremos checar a saída lógica de cada subexpressão;
46
Exemplo
• Uso do operador lógico OU:
– Faça um algoritmo que lê uma sigla de um estado brasileiro (considere que o usuário só ira digitar um dos seguintes estados: PE, PB, SP ou RJ) e informa se o estado digitado pertence ao Nordeste ou ao Sudeste.
47
ExemploALGORITMODECLARE sigla LITERAL
ESCREVA “Digite uma sigla (PE, PB, RJ, SP):”LEIA siglaSE (sigla = “PE”) OU (sigla = “PB”) ENTAOINICIO
ESCREVA “É do Nordeste!”FIMSE (sigla = “RJ”) OU (sigla = “SP”) ENTAOINICIO
ESCREVA “É do Sudeste!”FIM
FIM_ALGORITMO 48
Comando de Seleção Múltipla
• Em algumas situações, existem situações mutuamente exclusivas:– Se uma situação for executada, as demais não
serão;• Em casos desse tipo, um comando de seleção
múltipla é mais indicado do que o comando SE;
49
Comando de Seleção Múltipla
• Sintaxe:
50
ESCOLHA (VARIAVEL)INÍCIO
CASO VALOR_1// Instruções que serão executadas caso// VARIAVEL seja igual a VALOR_1
CASO VALOR_2// Instruções que serão executadas caso// VARIAVEL seja igual a VALOR_2
OUTROCASO// Instruções que serão executadas caso// VARIAVEL NÃO seja igual a VALOR_1 e VALOR_2
FIM
Exemplo
• Faça um algoritmo que lê o sexo de um indivíduo (M ou F) e informa se o mesmo é homem ou mulher;
51
ExemploALGORITMODECLARE sexo LITERAL
ESCREVA “Digite seu sexo:”LEIA sexoESCOLHA (sexo)INICIO
CASO “M” ESCREVA “É um homem”
CASO “F” ESCREVA “É uma mulher”
OUTROCASO ESCREVA “Caractere inválido!”
FIM 52
Estruturas de Repetição
• Uma estrutura de repetição é utilizada quando...– Um trecho do algoritmo (lista de instruções) ou até mesmo
o algoritmo inteiro precisa ser repetido;
• O número de repetições poderá ser fixo ou estar atrelado a uma condição;– Fixo, quando sabemos quantas vezes um determinado
trecho de código será executado;– Atrelado a uma condição, quando a repetição de
instruções depende de uma ação, de um cálculo, etc.;
55
PARA
• Nesta estrutura, uma variável de controle é inicializada com um valor. Para cada iteração, seu valor é comparado com um valor final;
• A execução da lista de instruções se repetirá até que a variável de controle seja maior que o valor final;
• Para cada iteração, a variável de controle é incrementada;
57
PARA
• Para alterarmos a forma de contagem do laço (crescente ou decrescente) e quanto a variável de controle será incrementada ou decrementada, utilizamos a palavra reservada PASSO, seguida de um valor;
• Forma geral:
61
PARA variavel <- val_inicial ATE val_final PASSO valor_passo FACAINICIO
// Lista de instruçõesFIM
Exemplo
ALGORITMODECLARE i NUMERICO
PARA i <- 2 ATE 10 PASSO 2 FACAINICIO
ESCREVA iFIM
FIM_ALGORITMO
63
Enquanto
• Nesta estrutura, uma expressão lógica é avaliada. Se a mesma for verdadeira, uma lista de comandos será executada;
• A execução da lista se repetirá até que a avaliação da condição resulte em FALSO;
65
Exemplo
• Faça um algoritmo que lê diversos números positivos e escreve o dobro de cada um. Quando um número negativo for digitado, o algoritmo deverá parar de ler números.
67
ExemploALGORITMODECLARE numero, dobro NUMERICO
ESCREVA “Digite um número:”LEIA numeroENQUANTO (numero >= 0) FACAINICIO
dobro <- numero * 2 ESCREVA dobroESCREVA “Digite um número:”LEIA numero
FIMFIM_ALGORITMO
68
Repita...ate
• Nesta estrutura, todas as instruções são executadas e uma expressão lógica é avaliada;
• Sua lista de expressões se repetirá até que a avaliação da condição resulte em VERDADEIRO;
• Cada repetição da lista de instruções contida na estrutura é chamada de iteração;
• A estrutura Repita...até também é conhecida como laço de repetição;
70
Repita...ate
• Utilizamos as palavras reservadas repita e ate para formar o laço de repetição;
• Forma geral:
71
REPITA
// Lista de instruções
ATE condição
Exemplo
ALGORITMODECLARE numero NUMERICO
numero <- 1REPITA
ESCREVA numeronumero <- numero + 1
ATE numero > 10FIM_ALGORITMO
73
Exercício
• Faça um algoritmo que lê o salário base de um funcionário, calcula e mostra o salário a receber, sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e paga imposto de 7% sobre este salário.
75
Exercício
ALGORITMODECLARE sal, sal_receber, grat, imp NUMERICO
ESCREVA “Digite seu salário:”LEIA salgrat <- sal * 5/100imp <- sal * 7/100 sal_receber <- sal + grat - imp
FIM_ALGORITMO
76
Exercício
• Faça um algoritmo que lê o código correspondente ao cargo de um funcionário, seu salário atual e escreva o cargo correspondente, o valor do aumento e seu novo salário.
77
CÓDIGO CARGO PERCENTUAL
1 ESCRITURÁRIO 50%
2 SECRETÁRIO 35%
3 CAIXA 20%
4 GERENTE 10%
5 DIRETOR Não tem aumento
Exercício
ALGORITMODECLARE codigo, salario, aumento, novo_salario NUMERICO
ESCREVA “Digite o código do cargo:”LEIA codigoESCREVA “Digite o salário:”LEIA salarioESCOLHA (codigo)INICIO
CASO 1 ESCREVA “Escriturário” aumento <- salario * 50/100
78
ExercícioCASO 2
ESCREVA “Secretário” 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
79
ExercícioOUTROCASO
ESCREVA “Código inválido”FIMnovo_salario <- salario + aumentoESCREVA “Valor do aumento:”, aumentoESCREVA “O novo salário é:”, novo_salario
FIM_ALGORITMO
80
Exercício
• Faça 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);
81
Exercício
ALGORITMODECLARE i, idade, maior, quant NUMERICO
PARA i <- 1 ATE 10 FACAINICIO
ESCREVA “Digite sua idade:”LEIA idadeSE (idade > maior) ENTAOINICIO
maior <- idadeFIM
82