• Nenhum resultado encontrado

Fundamentos de Algoritmos(5175/31)

N/A
N/A
Protected

Academic year: 2022

Share "Fundamentos de Algoritmos(5175/31)"

Copied!
35
0
0

Texto

(1)

UEM/DIN Prof. Flávio Uber

UEM/CTC – Departamento de Informática Curso: Ciência da Computação

Professor: Flávio Rogério Uber

Fundamentos de Algoritmos (5175/31)

Material Original: Prof. Yandre Maldonado e Gomes da Costa (UEM/DIN)

(2)

UEM/DIN Prof. Flávio Uber

A disciplina

Professor:

Flávio Rogério Uber

Email: flavio.uber@gmail.com Bloco C56 – Sala 204

Bibliografia:

Nicolas Wirth. Algoritmos e Estruturas de Dados. Editora Prentice-Hall, 1989.

Guimarães & Lages. Algoritmos e Estruturas de Dados. Editora LTC. 2001.

Nivio Ziviani. Projetos de Algoritmos com Implementações dem Java e C++. Editora Thomson. 2007.

(3)

UEM/DIN Prof. Flávio Uber

A Disciplina

Programa

1. Definiçoes

2. Modelagem Algorítmica de Problemas Reais

Tipos de dados básicos

Tipos de dados estruturados

Abstração em nível de comando

Seleção Repetição entrada/saída

Abstração em nível de módulo

Funções e Procedimentos

Execução de Processos

Escopo

Alocação de variáveis Passagem de Parâmetro

3. Técnicas de Construção de Algoritmos

(4)

UEM/DIN Prof. Flávio Uber

Critério de Avaliação

2 Avaliações:

1a Avaliação(Peso 2) 75% Prova / 25% Trabalho 2a Avaliação(Peso 3) 75% Prova / 25% Trabalho

(5)

UEM/DIN Prof. Flávio Uber

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 comportamento padrão.”

Franco e Polidório

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

Forbellone e Eberspächer

(6)

UEM/DIN Prof. Flávio Uber

Algoritmos

“É a descrição de um padrão de comportamento, expressado 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 e Lages

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

Farrer e outros

(7)

UEM/DIN Prof. Flávio Uber

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, produz um resultado final previsível e bem definido.

• Objetivo: solução do problema.

(8)

UEM/DIN Prof. Flávio Uber

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.

– Lógica no dia-a-dia:

• Todo mamífero é animal.

• Todo cavalo é mamífero.

• Portanto, todo cavalo é animal.

(9)

UEM/DIN Prof. Flávio Uber

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;

– 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.

(10)

UEM/DIN Prof. Flávio Uber

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.

“Todo algoritmo deve produzir

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

(11)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Ambigüidade: relacionada à sintaxe e semântica de linguagens naturais.

– “O artista produz formas perfeitas.”

• Linguagens naturais são muito extensas, possuindo ambigüidade;

– Linguagem Natural X Linguagem Computacional

(12)

UEM/DIN Prof. Flávio Uber

Algoritmos

• 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

.

Linguagem Computacional

Linguagem Algorítmica

(13)

UEM/DIN Prof. Flávio Uber

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 de

uma sentença construída.

(14)

UEM/DIN Prof. Flávio Uber

Algoritmos

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

– Exemplo:

• “Descoloridas idéias verdes sonham furiosamente”

(Chomsky)

– Por outro lado:

• “Nóis foi, mais já vortemo”

(15)

UEM/DIN Prof. Flávio Uber

• Algoritmos geralmente descrevem algum processamento de dados:

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

Algoritmos

Dados de Entrada

Dados de Saída Processamento

(Computador)

(16)

UEM/DIN Prof. Flávio Uber

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;

– 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.

* Exemplo do Retângulo

(17)

UEM/DIN Prof. Flávio Uber

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 dentro do caráter específico do comportamento padrão;

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

(18)

UEM/DIN Prof. Flávio Uber

Exercícios

Dada uma equação do 2o. Grau na forma ax

2

+bx + cc = 0 responda:

a) Quais os argumentos de entrada para se calcular as raízes dessa equação?

b) Quais os argumentos de saída, sabendo que o objetivo é calcular as raízes reais da equação?

c) Faça um algoritmo para calcular as raízes da equação.

d) Execute o algoritmo que você fez para resolver a equação: 2x2+2x-2=0

(19)

UEM/DIN Prof. Flávio Uber

Exercício

• Considerando a figura mostrada acima (um 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.

h

b

Dados de Entrada Dados de Saída

(20)

UEM/DIN Prof. Flávio Uber

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 identificador está associado à uma célula de memória.

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

(21)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Em geral, as linguagens de programação exigem nomes de identificadores com as seguintes

característica:

– Use somente letras e números;

– 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.

(22)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Atributos (características) de um objeto:

– Nome;

– Célula de memória;

– Valor associado;

– 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

(23)

UEM/DIN Prof. Flávio Uber

Algoritmos

• O tipo:

– especifica uma classe de valores que podem ser armazenados na célula de memória associada ao identificador;

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

(24)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Tipo de Dado

– Um identificador armazena um único dado num

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

– 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;

(25)

UEM/DIN Prof. Flávio Uber

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 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.

(26)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Os tipos de dados podem variar de uma

linguagem para outra. No entanto, existem dois tipos básicos:

– Tipos simples;

– Tipos estruturados (estudados mais adiante);

Tipos de Dados Simples

Numérico Caracter Lógico

Inteiro Real

(27)

UEM/DIN Prof. Flávio Uber

Algoritmos

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

– Inteiros;

– Reais;

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

decimal;

(28)

UEM/DIN Prof. Flávio Uber

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 inteiro, mas um objeto inteiro não pode receber um valor real;

• Declaração:

LPE Pascal C inteiro integer int

(29)

UEM/DIN Prof. Flávio Uber

Algoritmos

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

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

• Computacionalmente, existem muitas

diferenças entre o armazenamento de

números inteiros e números reais;

(30)

UEM/DIN Prof. Flávio Uber

Algoritmos

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

• Declaração:

LPE Pascal C

real real float

(31)

UEM/DIN Prof. Flávio Uber

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 (~, ., ?, >, <, ...);

– 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.

(32)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Para diferenciar um caracter de um

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

8 é um dado numérico;

‘8’ é um caracter;

A é um identificador;

‘A’ é um caracter

(33)

UEM/DIN Prof. Flávio Uber

Algoritmos

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

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

consiste num tipo de dado estruturado;

– Exemplo:

• ‘Z’ é um caracter;

• ‘ANA’ é uma cadeia de caracteres;

(34)

UEM/DIN Prof. Flávio Uber

Algoritmos

Declaração:

LPE Pascal C

texto char char

(35)

UEM/DIN Prof. Flávio Uber

Algoritmos

• Tipo Lógico: os valores lógicos podem assumir uma entre duas possibilidades (verdadeiro ou falso);

– Só poderá armazenar um destes dois valores;

• Muito utilizados em controle do fluxo lógico do algoritmo;

LPE Pascal C

logico boolean não existe

Referências

Documentos relacionados

Figura 2: Compilação - Ambiente e Zonas de Trabalho Figura 3: Compilação - Entidades/Clientes do Atelier Figura 4: Ambiente de Inserção - Moradia Particular Figura 5:

2. Identifica as personagens do texto.. Indica o tempo da história. Indica o espaço da história. Classifica as palavras quanto ao número de sílabas. Copia do texto três

1- A vida das comunidades recoletoras era muito difícil, devido ao frio intenso e aos animais ferozes, mas também porque era difícil encontrar comida e lugares onde se abrigarem.. 2-

O empregador deverá realizar a avaliação ambiental de poeira de asbesto nos locais de trabalho em intervalos não superiores a seis meses.. Os registros das avaliações deverão

&#34;tendo em vista a estrutura da incorporação pretendida, a Companhia entende que não se faz necessário o atendimento integral ao Artigo 264 da Lei 6.404/76 e à ICVM

1 — As empresas que oferecem redes de comunica- ções públicas ou serviços de comunicações eletrónicas acessíveis ao público são obrigadas a disponibilizar ao público, bem

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e

6 Consideraremos que a narrativa de Lewis Carroll oscila ficcionalmente entre o maravilhoso e o fantástico, chegando mesmo a sugerir-se com aspectos do estranho,