Você está na página 1de 13

9/20/23

UNIVERSIDADE FEDERAL DO PARÁ


Ementa
C AMPUS U NIVERSITÁRIO DO TOCANTINS/C AMETÁ

1. Introdução ao conceito de algoritmo.


a. Notação: símbolos e separadores.
b. Tipos de dados e operações primitivas.
2. Elementos fundamentais.
a. Estruturas de controle do fluxo de informação.
Algoritmos b. Tipos de Dados.
Prof. Dr. Fabricio Farias c. Subalgoritmo: funções e procedimentos.
3. Algoritmos recursivos.
4. Desenvolvimento de algoritmos por
refinamentos sucessivos.
5. Aspectos de implementação de algoritmos.

1 2

Bibliografia básica Bibliografia complementar

u ASCENCIO, A.F.G.; CAMPOS, E.A.V. u GUIMARÃES, A.M.; LAGES, N.A. de C.


Fundamentos da programação de Algoritmos e estruturas de dados. Ltc.
computadores: algoritmos, pascal, C/C++ 1985.
(padrão ANSI) e Java. 3ª Ed. Paerson. 2012. u PEREIRA, S. L. Algoritmos e lógica de
u MANZANO, J.A.N.G.; OLIVEIRA, J.F.. programação em C: uma abordagem
Algoritmos: lógica para desenvolvimento de didática. 2010. ERICA
computadores. ERICA u TENENBAUM, A.M.; LANGSAM, Y.;
u FARRER, H. Algoritmos Estruturados. 3a Ed. AUGENSTEIN, M.J. Estrutura de dados
Ltc. 2011. usando C. Paerson. 1995.
u MANZANO, J.A.N.G.; OLIVEIRA, J.F. Estudo u VELOSO, P. Estrutura de dados. Campus.
dirigido de algoritmos. Erica. 1995.

3 4

1
9/20/23

Método de avaliação UNIVERSIDADE FEDERAL DO PARÁ


C AMPUS U NIVERSITÁRIO DO TOCANTINS/C AMETÁ

u Avaliação (Av)

(𝐴𝑣+ + 𝐴𝑣-)
𝑀"#$%& =
2
Introdução ao conceito
Simulado: 03/10/2023
Resolução do Simulado: 04/10/2023 de Algoritmos
Primeira Av: 05/10/2023 Conceitos básicos
Resolução da Primeira Av1 em Sala: 10/10/2023
Simulado: 11/10/2023
Resolução do Simulado: 11/10/2023
Segunda Avaliação: 17/10/2023
Resolução da Segunda Av2: 18/10/2023
Prova Substitutiva: 21/10/2023
Resolução da Prova Substitutiva: 21/10/2023
Nota: A prova substitutiva substitui a Mfinal.

5 6

Introdução Introdução

u Homem tem criado máquinas para diminuir


esforços e economizar tempo.
uO computador é sua obra prima. Informações Operações sobre
Resposta
Iniciais as informações
u A finalidade do computador é receber,
manipular e armazenar dados.
u Sua finalidade principal é realizar a tarefa
de processamento de dados.

Dispositivo de Dispositivo de
Memória (CPU)
Entrada saída

7 8

2
9/20/23

Introdução Introdução

u Portanto o computador tem duas partes u Etapas para o desenvolvimento de um


diferentes que trabalham juntas: o programa:
hardware composto pelas partes físicas e o u Análise: nessa etapa estuda-se o enunciado do
software composto pelos programas. problema para definir os dados de entrada, o
processamento e os dados de saída
u Quando desenvolvemos um programa temos
que utilizar uma linguagem de u Algoritmo: onde ferramentas do tipo descrição
programação. narrativa, fluxograma ou português estruturado
são utilizados para descrever o problema com
§ A linguagem de programação é um “idioma”
suas soluções
que o humano e a maquina conseguem
compreender. u Codificação: onde o algoritmo é transformado
em códigos da linguagem de programação
escolhida para se trabalhar.

9 10

Conceitos de algoritmo Conceitos de algoritmo

1. “Algoritmo é uma sequencia de passos 4. “Algoritmo são regras formais para a


que visa atingir um objetivo bem obtenção de um resultado ou da solução
definido.” (FORBELLONE, 1999). de um problema, englobando fórmulas de
2. “Algoritmo é a descrição de uma expressões aritméticas.” (MANZANO,
sequencia de passos que deve ser seguida 1997)
para a realização de uma tarefa.” 5. “Ação é um acontecimento que, a partir
(ASCENCIO, 1999) de um estado inicial, após um período de
3. “Algoritmo é uma sequencia finita de tempo finito, produz um estado final
instruções ou operações cuja execução, previsível e bem-definido. Portanto, um
em tempo finito, resolve um problema algoritmo é a descrição de um conjunto
computacional, qualquer que seja sua de comandos que, obedecidos, resultam
instância.” (SALVETTI, 1999) numa sucessão finita de ações.” (FARRER,
1999)

11 12

3
9/20/23

Conceitos básicos Exemplos de algoritmo

u Analisando os cinco conceitos descritos u Somar três números


podemos observar as atividades que u Fazer um sanduíche
realizamos diariamente.
u Trocar uma lâmpada
Questão: Cite algoritmos que você realiza
u Sacar dinheiro no banco 24 horas
diariamente.

Exercício
u Ir para a Escola

13 14

Somar três números Fazer um sanduíche

1. Receber os três números. 1. Pegar o pão. Lavar o alface e tomate


2. Somar os três números. 2. Cortar o pão ao meio.
3. Mostrar o resultado obtido. 3. Pegar a maionese.
4. Passar a maionese no pão.
Cite uma maneira diferente de resolver este 5. Pegar e cortar o alface e tomate.
problema. 6. Colocar alface e tomate no pão.
Como poderíamos adicionar mais detalhes 7. Pegar o hambúrguer. Pegar a frigideira,
neste algoritmo? ligar o fogão,.....
8. Fritar o hambúrguer.
9. Colocar o hambúrguer no pão.

Copie e adicione mais itens neste algoritmo.

15 16

4
9/20/23

Trocar uma lâmpada Sacar dinheiro no banco 24 horas

1. Pegar uma lâmpada nova. 1. Ir até um banco 24 horas.


2. Pegar uma escada. 2. Colocar o cartão.
3. Posicionar a escada embaixo da lâmpada
queimada. 3. Digitar a senha.
4. Subir na escada com a lâmpada nova na mão. 4. Solicitar a quantia desejada.
5. Retirar a lâmpada queimada. 5. Se o saldo for maior ou igual a quantia
6. Colocar a lâmpada nova. desejada, sacar; caso contrário, mostrar
7. Descer da escada. mensagem de impossibilidade de saque.
8. Testar o interruptor. 6. Retirar o cartão.
9. Guardar a escada. 7. Sair do banco 24 horas.
10. Jogar a lâmpada velha no lixo.

Copie e adicione mais itens neste algoritmo. Copie e adicione mais itens neste algoritmo.

17 18

Exercício: Ir para a escola Pensando...

1. Acordar cedo. u Realizo estas atividades todos os dias, mas


2. Ir ao banheiro. de maneira diferente...Este pensamento
está correto?
3. Abrir o armário para escolher uma roupa.
u Um problema pode ser resolvido de
4. Se o tempo estiver quente, pegar uma
diversas maneiras diferentes.
camiseta e calça jeans; caso contrário,
pegar um agasalho e calça jeans.
5. Vestir a roupa escolhida.
6. Tomar café.
7. Pegar uma condução.
8. Descer próximo a escola.

19 20

5
9/20/23

Atravessando a rua Atravessando a rua

Pessoa A Pessoa B Pessoa A Pessoa C


1. Olhar para a 1. Olhar para a 1. Olhar para a 1. Olhar para a
direita esquerda direita esquerda
2. Olhar para a 2. Olhar para a
2. Olhar para a 2. Atravessar a rua
esquerda esquerda
direita 3. Se vem carro, não
3. Se não vem carro, 3. Se não vem carro,
3. Se vem carro, não atravesso a rua;
atravesso a rua; atravesso a rua;
caso contrário, atravesso a rua; caso contrário, caso contrário,
não atravesso a caso contrário, não atravesso a olhar para a
rua. atravesso a rua. rua. direita.
Quem está correto?

21 22

Tipos de algoritmos Tipos de algoritmos

u Os três tipos de algoritmos mais utilizados são: uO fluxograma consiste em analisar o


descrição narrativa, fluxograma e pseudocódigo enunciado do problema e escrever,
ou portugol.
utilizando símbolos gráficos predefinidos
u Descrição narrativa consiste em analisar o
enunciado do problema e escrever, utilizando (Tabela 1), os passos a serem seguidos para
uma linguagem natural (por exemplo, a língua a resolução do problema.
portuguesa), os passos a serem seguidos para a § Vantagem: o entendimento de elementos
resolução do problema. gráficos é mais fácil que o entendimento de
§ Vantagens: não é necessário aprender nenhum textos.
conceito novo, pois a língua natural, neste ponto, já
é bem conhecida. § Desvantagem: é necessário aprender a
§ Desvantagens: a língua natural abre espaço para simbologia dos fluxogramas e, além disso, o
várias interpretações, o que posteriormente algoritmo resultante não apresenta muitos
dificultará a transcrição desse algoritmo para detalhes, dificultando a sua transcrição para
programa. um programa.

23 24

6
9/20/23

Tipos de algoritmos Tipos de algoritmos

Tabela 1 Conjunto de sím bolos utilizados no fluxogram a uO pseudocódigo ou portugol consiste em


analisar o enunciado do problema e
escrever, por meio de regras predefinidas,
Símbolo utilizado para indicar o início e o fim do algoritmo
os passos a serem seguidos para a
resolução do problema.
Permite indicar o sentido do fluxo de dados.
§ Vantagem: a passagem do algoritmo para
qualquer linguagem de programação é quase
Símbolo utilizado para indicar cálculos e atribuição de valores imediata, bastando conhecer as palavras
reservadas da linguagem de programação que
Símbolo utilizado para representar a entrada de dados será utilizada.
§ Desvantagens: é necessário aprender as regras
Símbolo utilizado para indicar a saída de dados do pseudocódigo, que serão apresentadas nas
próximas seções.
Indica que deve ser tomada uma decisão e desvio de decisão

25 26

Exemplos 1: Algoritmos Exemplo 1: Algoritmos

a. Faça um algoritmo para mostrar o u Algoritmo em fluxograma:


resultado da multiplicação de dois
números.
Algoritmo em descrição narrativa: INICIO N1, N2

1. Receber dois números que serão


multiplicados.
2. Multiplicar os números. M = N1 * N2

3. Mostrar o resultado obtido na


multiplicação.
M FIM

27 28

7
9/20/23

Exemplo 1: Algoritmos Exemplo 1: Algoritmos

u Algoritmo em fluxograma: u Algoritmo em pseudocódigo:

Digite N1 N1
ALGORITMO
INICIO
DECLARE N1, N2, M NUMERICO
ESCREVA “Digite dois números”
M = N1 * N2 N2 Digite N2 LEIA N1, N2
M ß N1 * N2

M
ESCREVA “Multiplicação = ”, M
FIM
FIM_ALGORITMO

29 30

Exemplos 2: Algoritmos Exemplo 2: Algoritmos

b. Faça um algoritmo para mostrar o u Algoritmo em fluxograma:


resultado da divisão de dois números.
Algoritmo em descrição narrativa:
INICIO
1. Receber dois números que serão
divididos.
2. Se o segundo número for igual a zero,
não poderá haver divisão, pois não existe N1, N2
divisão por zero; caso contrário, dividir D
D = N1 / N2
os números e mostrar o resultado da
divisão. Não

IMPOSSIVEL
N2 == 0
DIVIDIR FIM
Sim

31 32

8
9/20/23

Exemplo 2: Algoritmos Exemplo 2: Algoritmos

u Algoritmo em pseudocódigo: u Algoritmo em pseudocódigo:

ALGORITMO
ALGORITMO
DECLARE N1, N2, D NUMERICO
DECLARE N1, N2, D NUMERICO
ESCREVA “Digite dois números”
ESCREVA “Digite dois números”
LEIA N1, N2
LEIA N1, N2 SE N2 != 0
SE N2 == 0 ENTAO INICIO
ENTAO ESCREVA “Impossível dividir” D ß N1 / N2
SENAO INICIO ESCREVA “Divisão = ”, D
D ß N1 / N2 FIM
SENAO
ESCREVA “Divisão = ”, D
ENTAO ESCREVA “Impossível dividir”
FIM
FIM_ALGORITMO
FIM_ALGORITMO

33 34

Exemplos 2: Algoritmos Exemplo 2: Algoritmos


Subproblema Subproblema
u Algoritmo em fluxograma:
Faça um algoritmo em que o usuário deve escolher uma Sim
N1,
INICIO op op == 1
opção. Opção 1 para realizar soma, Opção 2 para realizar N2
divisão, e qualquer outra entrada para sair do programa.
Não

Algoritmo em descrição narrativa: op == 2 S = N1 + N2


Não
1. Receber a opção do usuário
Opção Inválida
2. Se opção igual a 1, receber n1 e n2 e calcular a soma. Ao
final apresentar o resultado na tela. Sim
3. Se opção igual a 2, receber n1 e n2 e verificar se n2 é S
diferente de zero. Caso sim, calcular a divisão. Ao final N1, N2
apresentar o resultado na tela. D
o D = N1 / N2
4. Caso não seja nem a opção 1 e nem a opção 2, sair do Nã
programa apresentando uma mensagem de despedida.
N2 == 0
IMPOSSIVEL FIM
DIVIDIR
Sim

35 36

9
9/20/23

Exemplo 2: Algoritmos - Subproblema Exemplos 3: Algoritmos


u Algoritmo em pseudocódigo:
ALGORITMO
DECLARE op, N1, N2, r NUMERICO
ESCREVA “Escolha uma das opções. 1 – Soma. 2 – Divisão.”
LEIA op c. Faça um algoritmo para calcular o novo
SE op == 1 ENTAO salário de um funcionário. Sabe-se que os
INICIO
LEIA N1, N2
funcionários que possuem salário atual até R$
r <- N1 + N2 500,00 terão aumento de 20%, os demais
ESCREVA “O Resultado da Soma = ”, r terão aumento de 10%.
FIM
SE op == 2 ENTAO Algoritmo em descrição narrativa:
INICIO
LEIA N1, N2
1. Receber o salário atual do funcionário
SE N2 == 0 ENTAO
ESCREVA “Impossível Dividir por zero”
2. Se o salário atual do funcionário for até R$
SENAO ENTAO
500,00, calcular o novo salário com
INICIO percentual de aumento de 20%; caso
r <- N1 / N2 contrário, calcular o novo salário com
FIM
ESCREVA “O Resultado da Divisão = ”, r
percentual de aumento de 10%.
FIM 3. Mostrar o novo salário.
SENAO ENTAO
ESCREVA “Opção Inválida”

FIM_ALGORITMO

37 38

Exemplo 3: Algoritmos Exemplo 3: Algoritmos

u Algoritmo em pseudocódigo:
u Algoritmo em fluxograma:

ALGORITMO
INICIO DECLARE SAL_ATUAL, NOVO_SAL NUMERICO
NOVO_SAL = NOVO_SAL ESCREVA “Digite o salário atual do funcionário”
SAL_ATUAL * 1,1
LEIA SAL_ATUAL
SE SAL_ATUAL <= 500
SAL_ATUAL
ENTAO NOVO_SAL <- SAL_ATUAL * 1,2
FIM SENAO NOVO_SAL <- SAL_ATUAL * 1,1
Não ESCREVA “Novo salário =”, NOVO_SAL
FIM_ALGORITMO
SAL_ATUAL NOVO_SAL =
<= 500 SAL_ATUAL * 1,2 NOVO_SAL
Sim

39 40

10
9/20/23

Teste de Mesa
Exercício Exercício Teste 1 - Ok
N1 = 3
N2 = 2
Resposta: “Reprovado”
u Faça um algoritmo para calcular a média u Algoritmo em fluxograma: Teste 2 – Ok
aritmética entre duas notas de um aluno e N1 = 8
mostrar a situação desse aluno, que pode N2 = 9
Resposta: “Aprovado”
ser aprovado ou reprovado. INICIO

Sim Reprovado
M<5

N1, N2
Não
FIM

M = (N1 + N2)/2 Aprovado

41 42

Exercícios Conceito de variável


u Algoritmo em pseudocódigo:

ALGORITMO
DECLARE N1, N2, M NUMERICO 1. Duas pessoas estão conversando e precisam realizar uma
conta.
ESCREVA “Digite as notas 1 e 2 do aluno”
LEIA N1, N2 2. A primeira pessoa diz: “Vamos somar dois números”.
M <- (N1 + N2)/2 3. A primeira pessoa continua: “E o primeiro número é 5”.
4. A segunda pessoa guarda o primeiro número na cabeça, ou
seja, na memória humana.
SE M < 5 ENTAO
5. A primeira pessoa diz: “O segundo número é 3”.
INICIO
ESCREVA “Reprovado com nota”, M 6. A segunda pessoa também guarda o segundo número na
cabeça, sem se esquecer do primeiro número, ou seja,
ESCREVA “Parabéns, você conquistou o direito de refazer a disciplina” cada número foi armazenado em posições diferentes da
FIM memória humana, sem sobreposição.
SENAO ENTAO 7. A primeira pessoa pergunta: “Qual o resultado da soma?”
INICIO 8. A segunda pessoa resgata os valores armazenados na
ESCREVA “Aprovado com nota”, M memória, realiza a conta e responde dizendo que o
resultado é 8.
FIM
FIM_ALGORITMO

43 44

11
9/20/23

Tipos de dados Tipos de dados

u Os tipos de dados mais utilizados são: u Lógico: São também chamados dados
numérico, lógico e literal ou caractere. booleanos (por causa da álgebra de Boole)
1. Numérico: Os dados numéricos dividem- e podem assumir os valores verdadeiro ou
se em dois grupos: inteiros e reais. falso. Esse tipo de dados, quando
armazenado na memória do computador,
Os números inteiros podem ser positivos
opupa 1 bit, pois possui apenas duas
ou negativos e não possuem parte decimal. possibilidades de representação.
Exemplo: -23, 98, 0, 1223, -2, 327
Os números reais podem ser positivos ou
negativos e possuem parte decimal.
Exemplo: 22.3, -34.29, 342.54, -23.332

45 46

Tipos de dados Formação de identificadores

u Literal ou caractere: São dados formados u Os identificadores são os nomes das variáveis, dos
programas, das constantes, das rotinas, das
por um único caractere ou por uma cadeia unidades, etc.
de caracteres. Esses caracteres podem ser u As regras básicas para a formação dos
identificadores são:
as letras maiúsculas, as letras minúsculas,
§ os caracteres que você pode utilizar na formação dos
os números (não podem ser usados para identificadores são: os números, as letras maiúsculas,
as letras minúsculas e o caractere sublinhado
cálculos) e os caracteres especiais (&, #, (underline).
@, ?, +). Esse tipo de dado, quando § o primeiro caractere deve ser sempre uma letra ou o
armazenado na memória do computador, caractere sublinhado
§ não são permitidos espaços em branco e caracteres
ocupa um byte para cada caractere. especiais (@, ?, +, -, %, !)
u Exemplo: ‘aluno’, ‘1234’, ‘@ Internet’, § não podemos usar as palavras reservadas nos
identificadores, ou seja, palavras que pertencem a
‘0.34’, ‘1 + 2’. uma linguagem de programação.

47 48

12
9/20/23

Formação de identificadores Revisão da Aula

u Exemplos de identificadores válidos 1. Introdução ao conceito de algoritmo.


§ A, a, nota, NOTA, x5, nota_1, valor2 a. Notação: símbolos e separadores.
b. Tipos de dados e operações primitivas.
u Exemplos de identificadores inválidos
§ 5b, e 12, x-y, ESCREVA, LEIA, nota(2).

49 50

Exemplo 2: Algoritmos

u Algoritmo em fluxograma:

INICIO D

N1, N2
FIM
D = N1 / N2

Sim

IMPOSSIVEL
N2 != 0
DIVIDIR
Não

51

13

Você também pode gostar