Upload
phungdung
View
221
Download
0
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
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
• 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