Aula 01 algoritmo

34
ALGORITMOS E PROGRAMAÇÃO: CONTEXTOS E PRÁTICAS Luiz Paulo Pereira Silva [email protected]

Transcript of Aula 01 algoritmo

Page 1: Aula 01 algoritmo

ALGORITMOS EPROGRAMAÇÃO:CONTEXTOS E PRÁTICAS

Luiz Paulo Pereira Silva

[email protected]

Page 2: Aula 01 algoritmo

1.1 Conceito de lógica◦O dicionário Houaiss descreve a lógica da seguinte

forma:  

“1. Estudo filosófico das formas do pensamento (dedução, indução, hipótese, inferência etc.) e do raciocínio, considerados como condição para o conhecimento; 2. Forma de encadeamento e/ou de raciocínio; 3. Coerência, fundamento”

Introdução à Lógica

01/09/15

Page 3: Aula 01 algoritmo

1.2 Conceito de programação de computadores◦A principal característica que diferencia um

computador de qualquer outro equipamento ele- trônico é sua “programabilidade”, ou seja, a capacidade de ser programável para executar um grande número de tarefas diferentes.

01/09/15

Page 4: Aula 01 algoritmo

01/09/15

Page 5: Aula 01 algoritmo

No entanto, tudo que os computadores (e outros dispositivos controlados por microprocessadores ou microcontroladores) entendem são sinais elétricos, representados pelos dígitos 0 (ausência de voltagem) e 1 (presença de voltagem), também conhecidos como bits. E são esses bits, ou mais precisamente a combinação deles, que formam todas as instruções que fazem o computador agir da forma que desejamos. Sendo assim, eles são completamente ignorantes no que diz respeito ao reco- nhecimento de comandos dados em nossa própria língua.

01/09/15

Page 6: Aula 01 algoritmo

01/09/15

Page 7: Aula 01 algoritmo

01/09/15

Page 8: Aula 01 algoritmo

AULA 02

01/09/15

Page 9: Aula 01 algoritmo

Existem diversos tipos de linguagens de programação, que trabalham de forma diferente e possuem estrutura e comandos diferentes.

No início da era da computação, os programadores se viam obrigados a programar diretamente em linguagem de máquina, composta por inúmeras combina- ções de 0s e 1s, o chamado código binário.

2.1 Linguagens de programação

01/09/15

Page 10: Aula 01 algoritmo

Como era muito difícil decorar a função que cada uma das combinações exercia no processador, criou-se então uma linguagem mais próxima do entendi- mento humano que foi denominada de Assembly.

Em inglês significa montagem

01/09/15

Page 11: Aula 01 algoritmo

01/09/15

Page 12: Aula 01 algoritmo

Existem dois termos técnicos muito empregados em programação que devem ser esclarecidos antes de prosseguirmos. O primeiro é código-fonte, que designa o texto escrito numa linguagem de programação e que pode ser lido por qualquer pessoa, mesmo quem não sabe programar. Esse texto segue as regras impostas pela linguagem, como sintaxe dos coman- dos e funções.

O segundo termo é programa executável, que consiste numa sequência de instruções em linguagem de máquina (códigos binários) inteligível ao computador e muito difícil (ou quase impossível) de ser entendido por um ser humano. Esse pro- grama executável é criado por dois processos distintos, conhecidos como interpretação e compilação.

Fique de olho!

01/09/15

Page 13: Aula 01 algoritmo

Na interpretação, um processo empregado principalmente pela linguagem BASIC (Beginners All Purpose Symbolic Instruction Code) nos computadores das décadas de 1970 a 1990, o código-fonte do programa é convertido em linguagem de máquina à medida que o programa é executado.

01/09/15

Page 14: Aula 01 algoritmo

Já em programas compilados, o código-fonte é inteiramente convertido em linguagem de máquina uma única vez. O software que efetua essa conversão é chamado de compilador.

01/09/15

Page 15: Aula 01 algoritmo

Esses arquivos objetos são uma versão intermediária entre o código-fonte e o código exe- cutável. Não é possível rodá-los diretamente, sendo necessário o processo de linkedição, como é chamada a ligação desses arquivos com as bibliotecas da linguagem. Na compilação, cada comando ou função existente no código-fonte é convertido numa chamada para o código real que se encontra gravado nessas bibliotecas.

01/09/15

Page 16: Aula 01 algoritmo

01/09/15

Page 17: Aula 01 algoritmo

Um terceiro método de execução de programas é denominado pseudocompilação. Nele, o compilador gera um código intermediário, com instruções em código de máquina, mas não resolve os endereços de chamada a rotinas da biblioteca de funções da linguagem. Durante a execução, um programa denominado Run-time é carregado na memória junto com o código compilado. Esse Run-time é responsável por determinar os endereços de memória das funções e procedimentos chama- dos pelo programa durante o tempo de execução.

01/09/15

Page 18: Aula 01 algoritmo

Existe ainda o método empregado pela linguagem Java, que é bastante semelhante à pseudo- compilação. O Run-time dessa linguagem consiste num programa denominado Máquina Virtual Java (JVM - Java Virtual Machine), que não apenas resolve as referências de endereço, mas também oferece uma camada de software que serve de ponte entre o nosso programa e o sistema operacional.

01/09/15

Page 19: Aula 01 algoritmo

Todo programa de computador é o resultado da busca pela solução de um problema. Considere como exemplo a necessidade de registrar as vendas de uma empresa. É criado então um rascunho da ideia principal.

A partir desse rascunho é desenvolvido o algoritmo do programa, que pode ser representado por um diagrama de blocos ou por uma descrição narrativa bastante detalhada de todos os processos.

Com base nesse algoritmo, o programador constrói o programa utilizando uma linguagem de programação. O programa é testado para detecção de possíveis problemas e/ou erros e quando for finalizado, se torna disponível ao usuário.

2.2 Do problema ao programa

01/09/15

Page 20: Aula 01 algoritmo

01/09/15

Page 21: Aula 01 algoritmo

01/09/15

Page 22: Aula 01 algoritmo

3.1 Programação modular

◦Assim como ocorre quando precisamos solucionar um problema de Matemática ou Física, ao nos depararmos com situações de programação difíceis de serem resolvidas, a melhor opção é decompor o problema em porções menores, mais fáceis de trabalhar. Com isso dividimos a complexidade de forma a simplificar o problema.

Técnicas de Programação

01/09/15

Page 23: Aula 01 algoritmo

Cada parte em que o problema é dividido resulta num fragmento de código que denominamos de módulo ou subprograma. Essa divisão de um programa maior em diversos subprogramas é uma técnica denominada de programação modular.

01/09/15

Page 24: Aula 01 algoritmo

A técnica de programação estruturada é fundamentada na construção de sistemas com a utilização de blocos como estruturas básicas, que podem ser expandidas até o nível de complexidade necessário à resolução de um determinado problema.

Um bloco é formado por diversas instruções que são executadas em conjunto por estarem logicamente ligadas.

3.2 Programação estruturada

01/09/15

Page 25: Aula 01 algoritmo

O código final obtido pela programação estruturada é muito claro e de fácil entendimento, mesmo por outras pessoas que não sejam as que desenvolveram o código.

01/09/15

Page 26: Aula 01 algoritmo

Entre as principais vantagens da programação estruturada temos:◦possibilidade de padronização devido ao número

reduzido de estruturas;◦as estruturas podem ser inseridas em módulos

distintos;◦programas estruturados geralmente já possuem

uma autodocumentação interna;◦aumento na produtividade dos programadores.

01/09/15

Page 27: Aula 01 algoritmo

A técnica de programação orientada por objeto surgiu no final dos anos de 1970 e início de 1980, quando os pesquisadores do Centro de Pesquisas da Xerox, em Palo Alto, Califórnia, desenvolveram uma linguagem de programação chamada SmallTalk, que utilizava pela primeira vez o conceito de classes e objetos.

3.3 Programação orientada por objeto

01/09/15

Page 28: Aula 01 algoritmo

A ideia básica por trás dessa técnica é a capacidade de reutilização de códigos já prontos, denominados classes, para criarmos as partes vitais do programa, denominadas de objetos. Com isso é possível economizar um bom tempo no processo de desenvolvimento de um programa.

01/09/15

Page 29: Aula 01 algoritmo

Uma característica interessante da programação orientada por objetos é que podemos derivar um objeto de outro previamente criado. Em outras palavras, significa que podemos criar um objeto que herda alguns atributos e ações do antecessor.

01/09/15

Page 30: Aula 01 algoritmo

Entre as principais linguagens de programação orientada por objetos temos C++, Object Pascal e Java. A ferramenta de projeto mais utilizada no desenvolvimento de aplicações que emprega essa metodologia é a UML (Unified Modeling Language - Linguagem de Modelagem Unificada).

01/09/15

Page 31: Aula 01 algoritmo

01/09/15

Page 32: Aula 01 algoritmo

Enviar o arquivo que você criou com a pasta e subpastas no email:

[email protected]

Finalizar o Exercício

01/09/15

Page 33: Aula 01 algoritmo
Page 34: Aula 01 algoritmo

Obrigado pela

atenção...

Luiz Paulo Pereira Silva

[email protected]