ALGORITMOS Dilvan Moreira
Lembrando: Linguagem de Máquina Primeira linguagem: linguagem de máquina Muito primitiva Exemplo: Muito difícil de programar Necessidade de linguagens mais legiveis 00000000001000100011000000100000 add what’s to what’s and put it unimportant details for us in this in this in this register register register
Lembrando: Linguagem Assembler Linguagens Assembler Uso de mneomonicos para representar linguagem de máquina Exemplo de instrução Corresponde a instrução em linguagem de máquina add r1,r2,r6 00000000001000100011000000100000 add what’s to what’s and put it unimportant details for us in this in this in this register register register
Lembrando: Linguagens de Alto Nível Exemplo de instrução de alto nível A = B + C Diz ao computador Vá na memória e ache o valor armazenado na posição B Vá na memória e ache o valor armazenado na posição C Adicione esses dois valores Armazene o resultado na posição A
Lembrando: Compilação Converte um programa em linguagem de alto nível para linguagem de máquina Instrução de alto nível: A = B + C Se torna várias linhas de código de máquina! high-level language compiler machine language 00010000001000000000000000000010 load B 00010000010000000000000000000011 load C 00000000001000100011000000100000 add them 00010100110000000000000000000001 store in A
Edição Compilação Teste - Operação em ciclos - Tente não ficar preso neles - Erros de compilação são mais fáceis - Erros de execução não são detectados automaticamente
Exemplo de um Programa em Python Código: # ------------------------------- # Autor: Kleberson Serique print "Alô, Mundo!" # Fim do programa Saida:(Tela do computador) Alô, Mundo!
Exemplo de um Programa em Python Comentarios são ignorados pelo compilador Código: # ------------------------------- # Autor: Kleberson Serique print "Alô, Mundo!" # Fim do programa
Exemplo de um Programa em Python Código: print "Alô, Mundo!" Para o compilador, o código vai aparecer como acima, sem nenhum comentário. Comentários são importantes para pessoas Mas não para o compilador
Algoritmo Um conjunto finito ordenado, bem conhecido e bem definido de ações primitivas, que possam ser executadas sobre objetos bem definidos e que produza um efeito desejado. Vem de Algoritmi a forma latina do nome do matemático Muhammad ibn Mūsā al-Khwārizmī
Algoritmo: Trocar lâmpada 1- Posicione a escada embaixo da lâmpada queimada 2- Selecione uma nova lâmpada Se a potência não for a mesma da queimada, repita o processo até encontrar uma que sirva Descarte a lâmpada selecionada Selecione uma nova 3- Repita até que a lâmpada possa ser alcançada Suba um degrau da escada
Algoritmo: Trocar lâmpada 4. Repita até que a lâmpada fique livre do soquete Gire a lâmpada no sentido anti-horário 5. Posicione a nova lâmpada no soquete 6. Repita até que a lâmpada esteja firme no soquete Gire a lâmpada no sentido horário 7. Repita até que se alcance o chão Desça um degrau da escada
Exemplo de uso de Algoritmo Problema: Calcule as raízes reais da equação do 2o grau Ax2 + Bx + C = 0, dados os parâmetros A, B e C. Fórmulas matemáticas necessárias: ∆ = B2 − 4.A.C X1 = −(B +√∆)/2.A X2 = −(B −√∆)/2.A
Exemplo de uso de Algoritmo Elaborar o algoritmo: INÍCIO Leia (A,B,C); DELTA ← B ∗ B − 4 ∗ A ∗ C; Se DELTA ≥ 0 Então Início Se DELTA = 0 EntãoX1 ← X2 ← −B/(2∗A) Senão Início X1 ← (B + sqrt(DELTA)/(2 ∗ A); X2 ← (−B + sqrt(DELTA)/(2 ∗ A); Fim; Imprima (A,B,C,X1,X2); Fim:
Exemplo de uso de Algoritmo Codificação: print ("Cálculo das raízes de uma equação de") a = float(raw_input("Entre com a: ")) b = float(raw_input("Entre com b: ")) c = float(raw_input("Entre com c: ")) delta = (b*b) - 4 * a * c if delta >= 0: if delta == 0: x1 = -b/(2*a) x2 = x1 else: x1 = (-b+sqrt(delta))/(2*a) x2 = (-b-sqrt(delta))/(2*a) print("As raízes são: " + x1 + " e " + x2) print ("ERRO: não há raízes reais!")
Exemplo de uso de Algoritmo Por fim: Edição Compilação Teste
Trabalhinho Criar um algoritmo para algum problema. Por exemplo, para calcular a integrar numérica de uma equação como seno(x) entre 0 e π/2.
Perguntas?