noções de algoritmos - aula 1 tipos de algoritmos um algoritmo é representado de 3 formas: 1...

26
ufpellogo Noções de algoritmos - Aula 1 Alexandre Diehl Departamento de Física – UFPel Alexandre Diehl SCEF

Upload: phamhanh

Post on 10-Dec-2018

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Noções de algoritmos - Aula 1

Alexandre Diehl

Departamento de Física – UFPel

Alexandre Diehl SCEF

Page 2: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Definição de algoritmo

→ Sequência ordenada e finita de operações para a realizaçãode uma tarefa.

Tarefa: Experimento de Física I.

Passo 1: Reunir os equipamentos necessáriosPasso 2: Montar o aparato experimental.Passo 3: Realizar o experimento.Passo 4: Fazer o relatório do experimento.Passo 5: Entregar o relatório para o professor.

Alexandre Diehl SCEF

Page 3: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Definição de algoritmo

→ Sequência ordenada e finita de instruções ou operações paraa solução de um problema computacional.

Tarefa: Calcular a média das idades dos alunos da turma.

Passo 1: Ler as idades de cada aluno.Passo 2: Calcular a média das idades.Passo 3: Apresentar o resultado numérico para a média.

Alexandre Diehl SCEF

Page 4: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Tipos de algoritmos

Um algoritmo é representado de 3 formas:

1 Descrição narrativa: dois exemplos anteriores...2 Pseudocódigo: forma escrita codificada

algoritmodeclare N1, N2, N3, M numericoleia N1leia N2leia N3M ← (N1+N2+N3)/3escreva "A idade média é:", Mfim_algoritmo

3 Fluxograma: forma gráfica codificada

Alexandre Diehl SCEF

Page 5: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Tipos de algoritmos

Fluxograma ou Diagrama de Blocos:

→ forma padronizada e gráfica de representaçãodos passos do algoritmo.

Alexandre Diehl SCEF

Page 6: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Tipos de algoritmos

Fluxograma ou Diagrama de Blocos:

→ forma padronizada e gráfica de representaçãodos passos do algoritmo.

Alexandre Diehl SCEF

Page 7: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Notação para o pseudocódigo

Num programa de computador temos 2 estruturas básicas:

1 Variáveis e Constantes: espaços reservados na memória docomputador para armazenar elementos de um certoconjunto ou tipo de dados.

Variáveis: durante a execução do programa, o conteúdo davariável pode mudar;Constantes: o valor de uma constante não muda durante aexecução do programa.

2 Expressões: durante a execução, combinam os valoresarmazenados nas variáveis e constantes para calcularnovos valores.

Alexandre Diehl SCEF

Page 8: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Notação para o pseudocódigo

Tipos de dados armazenados nas variáveis e constantes

numerico:→ inteiro: . . . ,−4,−3,−2,−1, 0, 1, 2, 3, 4, . . .→ real: . . . , −192.291, . . . , 192.291, . . .

literal:→ caractere: definido por um caractere “a”, “b”, etc.→ string: junção de caracteres, “bola”, “oi”, etc.

logico: informação só pode ser verdadeiro ou falso.

Alexandre Diehl SCEF

Page 9: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Notação para o pseudocódigo

Características dos nomes válidos para variáveis e constantes

Podem ser usados números, letras minúsculas emaiúsculas e o caractere underscore (_).Deve começar por uma letra, maiúscula ou minúscula, oupelo caractere underscore (_).Não podem ser usados símbolos como $, #, !, ?, &, +, −.Não podem ser usados espaços em branco.Não podem ser usadas palavras reservadas da linguagemusada: algoritmo, leia, etc.

Regra de ouro: Use nomes que façam algum sentido!

Alexandre Diehl SCEF

Page 10: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo

Formato de um pseudocódigo

Portugol Online (https://vinyanalista.github.io/portugol/):

Ambiente de desenvolvimento integrado que suporta a linguagem Portugol, inspirada

no livro Fundamentos da Programação de Computadores (Ascencio & Campos)

algoritmobloco de declaraçõesbloco de comandos

fim_algoritmo

Uma declaração por linha para cada tipo de dado usado.

Dados de mesmo tipo são separados por vírgula.

Dados de tipos distintos devem ser declarados em linhas diferentes.

Alexandre Diehl SCEF

Page 11: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: declaração

Declaração de variávei e constantes:

declare var1, var2, ... tipo de dado

algoritmodeclare i, j, k numerico

nome literaloverlap logico

fim_algoritmo

Apenas uma instrução tipo declare deve ser usada.

A declaração de uma variável ou constante não implica na atribuição dequalquer valor para o dado a ser armazenado.

A declaração de variáveis e constantes não é representada num fluxograma.

Alexandre Diehl SCEF

Page 12: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores

Meios pelos quais se realizam operações sobre as variáveis econstantes, tais como atribuição de valores, incremento,decremento, multiplicação, comparação, etc.

1 Operadores de atribuição.2 Operadores aritméticos.3 Operadores relacionais.4 Operadores lógicos.

Alexandre Diehl SCEF

Page 13: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores de atribuição: usados para atribuir valores ouoperações às variáveis ou constantes.

Pseudocódigo

x ← 10

x ← x + 1

a ← “aula”

overlap ← falso

Fluxograma

Alexandre Diehl SCEF

Page 14: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores aritméticos: utilizados para operações com valoresnuméricos entre variáveis e constantes.

Básicos

Operador Símbolo ExemploSoma + a← b+cSubtração − a← b-cProduto ∗ a← b*cDivisão / a← b/c

Ordem de prioridade

Menor + - * / Maior

Alexandre Diehl SCEF

Page 15: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores aritméticos: utilizados para operações com valoresnuméricos entre variáveis e constantes.

Pré-definidos

Alexandre Diehl SCEF

Page 16: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores relacionais: usados na comparação entre valores ouexpressões, retornando como resultado um valor lógico.

Operador Símbolo ExemploIgual a = a = bMaior que > a > bMenor que < a < bMaior ou igual a >= a >= bMenor ou igual a <= a <= bDiferente de <> a <> b

Alexandre Diehl SCEF

Page 17: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: comandos

Operadores lógicos: relacionam entre si valores ou expressõeslógicas, resultando em valores lógicos.

Operador Símbolo EspecificaçãoUma expressão E só é verdadeira se

Conjunção e todos os valores das variáveis ouexpressões forem verdadeiras.Uma expressão OU só é falsa se

Disjunção ou todos os valores das variáveis ouexpressões forem falsos.O operador NÃO inverte o valor da

Negação nao expressão ou variável, se verdadeirainverte para falsa e vice-versa.

Alexandre Diehl SCEF

Page 18: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: entrada e saída

Entrada e Saída de dados num algoritmo

Entrada: apenas um dado de entrada para cada comando. Não permitecomentários.

leia dado1leia dado2

Saída: dados de saída separados por vírgula; texto de comentário (dado literal)entre aspas.

escreva dado1escreva "valor = ",dado1escreva "valor 1 =",dado1, "valor 2 =",dado2

Alexandre Diehl SCEF

Page 19: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Algumas estruturas possíveis num algoritmo:

1 Estrutura sequencial2 Estrutura condicional3 Estrutura de repetição: PARA4 Estrutura de repetição: ENQUANTO5 Estrutura de repetição: REPITA

Alexandre Diehl SCEF

Page 20: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura sequencial

O programa não tem pontos de desvio ou retorno de fluxo.

PseudocódigoCálculo da média simples de 3 idades.

algoritmodeclare N1, N2, N3, M numericoleia N1leia N2leia N3M ← (N1+N2+N3)/3escreva "A idade média é:", Mfim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 21: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura condicional

O programa tem pontos de desvio de fluxo mas não de retorno.

PseudocódigoCálculo da média simples de 3idades, com duas possibilidades deresultado.

algoritmodeclare N1, N2, N3 numericoleia N1leia N2leia N3M ← (N1+N2+N3)/3se M >= 18entao escreva "M >= 18"senao escreva "M < 18"fim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 22: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura de repetição: PARA

O programa tem pontos de retorno de fluxo, com um número conhecido de repetições.

PseudocódigoSequência de inteiros de 1 até 100.

algoritmodeclare i numericopara i ← 1 ate 100 faca passo 1

escreva ifim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 23: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura de repetição: PARA

O programa tem pontos de retorno de fluxo, com um número conhecido de repetições.

Pseudocódigo

algoritmodeclare i numericopara i ← 1 ate 100 faca passo 1

iniciocomando 1comando 2comando n

fimfim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 24: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura de repetição: PARA

O programa tem pontos de retorno de fluxo, com um número conhecido de repetições.

PseudocódigoSoma dos primeiros 100 inteiros.

sum =100∑i=1

i

algoritmodeclare i, sum numericosum ← 0para i ← 1 ate 100 faca passo 1

sum ← sum + iescreva ”A soma vale”, sumfim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 25: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura de repetição: ENQUANTO

O programa tem pontos de retorno de fluxo, com o número de repetições limitado por

uma condição lógica de entrada.

Pseudocódigo

algoritmodeclare a, b numericoa ← 2b ← 7enquanto a < b faca

inicioa ← a + 2b ← b + 1escreva "a =",a,"b =",b

fimfim_algoritmo

Fluxograma

Alexandre Diehl SCEF

Page 26: Noções de algoritmos - Aula 1 Tipos de algoritmos Um algoritmo é representado de 3 formas: 1 Descrição narrativa: dois exemplos anteriores... 2 Pseudocódigo: forma escrita codificada

ufpellogo

Construção do algoritmo: estruturas

Estrutura de repetição: REPITA

O programa tem pontos de retorno de fluxo, com o número de repetições limitado por

uma condição lógica de saída.

Pseudocódigo

algoritmodeclare a, n numericoa ← 1b ← 8repita

a ← a + 2b ← b + 1escreva "a =",a,"b =",b

ate a > bfim_algoritmo

Fluxograma

Alexandre Diehl SCEF