Aula 08 Introdução à Algoritmos - ifrn.edu.br

36
Aula 08 Introdução à Algoritmos Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br /

Transcript of Aula 08 Introdução à Algoritmos - ifrn.edu.br

Page 1: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Aula 08 – Introdução à

Algoritmos

Disciplina: Fundamentos de Lógica e Algoritmos

Prof. Bruno Gomes

http://www.profbrunogomes.com.br/

Page 2: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Agenda da Aula

Introdução aos Algoritmos:

Conceitos Iniciais;

Programa de Computador;

Formas de Representação de Algoritmos.

Page 3: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Dúvida

O que fazer para resolver um problema?

Definição do problema;

Verificar quais são as formas de resolvê-lo;

Definir e utilizar uma das formas de resolução doproblema;

Analisar se o problema foi resolvido.

Page 4: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Algoritmos

Vem do nome do matemático iraniano:

Abu Abdullah Mohammad Ibn Musa al-Khawarizmi.

Considerado também o fundador da álgebra;

Algumas Definições:

“Um procedimento passo a passo para a solução deum problema”;

“Uma sequência detalhada de ações a seremexecutadas para realizar alguma tarefa”.

Page 5: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Algoritmos

Algoritmo NÃO é:

A solução de um problema!!

Consiste nos passos necessários para se chegarà solução!

Page 6: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Algoritmos

Usamos algoritmos no nosso cotidiano;

É aplicado nas mais diversas áreas doconhecimento.

Quem pode citar exemplos?

Page 7: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Exemplo: Receita de Bolo

Como fazer um bolo?

Page 8: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Exemplo: Cálculo Matemático

Como calcular a média de duas notas de umaluno?

Page 9: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Exemplo: Ida à Escola

Após acordar, o que você faz para chegar até aEscola?

Page 10: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Outros Exemplos

Instruções no Manual para se utilizar umaparelho eletrônico;

Maneira como são calculadas mensalmente ascontas de água, luz e telefone.

Page 11: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Características de um Algoritmo

Deve ter fim;

Deve ser bem definido;

Deve permitir gerar informações de saída;

Não pode ter dupla interpretação (ambiguidade).

Page 12: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Importância de Algoritmos

"A noção de algoritmo é básica para toda aprogramação de Computadores“.

Knuth - Prof. da Universidade de Stanford.

"O conceito central da programação e da ciênciada computação é o conceito de algoritmo".

Wirth - Prof. da Universidade de Zurique.

Page 13: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Observação

A partir de um algoritmo, o programador poderáimplementá-lo em qualquer linguagem deprogramação que conheça ou deseje.

Page 14: Aula 08 Introdução à Algoritmos - ifrn.edu.br

ALGORITMOS NA COMPUTAÇÃO

Page 15: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Contextualizando:Programa de Computador

Um computador contém: UCP (processador);

Memória;

Dispositivos de Entrada e Saída.

O processador contém instruções que é capaz deexecutar: Operações matemáticas; Interações com dispositivos

E/S;

Elas são executadas sequencialmente (passo a passo).

Page 16: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Programa de Computador

Esse conjunto de instruções que será executadopelo processador é chamado de Programa deComputador.

Esta sequência de passos permitem que oproblema possa ser resolvido de maneiraautomática e repetitiva.

Page 17: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Programa de Computador

Conclusão:

Um programa de computador nada mais é que um tipo de algoritmo.

Page 18: Aula 08 Introdução à Algoritmos - ifrn.edu.br

O que o computador entende?

Uma linguagem composta apenas por números.

Linguagem de Máquina.

Page 19: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Linguagens de Programação

A classificação das linguagens é feitaconsiderando sua proximidade com alinguagem de máquina.

Quanto mais próximo:

Linguagens de Programação de Baixo Nível.

Quanto mais distantes:

Linguagens de Programação de Alto Nível.

Page 20: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Linguagens de Baixo Nível

Devido a dificuldade em se programar em linguagens debaixo nível, foram criadas novas linguagens mais fáceisde se entender.

Foi criada a linguagem de montagem (Assembly):

Instruções alfanuméricas;

Código em Linguagemde Montagem

AssemblerCódigo em Linguagem

de Máquina

Representação

Page 21: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Linguagens de Alto Nível

Criação das Linguagens de Alto Nível:

Independentes de Processador;

Código mais elaborado;

Linguagens mais próximas da “lógica humana”.

Exemplos:

Java, C#, C++, entre muitas outras.

Page 22: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Tipos de Linguagens de Programação

Compilada: São transformadas em linguagem de máquina através de

um compilador (compilação);

Só são executadas após toda a compilação.

Exemplo: Delphi, Java, C#, entre outras.

Interpretada: São lidas e interpretadas (executadas) por um

interpretador.

São executadas a medida que são interpretadas.

Exemplo: Javascript, VBScript, ASP, Perl e PHP

Page 23: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Reflexão

“Programar é uma arte. Resume-se a ensinar umcomputador a fazer o que tem de ser feito. Não bastaapenas sentar em uma cadeira e começar a escrevercódigo, você não é apenas um mero codificador. Estaarte exige que você seja um bom ouvinte, aprendacom facilidade e acima de tudo seja um excelenteinterpretador. (...)”

Carlos Brando

Page 24: Aula 08 Introdução à Algoritmos - ifrn.edu.br

FORMAS DE REPRESENTAÇÃO DE ALGORITMOS

Page 25: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Revisando

Algoritmo é uma Sequência Lógica:

Passos (instruções) executados até atingir umobjetivo ou solução de um problema.

Instruções:

Indicam as ações a serem executadas;

“Um conjunto de regras ou normas definidas para arealização ou emprego de algo”.

Page 26: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Formas de Representação mais Utilizadas

Linguagem Natural ou Descrição Narrativa;

Fluxograma;

Pseudocódigo - Código.

Page 27: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Descrição Narrativa

Utilização da Linguagem Humana Natural;

Representa a solução do problema em passosdescritivos;

Pouco utilizado na computação.

Page 28: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Descrição Narrativa

Exemplo:

Troca de um pneu furado de carro:

- Afrouxar ligeiramente as porcas- Suspender o carro- Retirar as porcas e o pneu- Colocar o pneu reserva- Apertar as porcas- Abaixar o carro- Dar o aperto final nas porcas

InstruçõesFluxo do

Algoritmo

Page 29: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Observações

As ações especificadas devem ser claras eprecisas;

Pouco usada na prática:

Muitas vezes dá oportunidade a más interpretações,ambiguidades e imprecisões.

Page 30: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Exemplo 2

Calcular a Média de um Aluno:

- Obter suas duas notas- Realizar a soma das duas notas- Divide o resultado da soma por 2- Exibir a média do aluno

Page 31: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Fluxograma

Apresentam os Algoritmos de Forma Gráfica;

Formado de figuras geométricas para descreveras instruções e ações a serem executadas noalgoritmo.

Page 32: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Formas Geométricas

Primeiras Formas:

Início do algoritmo

Instrução / Processamento

Fim do Algoritmo

Page 33: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Exemplo

Calcular a Média de um Aluno:

Obter as 2 notas

Calcular Média

Exibir a Média

Page 34: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Fluxograma

Deve possuir:

Um estado inicial;

Ter um período de tempo finito;

Produzir um estado final previsível e bem definido.

Page 35: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Dúvidas?

Page 36: Aula 08 Introdução à Algoritmos - ifrn.edu.br

Prática

Crie um algoritmo em descrição narrativa eFluxograma das duas situações abaixo: Fazer e tomar um café;

Receber um número em metros, e depois deverealizar a conversão para centímetros e exibir oresultado;

Receber um número inteiro, calcular o quadrado donúmero, e depois exibir o resultado.

Observação: detalhar o cálculo utilizado nosalgoritmos.