73
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

  • Upload
    vudan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Programação de Computadores

Instituto de Computação UFFDepartamento de Ciência da Computação

Otton Teixeira da Silveira Filho

Page 2: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Conteúdo

● Alguns Conceitos sobre Linguagens

● Conceito de Algoritmo

● Pseudocódigo

● Tipos de Variáveis

● Operadores

● Estruturas de Controle

● Estruturas de Dados

● Subprogramação

Page 3: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Conteúdo

● Fluxograma e pseudocódigo

Elementos de um fluxograma

Pseudocódigo

“O Chinês“

Um exemplo: implementar a Fórmula de Baskara

Estruturas de repetição e exemplos simples

Page 4: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Fluxograma

É uma descrição esquemática de um processo que usa figuras geométricas padronizadas que representam elementos da computação necessária ao processo.

Abaixo temos alguns

Início

Fim

Dados Decisão

ProcessoConector fora

da página

Conector

Page 5: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Pseudocódigo

É a representação em linguagem natural de comandos computacionais

No nosso caso escreveremos o pseudocódigo com palavras em português

Page 6: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Pseudocódigo

É a representação em linguagem natural de comandos computacionais

No nosso caso escreveremos o pseudocódigo com palavras em português

● Os comandos do pseudocódigo serão introduzidos a medida quer forem necessários

Page 7: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Fazendo o “Chinês“

Fazer o Chinês é escrever os resultados de todos os passos de um determinado procedimento

-É uma forma tradicional de detectar erros de lógica de um programa

Page 8: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Fazendo o “Chinês“

Fazer o Chinês é escrever os resultados de todos os passos de um determinado procedimento

-É uma forma tradicional de detectar erros de lógica de um programa

● Obs: Existem ferramentas sofisticadas de depuração de códigos usadas em trabalhos mais complexos

Page 9: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo: Baskara

Seja o polinômio , onde . Determine as raízes reais deste polinômio usando a fórmula de Baskara:

● Começaremos a descrição do algoritmo de forma ingênua

a x2+b x+c a ,b , c∈ℜ

x=−b±√b2

−4 ac2a

Page 10: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 1 de Baskara

Início

Fim

a ,b , c

x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

Page 11: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

OBS!

● Os valores x1, x2, a, b, c são ditas variáveis as quais são atribuídos valores

Page 12: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

OBS!

● Os valores x1, x2, a, b, c são ditas variáveis as quais são atribuídos valores

● A seta que aparece na expressão

é chamado de operador de atribuição, ou seja, o valor calculado na direita da expressão é atribuído à variável x1.

Temos ainda outros operadores como +, -, *, /, √ e potenciação

x1← (−b+√b2−4∗a∗c ) /2∗a

Page 13: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

● + operador de soma

● - operador de subtração

● * operador de multiplicação

● / operador de divisão

● √ operador raiz quadrada

Há uma identificação com símbolos que usamos correntemente

Veremos mais operadores

Page 14: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Porque este fluxograma está errado?

Há vários erros mas começaremos por dois:

1 – Caso seja zero teremos uma indeterminação

2 – Caso for negativo não teremos resposta compatível com o especificado pelo problema

a

√b2−4 a c

Page 15: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Porque este fluxograma está errado?

Há vários erros mas começaremos por dois:

1 – Caso seja zero teremos uma indeterminação

2 – Caso for negativo não teremos resposta compatível com o especificado pelo problema

● Resolveremos um problema por vez

a

√b2−4 a c

Page 16: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Antes apresentemos a estrutura de decisão

Page 17: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Decisão

s n

● A decisão é avaliada se verdadeira

Caso for verdadeira (S) o processo1 é executado

Caso não for verdadeira (N) o processo2 é executado

Processo2decisãoProcesso1

Page 18: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Com esta apresentação poderemos dar continuidade à criação do fluxograma para a fórmula de Baskara

Page 19: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 2 de Baskara

n

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2

2

Page 20: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Repare que apresentamos outro tipo de operador: um operador condicional

≠ Operador diferente de

Podemos ter o análogo

= Operador igual a

Page 21: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Porque este fluxograma ainda está errado ao resolver o problema de número 1?

Page 22: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Porque este fluxograma ainda está errado ao resolver o problema de número 1?

– Caso seja zero teremos uma indeterminaçãob

Page 23: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 3 de Baskara

n

s n

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2

2

Se b ≠ 0

a=0, b=0. Não há raizes

Page 24: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Mas ainda há uma incorreção

– Caso a for nulo, como também b, então se c for nulo teremos uma identidade e temos que prever esta possibilidade

Vamos corrigir...

Page 25: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 3b de Baskara

n

s n n

s

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2

2

Se b ≠ 0

a=0, b=0. Não há raizes

Se c = 0

a, b, c nulos3

3

Page 26: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Vamos incluir a análise de

√b2−4 a c

Page 27: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Vamos incluir a análise de

Mas primeiro escrevamos um fragmento do fluxograma relativo a esta análise

√b2−4 a c

Page 28: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fragmento do fluxograma 4 de Baskara

n n

sFim

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se b2-4*a*c>=0

Não há raizesreais

Page 29: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 4 de Baskara

n n

s n

s

s

n n

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2 2

Se b ≠ 0

a=0, b=0. Não há raizes

Se b2-4*a*c>=0

Não há raizesreais

Se c = 0

a, b, c nulos

Page 30: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Repare que temos mais um operador condicional

● >= Operador maior ou igual que

Temos outros análogos a este

● > Operador maior que

● < Operador menor que

● <= Operador menor ou igual que

Page 31: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Vamos apresentar os pseudocódigos equivalentes a alguns estes fluxogramas

Page 32: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Programa Baskara1

Reais a, b, c, x1, x2

Leia a, b, c

Imprima x1, x2

Fim

Início

Fim

a ,b , c

x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

Page 33: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Repare que fizemos algo de diferente no pseudocódigo

Definimos que as variáveis usadas são de um tipo especial:

Real

Cada linguagem de programação tem seus tipos de variáveis e um tipo comum de se encontrar é um tipo que é uma forma limitada de representar os números reais no computador

Page 34: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Programa Baskara1 Início do programa

Reais a, b, c, x1, x2 Declaração de variáveis

Leia a, b, c Leitura de dados

Cálculo e atribuição de valor

Cálculo e atribuição de valor

Imprima x1, x2 Impressão dos resultados

Fim Fim do programa

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

Page 35: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Programa Baskara1b Início do programa

Reais a, b, c, x1, x2 Declaração de variáveis

a←3 Atribuição de valores

b←2

c←2

Cálculo e atribuição de valor

Cálculo e atribuição de valor

Imprima x1, x2 Impressão dos resultados

Fim Fim do programa

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

Page 36: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 3b de Baskara

n

s n n

s

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2

2

Se b ≠ 0

a=0, b=0. Não há raizes

Se c = 0

a, b, c nulos3

3

Page 37: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Programa Baskara3b

Reais a, b, c, x1, x2

Leia a, b, c

se a ≠ 0

Imprima x1, x2

senão

se b ≠ 0

senão

se c = 0

Imprima “a,b,c nulos”

senão

imprima “a,b nulos. Não há raizes”

fim se

fim se

fim se

Fim Baskara3b

x 1← (−b+√b2−4∗a∗c ) /2∗a

x 2← (−b−√b2−4∗a∗c ) /2∗a

x←−c /b

Page 38: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Observe o recurso gráfico que usamos para deixar claro o limite de ação de cada decisão.

. . .

se a ≠ 0

Imprima x1, x2

senão . . .

Chamamos este recurso de indentação.

x 2← (−b−√b2−4∗a∗c ) /2∗a

x 1← (−b+√b2−4∗a∗c ) /2∗a

Page 39: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Fluxograma 4 de Baskara

n n

s n

s

s

n n

s

Início

Fim

a ,b , c

duas raizes : x 1, x 2

x 1←(−b+√b2−4∗a∗c )/2∗a

x 2← (−b−√b2−4∗a∗c )/2∗a

1

1

Se a ≠ 0x←−c /b

a=0.Umaraiz : x

2 2

Se b ≠ 0

a=0, b=0. Não há raizes

Se b2-4*a*c>=0

Não há raizesreais

Se c = 0

a, b, c nulos

Page 40: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

BaskaraPrograma Baskara4

Reais a, b, c, x1, x2

Leia a, b, c

se a ≠ 0

se

Imprima x1, x2

senão

imprima ”não há raízes reais“

fim se

senão

se b ≠ 0

senão

se c = 0

imprima “a,b,c nulos”

senão

imprima “a,b nulos. Não há raizes”

fim se

fim se

fim se

Fim Baskara4

x1← (−b+√b2−4∗a∗c )/2∗a

x2← (−b−√b2−4∗a∗c )/2∗a

x←−c /b

√b2−4∗a∗c≥0

Page 41: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

A indetentação facilita o entendimento do pseudocódigo pois sem ela teríamos menor legibilidade

Page 42: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

BaskaraPrograma Baskara4 sem identação

Reais a, b, c, x1, x2

Leia a, b, c

se a ≠ 0

se

Imprima x1, x2

senão

imprima ”não há raízes reais“

fim se

senão

se b ≠ 0

senão

se c = 0

imprima “a,b,c nulos”

senão

imprima “a,b nulos. Não há raizes”

fim se

fim se

fim se

Fim Baskara4

x 1← (−b+√b2−4∗a∗c )/2∗a

x2← (−b−√b2−4∗a∗c )/2∗a

x←−c /b

√b2−4∗a∗c≥0

Page 43: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Observe que aqui pegamos como exemplo um problema que você provavelmente acha muito fácil

Page 44: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Observe que aqui pegamos como exemplo um problema que você provavelmente acha muito fácil

Mas observe o número de decisões e alternativas que você tem no processo de usar a fórmula de Baskara

Page 45: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Baskara

Observe que aqui pegamos como exemplo um problema que você provavelmente acha muito fácil

Mas observe o número de decisões e alternativas que você tem no processo de usar a fórmula de Baskara

Programar nos exige ficar conscientes de cada passo do algoritmo.

Page 46: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Observação

Usaremos de agora em diante algoritmos mais simples para compreendermos o funcionamento de cada funcionalidade que temos no fluxograma e em pseudocódigo

Page 47: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Fluxograma

Mas antes acrescentemos mais uma estrutura importante

Page 48: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Repetições

Repetição condicionalRepetição condicional RRepetição contável

Valor inicialValor final

Incremento

Processo

Processo

Decisão

Processo

ProcessoProcesso

Page 49: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição

Obtenha a soma dos números inteiros de 1 a 10. Imprima o resultado.

Page 50: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição

i ← 1até 10

s ← s + i

início

s←0

s

fim

Page 51: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição

A variável s é convencionalmente chamada de acumulador enquanto a variável i é chamada de contador.

Page 52: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição

Programa soma

Inteiro s, i

s ←0

para i ← 1 até 10 passo 1

s ←s + i

fim parafim para

imprima simprima s

fimfim

i← 1até 10

s ← s + i

início

s←0

s

fim

Page 53: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

É comum em muitas linguagens uma versão simplificada da estrutura de repetição apresentada

Page 54: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição

Programa soma

Inteiro s, i

s ←0

para i ← 1 até 10

s ←s + i

fim parafim para

imprima simprima s

fimfim

i ← 1até 10

s ← s + i

início

s←0

s

fim

Page 55: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

Aqui apresentamos mais um tipo de variável comum de se encontrar em linguagens de computação:

Inteiro

Assim como Real apresentado antes é uma representação limitada dos números reais, Inteiro é uma representação limitada dos números inteiros

Page 56: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

Obtenha o fatorial de um número inteiro não negativo n. Leia n e imprima o fatorial.

Page 57: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

programa fatorial

inteiro fat, i, n

leia n

fat ←1

para i ← 1 até n

fat ←fat * i

fim parafim para

imprima fatimprima fat

fimfim

i ← 1até n

fat ← fat * i

início

fat←1

fat

fim

n

Page 58: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

Observe que este exemplo tem um erro claro. O usuário pode entrar com um número negativo ou nulo.

É necessária uma crítica dos dados de entrada, como fizemos com o algoritmo de Baskara, para que não haja inconsistências no que é gerado.

Page 59: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

E mais outro exemplo com repetição

Calcule o valor da função exponencial no ponto x=1 usando a série de Taylor truncada em n termos que é dada por

Leia n e imprima o resultado.

e x=1+

x1!

+x2

2!+

x3

3 !+⋯+

xn

n!

Page 60: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

E mais outro exemplo com repetição

Aproveitaremos o pseudocódigo que fizemos para o fatorial

Page 61: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro exemplo com repetição

Programa exponencial Real exp Inteiro fat, i, j, n

leia n

exp ← 1

para i ← 1 até n fat ←1

para j ← 1 até i fat ←fat * j fim para

exp ← exp + 1/fat fim para

imprima exp

fim

Page 62: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro tipo de repetição

Além da repetição contável encontramos nas linguagens de programação a repetição condicional.

Em pseudocódigo podemos representar esta repetição como

.

.

enquanto <condição> faça . .

fim enquanto . .

Page 63: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um outro tipo de repetição

O fragmento de pseudocódigo

i ←1

enquanto (i <= n) faça fat ←fat * i i ← i + 1 fim enquanto

é equivalente ao fragmento

para i ←1 até n fat ←fat * i fim para

Page 64: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Dados dos valores a e b inteiros distintos, sendo que a < b. Faça o somatório dos valores compreendidos entre a e b inclusive. Imprima o resultado.

Page 65: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Programa soma

inteiros a, b, s, i

leia a, b

s ←a

i ←a

enquanto (i < b) faça

i ←i + 1

s ←s + i

fim enquanto

imprima “A soma de“, a, “ate “, b, “=“, s

fim

Page 66: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Dados dos valores a e b inteiros distintos, sendo que a < b. Faça o somatório dos valores compreendidos entre a e b inclusive até que a soma seja maior que 30. Imprima o resultado.

Page 67: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Programa soma

inteiros a, b, s, i

leia a, b

s ←a

i ←a

enquanto ((i < b) E (s < 30)) faça

i ←i + 1

s ←s + i

fim enquanto

imprima “A soma de“, a, “ate “, b, “=“, s

fim

Page 68: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Observe que novamente seria necessária uma crítica dos valores de entrada para não gerarmos inconsistências.

Page 69: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Um exemplo com repetição condicional

Mais um operador de tipo especial: Um operador lógico

● E E lógico

Page 70: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Operador lógico

Mais um operador de tipo especial: Um operador lógico

● E E lógico

que tem o seguinte comportamento dado dois operandos:

Verdadeiro E Verdadeiro resulta em Verdadeiro

Verdadeiro E Falso resulta em Falso

Falso E Verdadeiro resulta em Falso

Falso E Falso resulta em Falso

Page 71: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Operador lógico

Um operador análogo é o OU lógico

● OU Ou lógico

que tem o seguinte comportamento dado dois operandos:

Verdadeiro OU Verdadeiro resulta em Verdadeiro

Verdadeiro OU Falso resulta em Verdadeiro

Falso OU Verdadeiro resulta em Verdadeiro

Falso OU Falso resulta em Falso

Page 72: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Pseudocódigo

Há outros operadores, sejam eles aritméticos, relacionais ou lógicos

Page 73: Programação de Computadores - ic.uff.brotton/graduacao/programacao/3_Fluxograma_pseudo... · Elementos de um fluxograma Pseudocódigo “O Chinês“ Um exemplo: implementar a Fórmula

Pseudocódigo

Foram apresentados informalmente uma série de tipos de variáveis e operadores.

Agora partiremos para uma apresentação mais rigorosa destes dois elementos.