programação de computadores - ic.uff.brotton/graduacao/programacao/3_fluxograma_pseudo... ·...
TRANSCRIPT
![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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/34.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/37.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/45.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/46.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/47.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/48.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/49.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/50.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/51.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/52.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/53.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/54.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/55.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/56.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/57.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/58.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/59.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/60.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/61.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/62.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/63.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/64.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/65.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/66.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/67.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/68.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/69.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/70.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/71.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/72.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022022107/5bf2924e09d3f2dc7c8c7c7d/html5/thumbnails/73.jpg)
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.