Aula02 1
Aula02 1
Aula02 1
2º Aula
Algoritmos
Objetivos de aprendizagem
LGHQWLILFDUDUHODomRHQWUH$OJRULWPRVHSURJUDPDV
GLIHUHQFLDUDVWUrVOLQJXDJHQVGHSURJUDPDomRHVDEHUTXDQGRXViODV
UHFRQKHFHUHHQWHQGHURVVtPERORVGRGLDJUDPDGHEORFR RXGLDJUDPDGHIOX[R
11 131
incondicional ou de interrupção do Algoritmo. Um desvio
Seções de estudo incondicional é aquele em que o programa muda seu fluxo
de execução arbitrariamente. Esse artifício pode ser usado
quando não se tem um completo domínio da lógica do
1 - Algoritmos estruturados
programa, mas deve ser evitado, pois provoca a quebra da
2 - Linguagens de programação
estrutura lógica do Algoritmo.
Os Algoritmos estruturados são fantásticos, você não
1 - Algoritmos estruturados acha? Agora, vamos passar ao estudo sobre as linguagens de
programação.
1.1 - Introdução
Desenvolver Algoritmos estruturados significa, 2 - Linguagens de programação
basicamente, utilizar uma metodologia de projeto de programas,
com o objetivo de facilitar:
D DHVFULWDGRV$OJRULWPRV Escrever um programa é o mesmo que traduzir um
E DOHLWXUDHRHQWHQGLPHQWRGRV$OJRULWPRV Algoritmo para uma linguagem de programação qualquer.
c) a manutenção e modificação dos Algoritmos. As linguagens de programação são softwares que permitem
transformar um Algoritmo em um programa de computador.
Aprender uma nova linguagem de programação é
9RF¬M£KDYLDSHQVDGRVREUHDVUD]·HVHDLPSRUW¤QFLDGHVHGHVHQYROYHU
uma tarefa fácil quando se tem um bom conhecimento
Algoritmos estruturados?
de Algoritmos, pois o maior problema na criação de um
programa não é a linguagem em si, mas sim as dificuldades na
O grande desafio da escrita de programas é reduzir a percepção do problema e na formulação de uma boa solução.
complexidade. Muitos programas são escritos de uma forma Existem linguagens para os mais diversos domínios
tão complicada que até o próprio autor tem dificuldade de aplicação, cada uma com seus propósitos. Algumas são
de interpretá-los depois. Para reduzir a complexidade dos destinadas ao desenvolvimento de aplicações comerciais,
Algoritmos deve-se: outras têm propósito científico, aplicações em inteligência
a) Escrever o Algoritmo fazendo refinamentos sucessivos. artificial ou na criação de programas para internet.
Isso é chamado de desenvolvimento top-down – essa técnica
consiste em ir escrevendo as funções principais do programa e
depois detalhar cada uma delas em funções menores, até que se Toda e qualquer linguagem é constituída por signos. Signos são
tenha um último nível que não é mais possível detalhar. LPDJHQV JHVWRV VRQV PHOµGLFRV H RXWURV VLVWHPDV GH VLJQLȴFD©¥R
b) Decompor o Algoritmo todo em módulos funcionais. 2VVLJQRVQ¥RW¬PVLJQLȴFDGRSRUVLPHVPRVPDVUHFHEHPVHQWLGRV
É mais fácil compreender uma solução se a analisarmos por convencionados e, assim, passam a ser usados na comunicação, seja
partes, ao invés de olharmos a solução como um todo. A esse linguística, seja de programação. A ciência que estuda os signos é a
processo chamamos de modularização. 6HPLRORJLD %$57+(6
c) Usar soluções simples e não muito extensas em cada um
dos módulos, com poucas estruturas de controle para facilitar
o entendimento.
As linguagens de programação podem ser dos seguintes
Vamos, agora, observar em mais detalhes como utilizar tipos: interpretadas, compiladas ou híbridas.
cada uma das técnicas citadas.
2.1 - Linguagens interpretadas
1.2 - Principais Técnicas de
Estruturação dos Algoritmos Nas linguagens interpretadas, o interpretador lê, analisa
e executa cada instrução do programa fonte, sem traduzir
As três principais técnicas para a estruturação dos para uma linguagem de máquina. Cada linha ou instrução
Algoritmos são: é executada na sequência. Quando um erro é encontrado, a
a) Desenvolvimento top-down: depois que entendemos o execução do programa é interrompida.
problema a ser solucionado, precisamos formular alternativas O interpretador simula por software uma máquina
de solução. Para isso, formulamos uma possível solução, a qual virtual, na qual o ciclo de execução entende os comandos da
precisa ser refinada, ou seja, detalhada em partes menores até linguagem de alto nível.
que se tenha uma visão de todos os detalhes. Note que esse tipo de linguagem oferece algumas
b) Modularização: a modularização consiste em dividir desvantagens, como a necessidade da presença do código fonte
a solução do problema em partes, ou módulos, cada um para a execução do programa. Além disso, o interpretador da
com funções bem definidas, dando maior agilidade ao linguagem precisa estar instalado no computador onde está o
desenvolvimento. programa.
c) Estruturas de controle: o uso de estruturas de controle A execução do programa é bem mais lenta do que nas
adequadas afeta diretamente a qualidade do Algoritmo. Muitos linguagens compiladas, uma vez que o interpretador precisa
programadores têm o costume de usar comandos de desvio analisar as instruções do programa sempre que vai executá-las.
132 Algoritmos I 12
Retirar a lâmpada
Fechar o drive de DVD
velha Vale a pena
Minhas DQRWD©·HV