Click here to load reader

Programação Computacional Aula 2: Introdução -Algoritmos Profa. Madeleine Medrano [email protected] [email protected]

  • View
    216

  • Download
    3

Embed Size (px)

Text of Programação Computacional Aula 2: Introdução -Algoritmos Profa....

  • Programao ComputacionalAula 2: Introduo -Algoritmos

    Profa. Madeleine Medrano [email protected]

  • RoteiroTermos tcnicosAlgoritmosConceito de AlgoritmoPartes de um algoritmoRepresentao de um algoritmoFluxogramaProgramas de computadorLinguagensLinguagem NaturalLinguagem de Maquina e AssemblerLinguagem de ProgramaoPseudocdigo

  • Alguns Termos TcnicosHardware Componentes mecnicos e eletro- eletrnicos que compem o computador. Parte dura do computador.

    Software Sequencia de instrues e comandos que fazem o computador realizar determinada tarefa.Tambm chamados de programas de computador. Devem estar armazenados em algum tipo de memria.Exemplos: contabilidade, folha de pagamento, correo de provas.

  • Alguns Termos TcnicosPerifrico qualquer componente do computador (hardware) que no seja a CPU. Exemplos: leitoras de disquete, CDs, monitores, teclados, vdeo, impressoras, etc.

  • Alguns Termos TcnicosSistema Operacional Coleo de programas que gerencia e aloca recursos de hardware e software.

    Exemplos de tarefas que um sistema operacional realiza so: leitura de dados pelo teclado,impresso de informaes no monitor,gerenciamento da execuo de vrios programas pela CPU,gerenciamento da memria principal e da memria secundria para uso dos programas em execuo, etc. Exemplos: Linux,Unix, Windows98, OS2, MS-DOS, etc.

  • Alguns Termos TcnicosLinguagens de ProgramaoConjunto de instrues que podem ser interpretados e executados diretamente pela CPU de um dado computador. especfica para cada computador.

    Serve como meio de comunicao entre o individuo que deseja resolver um determinado problema e o computador

    Geraes de linguagens1 gerao:linguagens em nvel de maquina2 gerao:linguagens de montagem (Assembly)3 gerao:linguagens orientadas aplicaes4 gerao:linguagens orientadas modularizao5 gerao:linguagens de conhecimento

  • 1 Gerao: Linguagens em nvel de mquina

    Instruo 0010 0001 0110 1100

    realiza a soma (cdigo de operao 0010) do dado armazenado no registrador 0001, com o dado armazenado na posio de memria 108 (0110 1100)

    Programa: sequncia de zeros e uns

    programao trabalhosa, cansativa e fortemente sujeita a erros

  • 2 gerao: Linguagens de Montagem (Assembly)

    (Linguagem de Baixo Nvel) Representao da linguagem de mquina atravs de cdigos mnemnicos. Tambm especfica de cada mquina.

    minimizar as dificuldades da programao em notao binria

    Cdigos de operao e endereos binrios foram substitudos por mnemnicos

    ADD R1, TOTAL R1 representa o registrador 1 e TOTAL o nome atribudo ao endereo de memria 108

    processamento requer traduo para linguagem de mquina Conjunto de tcnicas utilizadas para auxiliar o processo de memorizao

  • 3 gerao: Linguagens Orientadas Aplicao

    Surgiram na dcada de 60

    FORTRAN, Pascal, COBOL

    O foco deixa de ser no processador / instrues Programa em C:

    if (a>b) printf (O valor de A maior que o valor de B); else printf (O valor de A menor que o valor de B);

  • 4 gerao: Linguagens Orientadas Mdulos

    Esta gerao essencialmente o sinnimo para linguagens com abstrao de dados.

    A maioria das linguagens desta gerao focam na modularizao e no encapsulamento

    Ada

  • 5 gerao: Linguagens de Conhecimento

    mecanismos da rea de inteligncia artificial

    Sistemas especialistas, processadores de lngua natural e sistemas com bases de conhecimento

    Um sistema de 5 gerao armazena conhecimento complexo de modo que a mquina pode obter inferncias a partir da informao codificada

    PROLOG, LISP http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1

  • Nveis de linguagemlinguagens de baixo nvel primeira e segunda gerao linguagens de alto nvel terceira gerao em diante Linguagem de alto nvel Linguagem que independe do conjunto de instrues da linguagem de mquina do computador.

    Cada instruo de alto nvel equivale a vrias instrues da linguagem de mquina, sendo assim mais produtiva. Ex.: Pascal, C, Algol, BASIC, Lisp, Prolog, etc.

    PS: no site http://www2.latech.edu/~acm/HelloWorld.shtml, voc pode encontrar o programa Hello World implementado em dezenas de linguagens

  • Tradutores de linguagens de programao

  • Tradutores de linguagens de programao

  • Tradutores de linguagens de programao Tradutor programa que recebe como entrada um programa escrito em uma linguagem de programao (dita linguagem fonte) e produz como resultado as instrues deste programa traduzidas para linguagem de mquina (chamada linguagem objeto).

    Se a linguagem do programa fonte uma linguagem de montagem (Assembly)

    tradutor chamado de Montador (Assembler) Tradutores que traduzem os programas escritos em linguagem de alto nvel

    compiladores e os interpretadores

  • Tradutores de linguagens de programao Compilador Tradutor de programas escritos em uma linguagem de programao de alto nvel para programas em linguagem de mquina ou linguagem executvel.

    pode ser executado uma ou mais vezes no futuro

    enquanto o cdigo fonte do programa no for alterado, ele poder ser executado sucessivas vezes, sem necessidade de nova compilao

  • Compilador

  • Interpretador um programa que executa outros programas escritos em alguma linguagem de programao, instruo a instruo, enquanto ele vai sendo executado

    A execuo de um programa interpretado em geral mais lenta que o programa compilado.

    Por outro lado, o uso de programas interpretados permite que trechos de cdigos possam ser trocados por novos facilmente, fazendo com que o programa fonte possa mudar durante sua execuo.

    Este um dos grandes motivos de se usar programas interpretados em sistemas especialistas.

    Duas linguagens para as quais podemos encontrar interpretadores so Lisp e Prolog.

  • InterpretadorCada vez que um programa interpretado tiver que ser re-executado, todo o processo de interpretao dever ser refeito.

    Independentemente de ter havido ou no modificaes no cdigo fonte do programa desde sua ltima execuo

  • Software bsico Utilitrios

    Softwares de apoio soluo de problemas de disco, memria, etc Desfragmentador, limpeza de disco...

    Compactadores e descompactadores de arquivos, programas anti-virus Vrus Programas capazes de se instalar de forma clandestina nos sistemas Podem adotar procedimentos perturbadores fazer uma bolinha pular na tela declaradamente destrutivos (apagar informaes)

  • Algoritmo a descrio de uma sequencia finita de aes para realizar alguma tarefa.

    Nesta aula estaremos interessados em algoritmos computacionais, que escrevem uma sequencia de aes que podem ser traduzidos para alguma linguagem de programao

  • AlgoritmosAlgoritmos usam dados e produzem um resultado. - uma sequncia de instrues para solucionar um problema

    Um passo de um algoritmo:L dados armazenados no computador.Executa operaes matemticas e lgicas sobre dados.Armazena resultados.

  • Algoritmo: Bolo de ChocolateAquea o forno a 180o C Unte uma forma redonda Numa taa Bata 75g de manteiga 250g de acar at ficar cremoso Junte 4ovos, um a um 100g de chocolate derretido Adicione aos poucos 250g de farinha peneirada Ponha a massa na forma Leve ao forno durante 40 minutos

  • Pseudo-cdigo e FluxogramaEx.: imprimir maior valorLeia A;Leia B;Se A > B entoImprima A;SenoImprima B;Fim Se

  • Algoritmo de EuclidesUm exemplo o algoritmo de Euclides para calcular o mximo divisor comum de dois nmeros inteiros positivos.

    Passo 1: Adote x = m e y = n;Passo 2: Adote r =(resto de x dividido por y);Passo 3: Adote novos valores x = y e y = r;Passo 4: Se r diferente de 0, volte ao passo 2; seno pare com a resposta x.

  • Algoritmo de Euclides EstilizadoPasso1: Dados: m e n.Passo2: x m.Passo3: y n.Passo4: RepitaPasso4.1: r resto(x, y);Passo4.2: x y;Passo4.3: y r;Passo4.4: At que r = 0.Passo5: Imprima o resultado x.

  • Um programa em C

  • Algoritmo de Euclides em Linguagem C

  • Fim da apresentao

    Obrigada pela ateno

Search related