Aula02 1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

130 Algoritmos I

2º Aula

Algoritmos

Estudaremos, nesta aula, os Algoritmos. Veremos


como estruturá-los e identificaremos os métodos
que podem ser de ajuda na escrita de programas. É
importante que qualquer dúvida seja eliminada na
plataforma, utilizando as ferramentas “quadro de avisos”
ou “fórum”.
Não deixe que suas dúvidas o(a) impeçam de
prosseguir em seus estudos. Lembre-se: cada passo
compreendido é um passo para uma base melhor, o que
vai tornar você um profissional mais qualificado.
Boa aula!

Objetivos de aprendizagem

Esperamos que, ao término desta aula, você seja capaz de:

‡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

Vamos visualizar como funcionam as linguagens interpretadas na Você sabia?


)LJXUD [...] Que uma linguagem híbrida “tem maior portabilidade que uma
OLQJXDJHPFRPSLODGDȋ" 8)6&$5
Programa-fonte
Programas escritos em uma linguagem híbrida são mais
Dados de entrada rápidos que os de uma linguagem interpretada, isso porque
as instruções intermediárias são projetadas para serem
Interpretador interpretadas facilmente.

2.4 - Diagrama de Bloco


Resultados
Figura 2.1 Funcionamento das linguagens interpretadas.
Também conhecido como diagrama de fluxo, é uma
Fonte: acervo pessoal. forma padronizada para representar os passos lógicos de um
2.2 - Linguagens Compiladas determinado processamento. Com ele, podemos definir uma
sequência de símbolos, de significados bem definidos. Sua
Os compiladores têm a tarefa de ler e analisar o programa função é facilitar a visualização dos passos da resolução de um
escrito em uma linguagem de programação – o programa Algoritmo. Dentro do símbolo sempre é escrita a instrução a
fonte ou código fonte – e traduzi-los para a linguagem de ser realizada. Veja Quadro 2.2:
máquina, executando-os diretamente no computador.
4XDGUR'LDJUDPDGHEORFR ȵX[R
Diferentemente da interpretação, a compilação analisa
todo o código fonte à procura de erros. Só depois que
essa análise termina – e sem que nenhum erro tenha sido Símbolo Função
encontrado – é que será criado um código intermediário
chamado de “código objeto”. Esse código objeto será então ΖQGLFDRLQ¯FLRHRXȴPGRȵX[RGR
linkeditado (ou ligado) e um código executável será gerado. algoritmo.
TERMINAL
8PFRPSLODGRU«XPSURJUDPD RXXPFRQMXQWRGHSURJUDPDV TXH
WUDGX]XPFµGLJRIRQWHSDUDXPDOLQJXDJHPGHPDLVEDL[RQ¯YHO D Indica cálculos a efetuar,
linguagem alvo, que tem uma forma binária conhecida como código DWULEXL©·HVHYDORUHV
REMHWR  1RUPDOPHQWH R FµGLJR IRQWH « HVFULWR HP XPD OLQJXDJHP
de programação de alto nível, com grande capacidade de abstração, 352&(66$0(172
HRFµGLJRREMHWR«HVFULWRHPXPDOLQJXDJHPGHEDL[RQ¯YHOFRPR
XPD VHTX¬QFLD GH LQVWUX©·HV D VHU H[HFXWDGD SHOR SURFHVVDGRU 2 Indica a decisão que deve ser
compilador é um dos dois tipos mais gerais de tradutores, juntamente tomada, indicando a possibilidade
FRPRLQWHUSUHWDGRU 3(648203Ζ/(  de desvios.
'(&Ζ6 2
Nos programas compilados, não há a necessidade da Fonte: acervo pessoal.
presença do código fonte para a sua execução, assim como o
compilador não precisa estar instalado para isso. O programa Notem que, nos diagramas de blocos, a descrição
executável criado é independente da linguagem. Nesse caso, a do raciocínio se dá por meio de símbolos gráficos. É por
execução do programa é mais rápida, uma vez que o programa intermédio deles que resolveremos os Algoritmos.
fonte não precisará ser analisado em cada execução. Vale salientar que esses símbolos foram sendo criados
A figura 2.2 mostra o processo de compilação. Observe-a: de acordo com a necessidade de apresentar a resolução
dos Algoritmos. Nós vimos apenas três deles: terminal,
Tradução processamento e decisão. No entanto, existem muitos outros,
Programa-fonte Programa-objeto como: entrada de dados, saída de dados, saída de dados
no vídeo, conector, preparação, linha de comunicação.
Figura 2.2 Processo de compilação.
Fonte: acervo pessoal.
O que dificulta a utilização dos diagramas são os desenhos
que se tornam um pouco confusos e complexos, bem como
2.3 - Linguagens Híbridas sua difícil manutenção.
Atualmente, eles não são mais utilizados na prática.
As linguagens híbridas usam a interpretação e a
compilação. Nesse contexto, o compilador tem o papel de
converter o código fonte em um código conhecido por byte 9DPRVDJRUDUHID]HURVH[HUF¯FLRVUHDOL]DGRVQD$XOD&RQWXGRGHVWD
code – uma linguagem de baixo nível, que depois é interpretada. vez utilizando a simbologia dos diagramas de blocos. Faça uma tentativa
Como exemplo, podemos citar a linguagem JAVA, que gera HGHSRLVFRPSDUHDFRPD)LJXUD
um código chamado de Java Bytecode (EBAH, 2011).
13 133
Ligar o DVD Trocar uma lâmpada as linguagens compiladas, nas quais os compiladores têm a
tarefa de ler e analisar o programa escrito em uma linguagem
Ζ1Θ&Ζ2 Ζ1Θ&Ζ2 de programação e traduzi-los para a linguagem de máquina,
H[HFXWDQGRRV GLUHWDPHQWH QR FRPSXWDGRU DV OLQJXDJHQV
KtEULGDV TXH XVDP D LQWHUSUHWDomR H D FRPSLODomR EHP
Ligar a TV Pegar uma escada
como o diagrama de bloco, com o qual podemos definir
uma sequência de símbolos, de significados bem definidos
que facilitam a visualização dos passos da resolução de um
Algoritmo.
&RORFDUHPEDL[RGD
Ligar o DVD
lâmpada (VSHURTXHVHXVHVWXGRVUHIHUHQWHV¢$XODWHQKDPVLGRSURYHLWRVRV
Mas, caso ainda tenha dúvidas, sugerimos que acesse o ambiente
virtual e utilize as ferramentas apropriadas para se comunicar com
Buscar uma lâmpada seus colegas de curso e com seu professor. Além disso, é importante
Abrir o drive do DVD TXHUHȵLWDVREUHRVFRQWH¼GRVHDVHVWUDW«JLDVGLG£WLFDVHPSUHJDGDV
nova
SDUDDDSUHQGL]DJHPGHVWD$XODRTXHIRLERP"2TXHSRGHPHOKRUDU"
/HPEUHVHGHTXHHVWDUHPRVHVSHUDQGRVXDVVXJHVW·HVSDUDPHOKRUDU
QRVVRVUHFXUVRVHW«FQLFDVGLG£WLFDVXWLOL]DGRVQRFXUVR$ȴQDOQD($'
Inserir o disco de DVD Subir na escada a construção de conhecimento é um trabalho de todos. Participe, nós
WDPE«PTXHUHPRVDSUHQGHUFRPYRF¬

Retirar a lâmpada
Fechar o drive de DVD
velha Vale a pena

Pressionar o Play do Colocar a lâmpada


DVD nova Vale a pena ler

BARTHES, Roland. Elementos de semiologia. São Paulo:


Cultrix, 2006.
FIM FIM *8,0$5®(6 ÇQJHOR GH 0RXUD /$*(6 1HZWRQ
Figura 2.3 Exercícios utilizando diagramas de blocos.
Alberto de Castilho. Algoritmos e estrutura de dados. Rio de
Fonte: acervo pessoal. Janeiro: LTC, 1994.
0$1=$12 -RVp $XJXVWR 1 * 2/,9(,5$ -D\U
Retomando a aula Figueiredo de Oliveira. Algoritmos - lógica para desenvolvimento
de programação. 2. ed. São Paulo: Érica, 2007.
VENÂNCIO, Cláudio Ferreira. Desenvolvimento de
algoritmos: uma nova abordagem. São Paulo: Érica, 2000.
Para continuar apresentando um desempenho
satisfatório, é importante que retomemos o conteúdo
estudado nesta Aula.

1 - Algoritmos estruturados Vale a pena acessar


Na primeira Seção tivemos a oportunidade de entender que
OFICINA DA NET. Algoritmo estruturado. Disponível
desenvolver Algoritmos estruturados significa, basicamente,
em: KWWSZZZRILFLQDGDQHWFRPEUDSRVWLODV
utilizar uma metodologia de projeto de programas com os
GHWDOKHDSRVWLODBGHBDOJRULWPRBHVWUXWXUDGR!. Acesso
objetivos de facilitar a escrita, a leitura e o entendimento dos
em: 28 jun. 2011.
Algoritmos.
PEQUOMPILE. O que é um compilador. Disponível
Além disso, estudamos as principais técnicas para a
em: KWWSZZZRILFLQDGDQHWFRPEUDSRVWLODV
estruturação dos Algoritmos, ou seja, o desenvolvimento top-
GHWDOKHDSRVWLODBGHBDOJRULWPRBHVWUXWXUDGR!. Acesso
down, a modularização e as estruturas de controle.
em: 28 jun. 2011.
2 - Linguagens de programação UFSCAR – Universidade Federal de São Carlos.
Métodos de implementação de linguagens. Disponível em:
Na Seção 2, construímos conhecimentos sobre as KWWSZZZRILFLQDGDQHWFRPEUDSRVWLODVGHWDOKH
linguagens interpretadas, em que o interpretador simula DSRVWLODBGHBDOJRULWPRBHVWUXWXUDGR!. Acesso em: 28 jun.
por software uma máquina virtual que faz com que o ciclo de 2011.
H[HFXomR HQWHQGD RV FRPDQGRV GD OLQJXDJHP GH DOWR QtYHO
134 Algoritmos I 14

Vale a pena assistir


FERNANDES, A. R. Entendendo algoritmos -
Parte I. Disponível em: KWWSZZZ\RXWXEHFRP
ZDWFK"Y 18WPZUUR,!. Acesso em: 28 jun. 2011.

Minhas DQRWD©·HV

Você também pode gostar