Download pdf - Aula 3 Algoritmos

Transcript
Page 1: Aula 3 Algoritmos

Algoritmos

Professor Renan

Page 2: Aula 3 Algoritmos

Perguntas

• O que é algoritmo?

• Qual sua relação com programação de computadores?

Page 3: Aula 3 Algoritmos

Computador

Page 4: Aula 3 Algoritmos

Finalidade do computador

• Realizar a tarefa de processamento de dados.

• Receber dados por um dispositivo de entrada

• Realizar operações com esses dados

• Gera uma resposta

Page 5: Aula 3 Algoritmos

Processamento dos dados

Page 6: Aula 3 Algoritmos

Computador

SOFTWARE

HARDWARE

COMPUTADOR

Page 7: Aula 3 Algoritmos

Software

• Programa em processamento no computador

• Podem ser do tipo básico, programas que definem o padrão doequipamento e são necessários para o funcionamento do computador.

• Tipos:

• Sistema operacional

• Ambiente operacional

• Linguagens de programação (tradutores)

Page 8: Aula 3 Algoritmos

Sistema operacional

• É um programa ou conjunto de programas cuja função égerenciar os recursos do computador.

• Em geral, são fornecidos pelos fabricantes do equipamento.

• Constituídos por programas escritos em linguagem deprogramação de baixo nível.

Page 9: Aula 3 Algoritmos

Ambiente Operacional

• Interface gráfica entre o usuário e o Sistema Operacional.

Page 10: Aula 3 Algoritmos

Linguagem de programação

• Conjunto de símbolos e regras que especificam um padrão sintático paraestabelecer a comunicação entre usuários e computador.

• Na língua portuguesa,

• Os símbolos são as letras.

• As regras são a gramática da língua portuguesa.

• Padrão sintático é a escrita correta.

Page 11: Aula 3 Algoritmos

Linguagem de programação

• É dividida em linguagem de baixo nível e linguagem de alto nível.

Baixo nível

Alto nível

Page 12: Aula 3 Algoritmos

Linguagem de baixo nível

• Linguagem de Máquina

• Baseada no código binário, em 0s e 1s e interpretada diretamente pelo computador.

• 01000110 01110101 01101110 01100100 01100001 01101101 01100101 0110111001110100 01101111 01110011 00100000 01100100 01100101 00100000 0111000001110010 01101111 01100111 01110010 01100001 01101101 01100001 1110011111100011 01101111

• Fundamentos de Programação

Page 13: Aula 3 Algoritmos

Linguagem de baixo nível

Linguagem de

máquinaSignificado

0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14

0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15

0001 0001 0010soma o conteúdo do registrador 1 com o conteúdo do registrador

2 e coloca no registrador 1

0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15

Page 14: Aula 3 Algoritmos

Linguagem de baixo nível

• Linguagem de baixo nível simbólica:

• Simplificação da linguagem de máquina, faz uso de códigos para expressar as

instruções.

• Exemplo: Assembly

Linguagem de máquina Linguagem simbólica

0010 0001 1110 LOAD R1, val1

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Page 15: Aula 3 Algoritmos

Linguagem de alto nível

• É a combinação de um conjunto de símbolos de acordo com certas regras de

sintaxe para expressar uma sequência de operações de máquina.

• É uma linguagem que não exige conhecimento do código de máquina.

• Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C,

JAVA, LISP, PROLOG, Phyton etc.

Page 16: Aula 3 Algoritmos

Compilador

• Um compilador é um programa de sistema que traduz um programa descrito

em uma linguagem de alto nível para um programa equivalente em código de

máquina para um processador.

• Produz um programa em linguagem simbólica (assembly).

• Montadores traduz a linguagem simbólica para a linguagem de máquina.

Page 17: Aula 3 Algoritmos

Linguagem: Máquina x Simbólica x Alto Nível

Linguagem de

máquinaLinguagem simbólica

Linguagem de alto

nível

0010 0001 1110 LOAD R1, val1

val2 = val1 + val2

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Page 18: Aula 3 Algoritmos

Desenvolvendo programas

• Quando queremos escrever um software para realizar um determinado tipo

de processamento de dados, devemos escrever um programa ou vários

programas interligados.

• Para isso utilizamos a linguagem de programação.

Page 19: Aula 3 Algoritmos

O que é o programa

• É a codificação de um algoritmo em uma determinada linguagem de

programação.

Page 20: Aula 3 Algoritmos

Etapas de desenvolvimento de programas

• Análise – nessa etapa estuda-se o enunciado do problema para definir os dados deentrada, o processamento e os dados de saída;

• Algoritmo – ferramentas do tipo descrição narrativa, fluxogramas ou portuguêsestruturado são utilizadas para descrever o problema com suas soluções.

• Codificação – o algoritmo é transformado em código da linguagem de programaçãoescolhida para se trabalhar.

Page 21: Aula 3 Algoritmos

Algoritmo

• Um algoritmo é uma redação que deve descrever, de forma lógica e sem

ambiguidades, os passos (ações) a serem seguidos para se resolver um

problema especifico que tenha um comportamento padrão em sua solução.

Page 22: Aula 3 Algoritmos

História

• Historiadores trazem divergências sobre a origem da palavra algoritmo.

• A mais difundida é de Mohamed ben Musa Al-Khwarizmi.

• Um matemático persa do século IX, cujas obras foram traduzidas no ocidente noséculo XII.

• Uma das obras recebeu o nome Algorithmi de numero indorum (indiano).

• Algoritmos sobre o sistema de numeração decimal.

Page 23: Aula 3 Algoritmos

História

• Algoritmo mais antigo (400 a 300 AC).

• Algoritmo de Euclides, calcula o máximo divisor comum

(MDC) de dois números inteiros positivos.

Page 24: Aula 3 Algoritmos

História

• Para a Ciência da computação, o conceitode algoritmo foi formalizado em 1936 porAlan Turing (Máquina de Turing) eAlonzo Church.

• Um algoritmo é um conjunto nãoambíguo e ordenado de passos executáveisque definem um processo finito.

Page 25: Aula 3 Algoritmos

Algoritmos

• Objetivo de um algoritmo é o de ensinar a resolver problemas.

• Nosso objetivo é o de construir algoritmos.

• Construiremos textos que ensinem a resolver problemas,

• Não preocupamos com o resultado da solução do problema, desde que o algoritmoesteja correto.

Page 26: Aula 3 Algoritmos

Algoritmo

• Exemplos clássicos deste fato são as receitas de bolos.

• Um livro de receitas de bolos

• Descreve os passos a serem seguidos e ingredientes a serem usados

• Resultado final: o bolo.

• Nenhum livro de receitas traz o bolo pronto.

Page 27: Aula 3 Algoritmos

Lógica e comportamento do algoritmo

• Algoritmo se resume na organização sequencial das ações de solução do problemaespecífico.

• Exemplo: só levaremos o bolo ao forno quando a massa do mesmo estiver pronta enão antes.

• Mas a grande exigência da lógica se encontra nas tomadas de decisões e nosprocessos de repetição no algoritmo

Page 28: Aula 3 Algoritmos

Algoritmo

• Como desenvolvemos um algoritmo para fazer um sanduíche?

Page 29: Aula 3 Algoritmos

Algoritmo

• Fazer uma prova?

Page 30: Aula 3 Algoritmos

Exercício

• Desenvolver um algoritmo para trocar uma lâmpada?

• Desenvolver um algoritmo para sacar dinheiro no banco 24 horas?

Page 31: Aula 3 Algoritmos

Variações

• Todas as possíveis execuções do mesmo devem produzir resultados corretos.

• Deve ser um conjunto de passos finitos.

• Detalhamento de um algoritmo é escolhido de acordo com o problema.

Page 32: Aula 3 Algoritmos

Exemplo de detalhamento

• Suponha que seu carro esteja falhando, você o leva no mecânico e simplesmente diz: - "O meu carro estáfalhando, conserte-o!“

• Agora vamos supor que você leve o seu carro para um aprendiz de mecânico, você terá que supervisionar otrabalho, informando-o das ações que ele deverá executar:

• 1. "verificar velas e distribuidor"

• 2. "limpar carburador e giclês"

• 3. "verificar platinado"

• 4. "verificar partes elétricas relacionadas com o motor"

• 5. "verificar se o combustível não foi adulterado“

Page 33: Aula 3 Algoritmos

Métodos para a construção de algoritmos

• Ler atentamente o enunciado, destacando os pontos mais importantes.

• Definir os dados de entrada, ou seja, quais dados serão fornecidos.

• Definir o processamento, ou seja, quais cálculos serão efetuados e quais as

restrições para esses cálculos. O processamento é responsável pela

transformação dos dados de entrada em dados de saída.

Page 34: Aula 3 Algoritmos

Métodos para a construção de algoritmos

• Definir os dados de saída, ou seja, quais dados serão gerados depois do

processamento.

• Construir o algoritmo.

• Testar o algoritmo realizando simulações.

Page 35: Aula 3 Algoritmos

Tipos de algoritmos

• Os tipos mais utilizados de algoritmos são:

• descrição narrativa

• fluxograma

• pseudocódigo.

Page 36: Aula 3 Algoritmos

Descrição narrativa

• Analisar o enunciado do problema e escrever, utilizando umalinguagem natural, os passos a serem seguidos para a resolução doproblema.

• Vantagem: não é necessário aprender nenhum conceito novo.

• Desvantagem: a língua natural abre espaço para váriasinterpretações, o que dificultará a transição desse algoritmo para oprograma.

Page 37: Aula 3 Algoritmos

Problema

• Faça um algoritmo para mostrar o resultado da multiplicação de dois

números.

Page 38: Aula 3 Algoritmos

Solução descrição narrativa

• Passo 1 – Recebe os dois números que são multiplicados

• Passo 2 – multiplica os números

• Passo 3 – mostrar o resultado obtido na multiplicação

Page 39: Aula 3 Algoritmos

Fluxograma

• Consiste em analisar o enunciado do problema e escrever, utilizandosímbolos gráficos predefinidos, os passos a serem seguidos para a resoluçãodo problema.

• Vantagem: entendimento dos elementos gráficos é mais fácil

• Desvantagem: é necessário aprender a simbologia dos fluxogramas, e oalgoritmo não apresenta muitos detalhes, dificultando a transição para umprograma.

Page 40: Aula 3 Algoritmos

Fluxograma

Page 41: Aula 3 Algoritmos

Solução pelo Fluxograma

• Problema da multiplicação entre dois números.

Início

valor1, valor2 Multi = valor1*valor2Multi

Fim

Page 42: Aula 3 Algoritmos

Pseudocódigo

• Consiste em analisar o enunciado do problema e escrever, por meio de regras

predefinidas, os passos a serem seguidos para a resolução do problema.

• Vantagem: passagem do algoritmo para qualquer linguagem de programação

é quase imediata, bastando conhecer as palavras reservadas da linguagem de

programação que será utilizada.

• Desvantagem: é necessário aprender as regras do pseudocódigo.

Page 43: Aula 3 Algoritmos

Solução Pseudocódigo

• ALGORITMO

• DECLARE VALOR1, VALOR2, MULTI NUMÉRICO

• ESCREVA “Digite os dois números”

• LEIA VALOR1, VALOR2

• MULTI <- VALOR1*VALOR2

• ESCREVA “Multiplicação = “, MULTI

• FIM_ALGORITMO.

Page 44: Aula 3 Algoritmos

Exercício:

• Faça um algoritmo para mostrar o resultado da divisão de dois números.

Page 45: Aula 3 Algoritmos

Perguntas

• O que é algoritmo?

• Qual sua relação com programação de computadores?

Page 46: Aula 3 Algoritmos

Para casa

• Para os problemas a seguir, desenvolva o algoritmo na forma narrativa, fluxograma e pseudocódigo.

1. Desenvolver um algoritmo que calcule a média aritmética entre duas notas de um aluno e mostrar se oaluno foi reprovado ou se foi aprovado na disciplina.

2. Desenvolver um algoritmo para calcular o novo salário de um funcionário. Sabe-se que os funcionários quepossuem um salário atual até R$ 500,00 terão aumento de 20%, os demais terão aumento de 10%.

3. Desenvolva um algoritmo que Leia o nome, o sobrenome e concatene o nome e sobrenome. O resultadoserá o nome completo.

4. Faça um algoritmo que calcule a área de um retângulo.

5. Faça um algoritmo que calcule a área de um triângulo.

6. Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressaapenas em dias.

Page 47: Aula 3 Algoritmos

Fim!