71
P Fundamentos da Computação UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado -1 Prof. Yandre Maldonado e Gomes da Costa [email protected]

Prof. Yandre Maldonado e Gomes da Costa - din.uem.bryandre/fundamentos_producao/Fundamentos_Introducao... · O Computador • Unidade de Saída: converte os dados processados para

Embed Size (px)

Citation preview

Prof. Y

andre M

aldonado

Fundamentos da Computação

UNIVERSIDADE ESTADUAL DE MARINGÁDEPARTAMENTO DE INFORMÁTICA

Prof. Y

andre M

aldonado -1

Prof. Yandre Maldonado e Gomes da Costa

[email protected]

Prof. Y

andre M

aldonado

O Computador

• Evolução tecnológica:– Válvulas → primeira geração– Transistor → segunda geração– Circuitos integrados (vários transistores)

Prof. Y

andre M

aldonado -2

– Circuitos integrados (vários transistores) → terceira geração

– Integração em alta escala (VLSI)→ quarta geração

Prof. Y

andre M

aldonado

O Computador

Prof. Y

andre M

aldonado -3

Prof. Y

andre M

aldonado

O Computador

• Estrutura:

Unidade Lógica e Aritmética

Prof. Y

andre M

aldonado -4

Unidade de Entrada

UCP

Memória (Principal)

Unidade de Controle

Unidade de Saída

Prof. Y

andre M

aldonado

O Computador

• Unidade de Entrada: codifica informações introduzidas por dispositivos de entrada para que a UCP possa entender;

• Memória: armazena dados e o programa em execução;P

rof. Y

andre M

aldonado -5

execução;• Unidade Lógica e Aritmética: realiza cálculos

aritméticos e manipulação de dados;• Unidade de Controle: responsável pelo trafego dos

dados:• UE → MEM• MEM → ULA → MEM• MEM → US

Prof. Y

andre M

aldonado

O Computador

• Unidade de Saída: converte os dados processados para um formato que possa ser exibido em dispositivos de saída.

• Hardware: parte física do computador. Formada pelos

Prof. Y

andre M

aldonado -6

• Hardware: parte física do computador. Formada pelos circuitos eletrônicos, dispositivos mecânicos, magnéticos e etc.

• Software: os programas que executam sobre o hardware.

HARDWARE + SOFTWARE = COMPUTADOR

Prof. Y

andre M

aldonado

Software

• Programa em processamento no computador (Fedeli et al., 2003);

• Softwares básicos:

Hardware Software Usuário

Prof. Y

andre M

aldonado -7

• Softwares básicos:

• Programas que definem o padrão do equipamento, sendo

necessários para o funcionamento do computador.

– Tipos:

• sistema operacional

• ambiente operacional

• linguagens de programação (tradutores)

• utilitários

Prof. Y

andre M

aldonado

• Sistema operacional: programa ou

conjunto de programas cuja função é

gerenciar os recursos do sistema;

Software

Prof. Y

andre M

aldonado -8

Prof. Y

andre M

aldonado

• Sistemas operacionais: programa, em geral, fornecidos pelo

fabricante do equipamento.;

• Constituição do sistema operacional: programas escritos em

linguagem de programação de baixo nível;

Software

Prof. Y

andre M

aldonado -9

• Exemplos de sistemas operacionais:

• Linux;

• Windows;

• Mac-OS;

• Android...

Prof. Y

andre M

aldonado

• Ambiente operacional:

• ambientes que adicionam recursos ao sistema operacional

para permitir uma interface gráfica com o usuário, ou seja, é

um sistema operacional com recursos gráficos.

Software

Prof. Y

andre M

aldonado -10

• Exemplo: todas as versões do Windows e Linux incluem um

ambiente operacional.

• Linguagens de programação:

• conjunto de símbolos (vocabulário) e regras (gramática) que

especificam um padrão sintático para estabelecer a

comunicação entre usuários (programadores) e computador.

– Divisão:

• linguagem de baixo nível• linguagem de alto nível

linguagem de máquinalinguagem simbólica

Prof. Y

andre M

aldonado

• Linguagem de máquina:

• baseada em código binário, em 0s e 1s. Interpretada diretamente

pelo computador.

– Exemplo:

Software

Prof. Y

andre M

aldonado -11

– Exemplo:

Linguagem de máquina Significado

0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14

0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15

0001 0001 0010 soma o conteúdo do registrador 1 com o conteúdo do registrador

2 e coloca no registrador 1

0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15

Prof. Y

andre M

aldonado

• Linguagem de baixo nível simbólica:

• simplificação da linguagem de máquina. Faz uso de

códigos mnemônicos para expressar as instruções.

Software

Prof. Y

andre M

aldonado -12

– Exemplo: Assembly

Linguagem de máquina Linguagem simbólica

0010 0001 1110 LOAD R1, val1

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Prof. Y

andre M

aldonado

• Linguagem de alto nível:

• combinação de um conjunto de símbolos de acordo com certas

regras de sintaxe para expressar uma seqüência de operações

de máquina. Linguagem que não exige conhecimento do código

de máquina.

Software

Prof. Y

andre M

aldonado -13

– Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C,

LISP, PROLOG, Phyton etc.

Linguagem de máquina Linguagem simbólica Linguagem de alto nível

0010 0001 1110 LOAD R1, val1 val2 = val1 + val2

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Prof. Y

andre M

aldonado

Algoritmos

• Definições:“Redação que descreve de forma lógica e sem ambigüidades, uma seqüência de passos (ações) para se resolver um problema que tenha um

Prof. Y

andre M

aldonado -14

para se resolver um problema que tenha um comportamento padrão.”

Franco e Polidório

“Uma seqüência de passos que visam atingir um objetivo bem definido.”

Forbellone e Eberspächer

Prof. Y

andre M

aldonado

Algoritmos

“É a descrição de um padrão de comportamento, expressado em termos de um repertório bem definidoe finito de ações primitivas, das quais damos por certo que elas podem ser executadas.”P

rof. Y

andre M

aldonado -15

Guimarães e Lages

“Descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.”

Farrer e outros

Prof. Y

andre M

aldonado

Algoritmos

• O algoritmo deve ensinar a resolver o problema, e não trazer a solução.– Exemplo: receita de bolo;

• Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito,

Prof. Y

andre M

aldonado -16

estado inicial, após um período de tempo finito, produz um resultado final previsível e bem definido.

• Objetivo: solução do problema.

Prof. Y

andre M

aldonado

Algoritmos

• Aspecto lógico: ordenar o pensamento.– Organização seqüencial das ações pertinentes à

solução de um problema;• Exemplo: o bolo só pode ser levado ao forno depois que a

massa estiver pronta.

Prof. Y

andre M

aldonado -17

massa estiver pronta.

– Lógica no dia-a-dia:• Todo mamífero é animal.• Todo cavalo é mamífero.

• Portanto, todo cavalo é animal.

Prof. Y

andre M

aldonado

Algoritmos• Padrão de comportamento: uma seqüência

de ações para resolver um problema.– Exemplos:

• Trocar uma lâmpada (problema cotidiano):– pegue uma escada;– posicione-a sob a lâmpada;

Prof. Y

andre M

aldonado -18

– posicione-a sob a lâmpada;– busque uma lâmpada nova;– suba na escada;– retire a lâmpada velha;– coloque a lâmpada nova.

• Calcular a área de um retângulo (problema matemático):– obtenha a medida da base do retângulo;– obtenha a medida da altura do retângulo;– multiplique a medida da base pela medida da altura.

Prof. Y

andre M

aldonado

Algoritmos

• Aspecto estático e aspecto dinâmico:– Estático: não depende do tempo, mas do espaço

físico onde o algoritmo está sendo escrito;– Dinâmico: como se comporta a execução de cada

ação do algoritmo com o passar do tempo.

Prof. Y

andre M

aldonado -19

ação do algoritmo com o passar do tempo.

“Todo algoritmo deve produzir resultados

corretos, e ser finito tanto estática quanto dinamicamente.”

Prof. Y

andre M

aldonado

Algoritmos

• Ambigüidade: relacionada à sintaxe e semântica de linguagens naturais.– “O artista produz formas perfeitas.”

• Linguagens naturais são muito extensas, Prof. Y

andre M

aldonado -20

• Linguagens naturais são muito extensas, possuindo ambigüidade;– Linguagem Natural X Linguagem Computacional

Prof. Y

andre M

aldonado

Algoritmos

• Nos algoritmos, devemos utilizar construções

Linguagem Computacional

Linguagem Algorítmica

Prof. Y

andre M

aldonado -21

• Nos algoritmos, devemos utilizar construções que executarão uma ação específica bem definida;

• Uma linguagem algorítmica deve ter sintaxe rígida e semântica bem definida;

• Toda linguagem possui sintaxe e semântica.

Prof. Y

andre M

aldonado

Algoritmos

• Sintaxe: dita as regras de como as sentenças e cada um de seus elementos devem ser construídos corretamente;

• Semântica: se preocupa com o significa

Prof. Y

andre M

aldonado -22

• Semântica: se preocupa com o significa de uma sentença construída.

Prof. Y

andre M

aldonado

Algoritmos

• A sintaxe por si só não define completamente uma linguagem.– Exemplo:

• “Descoloridas idéias verdes sonham furiosamente”

Prof. Y

andre M

aldonado -23

• “Descoloridas idéias verdes sonham furiosamente” (Chomsky)

– Por outro lado:• “Nóis foi, mais já vortemo”

Prof. Y

andre M

aldonado

• Todo algoritmo deve ser descrito em alguma linguagem;

• Assim, o algoritmo deve respeitar um padrão sintático;

Algoritmos

Prof. Y

andre M

aldonado -24

padrão sintático;• Primeira linguagem: Pascal;

– Compilador a ser utilizado: Pascalzim

Prof. Y

andre M

aldonado

• Estrutura básica do algoritmo em Pascal:

Algoritmos

program teste;

var

x: integer;

Identificação do algoritmo

Bloco de declarações: variáveis

Prof. Y

andre M

aldonado -25

x: integer;

const

nome = ‘Fulano’;

begin

instruções...

end.

Bloco de declarações: variáveis

Bloco de declarações: constantes

Bloco de comandos

Prof. Y

andre M

aldonado

• Um primeiro algoritmo em Pascal:

Algoritmos

Program Primeiro_programa;Begin

Prof. Y

andre M

aldonado -26

Beginwrite('Engenharia de Produção');

End.

Prof. Y

andre M

aldonado

• Algoritmos geralmente descrevem algum processamento de dados:

Algoritmos

Dados de Dados de Processamento

Prof. Y

andre M

aldonado -27

• Estes dados precisam ser representados (descritos) nos algoritmos;

Dados de Entrada

Dados de Saída

Processamento(Computador)

Prof. Y

andre M

aldonado

Algoritmos

• Um algoritmo para fins computacionais é a descrição de ações que manipulam objetos em função do tempo.– Objetos descrevem o estado computacional;

Prof. Y

andre M

aldonado -28

– Objetos descrevem o estado computacional;– Objetos têm função específica;– Ações são direcionadas aos objetos;– Objetos são definidos como parte do

programa;– Estados diferentes requerem objetos

diferentes.* Objetos frequentemente serão chamados de variáveis.

Prof. Y

andre M

aldonado

Algoritmos

• A cada objeto é associado um nome que identifica este objeto ao longo da programação. Este nome é chamado identificador.

• De forma geral, podemos dizer que um Prof. Y

andre M

aldonado -29

• De forma geral, podemos dizer que um identificador está associado à uma célula de memória.

• O termo variável é freqüentemente utilizado como sinônimo de identificador.

Prof. Y

andre M

aldonado

Algoritmos

• Em geral, as linguagens de programação exigem nomes de identificadores com as seguintes característica:– Use somente letras e números;P

rof. Y

andre M

aldonado -30

– O primeiro caracter do nome deve ser uma letra;– Não é permitido o uso de caracteres especiais.

• Exemplos válidos: ImpostoDeRenda, F1, soma, produto, desconto, SalarioHora.

• Exemplos inválidos: 1f, Imposto-renda, salario hora.

Prof. Y

andre M

aldonado

Algoritmos

• Atributos (características) de um objeto:– Nome;– Célula de memória;– Valor associado;P

rof. Y

andre M

aldonado -31

– Tipo: define a categoria dos dados que podem ser armazenados no objeto.

conteúdo (valor armazenado na célula de memória)

Nome identificador do objeto

célula de memória

Prof. Y

andre M

aldonado

Algoritmos

• O tipo:– especifica uma classe de valores que podem

ser armazenados na célula de memória associada ao identificador;P

rof. Y

andre M

aldonado -32

associada ao identificador;– define as operações válidas sobre o

identificador;

Prof. Y

andre M

aldonado

Algoritmos

• Tipo de Dado– Um identificador armazena um único dado

num instante, mas este dado não pode ser qualquer um;P

rof. Y

andre M

aldonado -33

– Os objetos serão classificados segundo um tipo;

– Os dados podem ter estruturas físicas diferentes;

– As células de memória do computador precisam ser compatíveis com o tipo de dado que vão armazenar;

Prof. Y

andre M

aldonado

Algoritmos

• Devemos informar ao computador qual o tipo de dado que vamos armazenar;

• Esta informação determina quantas células de memória serão necessárias para

Prof. Y

andre M

aldonado -34

de memória serão necessárias para armazenar o dado;

• Esta informação define quais serão as operações possíveis de se aplicar sobre os dados;– Exemplo: em um dado numérico pode-se aplicar

uma operação aritmética.

Prof. Y

andre M

aldonado

Algoritmos

• Os tipos de dados podem variar de uma linguagem para outra. No entanto, existem dois tipos básicos:– Tipos simples;

Prof. Y

andre M

aldonado -35

– Tipos simples;– Tipos estruturados (estudados mais adiante);

Tipos de Dados Simples

Numérico LógicoCaracter

Inteiro Real

Prof. Y

andre M

aldonado

Algoritmos

• Os Tipos de Dados Numéricos são divididos basicamente em dois grandes conjuntos:– Inteiros;

Prof. Y

andre M

aldonado -36

– Inteiros;– Reais;

• Os inteiros podem ser positivos, negativos ou nulos, mas não possuem um componente decimal;

Prof. Y

andre M

aldonado

Algoritmos

• Os inteiros são compatíveis com os reais, mas os reais não são compatíveis com os inteiros;

• Assim, um objeto real pode receber um valor

Prof. Y

andre M

aldonado -37

• Assim, um objeto real pode receber um valor inteiro, mas um objeto inteiro não pode receber um valor real;

• Declaração:– Pascal: integer;– C: int;

Prof. Y

andre M

aldonado

Algoritmos

• Os reais podem ser positivos, negativos ou nulos, e possuem sempre um componente decimal;

• Exemplos: 2,34; 0,0; -214,123;

Prof. Y

andre M

aldonado -38

• Exemplos: 2,34; 0,0; -214,123;• Computacionalmente, existem muitas

diferenças entre o armazenamento de números inteiros e números reais;

Prof. Y

andre M

aldonado

Algoritmos

• Os números inteiros consomem menos espaço de armazenamento em memória;

• Declaração do tipo real:– Pascal: real;

Prof. Y

andre M

aldonado -39

– Pascal: real;– C: float;

Prof. Y

andre M

aldonado

Algoritmos

• Os tipos de dados não numéricos:– Caracter: formado pelas letras (de A a Z, e

de a a z), dígitos (de 0 a 9) e caracteres especiais (~, ., ?, >, <, ...);

Prof. Y

andre M

aldonado -40

especiais (~, ., ?, >, <, ...);– A diferença entre caracteres e dados

numéricos estão na forma de armazenamento, e nas operações legais permitidas sobre os mesmos;

• Exemplo: operações aritméticas sobre os dados numéricos.

Prof. Y

andre M

aldonado

Algoritmos

• Para diferenciar um caracter de um identificador ou de um dado numérico, utilizaremos apóstrofes. Assim:

Prof. Y

andre M

aldonado -41

– 8 é um dado numérico;– ‘8’ é um caracter;– A é um identificador;– ‘A’ é um caracter

Prof. Y

andre M

aldonado

Algoritmos

• Objetos declarados como do tipo caracterpoderão armazenar um único caracter;

• Para armazenar uma seqüência de caracteres será utilizada a estrutura cadeia de caracteres, P

rof. Y

andre M

aldonado -42

será utilizada a estrutura cadeia de caracteres, que consiste num tipo de dado estruturado;– Exemplo:

• ‘Z’ é um caracter;• ‘ANA’ é uma cadeia de caracteres;

• Declaração do tipo caracter:– Pascal e C: char;

Prof. Y

andre M

aldonado

Algoritmos

• Tipo Lógico: os valores lógicos podem assumir uma entre duas possibilidades (verdadeiro ou falso);– Só poderá armazenar um destes dois valores;

Prof. Y

andre M

aldonado -43

– Só poderá armazenar um destes dois valores;

• Muito utilizados em controle do fluxo lógico do algoritmo;– Pascal: boolean;– C: não definido;

Prof. Y

andre M

aldonado

Algoritmos

• Declaração do tipo do identificador (objeto): em Pascal.

var

Prof. Y

andre M

aldonado -44

var

identificador: tipo;

Prof. Y

andre M

aldonado

Algoritmos

• Caso haja mais de uma variável do mesmo tipo:

var

identificador1, identificador2: tipo;Prof. Y

andre M

aldonado -45

• Se houver identificadores de tipos diferentes (inteiro,real, lógico):

var

i1, i2, i3: integer;

r1, r2: real;

l1: boolean;

Prof. Y

andre M

aldonado

Algoritmos

• Escolha do tipo de um identificador: deve-se conhecer bem a solução do problema.– Exemplos de inteiros:

• número de pessoas;• um número par ou ímpar;

Prof. Y

andre M

aldonado -46

• um número par ou ímpar;• idade de uma pessoa;• quantidade de objetos;

– Exemplos de reais:• o peso de uma pessoa;• um percentual;• nota de uma avaliação;• média;• preço de um produto;

Prof. Y

andre M

aldonado

Algoritmos

• Situações de dúvida– Exemplos:

• raíz quadrada de um número;• divisão entre dois números inteiros;

Prof. Y

andre M

aldonado -47

• divisão entre dois números inteiros;

• Quando houver alguma possibilidade de um identificador numérico receber um valor não inteiro, deve ser declarado como real.

Inteiros

Reais

Prof. Y

andre M

aldonado

• Valores dos dados– os dados são valores que são armazenados em

células de memória e que são acessados (ao longo do algoritmo) por referêcia aos identificadores;

Algoritmos

Prof. Y

andre M

aldonado -48

– assim, se tivermos os identificadores i, r e l, para objetos do tipo inteiro, real e lógico respectivamente, e atribuírmos os valores 100; 3,14; e falso, teríamos a seguinte configuração:

– Estes são os valores exibidos quando se utiliza a instrução escreva.

100 falso3,14

i r l

Prof. Y

andre M

aldonado

Algoritmos

• Argumentos de Entrada e Saída– Entrada: objetos cujos valores são

conhecidos em tempo de execução;• permitem um comportamento mais genérico

Prof. Y

andre M

aldonado -49

• permitem um comportamento mais genérico dentro do caráter específico do comportamento padrão;

– Saída: objetos que armazenam a solução objetivo de um problema;

Prof. Y

andre M

aldonado

Algoritmos

• Exemplo:considerando a figura mostrada acima (um retângulo), faça um algoritmo que calcule a área da

h

b

Prof. Y

andre M

aldonado -50

retângulo), faça um algoritmo que calcule a área da mesma.

• Neste problema existem três valores (estados) a serem representados:– Altura do retângulo (h);– Largura (ou base) do retângulo (b);– Área do retângulo.

Dados de Entrada

Dados de Saída

Prof. Y

andre M

aldonado

• Solução em Pascal:

Algoritmos

program retangulo;

varh, b, area: real;

Prof. Y

andre M

aldonado -51

h, b, area: real;

beginwrite ('Digite um valor para a altura do retângulo: ');read (h);write ('Digite um valor para a base do retângulo: ');read (b);area := h*b;write ('Valor da área: ', area);

end.

Prof. Y

andre M

aldonado

Algoritmos

• Nesta solução, os valores de a e de h só serão conhecidos em tempo de execução, e deverão ser fornecidos pela pessoa que executa o algoritmo.

• Assim, a preocupação não é com o valor do resultado produzido, e sim com a produção de resultados corretos.

Prof. Y

andre M

aldonado -52

produzido, e sim com a produção de resultados corretos.

• Questão 01: Qual é o valor final do objeto área informado pelo descrito algoritmo no slide anterior?

Prof. Y

andre M

aldonado

Algoritmos• Exemplo: no algoritmo para calcular a área de um triângulo

retângulo, descrito abaixo, os objetos base e altura são argumentos de entrada, enquanto o objeto area é argumento de saída.

program triangulo;

var

123

Prof. Y

andre M

aldonado -53

varbase, altura, area: real;

beginwrite ('Digite um valor para a altura do retângulo: ');read (altura);write ('Digite um valor para a base do retângulo: ');read (base);area := altura*base/2;write ('Valor da área: ', area);

end.

3456789

10111213

Prof. Y

andre M

aldonado

Algoritmos

• Teste de mesa: tabela que demonstra os resultados obtidos ao longo da execução de um algoritmo.– Exemplo: execução do algoritmo do slide 26 para entrada

dos valores 3 para o objeto base e 5 para o objeto altura;

Prof. Y

andre M

aldonado -54

dos valores 3 para o objeto base e 5 para o objeto altura;

Linha Base Altura Area

8 - 5 -

10 3 5 -

11 3 5 7.5

12 3 5 7.5

Prof. Y

andre M

aldonado

Algoritmos

• Escreva um algoritmo que calcule o diâmetro, a área e a circunferência de um círculo, sabendo que o único dado disponível é o seu raio.

– Diâmetro = 2 * Raio– Área = Pi * Raio * Raio– Circunferência= 2 * Pi * Raio

Prof. Y

andre M

aldonado -55

– Circunferência= 2 * Pi * Raio

• Ler dois números inteiros e imprimir a soma.• Entrar com dois números inteiros e imprimir a média aritmética.• Criar um algoritmo que solicite e imprima os valores da diagonal

maior, diagonal menor e calcule a área de um losango. – Fórmula: (diagonal maior * diagonal menor) dividido por 2

• Elaborar um algoritmo para calcular e apresentar o volume de uma lata de óleo, utilizando a fórmula: VOLUME = 3.14159 * (R*R) * ALTURA.

Prof. Y

andre M

aldonado

Algoritmos

• Escreva um programa em Pascal que pergunte o nome a altura (em metros) e a massa (em Kg) do usuário. Em seguida o programa deverá exibir uma mensagem

Prof. Y

andre M

aldonado -56

programa deverá exibir uma mensagem dizendo o nome do usuário e a sua densidade corporal.– Densidade = peso / altura2

Prof. Y

andre M

aldonado

Algritmos

• Operadores Aritméticos

I*

Operador PrioridadeSignificado

multiplicação

Prof. Y

andre M

aldonado -57

• As operações são realizadas em uma expressão de acordo com a ordem de prioridade. Quando houver empate entre operações, elas serão realizadas da esquerda para a direita.

+

divisão

adição

- subtração II

II

I

I*

/

multiplicação

Prof. Y

andre M

aldonado

Algoritmos

Expressão Matemática Expressão Algoritmica

2.a+b 2*a+b

a*x^2a.x2

Expressões Aritméticas

Prof. Y

andre M

aldonado -58

• Os parênteses quebram o ordem de prioridade natural.

a a/2+b2 +b

a2+b

a/2+b

a/(2+b)

errado

certo

Prof. Y

andre M

aldonado

Algoritmos

• Quando houverem parênteses aninhados, a prioridade será do mais interno.

a / (a + b) - (2 * (b + c))

Prof. Y

andre M

aldonado -59

a / (a + b) - (2 * (b + c))1 2

34

5

Prof. Y

andre M

aldonado

Algoritmos• Operadores Relacionais

– Comparação entre objetos (ou entre um objeto e um valor) do mesmo tipo;

– O resultado será sempre do tipo lógico (V ou F);

Operador Exemplo de usoSignificado

Prof. Y

andre M

aldonado -60

Operador Exemplo de usoSignificado

> A>B, 4>3, C>3

=

Diferente de

Igual a

<= Menor ou igual a B*A<=0

A=0

A+B<>C

Menor que 2*A<B

Maior que

<

<>

>= Maior ou igual a ‘a’>=‘b'

Prof. Y

andre M

aldonado

Algoritmos

• O operador relacional perde em prioridade para os operadores aritméticos;

• O operador relacional é binário, isto é, ele deve envolver um operando a sua esquerda e um a P

rof. Y

andre M

aldonado -61

envolver um operando a sua esquerda e um a sua direita.

• Assim, a expressão -3 < X <=2 não é válida, pois nela X está relacionando-se com outros dois operandos. Para isto, teremos que utilizar um operador lógico.

Prof. Y

andre M

aldonado

Algoritmos

• Exercício: qual o resultado da expressão relacional A+3 > B quando:– A tem valor igual a 5 e B igual a 8;– A tem valor igual a 0 e B igual a -3;

Prof. Y

andre M

aldonado -62

– A tem valor igual a 0 e B igual a -3;– A tem valor igual a 1 e B igual a 1;– A tem valor igual a -3 e B igual a 1;

Prof. Y

andre M

aldonado

Algoritmos

• Operadores Lógicos– Constrói expressão lógica que envolve operandos

lógicos;– Utilizados no processo de tomada de decisão e

Prof. Y

andre M

aldonado -63

– Utilizados no processo de tomada de decisão e em controles de repetição;

– Operadores:• e - usado na conjunção de proposições, em Pascal ‘and’• ou - usado na disjunção de proposições, em Pascal ‘or’• não - usado na negação de proposições, em Pascal ‘not’

– Proposição é qualquer elemento que possa produzir valor lógico (variável lógica, expressão relacional ou expressão lógica);

Prof. Y

andre M

aldonado

Algoritmos

• Os operadores and e or são binários;• O operador not é unário;• Ordem de prioridade:

– not → I

Prof. Y

andre M

aldonado -64

– not → I– and → II– or → III

Prof. Y

andre M

aldonado

Algoritmos

• A expressão A e B será verdadeira quando o operando A e o operando B produzirem resultados verdadeiros simultaneamente. Qualquer outra combinação de valores destes operandos produzirá resultado falso;

Prof. Y

andre M

aldonado -65

operandos produzirá resultado falso;• A expressão A ou B será verdadeira quando

uma das proposições (operando A e B) produzir resultado verdadeiro;

Prof. Y

andre M

aldonado

Algoritmos

• Tabela do operador e:

A B A e BV VV

Prof. Y

andre M

aldonado -66

V VV

V F F

F V F

F F F

Prof. Y

andre M

aldonado

Algoritmos

• Tabela do operador ou:

A B A ou BV VV

Prof. Y

andre M

aldonado -67

V VV

V F V

F V V

F F F

Prof. Y

andre M

aldonado

Algoritmos

• Tabela do operador não:

A não A

V F

Prof. Y

andre M

aldonado -68

• Agora, com o uso de operador lógico, pode-se representar a expressão y<=x<z da seguinte forma:

(y<=x) e (x<z)

V F

F V

Prof. Y

andre M

aldonado

Algoritmos

• Prioridade geral de operadores

Operadores Ordem de prioridade

não I

III*, /, e

Prof. Y

andre M

aldonado -69

• Exercício: encontre as prioridades das operações envolvidas na seguinte expressão

não((A>B)ou(A+B<C)e(C<D))

<, >, <>, <=, >=, = V

IV

III*, /, e

+, -, ou

Prof. Y

andre M

aldonado

Sugestões Bibliográficas

• FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da Computação. São Paulo: Pioneira ThomsonLearning, 2003.

• WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Prentice-Hall do Brasil, 1989.

• VELOSO, P.; SANTOS, C.; AZEREDO, P.; FURTADO, A. Estruturas de Dados. Rio de Janeiro: Editora Câmpus, 1984.

Prof. Y

andre M

aldonado -70

Estruturas de Dados. Rio de Janeiro: Editora Câmpus, 1984.• AZEREDO, P. A. de. Métodos de Classificação de Dados e

Análise de Suas Complexidades. Rio de Janeiro: Editora Câmpus, 1996.

• FORBELLONE, A. L. V. & EBERSPACHER, H. F. Lógica de Programação - A Construçãode Algoritmos e Estruturas de Dados. São Paulo: MakronBooks, 2000.

Prof. Y

andre M

aldonado

• SALVETTI, D. D.; BARBOSA, L. M. Algoritmos. São Paulo:Makron Books, 1998.

• MANZANO, J. A.; OLIVEIRA, J. F. Estudo Dirigido – Algoritmos. São Paulo: Editora Érica, 1997.

• FARRER, H. e outros. Algorimtos Estruturados. Rio de Janerio: LTC, 1989.

• GUIMARÃES, A. M.; LAGES, N. A. C. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1985.

Sugestões Bibliográficas

Prof. Y

andre M

aldonado -71

Dados. Rio de Janeiro: LTC, 1985.• Apostila:

– Algoritmos: uma abordagem sintática e semânticaUniversidade Estadual de MaringáAirton Polidório e Clélia Franco