Introdução a Algoritmos Introdução a Algoritmos ––Parte 02...

40
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação 1 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Introdução a Algoritmos Introdução a Algoritmos – Parte 02 Parte 02 (baseado no material do prof. Marcelo (baseado no material do prof. Marcelo Linder Linder) )

Transcript of Introdução a Algoritmos Introdução a Algoritmos ––Parte 02...

Page 1: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Universidade Federal do Vale do São FranciscoCurso de Engenharia de Computação

1

Prof. Jorge [email protected]/~jorge.cavalcantiwww.twitter.com/jorgecav

Introdução a Algoritmos Introdução a Algoritmos –– Parte 02Parte 02(baseado no material do prof. Marcelo (baseado no material do prof. Marcelo LinderLinder) )

Page 2: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

� Algoritmos em Pseudocódigo� Pseudocódigo � Técnica textual de representação de um

algoritmo - Também conhecida como Português Estruturado ou Portugol.

� Nele os verbos (ações) disponíveis para utilização são limitados e empregados no imperativo. Deve-se evitar as expressões excessivamente longas, estas restrições visam eliminar a possibilidade de ambiguidade.eliminar a possibilidade de ambiguidade.

� Técnica é baseada em uma PDL (Program Design Language), que é uma linguagem genérica na qual é possível representar um algoritmo de forma semelhante à das linguagens de programação.

� A estrutura de um algoritmo em pseudocódigo pode variar um pouco de acordo com o autor ou com base na linguagem de programação que será utilizada posteriormente, mas essas variações ocorrem apenas na sintaxe, pois a semântica deve ser exatamente a mesma.

Introdução a Algoritmos- Prof. Jorge Cavalcanti - Univasf

2

Page 3: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Entrada de dados.Palavra-reservada: leia - utilizada para receber dados externosao algoritmo e armazená-los na memória como variáveis.Sintaxe ���� leia (<lista de variáveis>)

� É necessária a declaração prévia das variáveis, na seção var.

var n1: inteiro

Introdução a Algoritmos

3

var n1: inteirok: caractere

Exemplos: leia (n1) - O valor digitado será armazenado na variável n1.leia (k) - Um ou vários caracteres digitados serão

armazenados na variável k (Definida como caractere).� No caso de utilizar leia (<lista de variáveis>), será

respeitada a ordem da lista de variáveis, da esquerda para direita.

� Exemplo: leia (n1, k, n2)

Page 4: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Saída de dados.Palavra-reservada: escreva - utilizada para externar (enviar para omonitor) dados gerados pelo algoritmo.Sintaxe � escreva (<lista-de-variáveis>)

escreval (<lista-de-variáveis>)

Obs: escreval � imprime a variável na tela e o cursor vai

Introdução a Algoritmos

4

Obs: escreval � imprime a variável na tela e o cursor vaipara uma nova linha.Exemplos:

escreva (n1) - Será mostrado na tela o conteúdoda variável n1.

escreva (“O texto digitado foi ”, k) - Serámostrado o texto entre “” e depois o conteúdo da variávelk.

escreva (“Estudou e se dedicou tirou ”, 10)

Page 5: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Saída de dados.

� É possível especificar o número de colunas da tela e/ou de casas decimais onde se deseja escrever um determinado valor.

Introdução a Algoritmos

5

� Exemplo: considerando uma variável inteira x, o comando escreva (x:5) escreve o valor da variável x em 5 colunas, alinhado-o à direita.

� Exemplo: considerando y como uma variável real, o comando escreva (y:6:2), escreve seu valor em 6 colunas colocando 2 casas decimais.

Page 6: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Saída de dados.

� Exemplo - Abaixo um pseudocódigo de um algoritmo simples, que recebe um valor inteiro, fornecido pelo usuário, e o retorna no monitor.

algoritmo “exemplo 1”

Introdução a Algoritmos

6

algoritmo “exemplo 1”

var x: inteiro

inicio

leia (x)

escreva (x)

fimalgoritmo

Page 7: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operador de Atribuição símbolo <-Exemplo: var a: inteiro

valor1, valor2: real...a <- 5valor1 <- 3.14

Introdução a Algoritmos

7

valor1 <- 3.14valor2 <- valor1escreva(valor2)

� Apenas valores pertencentes ao tipo da variável podem lhe ser atribuídos.

� O valor a ser atribuído pode ser o conteúdo de uma variável, de uma constante, o resultado de operações sobre variáveis/constantes ou um valor diretamente.

Page 8: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operador de Atribuição Exemplo: Declarações

constante: MÁXIMO = 10var quantidade, filhos, netos: inteiroaberto: booleanoaltura: real

Introdução a Algoritmos

8

altura: realresposta: caractere

Atribuiçõesaltura <- 1.80filhos <- 3netos <- filhos * 2 – 3quantidade <- MÁXIMO – 5aberto <- Faberto <- quantidade < MÁXIMOresposta <- “S”

Page 9: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operadores Aritméticos

� Unários: +, -

Exemplos: +1-5.9

Introdução a Algoritmos

-5.9...var a: inteiro...a <- -a

9

Page 10: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operadores Aritméticos� Binários: +, -, *, /, \, %, ^

Símbolo Operação

+ Soma

- Subtração

Introdução a Algoritmos

10

- Subtração

* Multiplicação

/ Divisão

\ Quociente da divisão inteira

% Resto da divisão inteira

^ Potenciação

Page 11: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

� Operadores e Hierarquia na operações:

11

Page 12: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

�Operadores e Hierarquia nas operações:Exemplos:3/4+5 = 5.753/(4+5) = 0.333333333\2*9 = 9

Hierarquia Operação

11%3^2 = 211%(3^2) = 2(11%3)^2 = 43\2+(65-40)^(1/2) = 6

12

Hierarquia Operação

1 Parênteses

2 Função

3 -, + (unários)

4 ^

5 *, /, \, %

6 +, -

Page 13: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operadores Relacionais

Operador Ação

> maior que

>= maior ou igual a

Introdução a Algoritmos

>= maior ou igual a

< menor que

<= menor ou igual a

= igual a

<> diferente de

13

Page 14: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Operadores Lógicos

Operador

e

Introdução a Algoritmos

e

ou

nao

xou

14

Page 15: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Expressões lógicas

Exemplos:

3>7 = FALSO

Introdução a Algoritmos

15

“A” = “a”

“a” > “B”

“Ana” < “Aline”

(3>=13\4) xou (nao (5%2=0))

= VERDADEIRO

= FALSO

= FALSO

= FALSO

Page 16: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Pseudocódigo – Estrutura� A estrutura de um algoritmo em pseudocódigo pode variar

de acordo com o autor ou com a linguagem de programação que será utilizada, mas essas variações ocorrem apenas na sintaxe, pois a semântica deve ser a mesma.

� A estrutura que empregaremos para a construção de nossos pseudocódigos será a seguinte:

Introdução a Algoritmos

16

pseudocódigos será a seguinte:algoritmo “nome” //Tem como objetivo identificar o

//algoritmo, deve-se utilizar um nome o mais significativo //possível, para facilitar a identificação

var// Seção de Declarações – Aqui são informadas quais

//variáveis, e seus respectivos tipos, serão utilizadas no algoritmo

inicio// Seção de Comandos - Aqui será escrita a sequencia de

// comandos que deve ser executada para solucionar // o problema em questão

fimalgoritmo //marca o final do algoritmo

Page 17: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Pseudocódigo

� As palavras reservadas presentes na estrutura do pseudocódigo apresentado foram:

Introdução a Algoritmos

17

algoritmovariniciofimalgoritmo

Page 18: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Pseudocódigo – ExemploObservaremos agora um pseudocódigo que recebeum valor inteiro, fornecido pelo usuário, e o retornano monitor.

Introdução a Algoritmos

18

algoritmo “exemplo 1”var x: inteiroinicio

leia (x)escreva (x)

fimalgoritmo

Page 19: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Pseudocódigo – ExemploOutro exemplo é o pseudocódigo de um algoritmo que

recebe um valor inteiro, acresce duas unidades a este, eexibe o resultado desta manipulação.

algoritmo “exemplo 2”var numero, resposta: inteiro

Introdução a Algoritmos

19

var numero, resposta: inteiroinicio

escreva (“Digite um número inteiro: ”)leia (numero)resposta <- numero+2escreval (“Resultado (número + 2): ”, resposta)

fimalgoritmo

Page 20: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Outro exemplo é o pseudocódigo de um algoritmo querecebe um valor inteiro, acresce duas unidades a este, eexibe o resultado desta manipulação.

algoritmo “exemplo 2”var n: inteiro

� Pseudocódigo – Exemplo

Introdução a Algoritmos

20

var n: inteiroinicio

escreva (“Digite um número inteiro: ”)leia (n)n <- n+2escreval (“Resultado (número + 2): ”, n)

fimalgoritmo

Page 21: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Outro exemplo é o pseudocódigo de um algoritmo querecebe um valor inteiro, acresce duas unidades a este, eexibe o resultado desta manipulação.

algoritmo “exemplo 2”var n: inteiro

� Pseudocódigo – Exemplo

Introdução a Algoritmos

21

var n: inteiroinicio

escreva (“Digite um número inteiro: ”)leia (n)escreval (“Resultado (número + 2): ”, n+2)

fimalgoritmo

Page 22: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

� Blocos de instruções.� As instruções em uma linguagem de programação

sempre são executadas em sequência.� A utilização de blocos de instruções deixa claro onde a

sequência de instruções começa e termina.� Todo algoritmo tem pelo menos um bloco de

instruções, que indica o início e final do próprio

22

instruções, que indica o início e final do próprio algoritmo.

� Ex.:<declaração de variáveis>início<primeira instrução do bloco><segunda instrução do bloco>...<última instrução do bloco>fim

Page 23: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

� Blocos de instruções.� Ex. Sabendo que a relação entre vértices, arestas e

faces de um objeto geométrico é dada pela fórmula: vértices + faces = arestas + 2, calcule o número de vértices de um cubo (06 faces e 12 arestas).

Ex. 01 - Algoritmo “Vértices de um cubo”var vertices, faces, arestas: inteiro

23

var vertices, faces, arestas: inteiroinicio

faces <- 6arestas <-12vertices <- arestas + 2 – faces

fim

Page 24: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

algoritmo "soma de dois números” {NOME DO ALGORITMO}// Função :

// Autor :

// Data : 10/8/2010

// Seção de Declarações

Introdução a Algoritmos

� Estrutura de um algoritmo:

24

var

a,b,c:inteiro {DECLARAÇÃO DE VARIÁVEIS}inicio

// Seção de Comandos "){INÍCIO DO ALGORITMO}escreval("Digite dois números

leia (a)

leia (b)

c:= a + b

escreva ("A soma he:",c)

fimalgoritmo {FIM DO ALGORITMO}

Page 25: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Introdução a Algoritmos

25

Page 26: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Passos necessários para a construção de um algoritmo:

� Ler atentamente o enunciado do problema, compreendendo-o e destacando os pontos mais importantes;

� Definir os dados de entrada, ou seja, quais dados serão fornecidos;

Introdução a Algoritmos

26

serão fornecidos;� Definir os dados de saída, ou seja, quais dados serão

gerados depois do processamento;� Definir o processamento, ou seja, quais cálculos serão

efetuados e quais as restrições para esses cálculos. O processamento é responsável pela obtenção dos dados de saída com base nos dados de entrada;

� Definir as variáveis necessárias para armazenar as entradas e efetuar do processamento;

� Elaborar o algoritmo;� Testar o algoritmo realizando simulações.

Page 27: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

EXERCÍCIO (Adaptado do Ex. 01)� Ex. 02 - Sabendo que a relação entre vértices, arestas e

faces de um objeto geométrico é dada pela fórmula: vértices + faces = arestas + 2, calcule o número de vértices de um objeto genérico. A entrada será o número de faces e arestas e a saída será o número de vértices.Alg. 02 - Algoritmo “Vértices de um objeto genérico”

Introdução a Algoritmos

27

Alg. 02 - Algoritmo “Vértices de um objeto genérico”var vertices, faces, arestas: inteiroinicio

escreva (“Entre com o número de faces do objeto: “)leia (faces)escreva (“Entre com o número de arestas do objeto: “)leia (arestas)vertices <- arestas + 2 – facesescreva (“ O número de vértices do objeto é: “, vertices)

fim

Page 28: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 03a - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer.

algoritmo “exemplo 3a”var n1, n2, res: inteiroinicio

escreva (“Digite o multiplicando inteiro: ”)

Introdução a Algoritmos

28

escreva (“Digite o multiplicando inteiro: ”)leia (n1)escreva (“Digite o multiplicador inteiro: ”)leia (n2)res<- n1 * n2escreva (“Resultado da multiplicação: ”, res)

fimalgoritmo

Page 29: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 03b - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer.

algoritmo “exemplo 3b”var n1, n2: inteiroinicio

escreva (“Digite o multiplicando inteiro: ”)

Introdução a Algoritmos

29

escreva (“Digite o multiplicando inteiro: ”)leia (n1)escreva (“Digite o multiplicador inteiro: ”)leia (n2)escreva (“Resultado da multiplicação: ”, n1*n2)

fimalgoritmo

Page 30: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 03c - Construa um pseudocódigo para representar um algoritmo que efetue a multiplicação de dois inteiros quaisquer.

algoritmo “exemplo 3c”var n1, n2: inteiroinicio

escreva ("Digite o multiplicando e em seguida ")

Introdução a Algoritmos

30

escreva ("Digite o multiplicando e em seguida ")escreva (" o multiplicador (ambos inteiros): ")leia (n1, n2)escreva ("Resultado da multiplicação: ", n1*n2)

fimalgoritmo

Page 31: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 4a - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão.

algoritmo “exercício 4a”var valor, resultado: realinicio

Introdução a Algoritmos

31

inicioescreva (“Entre com o valor do produto: ”)leia (valor)resultado <- valor * 0.7escreva (“Valor com desconto de 30%: ”)escreva (resultado)

fimalgoritmo

Page 32: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 4b - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão.

algoritmo “exercício 4b”var valor: realinicio

Introdução a Algoritmos

32

inicioescreva (“Entre com o valor do produto: ”)leia (valor)valor <- valor * 0.7escreva (“Valor com desconto de 30%: ”)escreva (valor:6:2)

fimalgoritmo

Page 33: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Ex. 4c - Gere um pseudocódigo que aplique um desconto de 30% sobre o valor de um produto, recebido como entrada, e retorne o resultado da manipulação na saída padrão.

algoritmo “exercício 4c”var valor: realinicio

Introdução a Algoritmos

33

inicioescreva (“Entre com o valor do produto: ”)leia (valor)escreva (“Valor com desconto de 30%: ”, valor * 0.7:6:2)

fimalgoritmo

Page 34: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

EXERCÍCIOS

1) Escreva um programa que receba dois números ecalcule a média deles.

2) Escreva um programa que receba três números edepois peça o valor dos pesos e depois calcule a

Introdução a Algoritmos

34

depois peça o valor dos pesos e depois calcule amédia ponderada dos números.

3) Faça um programa que leia uma temperatura emgraus Celsius e calcule o correspondente emFahrenheit. Sabendo que: F=(180*(C+32))/100

Page 35: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

� Fluxogramas

� Conceitualmente um fluxograma é um tipo de diagrama, e pode ser entendido como uma representação esquemática de um processo, constitui uma representação gráfica que ilustra de

Introdução a Algoritmos

35

representação esquemática de um processo, constitui uma representação gráfica que ilustra de forma descomplicada a sequência de execução dos elementos que o compõem. � Podemos entendê-lo, na prática, como a documentação dos passos necessários para a execução de um processo qualquer.

Page 36: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Conjunto de símbolos utilizados em fluxogramas

Símbolo Nome Descrição

Terminador Indica o início e o fim do fluxo do algoritmo.

Seta de fluxoIndica o sentido do fluxo de execução do algoritmo. É através dela que os símbolos do fluxograma são conectados.

Declaração Delimita a seção de declaração de variáveis.

Entrada de Corresponde à instrução de entrada de dados

36

Entrada de dados

Corresponde à instrução de entrada de dados através do teclado.

Atribuição Símbolo utilizado para indicar cálculos e atribuição de valores.

Saída de dados Corresponde à instrução de saída de dados. Os dados serão exibidos na tela do computador.

Desvio condicional

Divide o fluxo do programa em dois caminhos, dependendo do teste lógico que fica dentro do losango.

Page 37: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Exemplo de Fluxograma

De forma similar à análise feita com pseudocódigo,iniciaremos nossa análise por um fluxograma queefetua a leitura, através do teclado, de um valorinteiro e o retorna no monitor.

Inicio

37

n

n

n: inteiro

Fim

Page 38: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Exemplo de Fluxograma

Fluxograma que recebe um valor inteiro, através daentrada padrão, e acresce duas unidades a este exibindoo resultado na saída padrão.

n: inteiro

Inicio

38

n

n <- n + 2

“O valor fornecido acrescido de duas unidades resulta

em ”, n

n: inteiro

Fim

“Forneça umvalor inteiro”

Page 39: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Exercício de FluxogramaConstrua um fluxograma para obter o resultado damultiplicação de dois números inteiros quaisquerfornecidos pelo usuário.

n1, n2, res: inteiro

Inicio

n1, n2: inteiro

Inicio

“Digite um

n1, n2

res <- n1 * n2

“Resultado: ”,res

Fim

n1

n1,“*”,n2,“=”,n1 * n2

Fim

“Digite um inteiro como

multiplicando: ”

n2 “Digite um inteiro como multiplicador: ”

“Digite omultiplicando

e o multiplicador,ambos inteiros: ”

Page 40: Introdução a Algoritmos Introdução a Algoritmos ––Parte 02 ...jorge.cavalcanti/Introducao_Algoritmos_Parte02.pdf · EXERCÍCIO (Adaptado do Ex. 01) Ex. 02 -Sabendo que a relação

Exercício de FluxogramaGere um fluxograma que aplique um desconto de 30% sobre ovalor de um produto, recebido como entrada, e retorne oresultado da manipulação na saída padrão.

valor: real

Inicio

valor: real

Inicio

valor, resultado: real

Inicio

“Entre com o

“Entre com ovalor do produto:”

valor

valor <- valor * 0.7

Fim

valor

“Valor com desconto: ”, valor * 0.7:6:2

Fim

valor

resultado <- valor * 0.7

“Valor de venda”, resultado:6:2 Fim

“Entre com ovalor do produto:” “Entre com o

valor do produto:”

“Valor de venda”, valor:6:2