Algoritmos e Programação - 2014.1 - Aula de Revisão - 1º Estágio

83
Algoritmos e Programação Prof.º Thyago Maia 2014.1

Transcript of Algoritmos e Programação - 2014.1 - Aula de Revisão - 1º Estágio

Algoritmos e Programação

Prof.º Thyago Maia2014.1

Objetivos

Revisão – 1º Estágio

• Revisar todo conteúdo abordado no primeiro estágio da disciplina;

2

Tópicos Abordados

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

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

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 em Portugol

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

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

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

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 em Portugol

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

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

ExemploFIM_ALGORITMO

53

Estruturas de Repetição

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

Estrutura de Repetição PARA

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

• Sintaxe:

58

PARA variavel <- val_inicial ATE val_final FACAINICIO

// Lista de instruçõesFIM

Exemplo

• Faça um algoritmo que escreva os números entre 1 e 5 (incluindo-os).

59

Exemplo

ALGORITMODECLARE i NUMERICO

PARA i <- 1 ATE 5 FACAINICIO

ESCREVA iFIM

FIM_ALGORITMO

60

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

• Faça um algoritmo que escreva os números pares entre 1 e 10.

62

Exemplo

ALGORITMODECLARE i NUMERICO

PARA i <- 2 ATE 10 PASSO 2 FACAINICIO

ESCREVA iFIM

FIM_ALGORITMO

63

Enquanto

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

Enquanto

• Forma geral:

66

ENQUANTO (condição) FACAINICIO

// Lista de instruções

FIM

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

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

• Faça um algoritmo que escreva os números entre 1 e 10.

72

Exemplo

ALGORITMODECLARE numero NUMERICO

numero <- 1REPITA

ESCREVA numeronumero <- numero + 1

ATE numero > 10FIM_ALGORITMO

73

Exercícios

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

Exercício

SE (idade >= 12) E (idade <= 18) ENTAOINICIO

quant <- quant + 1FIM

FIMESCREVA maiorESCREVA quant

FIM_ALGORITMO

83