Click here to load reader
View
216
Download
3
Embed Size (px)
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