73
Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Embed Size (px)

Citation preview

Page 1: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Introdução aos Algoritmos

Page 2: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Recapitulando:

- Nas últimas aulas os seguintes pontos foram estudados:

- Funcionamento de um computador simplificado

- Funcionamento de um computador digital

- Sistemas de numeração

Page 3: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Objetivos da aula:

- Definir algoritmo

- Apresentar diferentes maneiras de representar um algoritmo

- Apresentar os conceitos necessários para elaborar algoritmos utilizando pseudocódigo

Page 4: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Definições de algoritmo:

1 – Um algoritmo pode ser definido como uma seqüência de passos que visam a atingir um objetivo bem definido [Forbellone, 2005].

2 – Um algoritmo é a descrição de um padrão de comportamento, expresso em termos de um repertório bem definido e finito de ações “primitivas”, das quais damos por certo que elas podem ser executadas [Guimarães, 1985].

Page 5: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Por que é importante construir um algoritmo?

- Um algoritmo representa mais fielmente o raciocínio envolvido na Lógica de Programação

- Abstrai detalhes computacionais - Uma vez construído o algoritmo, pode-se traduzi-lo

para qualquer linguagem. Chama-se isto de codificação

Page 6: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Selecione a ovelhaAperte GOSolte a ovelhaAperte GOPegue o repolhoAperte GO

Primeiro pegue a ovelha e atravesse o rio;volte para margem direita;pegue o lobo e atravesse o rio;pegue a ovelha que está na margem esquerda e leve-a novamente para a margem direita;

Cima, Cima, Lâmpada

C, C, L

Page 7: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Tipos de algoritmos:É possível representar um algoritmo utilizando diferentes formalismos:

- Descrição narrativa: utiliza linguagem natural para especificar os passos para realização das tarefas pouco utilizado

- Fluxogramas: forma universal de representação, utiliza figuras geométricas para ilustrar os passos a serem seguidos para resolução dos problemas

- Pseudocódigo: utiliza linguagem estruturada e assemelha-se aos programas escritos em linguagens de alto nível bastante utilizado para representar a resolução de problemas computacionais

Page 8: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Tipos de algoritmos:

- Descrição narrativa

- Fluxogramas

- Pseudocódigo

Page 9: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Descrição narrativa:

O exemplo da troca de lâmpada é um exemplo de algoritmo em descrição narrativa:

1. Pegar uma escada; 2. Posicionar a escada embaixo da lâmpada;3. Buscar uma lâmpada nova;4. Subir na escada;5. Retirar a lâmpada velha;6. Colocar a lâmpada nova;7. Descer da escada.

Page 10: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

- A seqüência de ações rege o fluxo de execução do algoritmo, determinando qual a primeira ação a ser executada e qual ação vem a seguir

- E se por acaso a lâmpada não estivesse queimada? Aconteceria uma troca desnecessária e o algoritmo não trataria esta situação

- O que poderia ser feito para melhorar o algoritmo?

Page 11: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Troca de Lâmpada com Teste (descrição narrativa)

1. Pegar uma escada; 2. Posicionar a escada embaixo da lâmpada;3. Buscar uma lâmpada nova;4. Acionar o interruptor;5. Se a lâmpada não acender, então

a)Subir na escada;b)Retirar a lâmpada velha;c) Colocar a lâmpada nova;d)Descer da escada.

O teste poderia ser realizado em outra etapa?

Page 12: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Troca de Lâmpada com Teste Versão 2

1. Acionar o interruptor;2. Se a lâmpada não acender, então

a)Pegar uma escada;b)Posicionar a escada embaixo da lâmpada;c) Buscar uma lâmpada nova;d)Acionar o interruptor;e)Subir na escada;f) Retirar a lâmpada velha;g)Colocar a lâmpada nova;h)Descer da escada.

E se a lâmpada nova não acender?

Page 13: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Tipos de algoritmos:

- Descrição narrativa

- Fluxogramas

- Pseudocódigo

Page 14: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Fluxogramas:

- Uma maneira gráfica de representar um algoritmo

- Muitas vezes é uma maneira mais sucinta de escrever um algoritmo

- Para compreender um fluxograma é preciso conhecer os seus elementos (usaremos fluxogramas simplificados):

- Início e fim do algoritmo- Tarefas ou ações- Testes- Seqüência

Page 15: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Início ou Fim do algoritmo:

Início

Fim

Page 16: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Seqüência:

Page 17: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Ação ou Tarefa:

ação

Teste condicional:Verdadeiro

Falso

Page 18: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Fluxograma da troca de lâmpada com testeinício

Pegar escada

acionar o interruptor

subir na escada

posicionar escada

buscar lâmpada nova

acendeu?

retirar a lâmpada queimada

colocar lâmpada nova

fim

V

F

Descrição narrativa

1.Pegar uma escada; 2.Posicionar a escada embaixo da lâmpada;3.Buscar uma lâmpada nova;4.Acionar o interruptor;5.Se a lâmpada não acender, então:

a) Subir na escada;b) Retirar a lâmpada velha;c) Colocar a lâmpada nova;d) Descer da escada.

Page 19: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Tipos de algoritmos:

- Descrição narrativa

- Fluxogramas

- Pseudocódigo

Page 20: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Pseudocódigo:

- Forma de representação de algoritmos que utiliza uma linguagem flexível, intermediária entre a linguagem natural e a linguagem de programação

- O nome pseudocódigo significa “falso código”, e esse nome se deve a proximidade que existe entre um algoritmo escrito em pseudocódigo e a maneira que um programa é representado em uma linguagem de programação

Page 21: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Exemplo de pseudocódigo:

Início // começo do algoritmo

real: N1, N2, N3, N4,MA; //declaração de variáveis

leia (N1, N2, N3, N4); //entrada de dados

MA (N1 + N2 + N3 + N4) / 4; //processamento

escreva(MA); //saída de dados

se (MA >= 7) então

escreva(“Aluno aprovado!”);

fimse;

Fim. // término do algoritmo

Page 22: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Pseudocódigo:

- Para escrever algoritmos em pseudocódigo é preciso antes abordar alguns conceitos importantes:

- tipos primitivos

- variáveis

- expressões aritméticas, lógicas e relacionais

- comando de atribuição

- comandos de entrada e saída

- blocos

Page 23: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 24: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Informação

- Os computadores são capazes de armazenar e manipular uma grande quantidade de informação

- É possível dividir as informações em quatro tipos primitivos (tipos básicos dos algoritmos):

1. Inteiros2. Reais3. Caracteres4. Lógicos

Page 25: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Inteiro

- Qualquer informação numérica que pertença ao conjunto dos números inteiros (negativo, nulo ou positivo)

Ex: -1 | 0 | 1 | 2 | 3 | 4

- Algumas proposições declarativas usando tipo inteiro:

a) Ele tem 15 irmãos.

b) A escada possui 8 degraus.

c) Meu vizinho comprou 2 carros novos.

Page 26: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Real

- Qualquer informação numérica que pertença ao conjunto dos números reais (negativo, nulo ou positivo)

Ex: 13,48 | 105,56 | 0,0001 | -15,545

- Algumas proposições declarativas usando tipo real:a) Ela tem 1,73 metros de altura.

b) Meu saldo bancário é R$ 1,00.

c) No momento estou pesando 54,0 Kg.

Page 27: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Caracter

- Qualquer informação composta por um conjunto de caracteres alfanuméricos: numéricos (0...9), alfabéticos (A...Z, a...z) e especiais (!, @, #, $, %, <, ...)

Ex: EMB5013 | UFSC | 1

- Algumas proposições declarativas usando tipo caracter:

a)Constava na prova: “Use somente caneta!”.

b) Aviso “Não pise na grama”.

c) Meu nome é “Tatiana Garcia”.

Page 28: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Lógico

- Qualquer informação que possa assumir apenas duas situações, ou seja, somente dois estados.

Ex: Sim ou Não | 0 ou 1 | Homem ou Mulher

- Algumas proposições declarativas usando tipo lógico:

a) A porta pode ficar aberta ou fechada.

b) A lâmpada pode estar acesa ou apagada.

Page 29: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Constantes

- Um dado é constante quando não sofre nenhuma variação no decorrer do tempo

- O valor é constante desde o início até o fim da execução do algoritmo, assim como é constante para diferentes execuções no tempo

- Exemplo: PI = 3,1416

- Constantes do tipo lógico assumem um de dois valores: Verdade (V) ou Falsidade (F)

Page 30: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Variável

- Um dado é classificado como variável quando tem a possibilidade de ser alterado em algum instante no decorrer do tempo

- Exemplos: peso, nota, cor, valor, taxa...

- Exemplo: A fórmula para calcular a área de uma circunferência pode ser expressa utilizando constante e variável Pi * R2

- Pi é uma constante e R uma variável

Page 31: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Identificadores

- Os nomes dados às variáveis são denominados identificadores

- As linguagens de programação definem regras para criação dos identificadores (e podem variar de acordo com o conjunto de palavras reservadas da linguagem)

Page 32: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Identificadores

- A sintaxe que vamos adotar segue as seguintes regras para os identificadores:

1. Devem começar por um caracter alfabético

2. Podem ser seguidos por mais caracteres alfabéticos ou numéricos

3. Não devem ser usados caracteres especiais (símbolos que podem representar alguma operação)

4. Não deve conter espaços

Page 33: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Identificadores

- Identificadores Válidos:

Alpha, X, BJ153, K7, Notas, Media, ABC, INPS, FGTS

- Identificadores Inválidos:

5X, E(13), A:B, X-Y, Nota/2, AWQ*3, P&AA

Page 34: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Declaração de Variáveis

- Todas as informações que serão usadas em nossos algoritmos ficam armazenadas na memória do computador

- Para poder gravar as informações e posteriormente resgatá-las é preciso associar um tipo e identificador a esta informação

- Este processo recebe o nome de Declaração de Variáveis

- As variáveis servem para identificar os dados

Page 35: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Declaração de Variáveis

- Será adotada a seguinte regra sintática para declaração de variáveis:

Tipo da Variável: identificador 1, identificador2, ... ;

- Tipo: um dos 4 tipos primitivos

- Identificador: o nome que desejo dar para minha variável

- Uma vez definido o tipo da variável ela não pode receber valores de outros tipos

Page 36: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Declaração de Variáveis

- Exemplos:

Inteiro: numero, valor, soma;

Real: juros, salário;

Caracter: nome, sobrenome, rua;

Lógico: resposta;

resposta => V ou F

Page 37: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Declaração de Variáveis

- Cuidados na hora de declarar variáveis:

a) Não criar mais de uma variável com o mesmo identificador (nome)

b) Respeitar os tipos de dados, ou seja, o tipo Lógico deve armazenar somente valores lógicos e não Inteiro, Caracter ou Real, este mesmo cuidado você deve ter com os outros tipos

c) Definir os identificadores com nomes que associem ele ao valor que armazena

Page 38: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 39: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Expressões Aritméticas

- Para escrever algoritmos em pseudocódigo é preciso saber como trabalhar com expressões aritméticas e expressões lógicas

- Denomina-se expressão aritmética aquela cujos operadores são aritméticos e cujos operandos são constantes ou variáveis do tipo numérico (Inteiro ou Real)

Page 40: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Aritméticos

-Os operadores aritméticos são utilizados para realizar os 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)

rad(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

Page 41: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Aritméticos

- Alguns operadores não são convencionais, como mod e o div

- Eles são bastantes utilizados na construção de algoritmos

- Uma expressão aritmética pode conter vários operadores diferentes, e as operações devem seguir uma hierarquia de execução regras de precedência

Page 42: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Prioridades dos operadores aritméticos

1) parênteses mais internos

2) pot rad

3) * / div mod

4) + -

Em caso de empate (mesma prioridade) devemos resolver a expressão da esquerda para direita, conforme a seqüência de operadores existentes na expressão

Page 43: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Exemplos:

X = 5 + 9 + 7 + 8 / 4 X = 5 + 9 + 7 + 2X = 23

Y = 4/2 + rad(1 + 3 * 5) / 2Y = 4/2 + rad(1 + 15) / 2Y = 4/2 + rad(16) /2Y = 4/2 + 4 /2Y = 2 + 4/2Y = 2 + 2Y = 4

Page 44: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 45: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Expressões Lógicas

- Denominamos expressão lógica aquela cujos operadores são lógicos ou relacionais e cujos operandos são relações, variáveis ou constantes do tipo lógico

- Operadores relacionais: utilizados para a estabelecer relação de comparação entre valores de mesmo tipo primitivo

Page 46: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Relacionais

Operador Função Exemplos

= Igual a 3 = 3, X = Y

> Maior que 5 > 4, X > Y

< Menor que 3 < 6, X < Y, X < 4

>= Maior ou igual a 5 >= 3, X >= Y

<= Menor ou igual a 3 <= 5, X <= Y

<> Diferente de 8 <> 9, X <> Y

Page 47: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Relacionais

- O resultado obtido de uma relação é sempre um valor lógico:

2 * 4 = 24 / 3

8 = 8

V

Page 48: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Lógicos

- Utilizaremos três operadores para efetuar avaliações lógicas entre valores

- Os operadores são:

Operador Função Exemplos

não Negação não V, não X

e Conjunção V e V, X e Y

ou Disjunção V ou V, X ou Y

Page 49: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Tabela Verdade

-Tabela verdade é o conjunto de todas as possibilidades combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram apenas duas situações (V ou F), e um conjunto de operadores lógicos

- Constrói-se uma tabela verdade com o objetivo de dispor de uma maneira prática os valores lógicos envolvidos em uma expressão lógica

- Cada operador tem a sua tabela verdade

Page 50: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Lógicos

- uma operação “ou” retorna V quando pelos menos um dos elementos é V

- uma operação “e” retorna V quanto todos os elementos são V

A B A e B

F F F

F V F

V F F

V V V

A B A ou B

F F F

F V V

V F V

V V V

A não A

F V

V F

Page 51: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Operadores Lógicos

Exemplos:1)Se chover e relampejar, eu fico em casa.

Quando eu fico em casa?

Quando acontecerem as duas ações – chover e relampejar

2) Se chover ou relampejar eu fico em casa.

Quando eu fico em casa?

Quando pelo menos uma das ações acontecerem – chover ou relampejar

- Os operadores lógicos também seguem uma regra de precedência

Page 52: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Prioridades dos operadores lógicos

1) não

2) e

3) ou

E quando a expressão conter expressões aritméticas e lógicas? Qual regra de precedência seguir?

Page 53: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Prioridades entre todos os operadores:

1) parênteses mais internos

2) operadores aritméticos

3) operadores relacionais

4) operadores lógicos

Esta regra pode sofrer alterações dependendo da linguagem de programação

Page 54: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de ComputadoresExemplo:

pot(2,4) <> 4 + 2 ou 2 + 3 * 5/3 mod 5 < 0

16 <> 4 + 2 ou 2 + 3 * 5 / 3 mod 5 < 0

16 <> 4 + 2 ou 2 + 15/3 mod 5 < 0

16 <> 4 + 2 ou 2 + 5 mod 5 < 0

16 <> 4 + 2 ou 2 + 0 < 0

16 <> 6 ou 2 + 0 < 0

16 <> 6 ou 2 < 0

V ou 2 < 0

V ou F

V

Page 55: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de ComputadoresExemplo:

não ((5 <> 10/2) ou V e 2 – 5 > 5 – 2 ou V)

não ((5 <> 5) ou V e 2 – 5 > 5 – 2 ou V)

não (F ou V e 2 – 5 > 5 – 2 ou V)

não (F ou V e -3 > 5 – 2 ou V)

não (F ou V e -3 > 3 ou V)

não (F ou V e F ou V)

não (F ou F ou V)

não(F ou V)

não(V)

F resultado final da expressão

Page 56: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 57: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Um comando de atribuição em um algoritmo permite associar um valor a uma variável

- O tipo de dado deve ser compatível com tipo que a variável foi declarada

- Cada variável pode receber apenas um valor de cada vez. O segundo valor sobrepõe-se ao anterior

- Sintaxe: variável valor;

Page 58: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Algumas regras (para pseudocódigo):

1) A esquerda do símbolo só deve existir uma variável:

Certo: x 20;

Errado: x, y, t 10;

2) Podemos atribuir expressões aritméticas e lógicas as variáveis, porém primeiro as expressões devem ser resolvidas para depois fazermos as atribuições.

Certo: c b + c + 1;

Errado: c + 1 b + c;

Page 59: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Podem ser atribuídos: constantes, variáveis e expressões (aritméticas, relacionais ou lógicas)

- Exemplo 1:

Inteiro: idade;

Idade 28;

- Exemplo 2:

Inteiro: idade;

Idade 3,5; (ERRO)

Page 60: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Exemplo 3:

lógico: A, B;

inteiro: X;

X 8 + 13 div 5;

B 5 = 3;

A B;

X 2;

- Qual os valores gravados nas variáveis depois do processamento?

Page 61: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Exemplo 3:

lógico: A, B;

inteiro: X;

X 8 + 13 div 5;

B 5 = 3;

A B;

X 2;

- Qual os valores gravados nas variáveis depois do processamento? B = F; A = F; X = 2

Page 62: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Que erros existem nos comandos de atribuição abaixo:

lógico: A;

real: B, C;

inteiro: D;

A B = C;

D B;

C+1 B+C;

C e B 3.5;

B pot(6,2)/3 <= rad(9) * 4

Page 63: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comando de atribuição

- Que erros existem nos comandos de atribuição abaixo:

lógico: A;

real: B, C;

inteiro: D;

A B = C;

D B; → inteiro recebendo real

C+1 B+C; → operação no lado esquerdo

C e B 3.5; → operação no lado esquerdo

B pot(6,2)/3 <= rad(9) * 4 → real recebendo lógico

Page 64: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 65: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comandos de entrada e saída

- Os algoritmos precisam ser alimentados com dados provenientes do meio externo para efetuarem as operações e cálculos que são necessários a fim de alcançar o resultado desejado

- Algoritmo = Entrada + Processamento + Saída

Page 66: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comandos de entrada e saída

- O comando utilizado para representar a entrada de dados é o leia()

- O comando simplesmente atribui um valor lido da entrada (geralmente o teclado) para uma variável

- Exemplos:

leia(X);

leia (nota1, nota2);

- Sintaxe:

leia (variável, variável, ...);

Page 67: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Comandos de entrada e saída

- O comando utilizado para representar a saída de dados é o escreva()

- O comando simplesmente exibe valores das variáveis ou mensagens ao mundo exterior

- Exemplos:

escreva(X);

escreva (“Nota1 = ”, nota1);

- Sintaxe:

escreva (variável, variável, ...);

Page 68: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Para escrever pseudocódigo é preciso saber:

a) Variáveis

b) Expressões aritméticas

c) Expressões lógicas e relacionais

d) Comando de atribuição

e) Comandos de entrada e saída

f) Blocos

Page 69: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Blocos

- Um bloco pode ser definido como um conjunto de ações com uma função definida

- Um algoritmo pode ser visto como um grande bloco e pode conter vários blocos

- Serve para definir os limites nos quais as variáveis declaradas em seu interior são conhecidas

- Delimitadores utilizados: início e fim

Page 70: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Blocos

- Sintaxe:

início // início do bloco (algoritmo)

// declaração de variáveis

// seqüência de ações (eventualmente mais blocos)

fim. // fim do bloco (algoritmo)

// utilizado para representar comentários

Page 71: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Exemplo de algoritmo em pseudocódigo:

Início

inteiro: x, y;

leia(x);

y pot(x,3)

escreva(x, “elevado ao cubo = “, y)

Fim.

Page 72: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Próxima aula:

- Algoritmos seqüenciais

- Estruturas de controle condicionais

Page 73: Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira Introdução à Programação de Computadores Introdução aos Algoritmos

Professora: Tatiana Renata Garcia com adaptações do professor Benjamin Grando Moreira

Introdução à Programação de Computadores

Referências:

FORBELLONE, A. L. V.; EBERSPACHER, H. F., Lógica de Programação, 3a Edição, São Paulo, Pearson Prentice Hall, 2005.

PUGA, S. RISSETTI, G. Lógica de Programação e Estruturas de Dados com aplicações em Java. 2ª edição, Pearson Prentice Hall, São Paulo, 2009.

GUIMARÃES, A. M.; LAGES, N. A. C. Introdução à Ciência da Computação. LTC: Rio de Janeiro, 2009 [reimpressão]