construção de algoritmos professor: aquiles burlamaqui construção de algoritmos aquiles...

40
Professor: Aquiles Burlamaqui Construção de Algoritmos Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Upload: internet

Post on 17-Apr-2015

114 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Construção de Algoritmos

Aquiles BurlamaquiUERN2007.1

Page 2: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conteúdo Programático Unidade I

Fundamentos de Lógica de Programação Algoritmo (metalinguagem) Conceitos de memória, variáveis e constantes. Tipos básicos de dados Operadores aritméticos, relacionais e lógicos. Comandos básicos de entrada e saída e atribuição Conceito de bloco de comandos Estruturas de controle de fluxo – condicionais (se, se-senão e caso) Estruturas de controle de fluxo – repetições (para, enquanto e repita-enquanto)

Estruturas de Dados Homogêneas (vetores e matrizes)

Unidade II Estruturas de Dados Heterogêneas (registros) Modularização

Variáveis locais e globais Funções Passagem de parâmetros por valor e por referência Funções recursivas Biblioteca de funções

Unidade III Algoritmos de Busca Ponteiros

Conceitos Operador endereço e operador de acesso indireto Alocação dinâmica de memória

Arquivo

Page 3: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Planejamento Carga horária: 90h, 15 dias

SEG. TER. QUA. QUI. SEX.

7:00h – 8:40h CA– NC CA– SC

8:50h – 10:30h CA– NC CA– SC

10:40h – 12:30h CA– NC CA– SC

Page 4: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Metodologia

Aulas Teóricas-Práticas:

Em todas as aulas haverão uma discussão inicial, onde serão expostos conceitos assim como atividades práticas que servirão como parâmetro para avaliação.

Avaliação: A avaliação será feita de forma continua. E

Baseada em três provas escritas. Assim como trabalhos em sala aula.

Page 5: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Bibliografia Bibliografia Básica:

Manzano, José Augusto N. Z.; Oliveira, Jayr F. de Algoritmos: Lógica para o desenvolvimento de programas de computadores. 16ª Edição. Érica, 2004.

Técnicas de programação: Uma Abordagem Estruturada;SALIBA, Walter Luiz Caram;Markron Books,2002.

Técnicas de programação: Uma Abordagem Moderna. LEIRE, Mario,Brasport,2006.

Bibliografia Complementar: Herbert Schildt; "C" Completo e Total, McGraw-Hill,1990. CHARLES E. LEISERSON ;Algoritmos: Teoria e Prática.

Internet www.google.com

Page 6: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Motivação

Por que estudar Construção de Algoritmos?

Page 7: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Motivação

Por que estudar Construção de Algoritmos? Disciplina base do curso de computação Pré-requisito para todas as outras

linguagens de programação;

Page 8: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Três pilares Físico

Lógico

Humano

Page 9: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Três pilares Físico

Hardware (CPU + Periféricos) Lógico

Firmware (Instruções de Fábrica) Software (Programas)

Algoritmo

Humano Peopleware (Profissionais)

Page 10: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Origem da palavra Algoritmo Matemático Persa do século IX

Mohamed ben Musa Al-Khwarizmi, Algorithmi de numero indorum

Al-goreten (conceito que se pode aplicar aos cálculos)

Definição:

Page 11: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais Origem da palavra Algoritmo

Matemático Persa do século IX Mohamed ben Musa Al-Khwarizmi,

Algorithmi de numero indorum Al-goreten (conceito que se pode aplicar aos

cálculos) Definição:

Receita de bolo; Um algoritmo é uma seqüência não ambígua de

instruções que é executada até que determinada condição se verifique; (wikipédia)

Conjunto ordenado e não-ambíguo de passos executáveis que definem uma atividade finita;(Brookshear)

Page 12: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Algoritmo Exemplo (Ligar o Carro):

Page 13: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Algoritmo Exemplo (Ligar o Carro):

Ligar o carro Pisar na embreagem Passar a primeira marcha Soltar a embreagem lentamente,enquanto

pisa no acelerador.

Algoritmo para fritar um ovo?

Page 14: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Algoritmo Calcular a média na disciplina?

Page 15: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Algoritmo Se não for seguido um formalismo,

podemos ter problemas.

Page 16: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Fundamentais

Algoritmo De modo a torná-lo não ambíguo uma

formalização é necessária. Definição de regras de semântica e

sintaxe.

Page 17: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Formas de representação de algoritmos Descrição Narrativa Fluxograma Pseudocódigo Linguagens de Programação

Page 18: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Formas de representação de algoritmos Descrição Narrativa

Uso da linguagem natural; Temos a inconveniência da má

interpretação, originando ambigüidades e imprecisões.

Vejamos mais um exemplo: a troca de um pneu furado.

Analisar as ambigüidades e imprecisões.

Page 19: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Descrição Narrativa

Algoritmo afrouxar ligeiramente as porcas; suspender o carro; retirar as porcas e o pneu; colocar o pneu reserva e as porcas; abaixar o carro; dar o aperto final nas porcas.

Page 20: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Fluxograma Uso de formas geométricas distintas

produzindo ações distintas Início ou fim do fluxograma.

Entrada de dados.

Cálculo de expressões.

Saída de resultados.

Tomada de decisão

Fluxo.

Page 21: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Fluxograma

Page 22: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Pseudocódigo Uso de linguagem própria, aproximando-se

mais das linguagens de alto nível, chamado, também de pseudolinguagem ou ainda portugol.

Forma geral:Algoritmo < nome_do_algoritmo >

< declaração_de_variáveis >Início < Instruções >Fim

Page 23: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Pseudocódigo Algoritmo Média_do_aluno

Real: m1,m2,mediaInício

Escreva(“Digite as duas notas:”)Leia(m1,m2)media (m1+m2)/2Se (média >= 5) então

Escreva (“APROVADO”)Senão

Escreva (“REPROVADO”)Fim_se

Fim

Page 24: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagens de Programação

Linguagens de Programação Uma linguagem de programação é um

método padronizado para expressar instruções para um computador.

É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.

Page 25: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagens de Programação

Linguagens de baixo nível Linguagens de máquina, assembly

Linguagens de alto nível Fortran, Cobol, C, C++, Java, Pyton, Lua,

Basic, Pascal...

Page 26: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conceitos Básicos

Baixo nível Código otimizado,Indicado para

situações onde não há opção de alto nível

Alto nível Programação do algoritmo mais fácil Portabilidade Manutenção do código

Page 27: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Processadores de Linguagens

Compilação

Interpretação

Page 28: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Compilação

Page 29: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem de Programação C

Flexibilidade Portabilidade Usada no desenvolvimento de:

Unix Linguagem C, C++ Java Etc

Page 30: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem de Programação C

Programas em C geram programas executáveis.

Mais veloz que outras linguagens de alto nível.

Linguagem de relativo baixo nível, permite operações com bits, bytes, endereços de memórias.

Page 31: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem de Programação C

Instalação Windows

Dev-C++ Turbo C++

Linux gcc

Page 32: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos de Dados

Manipulação de informações na memória Instruções Dados

Memória1 célula = 1 byte = 8 bits1 bit possui 2 estados: 0 e 1 (dígitos binários).1 byte possui 28 = 256 estados possíveis.

Page 33: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos de Dados

Tipos básicos podem ser: Numéricos;

Inteiros Reais;

Literais; Lógicos;

Page 34: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipo de Dados

Numéricos Inteiros: sem parte fracionária nem

ponto; Ex: 86 0 234 -34 4324

Reais: com parte fracionária e ponto; Ex:85.3 -9.34 10.0 6.0 0.00

Page 35: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos de Dados Literais: Seqüências de caracteres contendo

letras, dígitos e/ou símbolos especiais Também chamados de:

“alfanuméricos” “cadeia de caracteres” “strings”

Serão representados nos algoritmos entre aspas.

Ex:“UERN” comprimento 4; “Construção de Algoritmos” comprimento ?; “29/04/80” comprimento ? “” comprimento ? “ “ comprimento ?

Page 36: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos de Dados

Lógico Usados para representar dois únicos

valores lógicos possíveis: verdadeiro e falso.

Representados nos algoritmos como: .V. (verdadeiro) e .F. (falso).

Page 37: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Armazenamento na Memória

Page 38: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Trabalho 01

Escrever o pseudo-código da média da UERN baseado no fluxograma criado em sala de aula.

Entregar próxima aula.

Page 39: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Page 40: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

FIM PRIMEIRA AULA