Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.

30
Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez

Transcript of Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.

Algoritmos e Estruturas de Dados I - Introdução

Profa. Mercedes Gonzales Márquez

Conceitos Básicos

Computadores – máquinas capazes de solucionar problemas, mas que só agem quando recebem instruções nos mínimos detalhes.

A tarefa principal dos computadores é o processamento de dados, ou seja, receber dados (entrada), realizar operações (processamento propriamente dito) e gerar uma resposta (saída).

Conceitos Básicos

MEMÓRIA

UNIDADE DE

ENTRADA

UNIDADEDE

SAIDA

UNIDADE DE

CONTROLE

UNIDADELÓGICA E

ARITMÉTICA

Unidade Central de Processamento (UCP)

Estrutura de um computadorEstrutura de um computador

Conceitos básicos

Unidade de entrada – Traduz informação de um dispositivo de entrada em um código que a UCP entende (padrões de pulsos elétricos compreensíveis ao computador).

Unidade de saída – converte os dados processados, de pulsos elétricos em palavras ou números que podem ser escritos em vídeos ou outros dispositivos de saída.

Exemplos ue:– Teclado – drive de CD / DVD-ROM, pen drive.

Conceitos básicos– joystick, – câmera filmadora, – câmera digital, – tela sensível ao toque, – mesa gráfica,– caneta ótica, etc.

Exemplos de usExemplos de us– Vídeo Vídeo

– Impressora Impressora

– drive de CD/DVD-ROM, pen drivedrive de CD/DVD-ROM, pen drive

– caixa de som, etc.caixa de som, etc.

Conceitos básicos Memória – armazena os dados e o próprio programa.

Número finito de localizações que são identificadas por meio de um único endereço.

Unidade lógica e aritmética – faz cálculos aritméticos e qualquer manipulação de dados (numéricos ou não)

Unidade de controle – Responsável pelo “tráfico” de dados.

Algoritmos - Conceito

Sequência de passos que visa atingir um objetivo bem definido.

Um algoritmo é um conjunto finito de regras que fornece uma sequencia precisa de operações para resolver um problema específico.

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

Algoritmos – exemplos da vida quotidiana

Instruções para se utilizar um aparelho eletrodoméstico. Uma receita para preparo de algum prato. O guia de preenchimento da declaração de imposto de

renda. A regra para determinação de máximos e mínimos de

funções por derivadas sucessivas. A maneira como as contas de água, luz e telefone são

calculadas mensalmente.

Algoritmos - exemplo prático

Algoritmo – Fazer um bolo 1) Bater duas claras ; 2) Adicionar duas gemas; 3) Adicionar um xícara de açúcar; 4) Adicionar duas colheres de manteiga; 5) Adicionar uma xícara de leite de coco; 6) Adicionar farinha e fermento; 7) Colocar numa forma e levar ao forno em lume

brando

Algoritmos – Método de Construção entender o problema; definir os dados de entrada; definir o processamento; definir os dados de saída; construir o algoritmo usando descrição

narrativa, fluxograma ou pseudocódigo; realizar testes.

Algoritmos - Características

Finitude: algoritmos devem terminar após um número finito de passos;

Definição: cada passo deve ser precisamente definido

Entradas: devem ter zero ou mais entradas Saídas: devem ter uma ou mais saídas; Efetividade: todas as operações devem ser

simples de modo que possam ser executadas em um tempo limitado.

Algoritmos - Dificuldades Difícil para iniciantes saber o que o computador

pode ou não fazer Criação de algoritmos é um processo não

automático e tem muito de arte Pode haver mais de uma solução para um

problema.

Algoritmos – exemplo 1

Calcular a área de um retângulo. Dados de entrada

base e altura Processamento (cálculo)

Área do retângulo = base x altura Dados de saída

Área do retângulo

Algoritmos – exemplo 2

Calcular a média ponderada de um aluno e verificar a sua aprovação em relação a uma média pré-definida para aprovação. n notas e n pesos devem ser considerados. Dados de entrada

notas e pesos correspondentes, média para aprovação Processamento (cálculo)

Média do aluno = [(N1 x P1) + (N2 x P2) + ... + (Nn x Pn)] / (P1 + P2 + ... + Pn)

Se média do aluno for maior ou igual à média para aprovação, aluno aprovado. Caso contrário, aluno reprovado.

Dados de saída Média do aluno, aprovação

Algoritmos – exemplo 3

Escreva os termos da sequência de Fibonacci inferiores a L. Dados de entrada

O número L Processamento (cálculo)

Atribua 1 ao primeiro termo. Se 1 for menor que L escreva-o. Atribua 1 ao segundo termo. Se 1 for for menor que L escreva-o. Some primeiro e segundo termo e escreva. enquanto a soma for menor que L, atualize o primeiro e segundo

termo e repita o último passo

Dados de saída Todos os termos inferiores a L.

Algoritmos - Representação

Linguagem natural ou descrição narrativa: Algoritmos expressos diretamente em linguagem natural como as receitas.

Fluxograma: representação gráfica Pseudo-código (pseudo-linguagem):

linguagem intermediária entre linguagem natural e linguagem de programação.

Algoritmos - Representação

Descrição narrativa Escrever, usando linguagem natural, os passos a serem

seguidos para a solução. Vantagens – a linguagem natural já é bastante conhecida.

Não é necessário aprender nenhum conceito novo. Desvantagens – possibilidades de várias interpretações,

gerando dificuldade na codificação.

Algoritmos – Representação

Exemplo 1 – Descrição narrativa

Passo 1 – Ingressar largura do retângulo

Passo 2 – Ingressar altura do retângulo

Passo 3 – Multiplicar a largura pela altura

Passo 4 – Mostrar o resultado da multiplicação

Algoritmos – Representação

Exemplo 2 – Descrição narrativa Passo 1 – Ingressar pesos Pi e notas Ni

Passo 2 – Ingressar media referência MF

Passo 3 – Calcular a média ponderada usando

MA = [(N1 x P1) + (N2 x P2) + ... + (Nn x Pn)] / (P1 + P2 + ... + Pn)᳸� Passo 4 – Se MA>=MF COND=Aprovado senão

COND=ReprovadoPasso 5 – Mostrar MA e COND

Algoritmos - Representação

Fluxograma Descrição dos passos para a resolução do problema

utilizando símbolos gráficos definidos previamente. Vantagens – entendimento mais fácil do que a leitura de

textos. Desvantagens – necessidade de aprender a simbologia.

Poucos detalhes, dificultando a codificação.

Algoritmos – Representação Fluxograma – símbolos utilizados

Início e fim do algoritmo

Sentido do fluxo de dados

Cálculos e atribuição de valores

Entrada de dados

Saída de dados

Tomada de decisão

Algoritmos - Representação Exemplo 1 – Fluxograma

Início

Fim

b, h

A = b * h

A

Algoritmos - Representação Exemplo 2 – Fluxograma

Início

Fim

n,pi,Ni,MR

MA = [(N1 x P1) + (N2 x P2) + ... + (Nn x Pn)] / (P1 + P2 + ... + Pn)

AMA>=MR Cond=ACond=R VF

MA, Cond

Algoritmos - Representação Exemplo 2 – Fluxograma – Maior detalhe

Início

Fim

P(cont),N(cont)

MA = [(N(1) x P(1) + N(2) x P(2) + ... + (N(n) x P(n)] / (P1 + P2 + ... + Pn)

MA>=MR Cond=ACond=R VF

MA, Cond

Cont<=nCont=1 n, MR

Cont=cont+1

V

F

Algoritmos - Representação Exemplo 3 – Fluxograma –

Início

FimFib<LF

T1<LT1=1, T2=1L

Fib=T1+T2

V

F

T1,T2

Fib

T1=T2T2=Fib

V

Algoritmos - Representação Pseudocódigo (portugol)

Descrição dos passos a serem seguidos através de

regras definidas previamente.

Vantagens – codificação mais rápida.

Desvantagens – necessidade de aprender o

pseudocódigo.

Algoritmos - Representação Exemplo 1 – PseudocódigoALGORITMOInicio escreva “Informe a largura do retângulo” leia b escreva “Informe a altura do retângulo” leia h a <- b * h escreva “Área = ”, aFim

Algoritmos - Representação Exemplo 2 – PseudocódigoALGORITMOInicioescreva “Informe o número de notas”leia n escreva “Informe Média de referência”Leia MFContador<-1Somaproduto<-0, somapesos<-0Enquanto contador<=n escreva “Informe nota(contador)” leia n(contador) escreva “Informe peso(contador)” leia p(contador)

somaproduto<- p(contador)*n(contador)+somaprodutosomapesos<- p(contador)+somapesoscontador<-contador+1

Algoritmos - Representação Exemplo 2 – Pseudocódigo

MA<-somaproduto/somapesosSe MA>=MF então Cond<-“Aprovado“Senão Cond<-“Reprovado“escreva MA, CondFim

Algoritmos - Representação Exemplo 3 – PseudocódigoALGORITMOInícioLeia LT1<-1, T2<-1Se (T1<L) então

escreva (T1,T2)Fib<-T1+T2Enquanto (Fib<L) façaescreva FibT1<-T2T2<-FibFib<-T1+T2Fim enquanto

Fim seFim