Aula 3 Algoritmos
-
Upload
amanda-estevam -
Category
Documents
-
view
237 -
download
0
description
Transcript of Aula 3 Algoritmos
![Page 1: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/1.jpg)
Algoritmos
Professor Renan
![Page 2: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/2.jpg)
Perguntas
• O que é algoritmo?
• Qual sua relação com programação de computadores?
![Page 3: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/3.jpg)
Computador
![Page 4: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/4.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/5.jpg)
Processamento dos dados
![Page 6: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/6.jpg)
Computador
SOFTWARE
HARDWARE
COMPUTADOR
![Page 7: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/7.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/8.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/9.jpg)
Ambiente Operacional
• Interface gráfica entre o usuário e o Sistema Operacional.
![Page 10: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/10.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/11.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/12.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/13.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/14.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/15.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/16.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/17.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/18.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/19.jpg)
O que é o programa
• É a codificação de um algoritmo em uma determinada linguagem de
programação.
![Page 20: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/20.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/21.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/22.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/23.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/24.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/25.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/26.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/27.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/28.jpg)
Algoritmo
• Como desenvolvemos um algoritmo para fazer um sanduíche?
![Page 29: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/29.jpg)
Algoritmo
• Fazer uma prova?
![Page 30: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/30.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/31.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/32.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/33.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/34.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/35.jpg)
Tipos de algoritmos
• Os tipos mais utilizados de algoritmos são:
• descrição narrativa
• fluxograma
• pseudocódigo.
![Page 36: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/36.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/37.jpg)
Problema
• Faça um algoritmo para mostrar o resultado da multiplicação de dois
números.
![Page 38: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/38.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/39.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/40.jpg)
Fluxograma
![Page 41: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/41.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/42.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/43.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/44.jpg)
Exercício:
• Faça um algoritmo para mostrar o resultado da divisão de dois números.
![Page 45: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/45.jpg)
Perguntas
• O que é algoritmo?
• Qual sua relação com programação de computadores?
![Page 46: Aula 3 Algoritmos](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/46.jpg)
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](https://reader033.fdocument.pub/reader033/viewer/2022050909/55cf8d145503462b1391f3a5/html5/thumbnails/47.jpg)
Fim!