29
UFRN Escola de Ciências e Tecnologia Introdução a Algoritmos Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL

Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

  • Upload
    ngonga

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

UFRN

Escola de Ciências e Tecnologia

Introdução a Algoritmos

Prof. Aquiles BurlamaquiNélio CachoLuiz Eduardo

Eduardo Aranha

ECT1103 – INFORMÁTICA FUNDAMENTAL

Page 2: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

• Manter o telefone celular sempre desligado/silencioso quando estiver em sala de aula;

• Nunca atender o celular na sala de aula;

Page 3: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Objetivo da Aula

• Introduzir o conceito de algoritmos

Page 4: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Por que estudar Construção de Algoritmos?

• Problema: construir uma trave de madeira !

Page 5: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Diante de um Problema a solução é ...

• Análise – etapa onde o problema a ser resolvido é estudado emdetalhes para definição dos materiais e passos necessários para asua resolução.

• Algoritmo – utilização de ferramentas para descrever o problemacom suas soluções.– Ferramentas – descrição narrativa, fluxograma ou português estruturado

Page 6: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Por que estudar Construção de Algoritmos?

• Análise: o que eu preciso para resolver tal problema ?

– Material: madeira e ferramentas

Page 7: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Por que estudar Construção de Algoritmos?

• Análise:

– Usar pregos ou parafusos ?

– Esta decisão implica em usar martelo ou chave de fenda:

Page 8: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Definir Passos

1 - Serrar a madeira para ficar no tamanho desejado

2 – Pregar as pontas formando a trave

Page 9: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Algoritmos - Definição

– Uma sequência de passos que visa atingir um objetivo bem definido.

– Tem como objetivo representar o raciocínio (ordem dos passos) envolvido na realização de uma tarefa.

– Exemplo (Ligar o Carro):• Ligar o carro

• Pisar na embreagem

• Passar a primeira marcha

• Soltar a embreagem lentamente,enquanto pisa no acelerador.

Page 10: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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.

Page 11: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Exemplo de Problema

• Defina um programa que receba dois números pelo teclado, calcula a média aritmética destes dois números e imprime o resultado no monitor;

• Quais ferramentas posso utilizar para definir meu algoritmo ?

Read, Add, Sto, Div, Write, Cmp, Jump, Mul,

Sub

Page 12: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Exemplo de Problema

• Defina um programa que receba dois números pelo teclado, calcula a média aritmética destes dois números e imprime o resultado no monitor;

• Análise:

– 1 : Recebe dois números pelo teclado, então devo usar Read

– 2: calcula a média aritmética que é (A+B)/2. Neste caso tenho que usar a operação ADD e DIV, além de carregar o 2 para fazer a divisão.

– 3: Imprimi o resultado no monitor. Neste caso, tenho que usar o Write

Page 13: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Exemplo de Problema

• Defina um programa que receba dois números pelo teclado, calcula a média aritmética destes dois números e imprime o resultado no monitor;

Endereço Valor

1 Read (FA) (7)

2 Read (FA) (8)

3 ADD (7)(8)

4 STO (2)(7)

5 DIV (8)(7)

6 WRITE(7)(FB)

7

8

Read, Add, Sto, Div, Write

Page 14: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Qual é o problema de descrever algoritmos em termos de linguagem de máquina ?

Endereço (Hex) Valor

1 Read (FA) (14)

2 Read (FA) (15)

3 Read (FA) (16)

4 STO (4)(17)

5 MUL(17)(14)

6 STO(5)(17)

7 MUL(17)(15)

8 STO(6)(17)

9 MUL(17)(16)

A ADD (14) (15)

B ADD (15) (16)

C STO (F)(17)

D DIV (16)(17)

E STO (46)(16)

F SUB(17)(16)

10 CMP(16)(13)

11 WRITE(FB)(“REPROVADO”)

12 JUMP (14)

13 WRITE(FB)(“APROVADO”)

Apesar de preciso, o algoritmo torna-se muito longo

Page 15: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Formas de representação de algoritmos

• Descrição Narrativa

• Fluxograma

• Pseudocódigo

• Linguagens de Programação

Page 16: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 17: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 18: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 19: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 20: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Fluxograma

Page 21: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 22: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Pseudocódigo

• Algoritmo Média_do_aluno

Real: m1,m2,m3,media

Início

Leia(m1,m2,m3)‏

media ((m1*4)+(m2*5)+(m3*6))/15

Se (média >= 70) então

Escreva (“APROVADO”)‏

Senão

Escreva (“REPROVADO”)‏

Fim_se

Fim

Endereço Valor

1 Read (FA) (14)

2 Read (FA) (15)

3 Read (FA) (16)

4 STO (4)(17)

5 MUL(17)(14)

6 STO(5)(17)

7 MUL(17)(15)

8 STO(6)(17)

9 MUL(17)(16)

A ADD (14) (15)

B ADD (15) (16)

C STO (F)(17)

D DIV (16)(17)

E STO (46)(16)

F SUB(17)(16)

10 CMP(16)(13)

11 WRITE(FB)(“REPROVADO”)

12 JUMP (14)

13 WRITE(FB)(“APROVADO”)

Page 23: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 24: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Linguagens de Programação

• Linguagens de baixo nível

– Linguagens de máquina, assembly

• Linguagens de alto nível

– Fortran, Cobol, C, C++, Java, Python, Lua, Basic, Pascal, Sage...

Page 25: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

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 26: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Processadores de Linguagens

• Compilação

• Interpretação

Page 27: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Compilação

Page 28: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Professor: Aquiles Burlamaqui

Page 29: Escola de Ciências e Tecnologia - Aquiles Burlamaquiaquilesburlamaqui.wdfiles.com/local--files/informatica-fundamental/... · –Definição de regras de semântica e sintaxe. Fluxograma

Site

• http://www.ect.ufrn.br/modulo/ect1103/