Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ilustrador
Joaquim Rodrigues
Conteudistas 1 Semestre
Adalberto Gualeve
Almir Serra Martins Menezes Neto
Eduardo Lobo
Vandor Rissoli
Algoritmos e Programao
Sumrio
Sumrio
Ementa................................................................................................. 6
Objetivos.............................................................................................. 6
Aula 01 - Introduo s Linguagens de Programao .......................... 8
Processamento de Dados ................................................................................8
Programa e Programador.............................................................................. 13
Lgica e Raciocnio Lgico............................................................................. 14
Algoritmo ................................................................................................... 16
Etapas do Desenvolvimento de Programas Computacionais ............................... 19
Fluxograma ................................................................................................................................23
Diagrama de Chapin...................................................................................................................24
Portugus Estruturado ................................................................................................................25
Linguagem de Programao .......................................................................... 29
Instruo Leia.............................................................................................................................40
Instruo Escreva .......................................................................................................................42
Operadores................................................................................................. 44
Algoritmos e Programao
Sumrio
rvore Binria..........................................................................................................................130
Referncias Bibliogrficas ................................................................ 132
Glossrio .......................................................................................... 133
Algoritmos e Programao
Referncias Bibliogrficas
Ementa
Introduo s linguagens de programao. Sintaxe e semntica. Linguagens fonte e objeto. Traduo,
compilao e interpretao. Programao estruturada. Pseudocdigo. Orientao a objetos. Fundamentos
de algoritmos: variveis e constantes. Estruturas de controle (seqncia, seleo e repetio). Variveis,
tipos de dados, atribuies e expresses. Estruturas de dados (listas, filas, pilhas e rvores).
Objetivos
A dedicao e o estudo nesta disciplina fornecem competncia essencial ao desenvolvimento de
habilidades de anlise, criao e aplicao de recursos tecnolgicos, provenientes dos mais diferentes
domnios em que a computao possa ser empregada, na resoluo de problemas. Na especificao
abaixo, esto relacionados os principais objetivos que se espera que os estudantes atinjam ao final da
disciplina:
criar algoritmos coerentes com a soluo de problemas que possam empregar programas
computacionais em sua soluo; e
Contextualizao
A rea de tecnologia promove vislumbre nas pessoas que no a conhecem profundamente. Esse encanto
est presente na realidade de grande parte da populao mundial, que constata, a cada dia, a
importncia de seus diversos recursos de comunicao e informtica como ferramentas que apiam a
melhoria na qualidade de vida de todos os seres neste mundo. No entanto, a quantidade de profissionais
que se envolvem com esta rea no consegue atender a demanda mundial no uso e evoluo dos
recursos disponveis.
O envolvimento com o estudo, aprendizagem e pesquisa nesta seara tecnolgica essencial para o seu
avano, alm de contribuir com a formao de profissionais capacitados e conscientes da importncia da
rea tecnolgica na realidade da sociedade atual.
Algoritmos e Programao
Referncias Bibliogrficas
Algoritmos e Programao
Aula 01
Processamento de Dados
A expresso processamento de dados tornou-se muito comum no cotidiano humano, sendo empregada
com vrios sentidos pelas pessoas. De modo geral, pode-se compreender o processamento de dados
como um conjunto de trs etapas fundamentais: entrada, processamento e sada de dados, conforme a
Figura 1.1 abaixo:
Algoritmos e Programao
Aula 01
Processamento:
Consiste na manipulao dos dados armazenados e gerados em processamentos anteriores para
efetivao do processamento (transformao, clculo, comparao etc.) desejado, de forma a gerar
novos resultados esperados que, possivelmente, tambm sero armazenados por esses mesmos recursos
eletrnicos.
Sada de dados:
Corresponde ao fornecimento dos resultados encontrados pelo processamento realizado pelo computador.
Normalmente, a entrada de dados fornece ao computador os dados brutos a ser processados para
gerao dos dados informativos que atendero as necessidades dos indivduos que utilizam o
computador. Esses indivduos so chamados de usurios e possuem interesse nos dados informativos
apresentados pelo computador por meio da sada de dados. Esses dados processados e contextualizados
para um fim especfico constituem as informaes.
Para que o computador consiga realizar aes e cumprir tarefas sobre esses dados, geralmente,
necessrio o estabelecimento de um canal de comunicao com seus usurios. O que permite o
estabelecimento deste canal de comunicao so os dispositivos de entrada e sada de dados.
A realizao de todas essas aes executadas pelo computador envolve vrios dispositivos eletrnicos
que, coerentemente interligados, se constituiro realmente no seu computador. Em uma viso ampla e
genrica, sem muita preocupao eletrnica (pois ser abordada em detalhes posteriormente por outra
disciplina), observe a representao clssica e mais detalhada de processamento de dados sobre os
recursos essenciais ao funcionamento do computador na Figura 1.2 a seguir:
Algoritmos e Programao
Aula 01
Com base nesta viso genrica, os principais dispositivos eletrnicos envolvidos no processamento de
dados so definidos e exemplificados a seguir:
Processador:
Componente do computador que executa as instrues existentes no programa, estando cada instruo
descrita em linguagem de mquina. O processador interpreta a instruo corrente, executa-a e determina
qual a prxima instruo a ser executada. Este componente tambm chamado de CPU (Central
Processing Unit) ou UCP (Unidade Central de Processamento).
Memria:
Componente que armazena programas e dados a serem executados e manipulados pelo computador, de
acordo com o desejo do usurio. A memria tambm chamada de memria principal ou memria RAM
(Random Access Memory), consistindo de uma seqncia finita de unidades de armazenamento de
dados identificadas por um endereo nico, descrito por um nmero inteiro no negativo.
10
Algoritmos e Programao
Aula 01
Dispositivos de Entrada:
Representa o grupo de componentes que podem ser ligados (ou conectados) ao computador para
permitir a comunicao dele com o mundo externo (mundo real). Por exemplo: o teclado permite ao
usurio se comunicar com o computador, fornecendo dados a serem usados no processamento de
alguma informao.
Dispositivos de Sada:
Representa o conjunto de componentes que podem ser ligados (ou conectados) ao computador,
permitindo a comunicao dele com o mundo externo (mundo real). Por exemplo: o monitor, tambm
conhecido como vdeo, permite ao computador comunicar o resultado de uma operao ao seu usurio.
Os dispositivos que podem ser acrescidos ou retirados de um computador tambm so chamados de
perifricos. H alguns que desempenham as duas funcionalidades, ou seja, realizam operaes de
entrada e sada de dados, como o caso dos discos e fitas magnticas utilizadas para armazenamento de
dados manipulados pelo computador. Alguns exemplos de dispositivos so:
ENTRADA:
teclado, scanner, mouse, disquete, entre outros.
SADA:
impressora, vdeo ou monitor, disquete, entre outros.
Como o processamento s acontece quando os dados esto armazenados na memria do computador,
suas tarefas, relacionadas com este armazenamento de dados, so de fundamental importncia ao
funcionamento correto dele, inclusive sobre seus dispositivos perifricos.
Dessa forma, o processamento de dados, realizado pelo computador consiste na execuo de vrias
operaes sobre os dados armazenados (comparao, clculo, cpia, alterao etc.) que, posteriormente,
sero transmitidos e interpretados por seu usurio. Este usurio deseja obt-los de forma compreensvel
e til aos seus objetivos, o que os tornar realmente informaes (dados que transmitem conhecimentos)
a serem usadas ou aplicadas na soluo dos problemas existentes no mundo real.
11
Algoritmos e Programao
Aula 01
O computador, que se constitui uma ferramenta muito til ao interesse humano, possui grande
capacidade de processamento com velocidade muito superior capacidade de interao humana. Mas
tambm depende do raciocnio humano para a realizao de tarefas corretas, pois, apesar de tamanha
capacidade, os computadores no possuem um raciocino prprio e coerente com todas as situaes
existentes e necessrias do mundo real. Como exemplo, pode-se observar a enorme dificuldade de o
computador envolver aspectos afetivos para a tomada de deciso/ao sobre uma determinada situao
real.
O aproveitamento desta capacidade computacional fundamental ao uso do computador, porm ela
inviabiliza a constante interferncia humana no processo de resoluo de um problema. Imagine, por
exemplo, a utilizao de um computador que chega velocidade de 1 nanosegundo (1 milsimo de
microsegundo) no processamento de dados, tendo que aguardar uma deciso/ao humana que pode
demorar alguns segundos (sendo muito otimista, pois ela tambm pode levar minutos, horas, dias etc.).
Pouco adiantaria um recurso como este, tendo ele sempre que aguardar muito tempo para dar
continuidade s operaes a serem realizadas.
12
Algoritmos e Programao
Aula 01
Programa e Programador
Os programas computacionais so seqncias de instrues escritas em uma linguagem de programao
a serem realizadas por um computador que procura atingir um objetivo (resolver um problema) ou
ajudar seu usurio a atingi-lo. As linguagens de programao so codificaes padronizadas que
permitem a efetivao da comunicao desejada de forma eficiente e eficaz entre o ser humano e o
computador. Porm, antes dessa comunicao ser efetivada, o ser humano deve encontrar a soluo
para o problema existente. Por exemplo: como poder ser resolvido o problema de venda existente em
uma grande indstria de bebidas no Brasil?
A primeira preocupao deve ser em conhecer muito bem o problema, pois
assim ser possvel raciocinar sobre ele, de forma a encontrar uma soluo
segura e eficaz para a sua resoluo. No exemplo relacionado s vendas de
bebidas, seria necessrio conhecer mais dados e informaes sobre o
problema: Seriam as entregas muito lentas? Ou os vendedores que no se
comportam adequadamente no processo de venda? Talvez o produto no
esteja satisfazendo o cliente? Realmente, no se sabe nem se existe um
problema, ento como poderia ser encontrada uma soluo para ele?
Um dos passos fundamentais na elaborao de um programa eficiente e
eficaz o conhecimento sobre todos os detalhes possveis que envolvero o
computador
programa
computacional
que
ser
elaborado
disponibilizado aos seus respectivos usurios. Portanto, quanto mais informaes do problema forem do
conhecimento do indivduo responsvel pelo planejamento, desenvolvimento e disponibilizao do
programa, menores sero as chances de processamento incorreto, ou mesmo incompleto, realizado pelo
programa que ser executado pelo computador. O indivduo que realiza esse tipo de atividade
profissional, desenvolvimento de programas, comumente chamado de programador.
O planejamento para o desenvolvimento de programas requer tempo suficiente para o programador
pensar nas possibilidades envolvidas e encontrar um raciocnio lgico e coerente para a soluo do
problema identificado. Como os problemas nem sempre so simples, as solues e conseqentemente
suas lgicas tambm no o sero, pois devero envolver o mximo de aspectos que podem influenci-lo
de alguma forma. Os problemas aqui abordados so os relacionados com a manipulao de dados e
informaes, envolvendo, geralmente, uma pergunta de carter geral a ser respondida pelo computador
que auxiliar (suporte), de alguma forma, seu usurio em resolver problemas do mundo real, os quais
so tambm tratados como problemas computacionais.
13
Algoritmos e Programao
Aula 01
14
Algoritmos e Programao
Aula 01
cumprimento
eficiente
de
objetivos
desejados
pelos
usurios
de
recursos
tecnolgicos
computacionais.
O estudo nesta rea no tem o objetivo de ensinar ningum a pensar, pois todas as pessoas normais
possuem e desenvolvem esta habilidade durante o seu processo de evoluo como ser humano (criana
jovem adulto idoso). No entanto, o principal interesse desse estudo apresentar, desenvolver e
aperfeioar o raciocnio lgico a ser implementado no computador, de forma que este consiga atingir os
objetivos almejados por seus usurios, quando empregado em alguma atividade.
O processo de implementao na rea computacional consiste, basicamente, na codificao do raciocnio
humano a ser efetuado por um computador, que procurar uma boa soluo para o problema
computacional. Esse raciocnio ser descrito em uma linguagem de comunicao com o computador,
denominada linguagem de programao, pois este dever compreender as instrues necessrias ao
atendimento do objetivo desejado por seu usurio e execut-las.
Porm, antes dessa descrio, o programador dever encontrar o raciocnio lgico completo que permitir
ao computador chegar a uma soluo ou contribuir com informaes que possibilitaro ao seu usurio
encontrar a melhor soluo para o problema existente.
15
Algoritmos e Programao
Aula 01
Algoritmo
Uma das principais tcnicas de representao de raciocnio nesta rea conhecida como algoritmo. Esta
tcnica possibilita uma representao simples e clara o suficiente para compreender a lgica racional a
ser empregada na soluo do problema existente.
O conceito de algoritmo possui vrias definies elaboradas por estudiosos de diversas reas. Algumas,
mais interessantes ao estudo desta disciplina, so apresentadas a seguir.
"Algoritmo so regras formais para a obteno de um resultado ou da soluo
de um problema, englobando frmulas de expresses aritmticas" (MANZANO,
2000, p.6).
"Algoritmo uma seqncia de passos que visa atingir um objetivo bem
definido" (FORBELLONE, 2000, p.3).
"Ao um acontecimento que, a partir de um estado inicial, aps um perodo
de tempo finito, produz um estado final previsvel e bem definido. Portanto,
16
Algoritmos e Programao
Aula 01
17
Algoritmos e Programao
Aula 01
A realizao dos onze passos, seqencialmente definidos no exemplo anterior, resultou em um delicioso
sanduche (estado final), sendo esses passos uma seqncia finita de aes que podem ser realizadas por
qualquer pessoa, sem o uso do computador. possvel tambm que cada um faa o sanduche de
maneira diferente, seguindo uma outra ordenao dos passos, e ainda assim elaborar um delicioso
sanduche, atingindo o objetivo esperado.
Diversos so os mtodos e tcnicas existentes para a construo de algoritmos. No entanto, todas elas
possuem um mesmo objetivo, onde as suas variaes no passam de detalhes diante de sua organizao
geral no atendimento a uma ou outra rea mais especificamente.
18
Algoritmos e Programao
Aula 01
Relembrando o Estudo
2.
definir os dados que essencialmente devero ser informados pelo usurio para que o
processamento seja realizado com sucesso (dados de entrada);
3.
4.
5.
construir o algoritmo que represente a soluo encontrada com o detalhamento necessrio para a
implementao almejada; e
6.
testar o algoritmo por meio de simulaes e efetuar as devidas correes que possam vir a ser
necessrias na lgica proposta.
19
Algoritmos e Programao
Aula 01
Projeto:
Nesta etapa, aplica-se mtodos e tcnicas que possibilitem a descrio necessria do problema com suas
possveis solues. Ela consiste no projeto do programa, sendo elaborada por meio da construo do
algoritmo e da definio correta das estruturas de dados necessrias para tal soluo.
20
Algoritmos e Programao
Aula 01
Codificao:
Esta etapa consiste na implementao do projeto do programa, ou seja, na traduo do raciocnio,
representado no algoritmo, para um programa computacional escrito na linguagem de programao
desejada.
Verificao:
Nesta etapa finalizado o processo de desenvolvimento do programa, que classificado como software,
sendo tambm chamado de aplicao. Simulaes, testes e verificaes dos resultados alcanados pelo
programa so analisados, podendo resultar em alteraes no cdigo elaborado. Essas alteraes
procuraro o atendimento eficaz do objetivo desejado pelo programa, que finalmente liberado aos
usurios finais.
A utilizao dessas metodologias possibilitar o desenvolvimento organizado e eficiente do programa
desejado. Porm, essas etapas destinadas elaborao do programa e do algoritmo devem ser
realizadas com a documentao coerente em cada uma delas. Isso permitir a construo de uma lgica
clara e detalhada o suficiente para a compreenso de qualquer outro profissional da rea, promovendo
alta qualidade nesse desenvolvimento.
21
Algoritmos e Programao
Aula 02
programao.
Representao do Raciocnio
A correta compreenso do que cada indivduo pensa pode consistir em um grande desafio para pessoas
que precisam entender os esclarecimentos ou explicaes elaboradas por este indivduo. Muitas vezes,
um especialista tem dificuldade de explicar seu raciocnio para que outras pessoas possam entend-lo.
Em um dos filmes da srie Harry Porter, um experiente mago retira seus pensamentos da mente e os
compartilha com todos os presentes na cena. Esses pensamentos so apresentados como um pequeno
trecho de filme em uma cuba que se encontrava na sala da cena para alguns personagens que estavam
naquele momento do filme. Esse tipo de magia possibilitou que todos compreendessem o que o mago
estava pensando, porm na realidade de nosso tempo, infelizmente, isso no possvel.
No entanto, todas as pessoas j devem ter passado por uma situao similar, em que se fazia necessrio
explicar o que se estava pensando, procurando, exatamente, expor suas idias a outras pessoas que
tinham algum interesse em conhec-las. Diante dessa situao na vida real, existem vrias maneiras
diferentes de se tentar expor nossos pensamentos para que outras pessoas os compreendam e possam
discuti-los conosco e com outros interessados.
A elaborao de algoritmo, para rea de Tecnologia, procura justamente realizar esse tipo de
compartilhamento de pensamentos e idias antes do desenvolvimento do programa computacional. Essa
habilidade de exposio de idias exercitada por todos os envolvidos nessa rea, sendo um dos
principais contedos abordados por esta disciplina. Essa importante habilidade, fundamental aos
responsveis pelo desenvolvimento de programas, tambm conhecida como Representao do
Raciocnio Lgico ou de Dados.
Elaborao do Algoritmo
A elaborao do algoritmo descreve os dados e as suas manipulaes. Essa descrio pode ser feita de
diversas formas e por meio de tcnicas diferentes que representaro a seqncia dos passos (ou etapas)
a serem realizados pela execuo do algoritmo. Essa representao da seqncia e lgica envolvida
corresponde a um dos principais pontos de estudo e prtica desta disciplina.
Cada uma dessas tcnicas fornece maneiras diferentes de representao do pensamento ou do raciocnio
desejado, privilegiando algumas caractersticas da percepo e compreenso dos profissionais envolvidos.
22
Algoritmos e Programao
Aula 02
Nesta aula, apresentaremos trs dessas tcnicas e os principais fatores a serem avaliados na escolha de
aplicao de cada uma delas. Uma dessas tcnicas ser tambm adotada como recurso para a
aprendizagem desta disciplina.
Fluxograma
O fluxograma uma tcnica de representao que utiliza figuras geomtricas pr-definidas para
descrever aes (ou instrues) a serem realizadas na resoluo de um problema. Ele elaborado aps a
fase de anlise do problema.
Existem vrias figuras geomtricas empregadas 'na construo do fluxograma. Nesta aula, buscaremos
somente a compreenso da
FIGURA
SIGNIFICADO
Figura para definir incio e fim do algoritmo
Figura usada no processamento de clculo, atribuies e
processamento de dados em geral
Figura utilizada na representao de entrada de dados
RISSOLI, 2003.
Imagine uma situao em que a idade de uma pessoa deva ser analisada para classific-la em jovem ou
adulta. O algoritmo a seguir apresentado graficamente por meio do fluxograma coerente com a
situao sugerida como exemplo.
23
Algoritmos e Programao
Aula 02
Fonte:
RISSOLI, 2003.
Vrias anlises podem ser feitas sobre as vantagens e desvantagens dessa forma de representao do
raciocnio (algoritmo), porm somente a mais relevante vantagem (face sorridente) e desvantagem (face
triste) sero apresentadas para sua reflexo sobre o uso ou no desse tipo de representao.
O entendimento de uma representao grfica mais fcil do que uma descritiva (textual).
necessrio aprender a simbologia grfica e ela no apresenta muitos detalhes necessrios para
a transcrio do algoritmo no programa esperado.
Fonte:
RISSOLI, 2003.
Diagrama de Chapin
Esta forma de representao foi elaborada por Nassi e Shneiderman e ampliada por Ned Chapin(apud
MANZANO, 2000). Ela almeja a substituio da representao tradicional (diagrama de blocos) por
uma diagramao com quadros que oferea uma viso hierrquica e estruturada da lgica proposta para
um programa.
24
Algoritmos e Programao
Aula 02
Fonte:
RISSOLI, 2003.
Diagrama de Chapin.
RISSOLI, 2003.
Entre os diversos mtodos existentes para esse tipo de representao, o Diagrama de Chapin um dos
menos utilizados atualmente, principalmente porque exige bastante ateno do
programador na
representao do seu raciocnio, ao invs de possibilitar maior concentrao sobre o problema a ser
analisado e posteriormente solucionado.
Portugus Estruturado
Esta forma de representao, tambm conhecida como
descrio estruturada, por meio de regras pr-definidas, de fases (ou passos) a serem realizadas para a
resoluo do problema. O Portugus Estruturado utiliza a
raciocnio. No caso brasileiro, a linguagem de comunicao natural o Portugus, que ser bastante
utilizado na representao dos raciocnios propostos como exerccio de aprendizagem nesta disciplina.
Para os pases da Espanha ou Frana, seriam utilizadas as linguagens de comunicao espanhola e
25
Algoritmos e Programao
Aula 02
francesa, respectivamente, como base natural da representao dos raciocnios lgicos elaborados por
meio dessa tcnica de construo de algoritmo (gerao de pseudocdigo).
Suponha o mesmo exemplo representado nos algoritmos anteriores por meio do fluxograma e do
Diagrama de Chapin, observando suas diferentes caractersticas descritivas existentes no portugus
estruturado, alm de sua organizao pr-definida.
ou adulto
// Declaraes
var
idade: inteiro
inicio
escreva (Informe sua idade:)
leia (idade)
se (idade < 21) entao
escreva (voc jovem)
senao
escreva (voc adulto)
fimse
fimalgoritmo
Fonte:
RISSOLI, 2003.
26
Algoritmos e Programao
Aula 02
correta com o computador, quando utilizada de forma bem natural. Por isso, to necessria a
incorporao de normas e regras que permitam a representao organizada e eficiente da soluo
desejada, indicando sempre, com clareza e preciso, o que realmente o computador deve fazer.
Entre essas trs formas de representao (fluxograma, Chapin e portugus estruturado), o portugus
estruturado ser adotado como recurso obrigatrio desta disciplina para o desenvolvimento de algoritmos
condizentes com os problemas computacionais sugeridos. Por meio dessa forma de representao
almeja-se:
agilizar
aprendizagem
de
normas
regras
comuns
na
elaborao
de
programas
computacionais; e
Por meio dessa ltima representao de raciocnio (portugus estruturado), alia-se a facilidade no uso da
linguagem natural do indivduo com a tcnica de desenvolvimento estruturado. Apesar disso, essa
juno, por si s, ainda no atinge automaticamente os objetivos almejados, mas preconiza uma ajuda
sistemtica para o alcance desse objetivo. Sua aplicao ainda conta com o esforo e a disciplina
incessante na busca da simplicidade e da clareza, que fornecero facilidades inestimveis manuteno
e modificao evolutiva do algoritmo.
A elaborao de algoritmos pode envolver trs estruturas lgicas fundamentais no controle do fluxo de
dados e instrues. Essas trs estruturas, conhecidas como estruturas de controle de dados,
desempenham o papel de controle sobre a seqncia de aes (ou tarefas) a serem realizadas (ou
executadas) no algoritmo, que posteriormente se tornar um programa computacional, por meio de sua
transcrio (ou traduo) para uma linguagem de programao. A principal caracterstica referente ao
controle na seqncia de execuo de cada uma dessas estruturas descrita a seguir:
27
Algoritmos e Programao
Aula 02
Seqencial:
As instrues existentes no algoritmo so executadas uma aps a outra, respeitando sempre a seqncia
linear de cima para baixo.
Seletiva:
Exerce o controle sobre a seqncia de instrues a serem executadas, por meio do resultado de um
teste ou verificao baseada na lgica convencional, conhecida tambm como condicional.
Repetitiva:
Por meio de um teste, ou verificao lgica condicional, uma instruo, ou um conjunto de instrues,
executado repetidamente (mais de uma vez), conforme discriminado no raciocnio lgico proposto. Essa
estrutura ainda conhecida como lao ou looping.
Um outro aspecto lgico importante, e muito aplicado na elaborao de algoritmos, a modularizao,
isto , a diviso de um raciocnio lgico maior, ou mais complexo, em vrios raciocnios menores, ou mais
simples, que possibilitme a realizao ou o atendimento completo do raciocnio lgico maior (mais
complexo). Essa organizao lgica conhecida como modularizao, pois confere a um conjunto de
mdulos a capacidade de resolver o mesmo problema, porm de forma mais organizada e flexvel. Isso
possibilita, entre outras caractersticas positivas no desenvolvimento de programas, o re-aproveitamento
do cdigo j elaborado, ou seja, o melhor aproveitamento de trechos bem definidos e j elaborados no
algoritmo proposto, em diversos momentos que sejam necessrios ao mesmo.
Alm das estruturas de controle de dados e da modularizao, os algoritmos tambm permitem a criao
e a manipulao de estruturas de dados. Essas estruturas consistem em organizaes eficientes sobre os
recursos de armazenamento de dados, normalmente disponveis em um computador. A utilizao
logicamente correta desse tipo de estrutura propicia a otimizao no uso dos recursos disponibilizados
com o emprego do computador na realizao das mais diversas tarefas, satisfazendo as pretenses do
usurio com maior segurana, eficincia e agilidade.
Diante
deste
estudo,
importante
criao
da
conscincia
do
estudante
na
dimenso
da
responsabilidade do algoritmo frente ao desafio da aprendizagem sobre o problema a ser resolvido por
meio de um raciocnio lgico coerente que possa ser transcrito em um programa de computador. Esse
programa auxiliar seu usurio na realizao de suas tarefas cotidianas, sendo essas pessoais,
profissionais ou educacionais.
28
Algoritmos e Programao
Aula 02
Linguagem de Programao
O algoritmo auxilia o desenvolvimento dos programas, porque por meio dele os programadores
representam a soluo proposta para ser analisada e testada, antes de ser empregada em uma atividade.
Quando um algoritmo est finalizado, ou seja, est pronto, resta apenas transform-lo em um programa
computacional, respeitando toda lgica racional elaborada e j avaliada para a soluo do problema em
questo.
Um bom algoritmo s necessita ser traduzido para uma linguagem de programao, respeitando suas
regras de sintaxe e semntica essenciais construo de um programa de computador. O perodo de
aprofundamento no conhecimento relacionado ao problema existente, a anlise de sua proposta de
soluo, os testes e sua manuteno ocorrem durante o estudo, pesquisa e elaborao do algoritmo,
restando, simplesmente, a re-escrita (traduo) da soluo encontrada em uma linguagem de
programao computacional.
Essas linguagens de programao, assim como as de comunicao, possuem regras sintticas e
semnticas que devem ser obedecidas, pois seno as instrues computacionais no podero oferecer
possibilidades de interpretao para o computador. Este somente executa o que lhe solicitado. Por isso,
o estudo dessas linguagens assemelha-se aos estudos das linguagens naturais, podendo tambm ser
dividido em anlises de sintaxe e semntica.
A sintaxe de uma linguagem de programao corresponde forma como seus termos, expresses e
instrues so descritos no corpo do programa, sendo essencial sua escrita correta. J a semntica
corresponde ao significado que esses elementos da linguagem, sintaticamente aplicados de maneira
correta, possuem para a execuo do programa pelo computador.
Em qualquer linguagem, a sintaxe e semntica esto estreitamente relacionadas, entretanto, so
abordadas separadamente por propsitos de estudo, investigao e discusso. Nas linguagens de
programao bem projetadas, a semntica deve seguir-se diretamente da sintaxe, sugerindo claramente
o que determinada instruo deve realizar.
Atualmente, existem varias linguagens de programao, mas em todas elas o raciocino lgico relacionado
coerente proposta elaborada no algoritmo pode ser implementada, a fim de atender ao objetivo
desejado pelo usurio do computador.
29
Algoritmos e Programao
Aula 02
A adoo do Portugus Estruturado como tcnica de representao do raciocnio nesta disciplina privilegia
a aprendizagem das regras sintticas e semnticas essenciais a um programa de computador, alm de
habituar o aprendiz organizao estrutural necessria criao desses programas.
Observe o exemplo de traduo para a instruo (escreva), que ser estudada um pouco mais frente
em algoritmo.
LINGUAGEM DE PROGRAMAO
Pascal
C
Java
Fonte:
INSTRUO CORRESPONDENTE
writeln
printf
System.out.println
RISSOLI, 2003.
Este tipo de associao entre palavras e expresses fcil de ser assimilada pelos profissionais dessa
rea (simples abordagem comum para traduo de uma linguagem em outra), porm o esforo para
encontrar a soluo do problema e a elaborao condizente de seu algoritmo exige maior envolvimento e
dedicao do indivduo que deseja tornar-se um bom programador.
30
Algoritmos e Programao
Aula 03
significativa
para
resoluo
de
qualquer
tipo
de
problema
que
possa
ser
tratado
computacionalmente.
Para as representaes grficas abordadas anteriormente nesta disciplina (fluxograma e Chapin), a
adoo da figura geomtrica correta ou a estrutura de diagramao coerente deve ser sempre observada
com cuidado na construo de cada novo diagrama. J na representao mais descritiva, que utiliza a
linguagem natural como base do desenvolvimento de algoritmos (portugus estruturado), a grafia e a
pontuao so requisitos importantes na elaborao correta deles.
31
Algoritmos e Programao
Aula 03
Como a forma de representao a ser utilizada nesta disciplina ser o portugus estruturado,
necessrio ter muita ateno sobre suas peculiaridades de grafia, organizao e pontuao.
Nos exemplos abordados at aqui, no havia necessidade de uma organizao to precisa para os
algoritmos, pois cada um deles procurava demonstrar somente a sintaxe e a semntica de uma ou outra
instruo especfica. No entanto, a elaborao de um algoritmo no pode ser to modesta assim, porque
dificultaria o trabalho do programador em identificar como o algoritmo seria formado e executado
posteriormente por um computador.
Dessa forma, ser iniciado neste momento, um estudo mais profundo sobre a maneira de representar o
raciocnio lgico de um ou vrios programadores envolvidos com um problema computacional, em um
algoritmo descrito em portugus estruturado (pseudocdigo).
Observe o algoritmo elaborado em portugus estruturado, com cores distintas, a fim de facilitar a sua
compreenso neste momento inicial do estudo a ser aprofundado em detalhes mais adiante.
32
Algoritmos e Programao
Aula 03
Sntese do problema
Sempre iniciado pela palavra reservada Sntese como comentrio, ou seja, contendo // (barra
barra) antes e iniciando este primeiro bloco de representao em portugus estruturado.
A Sntese formada por trs itens relevantes ao processamento de dados, sendo eles o Objetivo
(descreve resumidamente o que o algoritmo faz), a Entrada (indica resumidamente todas as
entradas de dados para este algoritmo) e a Sada (indica, sucintamente, todas as sadas de
dados fornecidas por este algoritmo).
Bloco de declaraes
Sempre
iniciado
pela
palavra
reservada
Declaraes
como
comentrio,
ou
seja,
//
Declaraes, e seguido da palavra reservada var um pouco mais a sua direita (ateno com a
endentao correta e obrigatria no portugus estruturado).
Este bloco termina na palavra reservada incio e pode no conter nenhuma instruo, de acordo
com a necessidade da soluo proposta no algoritmo.
Bloco de instrues
Inicia a partir da palavra reservada incio, sendo encerrado somente com a palavra reservada
fimalgoritmo.
Contm todas as instrues ou comandos que descrevem o que o algoritmo deve fazer (aes ou
processamentos realizados pelo algoritmo proposto).
Este bloco ter no mnimo uma instruo, caso contrrio, o algoritmo no existiria, pois no teria
finalidade alguma.
Antecedendo estes trs (3) blocos existe ainda o cabealho obrigatrio do algoritmo, sendo nele
identificado o nome do algoritmo proposto. Esse nome pode consistir em uma palavra ou expresso
significativa para a finalidade de sua aplicao, como sugerida na cor lils no exemplo citado. Observe
que o nome sugerido foi modelo geral, sendo obrigatria a incluso de aspa antes do seu incio e logo
depois de seu final.
Duas palavras reservadas importantes no foram abordadas nas explicaes anteriores, sendo essas
essenciais na elaborao de algoritmos em portugus estruturado. Veja no exemplo modelo geral e
reconhea a primeira e a ltima expresso existente no esquema do algoritmo proposto. A expresso
algoritmo e fimalgoritmo so palavras reservadas que marcam o incio e fim de um algoritmo
proposto para qualquer tipo de problema ou soluo, ou seja, so expresses obrigatrias para cada
diferente algoritmo que voc deseje elaborar. Observe tambm que cada algoritmo s possui uma
33
Algoritmos e Programao
Aula 03
expresso algoritmo, que comea ou abre o algoritmo a ser elaborado, e uma fimalgoritmo, que
encerra ou termina esse mesmo algoritmo.
A expresso corpo do algoritmo faz referncia aos blocos de declaraes e instrues de qualquer
algoritmo proposto, sendo o bloco de sntese do problema no pertencente ao corpo do algoritmo.
No algoritmo modelo geral utilizaram-se cores distintas entre cada um dos trs (3) blocos obrigatrios
na construo de algoritmos em portugus estruturado. Essas cores definem:
COR
NEGRA
LILS
AZUL
VERMELHA
VERDE
BLOCO
Marcador de incio e fim do algoritmo
Nome significativo do algoritmo
Sntese do problema a ser resolvido
Declarao dos recursos computacionais
Instrues a serem realizadas pelo algoritmo
Alm da identificao dos blocos e das funcionalidades de um algoritmo, deve haver tambm muito
cuidado com os alinhamentos das suas principais palavras reservadas e pontuaes existentes em cada
linha descritiva, pois, no algoritmo em portugus estruturado, essa endentao correta obrigatria e
deve ser respeitada na elaborao de cada algoritmo.
O xito no processamento do algoritmo depende de sua organizao, da sua sintaxe (palavras,
expresses, pontuaes) e de sua semntica coerente com a forma de representao adotada para
descrever o raciocnio lgico que orientar o computador. Portanto, mantenha-se atento s normas e
regras existentes em cada tipo de representao, pois isso facilitar a atividade de elaborao de
raciocnios lgicos coerentes com os problemas computacionais que surgiro, assim como em suas
propostas de soluo.
Tipos de Dados
Um tipo de dado nada mais que a especificao do grau de complexidade e o escopo de valores
possveis para o dado em questo. a identificao de como certo dado poder se apresentar, qual sua
simbologia e quais operaes podem ser realizadas sobre o mesmo. Os tipos de dados escalares ou
primitivos so: inteiro, real, caracter e logico. Esses tipos so chamados de escalares porque j esto
definidos no computador, que os reconhecem juntamente com suas principais caractersticas naturais.
No entanto, o computador os reconhece por meio do uso de palavras ou expresses especiais que j
trazem sentido e identificao ao computador. Essas palavras ou expresses so reconhecidas como
palavras reservadas ou palavras-chave da linguagem de programao em questo.
34
Algoritmos e Programao
Aula 03
consegue processar.
NUMRICO
Inteiro: corresponde ao conjunto matemtico dos valores numricos inteiros, por exemplo: 100;
0; -3.
Real: corresponde ao conjunto matemtico dos valores numricos reais, por exemplo: 100,0; 3,0; 1,7; 10,000; 50.
LITERAL
Carcter: valores alfanumricos, contendo letras, nmeros e smbolos especiais, estando sempre
descritos entre aspas (" "). O conjunto de caracteres tambm chamado de cadeia de caracteres
ou string, quando estiver definido com um nico ou mais carcter, por exemplo: "M" (um nico
carcter); "Taguatinga - DF"; "356-9025"; "Taxa=10%".
LGICO
A especificao do tipo de dado correto fundamental para o computador, pois este reconhecer quais
dados podem ou no sofrer determinadas manipulaes, alm da necessidade de espao para
armazenamento de cada dado ou informao a ser processada.
Identificadores
Identificador o nome fornecido a um recurso computacional que o identifica distintamente para acesso
e manipulao do computador na execuo ou realizao de um algoritmo. Um bom exemplo seria seu
prprio nome, que o identifica como uma pessoa nica. Quando algum precisa falar contigo,
simplesmente o chama pelo nome.
Em algoritmo, todos os recursos de armazenamento e manipulao de dados devem possuir nomes para
sua correta identificao e uso. Assim, quando um determinado recurso for necessrio ao processamento
do computador, conforme indicao no algoritmo, ele ser acionado pelo seu nome e participar do
processamento desejado.
Para a criao desse identificador, algumas regras devem ser obedecidas, dentre elas:
35
Algoritmos e Programao
Aula 03
todo identificador deve comear com o primeiro carcter sendo alfabtico (pertence ao alfabeto)
em letra minscula;
os demais caracteres do identificador podem ser letras do alfabeto (a, b, c,...), caracteres
numricos (1, 2, 3,...) ou o carcter underline (linha baixa _);
nenhum carcter especial pode fazer parte do identificador, inclusive o espao em branco entre
palavras, sendo a nica exceo o underline;
Um pouco mais frente, ser retomado o estudo sobre os identificadores e suas caractersticas mais
importantes na criao e uso de alguns recursos computacionais.
Varivel
O recurso ou objeto computacional de armazenamento de dados sujeito variao em seus valores,
sendo esses valores incertos, instveis ou inconstantes, consiste no que chamado de varivel na
elaborao de algoritmos. A criao de uma varivel definida no bloco de declaraes do algoritmo e
promove a reserva de uma rea de memria no computador que armazenar os dados coerentes com os
tipos de dados definidos em sua declarao.
Essas variveis ainda recebem um nome no bloco de declarao. Esse nome o identificador associado a
essa rea de memria, que ser utilizada pelo algoritmo para guardar valores empregados no seu
processamento (execuo do algoritmo).
Depois de declarada, uma varivel pode ser acionada pelo uso de seu identificador (nome), sendo seu
espao de memria usado para armazenar diversos valores de um mesmo tipo, no simultaneamente, ou
seja, no possvel armazenar vrios valores no mesmo espao de memria ao mesmo tempo. Assim,
essa rea de memria ter capacidade de armazenar somente um valor por vez, podendo esse valor ser
alterado quando for necessrio ao algoritmo.
No intuito de consolidar o conceito e a utilizao das variveis, considere a situao a seguir:
Certo rapaz adquire um par de sapatos, que foi entregue dentro de uma caixa. A caixa de sapatos, por
ser resistente e bela, reutilizada por ele para guardar alguns de seus documentos profissionais. Assim,
sempre que deseja encontrar algum documento desse tipo, ele j sabe exatamente onde est guardado.
Com o passar do tempo, ele trocou os documentos guardados na caixa por CDs. Com o desgaste do uso,
a caixa foi jogada no lixo, deixando de ser usada como armazenamento de CDs.
36
Algoritmos e Programao
Aula 03
Na situao de uso da caixa de sapatos, pode-se observar a variao do contedo armazenado nela.
Esta variao aconteceu de acordo com a necessidade do rapaz de armazenar coisas importantes para
ele naquele momento.
A vida de uma varivel em algoritmo similar a esse exemplo da caixa de sapatos. A varivel um
espao de memria que o computador reserva para utilizao de um algoritmo. Quando esse algoritmo
termina, a varivel destruda, deixando de ser usada por ele. Assim, como a caixa de sapatos foi jogada
fora, uma rea de memria liberada para o uso do computador, deixando de estar reservada para
execuo de um algoritmo ou programa computacional.
No entanto, surge uma pergunta: Qual o tamanho do espao de memria que o computador reserva para
um algoritmo?
A explicao para essa pergunta que esse espao reservado mediante a solicitao do programador
que, estudando bem o problema, identificar e definir a quantidade e o tipo de dado de cada varivel a
ser criada por esse algoritmo.
Retorne sua ateno para o exemplo da caixa de sapatos. Nela, provavelmente, no caberiam todos os
seus livros e seria, no mnimo, imprprio tentar guardar gua dentro dela. Por isso, a definio do tipo de
dado de uma varivel realizada no incio de seu algoritmo (bloco de declaraes), indicando ao
computador quais os dados que podero ser armazenados nesta varivel. Observe a seguir o exemplo de
criao (declarao) da varivel denominada idade:
idade : inteiro
37
Algoritmos e Programao
Aula 03
sempre precedidas pelos caracteres // (barra barra) que indicam ao computador que, a partir desses
caracteres at o final da linha que os possui, sero fornecidos comentrios esclarecedores aos
programadores envolvidos com a criao desse algoritmo.
Por meio desses comentrios, o raciocnio do programador pode ser mais bem esclarecido e o algoritmo
torna-se
um
cdigo
computacional
de
alta
qualidade,
quando
empregado
coerentemente
no
esclarecimento dos objetivos parciais existentes nesse algoritmo ou programa. O uso excessivo de
comentrios no engrandece a qualidade do algoritmo ou do programa elaborado, muito pelo contrrio,
pois, a partir da marcao // at o final de sua linha, o computador despreza seu contedo, sendo este
relevante somente para os profissionais envolvidos na elaborao desse algoritmo ou programa
computacional.
Constante
Uma constante consiste no recurso ou objeto computacional que pode ser criado pelo programador para
armazenar um nico dado de um tipo definido. Esse objeto no est sujeito a variaes no seu valor
armazenado, ou seja, o valor guardado em uma constante no sofre alterao ao longo do algoritmo,
mantendo-se sempre constante aps sua criao e atribuio inicial.
O nome fornecido a uma constante definido por um identificador, exatamente como na declarao de
varivel. Quando uma constante criada no bloco de declaraes do algoritmo, ela tambm reservar
uma rea da memria a ser acessada por meio do uso de seu nome (identificador associado a constante
declarada). Mas seu valor s poder ser atribudo uma nica vez no incio do bloco de instruo do
algoritmo, no podendo ser mais alterado durante toda execuo do algoritmo, ou seja, enquanto o
algoritmo estiver em funcionamento.
Uma constante pode ser definida como:
Numrica: representada por valores reais ou inteiros, em que a vrgula ',' separa a parte
inteira da decimal, por exemplo: -0,59; 2,0; 0; -34; 597; 10.
A definio de uma constante deve respeitar a regra sinttica explicada abaixo, sendo ela elaborada no
bloco de declaraes do algoritmo.
38
Algoritmos e Programao
Aula 03
// CONSTANTE
A especificao desse recurso computacional da programao consiste na criao de uma varivel que
no se altera durante todo uso do algoritmo (varivel que no se altera uma constante em algoritmo).
Observe o exemplo abaixo que cria uma constante referente a quantidade de elementos que compe
uma equipe:
25
// declarao da constante
// nico valor inicialmente atribudo a
constante
A constante equipe criada como uma varivel, porm recebe a indicao de que uma constante em
seu algoritmo. Isso acontece por meio da descrio // CONSTANTE, indicando que esse recurso
computacional uma constante que s receber um nico valor no incio do algoritmo e nenhum mais
durante toda sua execuo. Assim, esse recurso computacional se mantm constante durante todo
processo de execuo do seu algoritmo.
Como se pode observar, uma declarao de varivel bem similar ao de uma constante, pois tambm se
deve informar qual tipo de seu contedo (tipo de dado) e seu respectivo nome (identificador). A principal
diferena entre esses recursos computacionais consiste na possibilidade de modificao do contedo
armazenado na varivel, sendo ele alterado quantas vezes forem necessrias para o correto
funcionamento do algoritmo e, conseqentemente, para o futuro programa de computador.
No entanto, as constantes, apesar da similaridade com a declarao das variveis, no sofrem nenhuma
alterao durante toda execuo do algoritmo, recebendo um nico valor inicial, que permanecer
inaltervel durante todo o perodo de execuo do algoritmo.
39
Algoritmos e Programao
Aula 03
ou seja, ela possui um significado pr-definido que envolve operaes que realizam aes sobre os
recursos tecnolgicos disponibilizados por um computador e alguns de seus perifricos de entrada de
dados. Dessa forma, no se pode criar nenhum identificador igual a uma palavra reservada, porque o
computador no saberia distinguir qual a execuo a ser efetivada por ele sobre mais de um recurso que
possua um mesmo nome dentro de um mesmo escopo ou domnio de execuo.
Os dispositivos de sada de dados so acionados pela expresso pr-definida escreva, uma palavra
reservada em algoritmo que trabalha sobre os dispositivos de sada de dados de um computador.
Instruo Leia
Esta instruo indica o recebimento de dados fornecidos pelo usurio e seu armazenamento em reas
reservadas da memria do computador que possam ser manipuladas por seu algoritmo (variveis). Esse
dado recebido por um dispositivo de entrada de dados, geralmente o teclado conectado ao computador.
Apesar de esta padronizao ser comum nas diversas linguagens de programao existentes, essa
instruo faz referncia a qualquer dispositivo eletrnico de entrada de dados para o processamento que
se segue ao respectivo armazenamento.
Imagine
contnua
leitura
do
dado
referente
temperatura
de
um
forno
industrial
para
acompanhamento seguro do ambiente de trabalho que este se encontra envolvido. Esse importante dado
poderia ser coletado (ou lido) por um sensor de temperatura. A elaborao do algoritmo, relacionado a
esse controle, estipularia somente a entrada do dado temperatura atual, sem a necessria discriminao
de qual recurso seria usado para essa leitura. Ou seja, se a coleta desse dado aconteceria por um sensor
eletrnico ou pela digitao de uma temperatura no teclado do computador por um profissional
responsvel por esse acompanhamento. Observe a instruo abaixo que realizar a coleta dessa
temperatura:
leia(temperatura)
Regra de Sintaxe Geral
leia(<identificador>)
A expresso
definida no bloco de declaraes do algoritmo em questo. Esta varivel definida de acordo com o tipo
de dado coerente com a leitura e armazenamento correto do dado esperado por esta coleta.
40
Algoritmos e Programao
Aula 03
Como no exemplo da temperatura do forno, a varivel temperatura deveria ter sido definida antes de a
leitura ser solicitada pelo algoritmo, propiciando o armazenamento desse dado na rea reservada por
essa declarao no algoritmo.
Suponha a necessidade de leitura da temperatura do forno somente no dia em que esse dado coletado
e armazenado em seu algoritmo. Sua declarao necessitaria de duas variveis de tipos de dados
diferentes para posterior leitura de ambos. Essas instrues no algoritmo seriam criadas como
apresentadas abaixo, seguidas dos comentrios esclarecedores especificados aps os caracteres
// na cor
azul. Como visto anteriormente, esses caracteres // indicam a incluso de comentrios relevantes na
elaborao do algoritmo.
Dessa forma, todos os caracteres inseridos aps a codificao do
//,
todos os caracteres posteriores a esta se tornam comentrios importantes aos profissionais que tem
acesso s linhas de instruo desse algoritmo. Entretanto, tais caracteres no representaro nenhuma
operao ou instruo a ser realizada pelo computador ao executar este algoritmo.
temperatura : real
dia : inteiro
leia(temperatura , dia)
na memria do computador
Observe que a leitura dos dados acontece somente depois das duas variveis serem declaradas. Ambas
so lidas por uma mesma instruo de entrada de dados (leia), separadas, claramente, por uma vrgula
que instrui o computador sobre a existncia de duas variveis ao se coletar os dados e armazen-los nas
respectivas reas de memria reservadas para cada uma no computador.
Suponha que os valores coletados pela instruo leia acima tenham sido 51,3 e 25, respectivamente.
Diante disso, o contedo da varivel temperatura estaria armazenando o valor real 51,3, enquanto a
varivel inteira dia estaria guardando o valor 25. Isso significa que as reas de memria reservadas para
essas duas variveis, identificadas pelo nome temperatura e dia, estaro armazenando os dados 51,3 e
25, quando esse algoritmo estiver sendo executado.
41
Algoritmos e Programao
Aula 03
Instruo Escreva
Esta instruo indica a exibio ou apresentao de dados orientadores ou esclarecedores aos usurios
que os desejam. Esses dados so exibidos em um dispositivo de sada de dados conectado ao
computador. Geralmente usa-se como padro o vdeo ou monitor como seu perifrico principal. Apesar
de esta padronizao ser comum s diversas linguagens de programao existentes, a instruo escreva
faz referncia a qualquer dispositivo eletrnico de sada de dados que possibilite a exibio dos dados
armazenados durante a execuo de um algoritmo.
Esta instruo pode apresentar o contedo armazenado em uma varivel, ou ainda uma mensagem
orientadora ao usurio do algoritmo. Para isso, necessrio manter-se atento a sintaxe correta dessa
importante instruo na elaborao de algoritmo.
Acompanhe a re-elaborao do exemplo anterior, responsvel pela coleta de dados da temperatura de
um forno industrial e do dia da leitura desta temperatura.
temperatura : real
dia : inteiro
escreva("Informe a temperatura e o
leia(temperatura
dia)
//
temperatura
// mensagem orientadora
e
dia
informado
os
armazena
escreva(temperatura , " graus no dia " , dia)
Este novo exemplo de algoritmo em portugus estruturado que permite a anlise da situao do forno
industrial, possui uma qualidade de elaborao e, principalmente, de execuo bem superior ao algoritmo
proposto anteriormente. Por meio desse algoritmo, a comunicao esclarecedora para o usurio
aumentou e sua orientao mais precisa sobre a situao existente no forno, assim como no
processamento executado pelo algoritmo elaborado.
Aps a declarao das variveis necessrias para esse algoritmo, executada a primeira instruo
escreva existente nesse novo algoritmo. Ela orienta a ao do usurio na operao do algoritmo, por
meio da exibio de uma mensagem fixa (constante), sempre descrita entre aspas (" "). O usurio
orientado a informar os dados que sero lidos e armazenados na memria do computador por meio das
variveis temperatura e dia.
42
Algoritmos e Programao
Aula 03
Em seguida, efetuada a leitura da temperatura atual do forno e o dia em que essa leitura foi realizada.
Na segunda instruo escreva so apresentados os valores que foram lidos e esto armazenados na
memria do computador, juntamente com uma mensagem esclarecedora sobre esses dados coletados na
execuo desse algoritmo.
Observe que no existem aspas entre as variveis que apresentaro os valores armazenados na memria
do computador, pois se essas estivessem entre aspas seriam exibidos somente seus nomes e no seus
valores armazenados na rea reservada de memria em cada uma delas. Esses valores armazenados
tambm podem ser chamados de contedo da varivel.
A utilizao de aspas na instruo escreva deve ser bem cuidadosa, pois define o contedo que o
programador deseja apresentar ao usurio do computador. Os valores ou caracteres que estiverem entre
aspas na instruo escreva sero rigorosamente exibidos por meio de um recurso de sada de dados,
sendo estes apresentados exatamente como estiverem escritos entre as aspas. No entanto, quando o
programador desejar apresentar algum dado armazenado na memria do computador, a instruo
escreva dever ser elaborada para acessar o contedo guardado na rea de memria referente a
determinada varivel, sendo especificada nessa instruo o identificador (nome) da rea de memria a
ter seu contedo apresentado, sem esse nome (identificador) estar entre aspas.
Observe com ateno a segunda instruo escreva que mostra, em um nico comando, os contedos
armazenados na memria das duas variveis, alm de uma mensagem esclarecedora ao usurio. Isso
possvel com a utilizao de vrgulas separando cada valor que ser apresentado ao usurio pela nica
instruo escreva utilizada.
Para compreender melhor o exemplo do forno, veja na figura abaixo o vdeo ou monitor de um
computador que executa o ltimo algoritmo proposto. Nele apresentada sua possvel tela de execuo
com as mensagens codificadas nas instrues escreva.
43
Algoritmos e Programao
Aula 03
Contudo, para que a execuo da tela seja mais bem organizada, importante o estudo de uma variao
da instruo escreva. Essa variao a instruo escrevaI que obedece todas as caractersticas j
estudadas, mas ainda salta uma linha aps a exibio de tudo que lhe foi especificado similarmente
descrio da instruo escreva. O uso dessa variao da instruo escreva permite uma organizao
melhor na apresentao dos dados e mensagens ao usurio do algoritmo.
Relembrando o Estudo
Vrios contedos importantes ao desenvolvimento de algoritmos em portugus estruturado foram
estudados at o momento. Para relembrar o assunto estudado at aqui, acesse o link Atividades
Interativas e faa as atividades que o auxiliaro no acompanhamento de aprendizagem individual e no
reforo dos principais tpicos estudados.
Operadores
A indicao das operaes que podem ser efetuadas sobre determinados tipos de dados so descritas
por smbolos, ou seja, por caracteres especficos que possuem a incumbncia de identificar ao
computador que operao (aritmtica, relacional ou lgica) executar em seu processamento.
Operadores Aritmticos
As operaes aritmticas mais comuns so representadas pelos smbolos (ou caracteres) relacionados na
tabela a seguir.
OPERAO
ADIO
SUBTRAO
MULTIPLICAO
DIVISO
RAIZ QUADRADA
EXPONENCIAO
DIVISO INTEIRA (quociente)
RESTO DA DIVISO INTEIRA
SMBOLO
+
*
/
raizq(<valor>)
^
Div ou \
Mod ou %
2 + 3
44
Algoritmos e Programao
Aula 03
valor * numero
numero)
raizq(4)
Operadores Relacionais
A utilizao dos operadores relacionais muito importante ao processamento realizado por um
computador. Os smbolos (ou caracteres) empregados na indicao dessas operaes so apresentados
na tabela a seguir:
OPERAO RELACIONAL
IGUALDADE
DIFERENA
MAIOR
MAIOR ou IGUAL
MENOR
MENOR ou IGUAL
SMBOLO
=
<>
>
>=
<
<=
5 < 7
valor = 1
4 <> -4
Operadores Lgicos
As operaes lgicas so indicadas por meio dos smbolos ou expresses mostrados na tabela a seguir,
em que cada uma delas obedece, rigorosamente, as propriedades definidas na matemtica. Todas as
caractersticas existentes nessas operaes so empregadas tambm na elaborao dos algoritmos e,
conseqentemente, nos seus programas computacionais que sero elaborados.
OPERAO LGICA
CONJUNO (e lgico)
SMBOLO
E
45
Algoritmos e Programao
Aula 03
OU
NO
falso E falso
falso
NAO falso
lgicos
A utilizao de operadores relacionais e/ou lgicos est associada a Lgica Convencional (ou Clssica)
definida na matemtica, em que seus valores resultantes sempre sero verdadeiro ou falso, conforme
contedo j estudado sobre o tipo de dado logico. Dessa forma, toda operao relacional e lgica,
elaborada na construo de um algoritmo, respeita as definies matemticas e suas propriedades
definidas na Lgica Convencional, resultando sempre em um valor do tipo lgico e excludente entre
verdadeiro ou falso.
Operador de Atribuio
A operao de atribuio consiste na possibilidade de um recurso ou objeto computacional poder receber
e armazenar, em uma rea previamente reservada de memria, um valor condizente com seu tipo de
dado definido no momento de sua criao (declarao).
Esse importante operador permite a uma varivel receber e armazenar vrios valores durante sua
existncia no algoritmo, ou ainda definir o valor inicial de uma constante que no poder ser alterada
como uma varivel no decorrer de todo o algoritmo que esta se encontra declarada.
OPERAO
SMBOLO
ATRIBUIO
Sua sintaxe de uso sempre atribui ao recurso identificado (nome da varivel ou constante no momento
inicial) esquerda de seu smbolo (seta apontando para esquerda) o valor ou resultado da expresso
existente direita desse mesmo smbolo.
Veja os exemplos mais comuns no uso desse importante operador:
46
Algoritmos e Programao
Aula 03
meta
10
taxa
3,4 + 0,2
taxa
ATENO
No ambiente de elaborao de algoritmo em portugus estruturado, que ser adotado nesta disciplina, o
smbolo de atribuio (seta para esquerda) no existe como um carcter vlido, por isso sua escrita no
bloco de instrues do algoritmo ser feita por meio do smbolo de menor seguido imediatamente de
hfen, sem espao (<-).
Esta notao (<-) simboliza o operador de atribuio. Apesar de os exemplos apresentados no decorrer
de todas as prximas aulas possurem a seta (
dever ser escrito sempre no Visualg como explicado acima (sinal de menor e hfen).
Tenha cuidado e ateno com esses exemplos nas prximas aulas, pois todos estaro usando a seta
(
) que dever ser alterada para <- no ambiente de execuo de algoritmo denominado Visualg. Este
ambiente ser contedo de estudo da prxima aula, pois essa ferramenta ser usada constantemente por
esta disciplina at seu encerramento.
47
Algoritmos e Programao
Aula 04
48
Algoritmos e Programao
Aula 04
A efetivao de uma boa aprendizagem nesse paradigma promove uma evoluo cognitiva de seus
estudantes. Essa aprendizagem fundamental para o avano e compreenso dos demais paradigmas
existentes nessa rea (orientao a objetos, funcional, lgico, paralelo, entre outros).
Acompanhando as mais recentes evolues na rea de Programao, a aprendizagem que se segue a
esta disciplina proporcionar o aprofundamento na Programao Orientada a Objeto, por meio da
resoluo de problemas e da identificao dos objetos envolvidos nestes, alm do processamento exigido
desses objetos e suas interaes. A aprendizagem nesse paradigma exige a assimilao de novos
conceitos e caractersticas essenciais a esse tipo de programao que possibilita a implementao de um
vasto domnio de programas e aplicaes sobre diversos tipos de problemas computacionais.
49
Algoritmos e Programao
Aula 04
no computador. Observe na tabela abaixo a principal diferena existente entre esses dois processos de
traduo.
INTERPRETADOR
L a instruo no
algoritmo;
depura somente esta
instruo;
traduz somente a
instruo lida para
linguagem de mquina;
executa a instruo
traduzida;
segue para prxima
instruo na seqncia do
algoritmo; e
mantm o ciclo acima em
execuo at o final do
algoritmo.
COMPILADOR
L a instruo no
algoritmo;
depura somente esta
instruo;
traduz somente a
instruo lida para
linguagem de mquina;
segue para prxima
instruo na seqncia
do algoritmo;
mantm o ciclo acima em
execuo at o final do
algoritmo; e
executa todo programa
j traduzido para
linguagem de mquina.
50
Algoritmos e Programao
Aula 04
fundamentais ao programa objeto, possibilitando que este tenha condies de acionar todos os recursos
e perifricos necessrios execuo do programa elaborado, que descrito inicialmente em seu
programa fonte.
Somente aps a linkedio sobre um programa objeto, gerado por uma compilao sobre um programa
fonte, sem erros de sintaxe e semntica, que um programa poder ser executado pelo computador.
Ao usar a outra forma de traduo (a interpretao) para o computador executar um programa ou
algoritmo fonte, haver sempre a necessidade da presena do interpretador no computador que
executar esse programa ou algoritmo. Para que haja a execuo total do algoritmo ou programa,
importante que eles no possuam nenhum erro.
instalao
deste
ambiente
de
programao
em
seu
computador
essencial
para
seu
Primeiro passo: Clique na ligao virtual Visualg_2.0 para baixar o arquivo instalador
(download) em um diretrio temporrio em seu computador. Por exemplo: clique na ligao
virtual anterior e escolha o diretrio ou pasta temp no drive C de seu computador (C:/temp).
Caso esse diretrio no exista, crie-o para depois prosseguir com a instalao.
2.
51
Algoritmos e Programao
Aula 04
3.
Terceiro passo: Leia com ateno todas as janelas que aparecero seqencialmente durante
toda a instalao. A primeira janela uma saudao simples de boas vindas intitulada Instalador
de Visualg, nela, dever ser pressionado o boto Avanar>.
4.
Quarto passo: Na prxima janela que surgir, voc dever especificar o local de instalao do
Visualg. Este local pode ser em qualquer caminho de diretrio vlido de seu computador que
possua mais de 3 MB disponveis. Porm aconselhado manter o local sugerido pelo instalador.
Depois de especificado o local desejado, pressione o boto Avanar>.
5.
Quinto passo: A nova janela apresenta os trs componentes que podero ser instalados em seu
computador. Caso voc seja um novo usurio, mantenha a instalao de todos os componentes,
pois somente dois podem ser desmarcados e esses so exemplos de algoritmos elaborados no
Visualg, enquanto o outro componente arquivo de ajuda on-line deste ambiente. Pressione
Avanar> novamente para prosseguir a instalao.
6.
Sexto passo: Na prxima janela, defina se deseja criar um novo grupo de menu iniciar, ou no,
para incluir um atalho de acesso ao ambiente e pressione Avanar>.
7.
Stimo passo: Nesta nova janela, marque as atividades adicionais que voc deseja que o
instalador realize para instalao e acesso ao Visualg e pressione novamente Avanar>.
8.
9.
Nono passo: Aps pressionar o boto Instalar, aguarde alguns segundos e confira a nova
janela. Confirmado o sucesso na instalao, pressione o boto Concluir.
Observe que o Visualg ser executado aps o nono passo e quando o instalador for encerrado. Feche o
Visualg e acione-o novamente por meio do atalho ao grupo que voc solicitou na instalao.
Agora que o Visualg est instalado, voc deve baixar o arquivo modelo definido para realizao de todos
os algoritmos em portugus estruturado no decorrer desta disciplina. Para isso, clique na ligao virtual
modeloVisual e guarde o arquivo denominado modelo.zip no local que voc especificou para instalao
desse ambiente, porm ainda dentro do diretrio Apoio\Visualg Verso 2\. Para o exemplo da instalao
solicitada no caminho local do computador em C:\temp, o arquivo modelo dever ser copiado em
C:\temp\Apoio\Visualg Verso 2\ e descompactado em seguida. Com isso, ser colocado no mesmo
diretrio o arquivo modelo.alg que ser muito utilizado durante toda a disciplina.
Depois que o arquivo modelo.alg estiver no diretrio correto, voc deve carregar ou executar o
ambiente Visualg novamente. Aps seu funcionamento, clique no menu superior opo Arquivo e
escolha Abrir. Observe que ser aberta uma nova janela para que voc informe qual arquivo voc deseja
abrir e o arquivo modelo.alg estar disponvel nesta janela. Clique sobre ele e solicite que seja aberto.
Veja que a estrutura praticamente a mesma que vem sendo estudada nesta disciplina, em que os locais
que possuem <<nomeAlgoritmo>> e <<seuNome>> devem ser substitudos pelo nome que o
52
Algoritmos e Programao
Aula 04
programador fornecer a esse algoritmo (em <<nomeAlgoritmo>>) seguido de seu nome pessoal para
identificao do programador desse algoritmo (em <<seuNome>>).
Atente tambm que a estrutura existente no modelo.alg precisa em sua organizao e endentao,
devendo ser mantida em seu desenvolvimento correto.
// Entrada: no tem
// Sada: mensagem de boas vindas com o nome do programador
53
Algoritmos e Programao
Aula 04
// Declaraes
var
inicio
escreva("Bill Gates, seja bem vindo ao ambiente Visualg 2.0!")
fimalgoritmo
Analise esse primeiro algoritmo e veja que ele ainda no realiza nenhum processamento mais complexo,
contudo, possibilita o uso inicial do ambiente de programao.
Como toda aplicao computacional, os arquivos criados no Visualg tambm precisam ser gravados. Para
isso, selecione a opo do menu superior Arquivo seguido pela opo Salvar como. Nesta nova janela
insira o nome que desejar fornecer ao novo arquivo fsico que ser gravado pelo Visualg, gerando seu
primeiro algoritmo fonte. Esse primeiro exemplo receber o nome de primeiro.alg e ser gravado no
mesmo local em que est o arquivo modelo.alg.
A execuo desse algoritmo pode ser realizada por vrias opes, dentre elas:
54
Algoritmos e Programao
Aula 04
De acordo com as seis marcaes estrategicamente distribudas nesta janela principal do Visualg,
identifique cada um dos recursos integrados e disponveis neste ambiente de programao, conferindo a
finalidade de cada marcao abaixo:
55
Algoritmos e Programao
Aula 04
A barra de ttulo (marcao A) identifica a janela corrente e permite a movimentao dela na tela.
O recurso de barra de menu superior (marcao B) muito comum no ambiente Microsoft Windows, pois
possibilita o acesso a vrias outras opes deste menu.
Na janela do Visualg, encontra-se disponveis vrios botes que agilizam uma srie de recursos
disponveis no ambiente. Eles so distribudos em duas barras de ferramentas (primeira e segunda barra
marcaes C e D).
Nas marcaes em verde, esto as partes responsveis pela edio do algoritmo fonte. No lugar com a
marcao E, faz-se a edio em texto padro ANSI, rea de representao momentnea de cada objeto
computacional existente na memria do algoritmo proposto e em execuo, alm de uma pequena parte
dessa janela que corresponde exatamente janela de execuo do algoritmo.
O pequeno quadrante na parte inferior direita da janela principal do Visualg (marcao G) procura
fornecer uma viso de como est ficando a janela de execuo do algoritmo, sem que esta seja aberta
enquanto se desenvolve o algoritmo. Com isso, o trabalho de desenvolvimento de uma interface de
comunicao agradvel ao usurio do algoritmo agilizada, sem a necessidade de apresentao da sua
janela de execuo.
Para a execuo do exemplo elaborado anteriormente (boas vindas), somente neste quadrante inferior
deve ser pressionado o boto que possui a ajuda imediata on-line com a descrio: Executar o algoritmo
como DOS.
56
Algoritmos e Programao
Aula 04
Para verificao dessa ajuda imediata on-line, o apontador de seu mouse deve permanecer dois segundos
sobre qualquer um dos botes existente na primeira ou segunda barra de botes (representao acima
na rea amarela C e D respectivamente) do Visualg sem se mover (parado e sem pressionar nenhum de
seus botes).
Outra forma de acionar a execuo, somente no quadro de execuo inferior, por meio da opo
disponvel na barra de menu superior (representada acima na rea com marcao amarela B)
Algoritmo, com a seleo consecutiva do item Executar em modo DOS.
Feito isso, deve ser solicitada a execuo do algoritmo (boas vindas) por qualquer uma das formas
indicadas anteriormente (menu superior em Algoritmo e Executar, tecla F9 ou o primeiro boto da
segunda barra de botes, como apresentado na imagem da janela do Visualg abaixo).
Repare no quadro de execuo inferior direito que o algoritmo foi executado sem abertura da janela de
execuo. Alguns outros importantes botes para execuo de um algoritmo no Visualg sero mostrados
a seguir. No prximo tpico desta aula, explicaremos como utilizar os recursos de ajuda do ambiente
Visualg para que voc possa se aprofundar sobre os diversos recursos que ele possui.
Na segunda barra de botes do Visualg ou na opo Algoritmo disponvel na barra de menu superior,
est disponvel algumas formas de execues diversificadas ao programador que est elaborando seu
algoritmo. Essas formas de execuo almejam fornecer um suporte adequado sobre essa difcil atividade
de desenvolvimento e representao de raciocnios lgicos para soluo de problemas computacionais
atravs da programao de computadores.
57
Algoritmos e Programao
Aula 04
Na barra de botes do Visualg ou na opo Algoritmo disponvel na barra de menu superior, h algumas
opes de execuo de algoritmo para o programador que o elabora. Essas formas de execuo almejam
fornecer um suporte adequado sobre essa difcil atividade de desenvolvimento e representao de
raciocnios
lgicos
para
soluo
de
problemas
computacionais
por
meio
da
programao
de
computadores.
Elas podem acontecer de quatro formas diferentes:
1.
Pela execuo contnua sobre a orientao exata das instrues contidas no corpo do algoritmo
proposto (primeiro boto da segunda barra de botes).
2.
Pela execuo com tempo especificado no campo ao lado, porm acontecendo de maneira
contnua entre cada instruo ou linha de comando existente neste algoritmo, respeitando o
tempo estipulado para passagem prxima linha ou instruo de execuo (segundo boto da
segunda barra de botes com o campo de tempo logo em seguida).
3.
Pela
execuo
passo
passo,
conforme
programador
pressione
terceiro
boto
Pelo quarto boto na segunda barra de botes que interrompe a execuo que estiver sendo
realizada. Seu uso mais comum na execuo passo a passo.
Observe esses quatros botes ressaltados na imagem do Visualg abaixo e teste a execuo de cada um
deles sobre o primeiro algoritmo j elaborado e constate suas diferenas.
58
Algoritmos e Programao
Aula 04
59
Algoritmos e Programao
Aula 04
Explore esse recurso de auxlio sempre que for necessrio, pois ele lhe possibilitar agilidade na utilizao
deste novo e importante ambiente de desenvolvimento de algoritmos em portugus estruturado. Porm,
no se esquea de trabalhar sempre sobre o arquivo modelo.alg no incio da elaborao de cada
algoritmo no ambiente Visualg.
Importante
Lembre-se de substituir o smbolo grfico de atribuio (seta para esquerda
), contido nos
exemplos das aulas desta disciplina, pela expresso aceita pelo ambiente Visualg (sinal de menor seguido
por um hfen, sem espao <-).
Para confirmar essa necessidade, pedimos que voc copie para a memria do computador o algoritmo
denominado primeira mdia da turma, que ser pontualmente estudado na aula 6. Para copi-lo,
selecione todo o algoritmo indicado e escolha a opo copiar (Ctrl + C), em seguida, carregue o
ambiente Visualg e apague todo texto que possa ter em seu editor. Coloque o cursor no editor de texto
do Visualg na primeira posio (primeira linha e primeira coluna do editor) e cole (Ctrl + V) o algoritmo
na memria do computador.
Feitas todas essas aes, o algoritmo primeira mdia da turma ser apresentado dentro do editor do
Visualg, podendo ser executado por qualquer uma das quatro opes. Clique sobre o primeiro boto de
execuo e observe que o algoritmo no foi executado, sendo apresentada uma janela com explicaes
sobre os erros encontrados.
Como o computador no sabe o que fazer, ele no executa o algoritmo, mas apresenta-lhe algumas
informaes orientadoras sobre a dificuldade em execut-lo.
Neste momento, pressione o boto Terminar nessa nova janela e, em seguida, o boto OK na janela
que apresenta um resumo do erro encontrado. De acordo com essas orientaes, verifique, na linha
indicada pela janela anterior, o que pode estar errado no algoritmo proposto.
60
Algoritmos e Programao
Aula 04
Observe que na linha depois da palavra reserva inicio existe somente a instruo soma 0, no definindo
ao computador o que essa linha deve executar (erro de semntica com ausncia do operador de
atribuio, ou seja, a seta para esquerda).
Como comentado anteriormente, o editor de texto do Visualg no aceita o carcter grfico utilizado na
elaborao do material de aula, devendo em seu lugar ser colocado o smbolo de atribuio aceito pelo
Visualg (<-). Realize ento a insero desse operador corretamente no local entre a varivel denominada
soma e o valor numrico zero (0), resultando na instruo correta soma <- 0.
Aps realizar essa correo, solicite novamente a execuo e observe que o algoritmo ser executado. No
entanto, ver que ele apresenta um erro em seguida ao fornecimento da primeira nota solicitada.
Procurando apurar suas habilidades iniciantes no uso desse ambiente de programao e na atividade de
desenvolvimento de algoritmo, procure analisar o erro apresentado e constatar o que pode estar errado
na instruo existente na linha indicada. Caso consiga descobrir o erro, solicite a sua execuo sem se
preocupar, neste momento, com o restante do que este algoritmo realiza, pois seu contedo ser todo
estudado mais frente.
Como desafio, procure descobrir esses outros dois erros que se apresentam no algoritmo usado como
exemplo. Mantenha sua ateno sobre as orientaes fornecidas pelo Visualg e que podem ser corrigidas
por voc por meio da anlise e comparao com o algoritmo fonte, disponvel tambm na aula 6.
Compare o original com o algoritmo que est no editor de texto do Visualg e procure encontrar e corrigir
esses pequenos erros resultantes da cpia do algoritmo da aula 6. Tenha ateno e perseverana nessa
comparao instrutiva que lhe sugerida!
61
Algoritmos e Programao
Aula 05
Seqencial: conjunto de comandos que so executados em uma seqncia linear, de cima para
baixo, respeitando a pontuao e o alinhamento (endentao) especificado.
Seleo: a partir de um teste condicional, com base em lgica convencional, uma instruo ou
conjunto de instruo pode ser executado, ou no, dependendo exatamente do resultado deste
teste (resultado lgico, ou seja, verdadeiro ou falso).
Estrutura seqencial
A estrutura seqencial a mais convencional entre todas as estruturas, pois ela executa uma instruo
de cada vez: o encerramento da primeira instruo permite o acionamento da instruo seguinte,
respeitando a ordem de cima para baixo, linha por linha.
62
Algoritmos e Programao
Aula 05
63
Algoritmos e Programao
Aula 05
Observe a seqncia de instrues a ser realizada pelo computador que executar o algoritmo nota da
prova:
1.
2.
3.
4.
mostrar a mensagem e o valor lido do usurio, que sero apresentados pelo computador de
maneira formatada.
64
Algoritmos e Programao
Aula 05
Estrutura de Seleo
Esse tipo de estrutura, tambm chamada de estrutura condicional, permite a escolha ou definio de um
caminho seqencial a ser executado, porm esta escolha definida de acordo com o resultado de uma
verificao ou teste condicional.
Esses testes so fundamentados na lgica convencional e podem resultar em um valor do tipo lgico
(tipo de dado logico) de verdadeiro ou falso. Eles so encontrados por meio de operaes relacionais
simples ou complexas, usando-se de expresses lgicas que resultam em um valor do tipo lgico
(verdadeiro ou falso). Por exemplo: 5 > 3 esta expresso relacional ser verdadeira.
As estruturas de seleo podem ser classificadas de quatro formas diferentes. Essa classificao se baseia
na organizao lgica existente em cada situao e se resume em:
Seleo simples
Seleo composta
Seleo encadeada
Seleo Simples
Nesse tipo de seleo, proposto um teste condicional, que sendo
se (<condio>) entao
<comando 1>
<comando 2>
65
Algoritmos e Programao
Aula 05
:
<comando n>
fimse
As instrues contidas entre os smbolos < e > indicam a insero da instruo ou comando coerente
com o termo expresso entre eles. Por exemplo, a expresso <condio> indica que em seu lugar deve
ser inserida a expresso coerente com o teste condicional desejado, podendo ser inserido em seu lugar o
teste proposto no exemplo anterior sobre expresso relacional (5 > 3).
Da mesma forma, dever acontecer a substituio das expresses indicativas de comandos (<comando
1>), com as instrues que sejam coerentes com a lgica que se almeja definir no algoritmo a ser
elaborado.
Observe tambm que novos termos em negrito foram inseridos nesta sintaxe geral. Esses termos so
palavras reservadas que indicam ao computador a execuo de uma instruo de seleo simples a ser
realizada na execuo do algoritmo. Essas palavras so: se, entao e fimse.
Memorize ainda as definies dos alinhamentos pr-definidos nesta nova instruo, que permite ao
computador avaliar a veracidade de uma expresso lgico-relacional. Esse alinhamento obrigatrio na
construo de algoritmos com instrues de seleo, sendo tambm tratado como endentao no
algoritmo.
Exemplo:
66
Algoritmos e Programao
Aula 05
var
idade : inteiro // cria uma varivel inteira denominada idade
inicio
escreva("Informe sua idade: ")
leia(idade)
se (idade < 15) entao // realiza um teste condicional sobre a idade
escreva ("Voc uma criana") // mostra mensagem se verdadeiro
fimse // encerra a instruo de seleo ou condicional
fimalgoritmo
O algoritmo exemplificado acima ser executado, seqencialmente, at chegar a instruo se (comando
condicional se), que realizar o teste condicional para verificar a veracidade do valor informado pelo
usurio e armazenado na varivel idade. Se o teste for verdadeiro, ou seja, idade for menor que 15, a
mensagem "Voc uma criana" ser mostrada na tela do computador. Se o valor informado pelo
usurio no atender a esta condio (resultado do teste for falso), a mensagem no ser exibida e o
bloco condicional no ser executado.
Por esse motivo, esta instruo chamada de seleo, pois, pelo resultado do teste condicional, ela
selecionar a instruo ou bloco de instrues que ser executado pelo computador.
Representao em Fluxograma
Acompanhe a seguir a representao do algoritmo avaliao
fluxograma.
67
Algoritmos e Programao
Aula 05
Seleo composta
A seleo composta sempre executar um bloco condicional, pois, se o resultado do teste condicional for
verdadeiro, um conjunto de instrues, ou somente uma instruo, ser executada. No entanto, se o
resultado no for verdadeiro, ou seja, for falso, um outro conjunto de instrues, ou somente uma outra
instruo, ser tambm executada, porm essas instrues esto em um outro bloco.
Fica mais evidente nessa instruo de seleo que o resultado do teste condicional seleciona o bloco de
instrues a ser executado, antes de o algoritmo prosseguir com as outras operaes.
Esse tipo de seleo sempre identificar um nico caminho de instruo a ser percorrido, dependendo
sempre do resultado do teste condicional executado.
68
Algoritmos e Programao
Aula 05
Sintaxe geral
se (<condio>) entao
<comando 1>
<comando 2>
:
<comando n>
senao
<comando 10>
<comando 11>
:
<comando m>
fimse
Similar aos esclarecimentos da sintaxe geral para seleo simples so os para a seleo composta.
Observe que nesta seleo existem dois blocos distintos de instruo, sendo a primeira, aps a palavra
reservada entao, executada somente se o teste condicional for verdadeiro. Caso ele seja falso, o bloco a
ser executado ser o que segue aps a nova palavra reservada dessa instruo composta descrita como
senao.
Memorize tambm as definies exigidas em seus alinhamentos pr-definidos para essa instruo de
seleo, que avaliada pelo computador. Esse alinhamento obrigatrio na construo de algoritmos
que usam esse tipo de instruo de seleo.
69
Algoritmos e Programao
Aula 05
Exemplo:
70
Algoritmos e Programao
Aula 05
Se a idade informada for menor que 15, ento a mensagem a classificar como uma criana, seno a
mensagem apresentada ser Voc j um adulto. Por meio de seu teste condicional (idade < 15), o
computador executar somente um dos blocos elaborados nessa instruo, nunca sendo possvel a
execuo dos dois em seguida (computador seleciona um bloco ou outro para ser executado).
Agora, suponha que o algoritmo acima seja executado em seu computador e um colega seu, vislumbrado
com o que voc est aprendendo, o informe a idade que o algoritmo solicita, 21 anos. Visualize na
representao da tela de seu computador o que o algoritmo estaria apresentando para este seu colega,
conforme a execuo exata do algoritmo avaliao da idade.
Representao em fluxograma
Veja, a seguir, a representao do algoritmo avaliao da idade com a seleo composta em um
fluxograma.
71
Algoritmos e Programao
Aula 05
Seleo encadeada
A instruo de seleo se pode ser aninhada uma dentro da outra, seja no bloco verdadeiro (entao) ou
falso (senao). Todas as instrues programveis que j foram estudadas podem estar dentro de
qualquer um dos blocos da instruo de seleo, inclusive a prpria instruo de seleo. Isso acontecer
quando este processamento for necessrio na soluo lgica de um determinado algoritmo.
Esse aninhamento, tambm chamado de encadeamento de instrues, no possui limite na quantidade
de testes condicionais que podem estar dentro de um outro. Normalmente, quem estabelece esse tipo de
limite a soluo lgica proposta no algoritmo para alcanar uma soluo eficiente na execuo dele.
Sua sintaxe geral no portugus estruturado demonstrada a seguir.
72
Algoritmos e Programao
Aula 05
Sintaxe geral
comandos 1>
fimse
senao
se (<condio 3>) entao
<bloco de comandos 2>
senao
<bloco de comandos 3>
fimse
:
<comando n>
fimse
Repare que cada instruo se possui seu respectivo fimse, estando todos eles rigorosamente alinhados a
fim de facilitar a compreenso das operaes a ser realizadas pelo computador durante a execuo do
algoritmo.
Apesar de a sintaxe geral possuir uma seleo composta com uma outra seleo simples no entao do
primeiro se e somente na parte senao existir uma seleo composta, isso s sugere, como exemplo, que
uma instruo de seleo pode estar dentro da outra, independente delas serem simples ou compostas
tanto no entao como no senao. O que configura essa necessidade o problema existente a ser resolvido
por seu algoritmo.
73
Algoritmos e Programao
Aula 05
Acompanhe a seguir uma evoluo do algoritmo avaliao da idade utilizado nos exemplos anteriores
com portugus estruturado.
Exemplo
74
Algoritmos e Programao
Aula 05
75
Algoritmos e Programao
Aula 05
76
Algoritmos e Programao
Aula 05
Relembrando o Estudo
O uso de estruturas de controle condicionais no desenvolvimento de algoritmos em portugus
estruturado proporciona algoritmo capazes de avaliar dados informados e seus processamentos,
fornecendo um resultado mais preciso ao usurio. Para apoiar sua aprendizagem sobre essas importantes
estruturas condicionais, realize as atividades de reforo disponveis no ambiente de apoio ao ensino por
meio da ligao virtual denominada Lista Cinco e envie ao seu professor-tutor.
escolha (<identificador>)
caso<valor_1>
<bloco de comandos 1>
caso<valor_2>
<bloco de comandos 2>
caso<valor_3>
<bloco de comandos 3>
outrocaso
<bloco de comandos 4>
fimescolha
Essa instruo de seleo verifica somente a igualdade de valores entre <identificador> e um dos
<valor_n> especificado aps a palavra reservada caso. A expresso <identificador> indica que o
77
Algoritmos e Programao
Aula 05
nome ou identificador de uma varivel ou constante deve ser inserida sobre esta expresso para realizar
a substituio dela pelo elemento que seja necessrio avaliar.
Uma informao importante no uso dessa instruo que o <identificador> s pode ser substitudo por
um elemento (varivel ou constante) do tipo inteiro ou caracter com um nico caracter e nunca por
nomes ou valores que possuam mais de um nico caracter a ser armazenado e posteriormente ser
avaliado por esta instruo de seleo.
O teste condicional proposto por esta seleo de mltipla escolha verificar se o contedo armazenado no
identificador inserido igual a alguns dos valores previstos, por meio da substituio de <valor_1> por
um valor, de <valor_2>, por outro valor, e assim para quantos casos for necessria a avaliao.
Assim como no senao nas selees anteriores, a opo outrocaso opcional e verifica se todos os
outros casos resultaram em falso, se sim, ento ela que ser executada (outrocaso verdadeiro).
Porm possvel utilizar uma instruo escolha sem possuir outrocaso definido.
As novas palavras reservadas para uso de uma instruo de seleo de mltipla escolha so: escolha,
caso, outrocaso e fimescolha. Observe o exemplo a seguir e verifique tambm os alinhamentos
corretos para uso desta instruo condicional.
Exemplo:
78
Algoritmos e Programao
Aula 05
inicio
escreval("Digite
")
leia(epoca)
escolha (epoca) // instruo de
79
Algoritmos e Programao
Aula 05
Representao em fluxograma
Veja a representao da seleo de mltipla escolha em um fluxograma.
80
Algoritmos e Programao
Aula 05
A representao do fluxograma acima mostra como uma instruo de seleo de mltipla escolha pode
simplificar e melhor organizar uma lgica para muitas verificaes lgicas de igualdade.
A abordagem proposta por este contedo inicia o estudo mais detalhado sobre as estruturas
de seleo, tambm conhecidas como instrues condicionais. Por meio desses novos
conhecimentos a elaborao dos algoritmos poder ser realizada com mais preciso e
realidade, subsidiando, com mais qualidade e eficincia, seus usurios.
Na prxima aula, trataremos das Estruturas de Controle de Dados para a repetio.
81
Algoritmos e Programao
Aula 06
100)).
Suponha que seu pai investiu pesadamente em poupana, investindo um montante de R$ 100.000,00
(cem mil reais). Seguindo as orientaes de seu pai, voc e seu irmo tambm investiram os recursos
que estavam disponveis no momento em poupana e aplicaram R$ 553,00 (quinhentos e cinqenta e
trs reais) e R$ 100,00 (cem reais) respectivamente. Os novos valores de cada um de vocs sero
encontrados por meio da visita a um terminal do banco ou pelo clculo esclarecido acima. Observe o
saldo da poupana atual para cada um de vocs:
82
Algoritmos e Programao
Aula 06
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
Observe a criao de um algoritmo que leia um nmero positivo e apresente o resultado de sua tabuada
entre um e dez (de 1 a 10). Suponha que o valor desejado para essa tabuada seja o valor informado pelo
usurio. Uma possvel soluo para esse algoritmo em portugus estruturado apresentada abaixo:
algoritmo "tabuada"
// Sntese
// Objetivo: calcular a tabuada de um nmero informado pelo usurio
// Entrada: um nmero
83
Algoritmos e Programao
Aula 06
tabuada: ")
leia(numero)
se(numero < 0) entao
escreva("Valor informado deve ser positivo.")
senao
escreval(numero:2, " x 1 = ", (numero * 1):2 )
escreval(numero:2, " x 2 = ", (numero * 2):2 )
escreval(numero:2, " x 3 = ", (numero * 3):2 )
escreval(numero:2, " x 4 = ", (numero * 4):2 )
escreval(numero:2, " x 5 = ", (numero * 5):2 )
escreval(numero:2, " x 6 = ", (numero * 6):2 )
escreval(numero:2, " x 7 = ", (numero * 7):2 )
escreval(numero:2, " x 8 = ", (numero * 8):2 )
84
Algoritmos e Programao
Aula 06
:
para <varivel_controle> de <v_inicial> ate <v_final> passo <valor> faca
<bloco
de comandos>
fimpara
85
Algoritmos e Programao
Aula 06
:
onde
<varivel_controle> uma varivel do tipo inteiro, ou de um nico
caracter, que auxiliar
algoritmo "tabuada"
// Sntese
// Objetivo: calcular a tabuada de um nmero informado pelo usurio
// Entrada: um nmero
// Sada: tabuada de 1 at 10 do nmero informado
// Declaraes
var
numero, contador : inteiro
inicio
86
Algoritmos e Programao
Aula 06
tabuada: ")
leia(numero)
se (numero < 0) entao
escreva("Valor informado deve ser positivo.")
senao
para contador de 1 ate 10 passo 1 faca
escreval(numero:2, " x ", contador:2, " = ", (numero * contador):2
)
fimpara
fimse
fimalgoritmo
Por meio do exemplo acima, possvel verificar todas as novas palavras reservadas existente nesta
primeira instruo de repetio (para, de, ate, passo, faca e fimpara). Todas elas so obrigatrias e
orientam o computador na realizao e controle de sua repetio de operaes e aes existentes em seu
bloco de instruo, tambm chamado de bloco de repetio.
Este bloco inicia na palavra reservada para e termina no fimpara. Tenha ateno com os alinhamentos
ou endentaes importantes empregados nesta instruo.
Para compreender um pouco mais a lgica de funcionamento da instruo de repetio para... faca,
observe um outro exemplo proposto com essa importante instruo da programao de computadores.
87
Algoritmos e Programao
Aula 06
Exemplo:
valor
para auxiliar de 1 ate 50 passo 1 faca
escreval("Informe a nota do ", auxiliar:2, "aluno: " )
leia(nota)
soma
soma + nota
fimpara
media
soma / 50
88
Algoritmos e Programao
Aula 06
a varivel soma no possua valor algum. Como j de seu conhecimento matemtico, possuir um valor
muito diferente de no possuir valor algum, ou seja, algum valor diferente de vazio ().
Na computao, essa evidncia matemtica tambm vlida, no sendo possvel realizar uma operao
aritmtica sobre um valor vazio (que no existe). Suponha que no algoritmo acima a primeira nota
informada tenha sido 8,5. Quando a instruo soma
resultado de:
soma
+ 8,5
Esta operao no pode ser executada. No jargo computacional, diz-se que a operao resultar em lixo
de memria. Essa expresso ser mais bem esclarecida nas prximas disciplinas da rea de
programao. necessria muita ateno sobre esse tipo de erro lgico que o ambiente Visualg 2.0 no
indica, colocando zero na varivel no inicializada obrigatoriamente. Com essa conduta equivocada do
Visualg na verso 2.0, seu algoritmo resultar em um programa computacional errado, o que
consideramos um erro grave na elaborao do algoritmo esperado. Por isso, tenha sempre muita ateno
com situaes como essa muito comum na elaborao de algoritmos.
Representao em Fluxograma
Acompanhe abaixo a representao da instruo de repetio para... faca no fluxograma, realizada
sobre a soluo descrita no exemplo anterior em portugus estruturado.
89
Algoritmos e Programao
Aula 06
Relembrando o Estudo
Para aplicar e reforar o conhecimento sobre o uso dessa primeira estrutura de controle e repetio para
o desenvolvimento de algoritmos em portugus estruturado, acesse o ambiente Moodle e realize a
atividade denominada REPETIO 1 e a encaminhe ao professor, conforme orientaes.
90
Algoritmos e Programao
Aula 06
Caso o resultado desse teste lgico seja verdadeiro, todo bloco de repetio executado at a
instruo fimenquanto.
Quando seu teste resultar em falso, o bloco de repetio saltado e a execuo prossegue a
partir da primeira instruo aps o fimenquanto.
O controle desta repetio pode acontecer de duas formas: a) controlada pelo prprio usurio do
algoritmo; e b) controlada de maneira automtica, de acordo com a lgica ou o raciocnio implementado
pelo programador.
Sintaxe geral
:
enquanto (<condio>) faca
<bloco de comandos> // tambm chamado de bloco de repetio
fimenquanto
:
Onde:
<condio> um teste condicional que resulta em um dado do tipo lgico, ou seja, tem
resultado verdadeiro ou falso somente, sendo estes valores excludentes (ou falso ou
verdadeiro, nunca podendo ser os dois ao mesmo tempo);
<bloco de comandos> corresponde ao bloco de instrues que deve possuir todos os comandos a
serem repetidas vezes executado pelo algoritmo, alm das instrues que permitiro o controle
desta repetio. Este bloco inicia com a palavra reservada enquanto e termina em
fimenquanto.
91
Algoritmos e Programao
Aula 06
A seguir, apresentamos o mesmo algoritmo usado como exemplo na repetio para... faca, porm agora
com a instruo de repetio enquanto... faca em portugus estruturado.
Exemplo:
auxiliar
auxiliar
enquanto (auxiliar <= 50) faca
escreval("Informe a nota do aluno: ")
leia(nota)
92
Algoritmos e Programao
Aula 06
media
auxiliar
fimenquanto
media
auxiliar + 1).
No entanto, a soluo proposta para esse problema (mdia aritmtica das notas de uma turma de 50
alunos) usando a instruo para... faca foi diferente, onde estas instrues esto presentes no para...
faca, porm implcitas na linha de comando para auxiliar de 1 ate 50 passo 1 faca. Apesar de a
instruo para... faca consistir em uma nica linha do corpo do algoritmo, ela possui, implicitamente,
trs operaes definidas:
auxiliar
usando o valor
93
Algoritmos e Programao
Aula 06
Toda instruo para... faca possui trs instrues implcitas em sua lgica de funcionamento: a
inicializao da varivel de controle (s realizada a primeira vez que esta instruo for executada), seu
teste condicional para averiguao se o bloco de repetio ser executado ou no (s executado com
resultado do teste verdadeiro) e o incremento da varivel de controle nesta repetio (podendo tambm
ser o decremento quando for conveniente). Contudo, essas operaes devem estar explicitas em uma
instruo enquanto... faca, caso contrrio, elas no sero executadas corretamente.
Representao em Fluxograma
Veja como ficaria a representao grfica da instruo de repetio enquanto... faca do algoritmo
mdia da turma, no fluxograma abaixo:
94
Algoritmos e Programao
Aula 06
Observe com ateno este fluxograma baseado no portugus estruturado do enquanto... faca e
compare com o outro fluxograma sobre o mesmo problema, porm usando como base o para... faca no
portugus estruturado. Veja que ambos os fluxogramas possuem a mesma diagramao, pois a lgica de
soluo permanece a mesma, apesar de o portugus estruturado possuir diferenas significativas em
suas representaes. Repare tambm que nenhuma nova figura geomtrica foi includa no diagrama para
representar essas instrues de repetio, pois elas correspondem somente a novas organizaes lgicas
das operaes bsicas j estudadas anteriormente nesta disciplina.
Relembrando o Estudo
Para melhor compreender o uso dessa segunda estrutura de controle e repetio para o desenvolvimento
de algoritmos em portugus estruturado, acesse o ambiente Moodle e realize a atividade denominada
REPETIO 2 e a encaminhe ao professor, conforme orientaes.
O teste condicional para realizar a repetio sobre o bloco de instrues existente entre a palavra
reservada repita e ate executado somente no final do bloco, conforme organizao seqencial
do algoritmo.
O bloco entre as duas palavras reservadas desta instruo ser executado no mnimo uma vez,
independente do resultado do seu teste condicional que s ser realizado ao final de cada
execuo do prprio bloco.
A repetio executada somente se o teste condicional for falso, pois sendo ele verdadeiro a
repetio encerrada. Observe que a lgica de repetio desta instruo diferente das outras
duas (para... faca e enquanto... faca) estudadas anteriormente.
Sintaxe geral
:
repita
<bloco de comandos> // tambm chamado de bloco de repetio
ate (<condio>)
:
95
Algoritmos e Programao
Aula 06
Onde:
<condio> um teste condicional que resulta em um dado do tipo lgico, ou seja, tem
resultado somente de verdadeiro ou falso, que s realizado ao final da execuo de todas as
instrues existentes em seu bloco de repetio.
<bloco de comandos> corresponde ao bloco de instrues que deve possuir todos os comandos a
serem executados repetidamente no algoritmo, alm das instrues que permitiro o controle
desta repetio.
Aproveitando o mesmo exemplo instrutivo utilizado na primeira abordagem das instrues para... faca e
enquanto... faca, acompanhe, na seqncia, a elaborao do algoritmo em portugus estruturado,
usando o repita... ate.
auxiliar
96
Algoritmos e Programao
Aula 06
repita
escreval("Informe a nota do aluno: ")
leia(nota)
soma
auxiliar
fimalgoritmo
Observe com ateno o teste condicional na linha do ate, que s ser executado aps todas as instrues
que o antecedem terem sido executadas uma vez. Veja tambm que o teste condicional especificado
exatamente o contrrio dos testes do para... faca (implcito) e do enquanto... faca (explicito),
indicando que seu funcionamento lgico acontece de maneira diferente s outras duas repeties
estudadas.
Nas outras duas repeties, o bloco de repetio s executado quando seu teste condicional resulta no
dado lgico de verdadeiro, enquanto que o falso encerra a repetio. Entretanto, no repita... ate, isso
exatamente o contrrio, ou seja, o teste condicional falso permite a execuo novamente de seu bloco de
repetio, sendo seu resultado verdadeiro responsvel pelo fim da execuo (sada do bloco de repetio
para execuo da prxima instruo aps o ate).
Representao em Fluxograma
Usando a representao grfica, observe o exemplo do repita... ate em portugus estruturado no
fluxograma a seguir.
97
Algoritmos e Programao
Aula 06
98
Algoritmos e Programao
Aula 06
Com o intuito de facilitar a compreenso sobre este ltimo exemplo, usando a instruo repita... ate,
suponha que o algoritmo tenha sido elaborado para apresentar a mdia de 5 notas, ao invs de 50.
Acompanhe assim sua tela de execuo supondo que as notas informadas pelo usurio foram 7,5, 3,4,
9,0, 5,3 e 6,8.
Relembrando o Estudo
Para melhor compreender o uso dessa terceira estrutura de controle e repetio para o desenvolvimento
de algoritmos em portugus estruturado, acesse o ambiente Moodle e realize a atividade denominada
REPETIO 3 e a encaminhe ao professor, conforme orientaes.
Controlador automtico: Uma varivel auxiliar conta quantas vezes ser executado o conjunto
de comandos (bloco de repetio), sem interferncia direta do usurio sobre a quantidade de
vezes. Este bloco de instrues sempre ser repetido quantidade de vezes prevista pelo
desenvolvedor do algoritmo (programador).
99
Algoritmos e Programao
Aula 06
Acompanhe, a seguir, exemplos que facilitaro sua compreenso sobre essas duas formas de controlar
uma repetio em um algoritmo.
Controlador Automtico
Neste primeiro exemplo de controle ser utilizada a instruo enquanto... faca.
100
Algoritmos e Programao
Aula 06
fimenquanto
escreval("5 pesos foram informados.")
fimalgoritmo
O algoritmo anterior efetua a leitura de cinco pesos e s se encerra aps a leitura de todos eles, no
sendo possvel termin-lo sem que os cinco pesos sejam digitados pelo usurio. Esse tipo de repetio
classificada como automtica, pois o algoritmo sempre ler cinco pesos, nem mais nem menos, para
prosseguir e terminar sua execuo.
Agora, observe o prximo exemplo, usando o enquanto... faca e note as diferenas entre os dois controles:
101
Algoritmos e Programao
Aula 06
peso
")
leia(peso)
contador
fimenquanto
escreval("Foram informados ", (contador - 1):2,
fimalgoritmo
O algoritmo anterior l quantos pesos o usurio desejar informar. O controle da quantidade de vezes que
o algoritmo solicitar pesos o usurio que determina. Quando ele no quiser mais informar pesos, ele
simplesmente informa um valor negativo e o bloco de repetio que solicita pesos ao usurio no ser
mais executado, permitindo que o algoritmo prossiga sua execuo at ser encerrado. Esse tipo de
controle sobre a repetio chamado de controlado pelo usurio, conhecido ainda como sentinela ou
flag de interrupo da repetio.
Alm da instruo enquanto... faca, a instruo repita... ate tambm bem empregada neste tipo de
lgica que permite ao usurio controlar a quantidade de vezes que um bloco de repetio ser executado.
Veja a seguir o mesmo exemplo lgico anterior implementado no algoritmo abaixo, porm usando a
instruo de repetio repita... ate.
102
Algoritmos e Programao
Aula 06
// Declaraes
var
contador : inteiro
peso : real
inicio
contador
repita
escreval("Digite o peso: ")
leia(peso)
contador
ate (contador = 5)
escreval("5 pesos foram informados.")
fimalgoritmo
O problema apresentado anteriormente para a leitura de pesos ser novamente elaborado, porm com a
instruo repita... ate, para fornecer ao usurio o controle da quantidade de pesos que ele deseja
informar ao computador. Observe o algoritmo em portugus estruturado abaixo:
103
Algoritmos e Programao
Aula 06
// Entrada: pesos
// Sada: quantidade de pesos informados
// Declaraes
var
contador : inteiro
peso : real
inicio
contador
repita
escreval("Digite um peso vlido ou negativo para encerrar:
")
leia(peso)
contador
contador
//
contabiliza
quantidade
de
pesos
informados
ate (peso < 0)
escreval("Foram informados ", (contador - 1):2,
fimalgoritmo
Analise o exemplo a seguir e verifique a elaborao de um nico algoritmo, denominado analisa pesos,
que incorpora todo contedo estudado at o momento na soluo do problema: leitura de pesos de
pessoas. Porm, essa soluo mais coerente com a realidade do mundo e os cuidados necessrios ao
desenvolvimento de algoritmos para computadores.
104
Algoritmos e Programao
Aula 06
de pesos informados
// Declaraes
var
contador : inteiro
peso : real
inicio
contador
peso
0
1
repita
escreval("Digite um peso de pessoa vlido ou zero
leia(peso)
se (peso < 0) entao
escreval("Peso invlido! Informe somente
pesos positivos.")
senao
105
Algoritmos e Programao
Aula 06
contador
fimse
ate (peso = 0)
escreval("Foram informados ", (contador - 1):2,
fimalgoritmo
Imagine que o usurio informou os respectivos pesos (73,3, -23,5, 23,5 e 0 - zero) na execuo do
algoritmo acima, obtendo a seguinte tela de execuo:
Repare que o peso -23,5 no vlido e no pode ser contabilizado como peso informado. Porm, na
seqncia da execuo do algoritmo, o usurio informado que este peso invlido, devendo inform-lo
novamente.
Atente tambm para a instruo:
106
Algoritmos e Programao
Aula 06
Ela bastante similar a algumas instrues dos exemplos anteriores, na medida em que a varivel de
controle apresentada com a subtrao do nmero 1 de seu contedo momentneo. Observe no
exemplo anterior, assim como nos demais que possuem esta operao, que, antes de sua apresentao
ou utilizao final, a varivel recebeu mais 1 antes do teste condicional do bloco de repetio. O
resultado do teste resultou na sada do bloco de repetio sem que este fosse executado novamente. Isso
indica que a varivel de controle est um valor acima dos valores realmente lidos pelo algoritmo e que
preciso retirar esse valor a mais para que os clculos finais no sejam prejudicados.
Observe no ltimo exemplo que foram informados somente dois valores vlidos de peso, alm de um
invlido. O valor zero encerra o bloco de repetio e no invlido e assim contabilizado como um peso
informado. No entanto, o valor zero corresponde sentinela ou flag que termina com o bloco e no um
peso de pessoa vlido, sendo necessrio que ele no seja contabilizado como peso informado pelo
usurio.
Outro aspecto importante deste ltimo algoritmo a sua elaborao mais segura, com entradas ou
leituras validadas de acordo com as caractersticas individuais do problema existente e sua soluo
proposta. Isso garante um processamento otimizado e mais coerente com a soluo almejada, alm de
facilitar o desenvolvimento, normalmente contnuo, do algoritmo.
Se o algoritmo analisa pesos for aplicado na leitura de pesos de pessoas, os valores informados pelo
usurio no podem ser menores que zero, pois no existe pessoa com tal peso. Alm disso, no existem
pessoas com peso igual a zero, porm este valor corresponde ao valor definido pelo raciocnio do
programador para que o usurio avise ao computador que ele no deseja mais informar pesos, no este
valor invlido, mas sim um sentinela para encerramento do bloco de repetio no algoritmo elaborado.
107
Algoritmos e Programao
Aula 07
108
Algoritmos e Programao
Aula 07
inicio
escreva("Informe a primeira nota: ")
leia(nota1)
escreva("Informe a segunda nota: ")
leia(nota2)
escreva("Informe a terceira nota: ")
leia(nota3)
escreva("Informe a quarta nota: ")
leia(nota4)
escreva("Informe a quinta nota: ")
leia(nota5)
total
109
Algoritmos e Programao
Aula 07
em uma situao como essa que as estruturas de dados so fundamentais para o eficiente
processamento dos dados. Essas estruturas fundamentais podem ser de dois tipos bsicos: Homognea
(vetor ou matriz) e Heterognea (registro ou estrutura). Estudaremos somente a homognea, pois a
heterognea ser abordada por outra disciplina mais adiante na rea de Programao.
possui um nico nome, ou seja, um nico identificador para vrios valores a serem armazenados
na memria; e
cada um de seus valores acessvel independentemente, de acordo com o seu ndice ou posio
da estrutura de dados.
Exemplo:
Suponha a existncia de uma estrutura que armazene a idade de 12 pessoas, sendo o identificador desta
estrutura a expresso idades.
valores
ndices
10
11
Os valores correspondem aos contedos informados pelo usurio, ou seja, so as idades solicitadas ao
usurio
que
as
informou
por
meio
da
instruo
leia.
Esses
valores
so
armazenados,
110
Algoritmos e Programao
Aula 07
posio de armazenamento igual a zero, sendo seu sexto elemento de idade armazenado no ndice ou
posio 5 da estrutura.
O sexto elemento da estrutura ou o contedo da posio cinco igual a 7, ou seja, a sexta idade
informada pelo usurio est na posio 5 do ndice e armazena o valor 7.
Essas estruturas unidimensionais so chamadas de vetores e possibilitam a criao de variveis
compostas unidimensionais com tamanho definido na declarao do vetor, sendo:
A sintaxe geral para criao de uma estrutura de dados composta unidimensional, tambm chamada de
vetor, em um algoritmo em portugus estruturado apresentada na forma geral a seguir:
<identificador> : <tipo de
dado>
Exemplo:
nota: real
Declarao
da
estrutura
de
dados
composta
homognea
unidimensional:
<identificador> : vetor [<inicial>..<final>] de <tipo de dado>
Onde:
<inicial> e <final> correspondem respectivamente aos valores numricos inteiros de incio e fim
dos ndices do vetor, sendo seu intervalo a quantidade exata de elementos do vetor, ou seu
tamanho.
Os termos vetor e de so palavras reservadas que fazem sentindo para o algoritmo e nunca devem estar
ausentes na instruo de declarao (ou criao) de um vetor.
111
Algoritmos e Programao
Aula 07
Exemplo:
idades
ndices
10
11
O valor armazenado em idades[2] 29, em idades[10] 45 e assim por diante. Porm, atente a
manipulao dos dados contidos nesse vetor no exemplo a seguir em portugus estruturado.
112
Algoritmos e Programao
Aula 07
auxiliar : inteiro
idades : vetor [0..11] de inteiro
inicio
para auxiliar de 0 ate 11 passo 1 faca
escreva("Informe
",
(auxiliar+1):2,
"
idade:
")
//
mensagem
orientadora
leia(idades[auxiliar]) // suponha a leitura dos valores mostrados
acima
fimpara
auxiliar
idades[1]
idades[auxiliar]
idades[auxiliar]
idades[2 * auxiliar] + 5
113
Algoritmos e Programao
Aula 07
Como o intervalo declarado na criao do vetor idades ( [0..11] ) consiste de 12 posies, essa
estrutura de dados composta homognea (ou simplesmente vetor) ter a capacidade de armazenar 12
valores do tipo de dado especificado aps a palavra reservada de, ou seja, nesse pequeno exemplo todos
os 12 valores sero inteiros.
Essa mesma declarao poderia ser realizada para o intervalo de 1 at 12 ([1..12] ), em que se estaria
criando um vetor com a capacidade de armazenar 12 valores tambm. Porm, o ndice de acesso a cada
elemento independente do vetor comearia em 1 e o ltimo elemento desse vetor estaria na posio 12.
Na representao do exemplo anterior, o primeiro elemento est na posio 0 (zero) enquanto o ltimo
se encontra na posio 11, contabilizando um total de 12 valores armazenados na memria do
computador.
Por conveno das linguagens de programao mais atuais, essas estruturas de dados (vetor) sempre
possuem seu primeiro elemento na posio zero, assim que so declaradas. Por isso, os contedos desta
disciplina estaro sempre trabalhando com as estruturas organizadas na forma mais coerente
programao atual, ou seja, com o primeiro elemento da estrutura composta homognea armazenado na
sua posio zero.
Alm da manipulao do vetor proposto no exemplo anterior, tambm foi apresentada uma nova
instruo indicada pela palavra reservada limpatela. Essa instruo promove a limpeza da tela de
execuo para que o algoritmo continue apresentando seus dados e orientaes para o usurio de forma
mais organizada e amigvel.
O cuidado com a apresentao fundamental aos algoritmos e programas de computador, pois,
geralmente, por meio da organizao da interface de comunicao entre o computador e seu usurio
que as pessoas avaliam a soluo lgica proposta em um primeiro momento.
Com o intuito de compreender exatamente as duas manipulaes aritmticas realizadas com o vetor,
elaboramos uma representao mais detalhada, com comentrios sobre a representao do vetor
proposto acima com os valores j armazenados. Por isso, observe-o com ateno e assim compreender
os comentrios (em azul) que precedem cada uma das instrues abaixo:
idades[1]
idades[auxiliar]
// corresponde a idades[1]
idades[auxiliar]
15
idades[2 * auxiliar] + 5
// corresponde a idades[4]
idades[2 * 4] + 5 ou seja
114
Algoritmos e Programao
Aula 07
// idades[4]
12 + 5
17
A realizao das manipulaes acima sobre o vetor idades resulta em um novo armazenamento de dados
sobre ele. Sua representao diagramtica segue abaixo:
idades
De forma a reforar a aprendizagem sobre o contedo de estudo (vetor), acompanhe o prximo exemplo
que declara um vetor de reais com capacidade de armazenamento de at 30 notas de aluno e que
apresenta, ao final, as notas individuais de cada aluno com a mdia aritmtica alcanada por toda a
turma de 30 alunos.
115
Algoritmos e Programao
Aula 07
inicio
soma
10)
repita
leia(notas[auxiliar])
se ((notas[auxiliar] < 0) ou (notas[auxiliar] > 10)) entao
escreval("Nota invlida! Digite
fimse
ate((notas[auxiliar] >= 0) e (notas[auxiliar] <= 10))
fimpara
limpatela
// Apresentao dos
116
Algoritmos e Programao
Aula 07
=", notas[auxiliar]:3:1)
soma + notas[auxiliar]
fimpara
escreval
escreva("Mdia Aritmtica da turma =", (soma / 30):4:2)
fimalgoritmo
Observe com ateno o algoritmo mdia aritmtica com vetor que se prope a realizar as atribuies de
uma lgica implementada em um computador. Nela elaborada uma apresentao amigvel, com a
utilizao de comentrios instrutivos ao programador e um conjunto de mensagens orientadoras ao
usurio do algoritmo, alm da validao de todos os dados de entrada fornecidos pelo usurio (notas).
Repare ainda que existem instrues escreval sem detalhamento do que deve ser apresentado pelo
algoritmo. Essas instrues, contendo somente o comando escreval, realizam um salto de uma linha em
branco na tela de execuo do algoritmo. Isso possibilita uma apresentao mais organizada e
compreensvel (amigvel) ao usurio do algoritmo que possui na tela de execuo a interface de sada
(vdeo) dos dados processados pelo computador.
117
Algoritmos e Programao
Aula 07
Exemplo:
Objetivo:
armazenar
nome
de
uma
pessoa
apresentar
somente
auxiliar + 1
118
Algoritmos e Programao
Aula 07
3 linhas
escreval
escreval
escreval
escreva("A primeira letra do nome informado = ", nome[0])
fimalgoritmo
A instruo escreva existente no final deste algoritmo apresenta somente a primeira letra informada
pelo usurio. Supondo que este tenha informado o nome Marilda., digitando a tecla <ENTER> entre
cada letra do nome, a letra M ser apresentada pelo ltimo escreva do algoritmo, pois a posio 0
(zero) estar armazenando somente a letra (M). Conseqentemente, a letra a estar na posio 1, a
letra r na posio 2 e assim por diante, at chegar ao ponto final (.) armazenado na ltima posio (7)
usada para armazenar os caracteres informados pelo usurio.
Atente a outro exemplo que deve solicitar uma senha para seu usurio e verificar se esta foi informada
corretamente ou no. Sem observar a soluo do exemplo abaixo tente elaborar o seu algoritmo em
portugus estruturado. Aps a sua soluo elaborada, analise-a comparando com a soluo proposta a
seguir:
119
Algoritmos e Programao
Aula 07
// Declaraes
var
auxiliar : inteiro
igual : logico
senha : vetor [0..3] de caracter // vetor senha cadastrada
senhaUsuario
vetor
[0..3]
de
caracter
//
senha
informada
pelo
usurio
inicio
igual
falso
auxiliar
"C"
senha[1]
"U"
senha[2]
"B"
senha[3]
"O"
escreva("Digite
")
repita
120
Algoritmos e Programao
Aula 07
auxiliar + 1
fimse
fimpara
se (igual = verdadeiro) entao
escreva("Senha correta!")
senao
escreva("Senha
incorreta!")
fimse
fimalgoritmo
Observe no exemplo anterior que o identificador do vetor que armazenar a senha informada pelo
usurio possui um nome composto. Quando isso ocorrer, as regras para definio de identificadores
devem ser respeitadas e o identificador deve possuir, em letra maiscula, somente o primeiro carcter de
cada palavra ou expresso que forma este nome, com exceo do primeiro nome que deve ser
totalmente em minsculo. Por exemplo: variveis com identificadores compostos: mediaPonderada,
valorTotalCusto, somaTotal, entre outros nomes possveis que respeitem as regras de criao de um
identificador.
121
Algoritmos e Programao
Aula 07
122
Algoritmos e Programao
Aula 08
Matriz
Matriz de dados consiste em uma estrutura de dados composta homognea com variao em mais de
uma dimenso, ou seja, sua organizao lgica no est definida sobre uma nica posio, mas sobre a
quantidade de dimenses definidas em sua declarao.
Observe o tabuleiro de xadrez abaixo. Agora responde: qual a posio que o rei (R) de seu adversrio
estaria no incio do jogo?
Repare que simplesmente informar uma posio no suficiente para encontrar a posio exata do rei
adversrio na partida, pois seu tabuleiro possui variao de linha e coluna para identificao da posio
correta. Sendo assim, a variao de posio pode acontecer sobre as duas dimenses (linha e coluna),
por isso, cada uma delas deve ser indicada para a correta localizao do rei adversrio. Na imagem do
tabuleiro de xadrez, o rei (R) se encontra na linha 0 (zero) e coluna 3, lembrando que,
123
Algoritmos e Programao
Aula 08
computacionalmente, a primeira linha e coluna so as de nmero zero. Logo, o rei estaria na posio
[0,3] em um algoritmo.
possvel uma grande variao de dimenses na criao de uma matriz, no entanto, essa criao deve
ser coerente com o problema computacional que estar envolvendo-a. O limite no nmero de dimenses
a quantidade de memria disponvel no computador utilizado. Contudo, a capacidade de representao
e entendimento de uma estrutura com muitas dimenses difcil de ser representada pelo ser humano.
Geralmente, so definidas estruturas com duas ou trs dimenses para soluo de problemas
computacionais diversos. Convencionalmente, define-se a representao dessas dimenses em linha,
coluna e pgina. Para compreender melhor essa conveno, mentalize um livro. Abra-o aleatoriamente
em alguma pgina e verifique que nesta pgina existe uma quantidade de linhas e colunas. Passe para
pgina seguinte e constate que ela tambm possui linhas e colunas, e tambm possui outros caracteres
formando outras frases, pois se trata de uma outra pgina.
Similarmente, tm-se as matrizes de trs dimenses com linhas, colunas e pginas organizadas para um
armazenamento de dados mais eficiente.
A forma de declarao de uma matriz bidimensional em portugus estruturado definida abaixo:
Sintaxe Geral:
dado>
Onde:
124
Algoritmos e Programao
Aula 08
<inicial> e <final> correspondem aos valores numricos inteiros respectivos ao incio e fim dos
ndices da segunda dimenso da matriz, sendo seu intervalo a quantidade exata de elementos da
segunda dimenso da matriz.
Observe, atentamente, que a definio da primeira e da segunda dimenso da matriz esto entre
colchetes ([ ]) e separados por uma vrgula. Caso exista a necessidade de mais dimenses, o padro de
especificao deve ser seguido, sendo includa uma nova vrgula dentro do colchete e especificado o valor
inicial e final da nova dimenso.Com o intuito de facilitar sua compreenso, procure acompanhar o
portugus estruturado definido na soluo abaixo que realiza o armazenamento dos doze ltimos anos
que foram realizados os jogos Pan-Americanos, sendo solicitados ao usurio do algoritmo os
correspondentes 12 anos.
125
Algoritmos e Programao
Aula 08
Americanos:")
contador,
",",
auxiliar,
"]=",
126
Algoritmos e Programao
Aula 08
Entre as vrias estruturas de dados mais complexas que podem ser desenvolvidas com recursos
computacionais, algumas das principais sero abordadas sobre o raciocnio lgico que as diferem. Tais
podem ser aprofundadas por meio de estudos e pesquisas complementares sobre os diversos materiais
de apoio disponveis sobre este contedo.
Acompanhe, a seguir, a abordagem instrutiva sobre algumas dessas principais estruturas de dados.
Pilha
A Pilha a estrutura de dados mais complexa. Ela possui caractersticas lgicas relacionadas
representao de um conjunto de objetos sobrepostos, ou seja, objetos empilhados, como na ilustrao a
seguir:
Suponha que sua irm resolve mudar de lugar todos os sapatos que ela
guarda no guarda-roupa. Com sua ajuda, ela vai empilhando uma caixa
sobre a outra no cho do quarto. Quando sua me entra no quarto, voc
comenta que encontrou o sapato que ela estava procurando h tempos
sem o encontrar. Ento, ela pede para que voc o pegue, mas voc
certifica-se que ele est embaixo de todas as caixas que voc e sua irm
empilhou uma sobre a outra no cho do quarto. Para que voc consiga
pegar o sapato, ser necessrio, primeiramente, retirar todas as caixas
que esto em cima da caixa do sapato que sua me deseja.
Neste simples exemplo corriqueiro est a exata situao lgica de uma
pilha de dados na memria do computador, em que a lgica de
manipulao sobre os dados respeita os requisitos de uma pilha, sendo necessrio manipular todos os
dados anteriores para o correto acesso e posterior manipulao do dado desejado. Este raciocnio
tambm conhecido como LIFO (Last In, First Out) ou lgica de manipulao de dados. Ele respeita
as caractersticas de uma pilha, onde os primeiros dados que so armazenados em uma estrutura devem
ser os ltimos dados a sarem dessa estrutura para manipulao do computador por meio de seu
algoritmo.
127
Algoritmos e Programao
Aula 08
Uma pilha corresponde a uma lista de dados na qual os elementos so manipulados sobre uma mesma
extremidade, sendo esta a posio a inserir ou retirar um elemento de dados independente na estrutura.
Lista
A expresso lista de dados ou lista linear de dados tambm identifica uma estrutura de dados
composta
homognea,
pois
corresponde
um
conjunto
de
dados
de
um
tipo
organizado
seqencialmente. Esta organizao estabelece uma relao de ordem e independncia dos dados
guardados na lista, que pode aumentar, ao inserir novos elementos, ou diminuir, ao retir-los.
As principais operaes sobre uma lista de dados so:
Fila
Uma outra lgica empregada sobre as estruturas de dados fundamentais em computao a fila. Este
raciocnio lgico sobre uma lista de dados difere da pilha, pois consiste na manipulao dos dados
similarmente a uma fila de pessoas aguardando atendimento em um caixa eletrnico de supermercado.
128
Algoritmos e Programao
Aula 08
Nesta organizao, o primeiro cliente a chegar na fila de espera ser o primeiro a ser atendido pelo caixa
e, conseqentemente, o primeiro a sair da fila.
A lgica de manipulao de dados em uma fila acontece sobre as extremidades da estrutura, e seu
raciocnio lgico conhecido como FIFO (First In, First Out). A manipulao de dados que respeita as
caractersticas de uma fila indica que os primeiros dados armazenados em uma estrutura devem ser os
primeiros dados a sarem desta estrutura, conseqentemente, os ltimos dados guardados nesta
estrutura sero os ltimos dados a deixarem-na.
rvore
Uma outra estrutura de dados relevante ao armazenamento e manipulao de informaes na memria
do computador conhecida como rvore. Ela possui algumas variaes coerentes com as necessidades e
caractersticas mais importantes na situao em que sero utilizadas.
No mbito matemtico, uma rvore consiste em um tipo especial de grafo, que possui um n ou
elemento especial identificado como raiz. Neste grafo no h nenhum ciclo, mas tem sempre presente
um caminho de raiz para qualquer outro n que componha esta estrutura (rvore). Veja uma
representao grfica de rvore com alguns elementos a seguir:
129
Algoritmos e Programao
Aula 08
Na rvore representada na figura anterior, observa-se a indicao em azul como seu n ou elemento raiz.
Acompanhe nesta representao a definio dos elementos b, c e d em relao ao n raiz (elemento a).
Esses trs elementos so identificados como elementos filhos do n pai a (raiz), sendo b irmo de c e de
d. Essa nomenclatura tambm bastante empregada sobre as estruturas organizadas em rvores e
possibilita a descrio detalhada de qualquer rvore desejada.
Os ns terminais (elementos sem filhos) de cada caminho existente em uma rvore especfica so
chamados de ns filhos do n anterior a seu nvel, ou tambm de ns folha desta rvore. Por exemplo,
os elementos h e i so ns folha da rvore ilustrada acima, sendo seu pai o n g que, por sua vez, filho
de d, que possui tambm como pai o a (elemento raiz da rvore).
O nvel de um elemento na rvore iniciado por 1, que o nvel da raiz. O nvel correspondente a
qualquer outro elemento desta rvore o nvel de seu pai acrescido de 1, ou seja, o filho do n raiz
possui o nvel da raiz (1) acrescido de um (1+1=2). Outro conceito importante em uma rvore a altura
da rvore, que corresponde ao nmero mximo de nveis que uma rvore possui. Observe que a altura
da rvore de raiz a 4, pois ela possui o nvel 1 com o elemento a, o nvel 2 com os elementos b, c e d,
o nvel 3 com os elementos e, f e g e o nvel 4 com os elementos h e i.
Uma rvore pode ser representada como uma lista generalizada, sendo sua raiz o primeiro elemento
desta lista e cada filho da raiz consiste em uma sub-rvore representada com uma lista generalizada.
rvore Binria
Apesar de coerentes variaes sobre a organizao de uma rvore, a rvore mais empregada na
manipulao eficiente de dados na memria de um computador conhecida como rvore binria. Esta
rvore assim identificada por possuir caractersticas especficas em sua formao. Sua estrutura binria
corresponde a uma rvore com um pai que possui no mximo 2 filhos, ou seja, grau 2, podendo ser
decomposta em:
130
Algoritmos e Programao
Aula 08
elemento raiz;
um elemento filho esquerda do n raiz, podendo este elemento ser o pai de uma outra subrvore binria;
um outro elemento filho direita do n raiz, podendo este elemento ser o pai de uma outra subrvore binria.
Podem existir vrias organizaes distintas de rvores binrias, porm todas elas devem respeitar as
caractersticas de formao e possvel decomposio dessas rvores.
Nesta aula, com base em uma das estruturas fundamentais ao processamento mais eficiente de informaes
(homogneas), exploramos, sob aspectos lgicos e organizacionais, outras estruturas importantes na
manipulao dos dados, tais como as estruturas de pilha, lista, fila e rvores. Para se aprofundar mais no
estudo de cada uma delas, explore as leituras selecionadas.
131
Algoritmos e Programao
Referncias Bibliogrficas
Referncias Bibliogrficas
ASCENCIO, A. F. G.; CAMPOS, E. A. V. de. Fundamentos da programao de computadores:
algoritmos, Pascal e C/C++. So Paulo: PRENTICE HALL, 2003. 355 p.
CAMARAO, C. Programao de computadores em Java. Rio de Janeiro: LTC, 2003. 241 p.
FARRER, H. Algoritmos estruturados. 3. ed. Rio de Janeiro: LTC, 1999. 284 p.
FORBELLONE, A. L. V.; EBERSPCHER, H. F. Lgica de programao: a construo de algoritmos e
estrutura de dados. 2. ed. So Paulo: Makron Books, 2000. 195 p.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos: lgica para desenvolvimento de programao. 4.
ed. So Paulo: rica, 2000. 265 p.
RISSOLI, V. R. V.; C. FILHO, E. G.; MARTINS, J. P. Desenvolvimento do ambiente virtual de apoio a
aprendizagem em cincia da computao. In: IV Congresso de Iniciao Cientfica, 2003, Ribeiro
PretoSP: Brasil. ANAIS. Ribeiro PretoSP: Brasil. Universidade de Ribeiro Preto, 2003. v. IV. p. 18.
SALVETTI, D. D.; BARBOSA, L. M. Algoritmos. So Paulo: Makron Books, 1997. 274 p.
132
Algoritmos e Programao
Glossrio
Glossrio
C
C Nome atribudo a uma linguagem de programao evoluda de computadores de grande porte.
Cdigo Fonte Corresponde exatamente ao programa de computador escrito pelo usurio em
linguagem de programao, antes mesmo de sua traduo para execuo. Outra expresso muito
comum programa fonte.
Contedo da Varivel Expresso que referncia o valor armazenado na rea de memria reservada
para uma varivel especfica. Esta expresso tambm normalmente utilizada somente com a indicao
de contedo.
Corpo do Algoritmo Expresso singular que referncia dois blocos que formam o algoritmo, sendo
esses dois blocos o de declaraes e o de instrues.
D
Dados Brutos Dados primitivos essenciais ao processamento desejado.
Diagrama de Chapin Tcnica de representao do raciocnio em algoritmo que utiliza esquemas
grficos relacionados s operaes lgicas de controle sobre esses. Emprega-se tambm a expresso
Chapin para referenciar esta forma de representao de raciocino (algoritmo).
Documentao Processo de aglutinao e desenvolvimento de material que fornece e comprova as
decises e aes que resultaram em definies e condutas estratgicas em ambientes computacionais,
sendo estas comprovaes detalhadas para todos os possveis esclarecimentos envolvidos.
133
Algoritmos e Programao
Glossrio
E
Endentao Indica o processo rigoroso de alinhamento vertical e horizontal na elaborao organizada,
respeitando as normas de exposio previamente definida.
Escopo Expresso que tambm indica domnio ou nvel de contedos envolvidos ou relacionados, por
exemplo: os cmodos do andar superior de um sobrado fazem parte do escopo superior desta residncia,
enquanto que os cmodos do andar de baixo fazem parte do escopo ou domnio do primeiro andar desta
casa.
Estrutura de Controle de Dados Estruturas responsveis pela realizao de manipulaes lgicas
sobre os dados em um programa de computador.
Estrutura de Repetio Estrutura ou instruo de programao que promove a repetio de uma ou
vrias instrues definidas em um programa de computador, podendo ser de trs tipos diferentes com
lgicas sutilmente distintas.
F
Fluxograma Tcnica de representao do raciocnio em algoritmo que utiliza figuras geomtricas
relacionadas s operaes lgicas de controle sobre os dados.
G
Grafo Expresso referente Teoria dos Grafos, que corresponde ao ramo da Matemtica que permite a
resoluo de problemas complexos, dandolhes um tratamento formal por meio de representaes
grficas que incluem pontos, arcos, anis e arestas.
H
Harry Porter Nome do personagem central de uma srie de filmes cinematogrficos sobre um jovem
aprendiz de feiticeiro.
I
Identificador Termo que indica o nome fornecido aos objetos computacionais criados e manipulados
por um programa de computador, respeitando um conjunto de normas e regras para esta definio pelo
programador.
Implementao Processo de transformao da representao do raciocnio em um programa
computacional que est sendo disponibilizado para uso no ambiente real de seu usurio. Outras
134
Algoritmos e Programao
Glossrio
J
Jargo Computacional Corresponde a um conjunto de termos, palavras ou expresses comumente
utilizadas no meio de profissionais da rea da computao ou tecnologia.
Janela de Execuo Janela apresentada pelo computador enquanto um algoritmo ou programa
computacional executando, sendo esta janela a interface responsvel pela interao do usurio com o
algoritmo ou programa. A expresso tela de execuo, tambm, usada comumente na rea de
tecnologia, possui o mesmo significado de janela de execuo.
Java Nome atribudo linguagem de programao mais utilizada no desenvolvimento de programas de
computador no paradigma de orientao a objeto.
L
Linguagem de Programao Linguagem de comunicao empregada na interao e orientao entre
o ser humano e o computador.
Linguagem Natural Corresponde linguagem de comunicao natural entre os seres humanos, sendo
diretamente relacionada aos aspectos culturais, sociais e econmicos.
Linkedio Processo realizado por um compilador que agrega rotinas ao programa objeto, objetivando
criar um programa executvel. Este processo executado por meio do uso de um linkeditor.
Lixo de Memria Expresso muito comum utilizada por profissionais da rea de Programao que
referencia um contedo localizado na memria que foi utilizado por um outro programa em algum
momento anterior ao seu programa.
Lgica Convencional Lgica matemtica fundamentada por George Boole que s possui dois valores
lgicos excludentes: verdadeiro ou falso.
Lgica Racional Expresso que referencia uma lgica inteligente e coerente com os objetivos
almejados para superao de dificuldade de maneira tica e moral.
135
Algoritmos e Programao
Glossrio
M
Modificao Evolutiva Expresso que indica avano com melhoria do que esteja sendo referenciado,
por exemplo: um programa de computador est sendo modificado de maneira evolutiva, ou seja, ele est
melhorando as aes e servios oferecidos na satisfao de seu usurio.
Modularizao Processo de diviso em mdulos.
Moodle Nome de identificao do Ambiente de Educao a Distncia adotado como ferramenta
fundamental ao processo de ensino e aprendizagem praticado na Catlica Virtual (UCB Virtual).
O
Objeto Computacional Na subrea de Programao, esta expresso indica recursos computacionais
que podem ser criados e manipulados por um programa de computador, sendo estes recursos,
normalmente, identificados como constantes, variveis ou subprogramas no paradigma de programao
estruturada.
P
Palavra Reservada Termo ou expresso que j possui um significado implcito em sua utilizao e no
pode ser usada sem atender as suas caractersticas previamente definidas em uma linguagem de
programao. Outra expresso normalmente utilizada com este mesmo sentido palavrachave de uma
linguagem.
Pascal Nome atribudo a uma linguagem de programao fundamentada nos aspectos educacionais na
rea de Programao.
Perifrico Dispositivo eletrnico que pode ser conectado ou desconectado ao computador.
Portugol Expresso representativa para a codificao de programas computacionais baseados nos
termos e expresses originrias da Lngua Portuguesa.
Portugus Estruturado Tcnica de representao do raciocnio em algoritmo que emprega linguagem
natural em sua elaborao, respeitando um conjunto de regras para sua descrio. Esta representao
utilizada pela ferramenta Visualg 2.0.
Processamento de Dados Processo realizado sobre dados de entrada (iniciais) com comparaes,
clculos e operaes necessrias ao alcance dos dados de sada (finais ou dados desejados).
Problema Computacional Atividade real que utiliza o computador para solucionar ou ajudar na
soluo ou realizao desta atividade.
136
Algoritmos e Programao
Glossrio
R
Reaproveitamento de Cdigo Elaborao de trechos bem definidos com lgicas mais concisas
podendo ser reutilizados, ou reaproveitados, por outras situaes no algoritmo ou programa de
computador.
Recurso Computacional Disponvel Corresponde a dispositivos ou quantidade de recursos que esto
disponveis em um determinado computador para uso do seu programa ou outra aplicao que se deseja
executar em um determinado computador.
S
Semntica Definio correspondente ao correto significado que os termos, expresses, palavras e
instrues so entendidos juntos em uma linguagem, estando sintaticamente corretos e em conjunto
possuindo um significado claro.
Sinttica Faz referncia s regras e normas de sintaxe a serem aplicadas em termos, expresses,
palavras e instrues em uma linguagem de comunicao.
Sintaxe Definio sobre a forma como os termos, expresses, palavras e instrues so descritas em
uma linguagem.
Subprograma Mdulo bem definido sobre uma lgica bem especifica que pode ser utilizados quantas
vezes sejam necessrios por um programa de computador atravs do seu acionamento pelo nome.
137
Algoritmos e Programao
Glossrio
T
Tipo de Dado Corresponde s normas, regras, simbologias e propriedades na manipulao e
representao de dados pelo computador.
Tipos de Dados Primitivos Indicam os tipos de dados originais de uma linguagem de programao
que j esto definidos e so reconhecidos pela linguagem de programao utilizada. Estes tipos de dados
possuem palavras reservadas definidas na linguagem de programao que os identificam.
U
Usurio Indivduo ou pessoa que usa o computador como recurso de apoio na realizao de tarefas
que o ajudem a resolver as atividades reais.
V
Visualg Ambiente de programao que interpreta pseudocdigo em portugus estruturado, sendo a
ferramenta mais utilizada por esta disciplina inicial do eixo de programao de computadores.
138