Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Objetivos da Disciplina
Conteúdo Programático
Unidade 1: Elementos básicos da pseudolinguagem
1.1 Noção de Algoritmos
1.2 Constantes e Variáveis
1.3 Operadores Aritméticos, Relacionais e Lógicos
2
Conteúdo Programático
Unidade 2: Estruturas de Programação
2.1 Estrutura Sequencial
2.2 Estrutura Condicional Simples
2.3 Estrutura Condicional Composta
Conteúdo Programático
Unidade 3: Estruturas de Repetição
3.1 Estrutura de Repetição PARA
3.2 Estrutura de Repetição Enquanto
3.3 Estrutura de Repetição REPITA
3
Conteúdo Programático
Unidade 4: Subrotinas
4.1 Conceitos de Modularização
4.2 Procedimentos
4.3 Funções
Bibliografia
Básica:
• FARRER, H. et al. Algoritmos Estruturados. Rio de Janeiro: LTC, 1999.
• FORBELLONE, V.; EBERSPACHE, F. Lógica de Programação. São Paulo: Makron Books,
2000.
• GUIMARAES, A. M. Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC, 1994.
Complementar:
• HOLZNER, S. C: Programação: o guia prático para a programação eficiente. Rio de Janeiro:
Campus, 1993.
• KERNIGHAN, Brian W, RITCHIE, Dennis M. C: a linguagem de programação padrão ANSI.
Rio de Janeiro: Campus, 1989.
• MANZANO, J. A. N. G. Estudo dirigido de algoritmos. 13.ed. rev, atual e ampl. São Paulo:
Érica, 2010.
• SCHILDT, H. C completo e total. 3. ed. rev. e atual. São Paulo: Makron Books, 2009.
• TREMBLAY, J.P. Ciência dos computadores: uma abordagem algorítmica. São Paulo:
McGrawn-Hill, 1986.
4
Referências Adicionais
• Apresentação “Lógica de Programação - Forbellone / Eberspacher”
• SEBESTA, R. W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011.
• Apresentação “Algoritmos I”, prof. Jorge Viana Doria Junior
• Apresentação “Programação Estruturada (Modularização/Subprogramação)”, prof. Fabíola
Gonçalves, UFU
• Apostila “Algoritmos”, prof. Helio Gouvea Prado
UNIDADE 1:
ELEMENTOS BÁSICOS
DA
PSEUDOLINGUAGEM
5
1.1 Noção de Algoritmos
George Boole
6
George Boole
Lógica
• Além da aplicação na matemática...
‒Busca a "correção do pensamento", determinar quais
operações são válidas e quais não são fazendo análise das
formas e leis do pensamento
‒Procura saber por que pensamos assim e não de outro jeito
7
Lógica no dia-a-dia
• Kaiton é um país do planeta Stix.
Todos os Xinpins são de Kaiton.
Logo, todos os Xinpins são Stixianos.
Lógica de Programação
8
Algoritmo
• O objetivo principal da Lógica de Programação é a
construção de algoritmos coerentes e válidos
Exercício 1
• Pense e escreva em um papel, aplicativo notepad (ou
apenas na mente) as ações necessárias para que você
execute uma tarefa, cotidiana ou não
• Sugestões:
Trocar uma lâmpada
Fazer um cupcake
Voltar para casa de trem
9
Exercício 2
• Imagine que, por exemplo, na sua volta para casa de
trem, as seguintes situações podem ocorrer:
‒O trem estar quebrado
‒N trens estarem quebrados ("N" definido)
‒N trens estarem quebrados ("N" indefinido)
Programa
• Qualquer pessoa com suas experiências pode resolver
os problemas esperados e inesperados na prática
• Um programa de computador tradicional não tem
conhecimento prévio nem adquire experiências
• Devemos determinar em detalhes todas as ações que
ele deve executar, prevendo obstáculos e formas de
transpô-los
‒Tal atividade é realizada pelos programadores
10
Representação de Algoritmos
• Lembrando: Algoritmo é uma linha de raciocínio
início
Fluxograma tradicional
11
• acionar o interruptor;
• se a lâmpada não acender, então
• pegar uma escada;
• posicionar a escada embaixo da lâmpada;
ir para o primeiro soquete • buscar uma lâmpada nova;
soquetes testados < 10 • acionar o interruptor;
acionar o interruptor • subir na escada;
lâmpada não acendeu • retirar lâmpada queimada;
• colocar lâmpada nova;
pegar uma escada
• enquanto a lâmpada não acender, faça
colocar a escada embaixo do soquete • retirar lâmpada queimada;
buscar lâmpada nova • colocar lâmpada nova;
acionar o interruptor
subir na escada Forma Textual
retirar lâmpada queimada
colocar lâmpada nova
lâmpada não acendeu
retirar lâmpada queimada
colocar lâmpada nova
ir para o próximo soquete Diagrama de Chapin
Fluxograma - Símbolos
Operação de entrada de
dados
12
INICIO
AV1, AV2
MEDIA >= 7
"Aprovado" "AV3"
FIM
Conjunto de Regras
• Expressar ações usando a gramática em uma língua
produz ambiguidades
‒"O pregador foi grampeado durante o conserto"
13
algoritmo "resultado"
inicio
real : AV1, AV2, MEDIA;
leia (AV1, AV2);
MEDIA ← (AV1 + AV2)/2;
se MEDIA >= 7
entao
escreva ("Aprovado")
senao
escreva ("AV3");
fimse;
fim.
Exemplos de Linguagens
• Os computadores são usados em um infinidade de
diferentes áreas
‒Por exemplo: Aplicações científicas, aplicações comerciais,
inteligência artificial, programação de sistemas, scripting,
propósitos especiais
14
program helloworld
print *, "Hello world!"
end program helloworld
Exercício 3
• Crie um algoritmo que resolva o problema da Torre de
Hanói
15
Exercício 3
Problema com 4 discos
("minúsculo", "pequeno", 8
"médio", "grande"):
1 9
2
Todos os discos devem ser 10
movidos do primeiro para o
terceiro pino mantendo a 3 11
mesma ordem da situação
inicial 4 12
Apenas 1 disco pode ser 5 13
movido por vez
Um disco pequeno nunca 6 14
pode estar por baixo de um
disco maior 7 15
Exercício 3
Passo 1: mover disco minúsculo para segundo pino
Passo 2: mover disco pequeno para terceiro pino
Passo 3: mover disco minúsculo para terceiro pino
Passo 4: mover disco médio para segundo pino
Passo 5: mover disco minúsculo para primeiro pino
Passo 6: mover disco pequeno para segundo pino
Passo 7: mover disco minúsculo para segundo pino
Passo 8: mover disco grande para terceiro pino
Passo 9: mover disco minúsculo para terceiro pino
Passo 10: mover disco pequeno para primeiro pino
Passo 11: mover disco minúsculo para primeiro pino
Passo 12: mover disco médio para terceiro pino
Passo 13: mover disco minúsculo para segundo pino
Passo 14: mover disco pequeno para terceiro pino
Passo 15: mover disco minúsculo para terceiro pino
16
1.2 Constantes e
Variáveis
Informação
• O ser humano aprendeu a se comunicar por meio de
informações, que são formadas pelos dados
‒Exemplo de dados: 21, setembro, dia, árvore
‒Exemplo de informação: 21 de setembro é o dia da árvore
17
https://elrobotpescador.files.wordpress.com/2015/02/garry-kasparov-deep-blue-ibm.jpg
(Estou processando os
dados para te aplicar
um xeque-mate)
https://elrobotpescador.files.wordpress.com/2015/02/garry-kasparov-deep-blue-ibm.jpg
18
Tipos Primitivos
• Dividindo as informações manipuladas pelo computador
em 4 tipos básicos:
‒Inteiro
‒Real (ou numérico)
‒Caractere (ou literal)
‒Lógico
Tipos Primitivos
• Inteiro: Números inteiros relativos (negativa, nula, positiva)
‒ Ex.: Ele tem 15 irmãos
• Real: Números reais (negativa, nula, positiva)
‒ Ex.: Ela tem 1,73 metro de altura
• Caractere: Caracteres alfanuméricos
‒ Ex: Constava na prova: "Use somente caneta!"
• Lógico: Pode assumir apenas duas situações
‒ Ex: A lâmpada pode estar acessa ou apagada
19
Exercício 1
• Classifique o conteúdo das variáveis abaixo de acordo com
seu tipo:
0 "abc" "João"
5.7 1012 FALSO
-49 342 569
"Lucas" "Verdadeiro" 0.00001
Verdadeiro "444" -78.1
Exercício 1
• Classifique o conteúdo das variáveis abaixo de acordo com
seu tipo:
20
Armazenamento de Dados
• Os dados são "guardados" na memória e manipulados pelo
processador
Variável
• Trata-se de uma ABSTRAÇÃO de uma célula ou
conjunto de células de memória do computador
21
Variável
• Analogias:
‒ Memória: Armário
‒ Variáveis: Gavetas do armário
‒ Identificadores: Etiquetas das gavetas
‒ Dado: Objeto guardado na gaveta (cada
gaveta armazena um objeto por vez)
‒ Tipo primitivo: Material do objeto, cada
gaveta rotulada armazena o mesmo tipo
de material
‒ Declaração de variáveis: Ação de
etiquetar gavetas especificando qual
material dos objetos serão
armazenados
http://www.oursouthernhomesc.com/wp-content/uploads/2013/05/organized_pantry12-577x1024.jpg
22
Regras de Formação dos
Identificadores
• Cada linguagem possui sua regra de estilo que embora não
seja obrigatório, é recomendável, como por exemplo, não
usar acentuação, escrever variáveis em letras maiúsculas
• Exemplos:
‒ Identificadores válidos: ALPHA, X, BJ153, MEDIA, INSS
‒ Identificadores inválidos: 5X, E(13), A:B, X-Y, NOTA/2,
AWQ*, P&AA
Declaração de Variáveis
• As variáveis devem ser declaradas, ou seja, definir seu
tipo e nome.
23
Exemplos de Declarações
tipo de dado: VARIÁVEL1, VARIÁVEL2, ...,
VARIÁVELN;
• Exemplos:
inteiro: X;
caractere: NOME, ENDEREÇO, DATA;
real: ABC, XPTO, PESO, DÓLAR;
lógico: RESPOSTA, H286;
Constante
• É uma variável vinculada a um valor somente no
momento em que ela é vinculada a um armazenamento
24
1.3 Operadores
Aritméticos, Relacionais
e Lógicos
Expressões Aritméticas
• Operadores aritméticos: utilizados para a realização
de cálculos matemáticos
Operador Função Exemplos
+ Adição 2 + 3, X + Y
- Subtração 4 - 2, N – M
* Multiplicação 3 * 4, A * B
/ Divisão 10 / 2, C / D
pot(x,y) Potenciação (x elevado a y) pot(2, 3)
raiz(x) Raiz quadrada (de x) rad(9)
mod Resto da divisão 9 mod 4 resulta 1
div Quociente da divisão inteira 9 div 4 resulta 2
25
Prioridade das Operações para
Operadores Aritméticos
1. Parênteses mais internos
2. pot, raiz
3. mod, div
*, /
4. +, -
Expressões Lógicas
• Operadores relacionais: utilizados para a estabelecer
relação de comparação entre valores
26
Expressões Lógicas
27
Prioridade das Operações para Todos
os Operadores
1. Parênteses mais internos
2. Operadores aritméticos
3. Operadores relacionais
4. Operadores lógicos
28