Algoritmo 01 - Semana 01

Post on 09-Jul-2015

662 views 5 download

description

Slide de Introdução à Disciplina de Algoritmo 1 Nível Médio Integrado Instituto Federal de Mato Grosso do Sul - IFMS Ponta Porã - MS Professores Eder S. Villalba e Ricardo Lins do Nascimento

Transcript of Algoritmo 01 - Semana 01

Algoritmo 1

Semana 01INTRODUÇÃO – DEFINIÇÃO - CONCEITOS

1

Ementa

Desenvolver algoritmos por meio de divisão

modular e refinamentos sucessivos. Interpretar

pseudocódigos, algoritmos e outras

especificações para codificar programas. Avaliar resultados de testes dos programas

desenvolvidos. Integrar módulos desenvolvidos

separadamente.

2

Objetivos

Geral

Capacitar o aluno para o desenvolvimento de soluções de problemas usando técnicas estruturadas de programação, algoritmos e estruturas estáticas de dados.

Específicos

Utilizar modelos, pseudocódigos e ferramentas na representação da solução de problemas.

Redigir instruções de uso dos programas implementados.

Utilizar tipos de dados básicos e operadores aritméticos, lógicos e relacionais.

Utilizar instruções de seleção para escolher entre ações alternativas.

Utilizar estruturas de repetição para executar instruções em um programa repetidamente. Implementar subalgoritmos.

3

Avaliação

Provas Bimestrais – Peso 8

Trabalhos Bimestrais – Peso 2

4

Conteúdo ProgramáticoCONTEÚDO PROPOSTO POR AVALIAÇÃO

5

Conteúdo Programático

P1 Introdução

Conceito

Tipos de algoritmos

Descrição geral dos algoritmos

LÓGICA DE PROGRAMAÇÃO

Formas de representação gráfica

Princípios de resolução de problemas

Tipos de variáveis

Uso de Constantes

Fórmulas matemáticas

Instruções básicas

TOMADAS DE DECISÃO

Desvio condicional simples

Desvio condicional composto

Desvio condicional encadeados

6

Conteúdo Programático

P2

LAÇOS DE REPETIÇÃO

Looping com teste lógico no início

Looping com teste lógico no fim

Looping com variável de controle

7

Conteúdo Programático

P3

MATRIZES

Matrizes de uma dimensão ou vetores

Matrizes com mais de uma dimensão

8

Conteúdo Programático

P4

Modularização de programas

Procedimentos e funções

Passagem de parâmetros

9

AlgoritmoDEFINIÇÕES

10

Algoritmo

Um algoritmo é uma

sequência de instruções

finita e ordenada de

forma lógica para a

resolução de uma

determinada tarefa ou

problema.

São exemplos de

algoritmos instruções de

montagem, receitas,

manuais de uso, etc.

11

Algoritmo

Um algoritmo não é a solução do problema, pois,

se assim fosse, cada problema teria um único

algoritmo;

Um algoritmo é um caminho para a solução de

um problema.

Em geral, existem muitos (senão infinitos)

caminhos que levam a uma solução satisfatória.

12

Exemplo 1 13

Exemplo 2

Algoritmo para fritar um ovo

1. Colocar um ovo na frigideira

2. Esperar o ovo ficar frito

3. Remover o ovo da frigideira

14

Exemplo 3

Algoritmo para fritar um ovo

1. Retirar um ovo da geladeira

2. Colocar a frigideira no fogo

3. Colocar óleo

4. Esperar até o óleo ficar quente

5. Quebrar o ovo separando a casca

6. Colocar o conteúdo do ovo na frigideira

7. Esperar um minuto

8. Retirar o ovo da frigideira

9. Apagar o fogo

15

Exemplo 4

Algoritmo Lavar a cabeça

1 – Início

2 – Molhe o cabelo

3 – Coloque Shampoo

4 – Faça Massagem

5 – Enxágüe

6 – Repita o Processo

7 – Fim

16

Exemplo 4

Algoritmo Lavar a cabeça

1 – Início

2 – Molhe o cabelo

3 – Coloque Shampoo

4 – Faça Massagem

5 – Enxágue

6 – Repita o Processo

7 – Fim

1) É a descrição de um procedimento rotineiro; 2) Tem um INÍCIO e um FIM claros; 3) A descrição é feita passo a passo, de maneira bem definida; 4) Há imperfeições: 4.1) Não especifica a quantidade de shampoo;

4.2) Não especifica quantas vezes o processo deve ser repetido; 4.3) Não especifica qual o processo ou qual passo que deve ser repetido.

17

Exemplo 4

Algoritmo Lavar a cabeça

1 – Início

2 – Molhe o Cabelo

3 – Repita 2 (duas) vezes: 3.1 – Coloque a quantidade correspondente

a uma tampa de shampoo

3.2 – Faça massagem durante 1 minuto

3.3 – Enxágüe

4 – Fim

18

Qualidades de um bom Algoritmo

Definição Perfeita

Deve descrever exatamente quais são as instruções que

devem ser executadas e em que seqüência. Deve ser

tornado explícito o maior número possível de

informações, pois a falta de alguma informação pode

levar a uma interpretação errada do algoritmo;

Ausência de Ambigüidade

Não deve deixar dúvidas sobre o que deve ser feito. A

ambigüidade acerca do que deve ser feito também pode

levar a uma interpretação errada do algoritmo;

19

Qualidades de um bom Algoritmo

Eficácia

Conseguir resolver o problema em qualquer situação.

Todas as situações de exceção que possam alterar o

comportamento do algoritmo devem ser especificadas e

tratadas;

Eficiência

Resolver o problema com o mínimo de recursos.

Sempre se deve buscar aquele algoritmo que, dentre os

diversos algoritmos que resolvam um mesmo problema,

utilize a menor quantidade de recursos.

20

Estratégias na Construção

de Algoritmos

Especifique o problema claramente e entenda-o

completamente;

Explicite todos os detalhes supérfluos;

Entre no problema (envolva-se totalmente com o

problema);

Use todas as informações disponíveis;

Decomponha o problema (Top-Down);

Use o sentido inverso, se necessário (Bottom-Up).

21

Como Construir

Algoritmos

Problema

Análise Preliminar

Solução

Teste de Qualidade Alteração

Produto Final

22

Como Construir

Algoritmos Análise Preliminar

Entenda o problema com a maior precisão possível, identifique os dados; identifique os resultados desejados.

Solução

Desenvolva um algoritmo para resolver o problema.

Teste de Qualidade

Execute o algoritmo desenvolvido com dados para os quais o resultado seja conhecido. O ideal é que o universo dos dados tenha todas as combinações possíveis. Note que a qualidade de um algoritmo pode ser limitada por fatores como tempo para a sua confecção e recursos disponíveis.

Alteração

Se o resultado do teste de qualidade não for satisfatório, altere o algoritmo e submeta-o a um novo teste de qualidade.

Produto Final

O algoritmo concluído e testado, pronto para ser aplicado.

23

Portugol

A Linguagem Estruturada é a forma que tem sido

mais utilizada para a elaboração de algoritmos.

É a forma que mais se assemelha com a forma

em que os programas são escritos nas linguagens

de programação.

24

Operadores Aritméticos

Operação Operador Exemplo

Soma + 1+1=2

Subtração - 1-1=0

Multiplicação * 2*2=4

Divisão Real / 7/2=3.5

Divisão de Inteiros \ 7\2=3

Resto da Divisão

Inteira

% 7%2=1

Potenciação ^ 22 = 2^2.

25

Operadores Relacionais

Operador Simbolo

Menor <

Menor ou Igual <=

Maior >

Maior ou Igual >=

Diferente <>

Igual =

Os operadores relacionais retornam valores lógicos

(Verdadeiro ou Falso)

26

Operadores Lógicos

Operador Simbolo Significado

Multiplicação

lógica

E Resulta VERDADEIRO se ambas

as partes forem verdadeiras.

Adição lógica OU Resulta VERDADEIRO se uma

das partes é verdadeira.

Negação NÃO Nega uma afirmação,

invertendo o seu valor lógico:

se for

VERDADEIRO torna-se FALSO, se

for FALSO torna-se

VERDADEIRO.

27

Operadores Lógicos –

Tabela Verdade

28

Exemplo – Operadores

Relacionais

2+5>4 resulta VERDADEIRO

3<>3 resulta FALSO

29

Operadores Lógicos –

Exemplo

(2+5>4) e (3<>3) resulta FALSO,

pois VERDADEIRO e FALSO resulta FALSO.

30

Prioridades de OperadoresOperador Aritmético Prioridade

Exponenciação 3

Multiplicação 2

Divisão 2

Adição 1

Subtração 1

Operador Lógico Prioridade

E 3

OU 2

NÃO 1

Operador Prioridade

Aritméticos 3

Relacionais 2

Lógicos 1

(2 + 2)/2 resulta 2

2 + 2/2 resulta 3

31

Tabelas de Prioridade –

Operadores Lógicos

(2>3) ou (3<2) e (2<3) //resultado seria Falso

(2>3) e (3<2) ou (2<3) //resultado seria Verdadeiro

32

Prioridade entre

categorias de operadores

Atenção:

O software VisuAlg não possui relacionamento de categorias.

2*5>3 ou 5+1<2 e 2<7-2 // resulta em erro.

(2*5>3) ou (5+1<2) e (2<7-2) // certo seria assim.

33

Linearização de

Expressões

Para a construção de algoritmos que realizam

cálculo matemáticos, todas as expressões

aritméticas devem ser linearizadas, ou seja,

colocadas em linhas, devendo também ser feito o mapeamento dos operadores da aritmética

tradicional para os do Português Estruturado.

34

Variáveis

Variável

Conteúdo

NomeTipo

35

Regras no nome das

variáveis

1. nomes de variáveis não podem ser iguais a palavras reservadas;

2. nomes de variáveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser letras, números e sublinhado);

3. nomes de variáveis devem ter no máximo 127 caracteres;

4. Nomes de variáveis não podem conter espaços em branco;

5. na sintaxe do Português Estruturado, não há diferença entre letras maiúsculas de minúsculas (NOME é o mesmo que noMe).

36

Tipos de Dados

Tipos

Literal Lógico

Numéricos

37