Você está na página 1de 138

Algoritmos e Programao

UNIVERSIDADE CATLICA DE BRASLIA


Reitor
Prof. MSc. Pe. Jos Romualdo Desgaperi
Pr-Reitor de Graduao
Prof. MSc. Jos Leo
Pr-Reitor de Ps-Graduao e Pesquisa
Prof. Dr. Pe. Geraldo Caliman
Pr Reitor de Extenso
Prof. Dr. Luiz Sveres

UNIVERSIDADE CATLICA DE BRASLIA VIRTUAL


Diretor Geral

Prof. Dr. Francisco Villa Ulha Botelho


Diretoria de Ps Graduao e Extenso
Prof. MSc. Ana Paula Costa e Silva
Diretoria de Graduao
Prof. MSc. Bernadete Moreira Pessanha Cordeiro
Coordenao de Informtica
Weslley Rodrigues Seplvida
Coordenao de Apoio ao Aluno
Prof. Esp. Nbia Rosa
Coordenao de Plo e Relacionamento
Francisco Roberto Ferreira dos Santos
Coordenao de Produo
Edleide E. de Freitas Alves
Equipe de Produo Tcnica
Analista
Prof Doutoranda Sheila da Costa Oliveira
Prof Dr Wilsa Ramos
Editoras de Contedo
Cynthia Rosa
Marilene de Freitas
Web Designers
Marcelo Rodrigues Gonzaga
Polliny Milito

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

Aula 02 - Representao do Raciocnio .............................................. 22

Representao do Raciocnio ......................................................................... 22


Elaborao do Algoritmo ............................................................................... 22

Fluxograma ................................................................................................................................23
Diagrama de Chapin...................................................................................................................24
Portugus Estruturado ................................................................................................................25
Linguagem de Programao .......................................................................... 29

Aula 03 - Conceitos Fundamentais ..................................................... 31

Estrutura do Algoritmo em Portugus Estruturado ............................................ 31


Tipos de Dados ........................................................................................... 34
Identificadores ............................................................................................ 35
Varivel ..................................................................................................... 36
Constante................................................................................................... 38
Instrues de Entrada e Sada de Dados ......................................................... 39

Instruo Leia.............................................................................................................................40
Instruo Escreva .......................................................................................................................42
Operadores................................................................................................. 44

Operadores Aritmticos .............................................................................................................44


Operadores Relacionais..............................................................................................................45
Operadores Lgicos ...................................................................................................................45
Operador de Atribuio..............................................................................................................46
Aula 04 - Ambiente de Desenvolvimento de Algoritmo....................... 48

Ambiente de Desenvolvimento de Algoritmo .................................................... 48


Caractersticas do Ambiente Visualg 2.0.......................................................... 49
Instalando Visualg 2.0.................................................................................. 51
Elaborando o Primeiro Algoritmo no Visualg 2.0 ............................................... 53
Recursos de Ajuda no Visualg 2.0 .................................................................. 59

Aula 05 - Estrutura de Controle de Dados .......................................... 62

Estrutura seqencial .................................................................................... 62


Estrutura de Seleo .................................................................................... 65

Seleo Simples .........................................................................................................................65


Seleo composta.......................................................................................................................68
Seleo encadeada......................................................................................................................72
Seleo de Mltipla Escolha ......................................................................................................77
Aula 06 - Estrutura de Controle de Dados .......................................... 82
4

Algoritmos e Programao
Sumrio

Estrutura de Controle de Dados para Repetio................................................ 82

Repetio para... faca .................................................................................................................85


Repetio enquanto... faca .........................................................................................................90
Repetio repita... ate.................................................................................................................95
Formas de Controle das Estruturas de Repetio .............................................. 99

Controlador Automtico ..........................................................................................................100


Controlado pelo Usurio ..........................................................................................................101
Aula 07 - Estrutura de Dados ........................................................... 108

Estrutura de Dados Composta Homognea .................................................... 108

Estrutura de Dados Composta Homognea Unidimensional (vetor) .......................................110


Estrutura de Dados Composta Homognea do Tipo Caracter (string).....................................117
Aula 08 - Aprofundamento em Estrutura de Dados .......................... 123

Matriz ...................................................................................................... 123


Pilha ........................................................................................................ 127
Lista ........................................................................................................ 128
Fila.......................................................................................................... 128
rvore ..................................................................................................... 129

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:

conhecer as etapas fundamentais de elaborao de programas computacionais;

diferenciar tipos de dados;

analisar operadores disponveis em uma linguagem de programao;

compreender o comportamento dos algoritmos;

aplicar convenientemente as instrues de controle de dados;

elaborar estruturas de dados coerentes com as situaes encontradas;

criar algoritmos coerentes com a soluo de problemas que possam empregar programas
computacionais em sua soluo; e

manipular o ambiente de desenvolvimento de algoritmo para posterior traduo em linguagem de


programao.

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

Dentre as diversas subreas existentes na aprendizagem em tecnologia, a disciplina de Algoritmos e


Programao se destaca, pois inicia uma das subreas relevantes no caminho da aprendizagem almejada
por este curso. Por meio dela, o estudante aprender a se comunicar com o computador, de forma a lhe
ensinar a realizar tarefas complexas, que normalmente envolvem vrias pessoas em sua realizao.

Algoritmos e Programao
Aula 01

Aula 01 - Introduo s Linguagens de Programao


Bem vindo primeira aula da disciplina Algoritmo e Programao do curso de Tecnologia
em Gesto da Tecnologia da Informao.
Aqui, sero apresentados os aspectos fundamentais existentes na atividade de
processamento de dados, bem como as etapas do desenvolvimento de programas
computacionais.
Acesse os links propostos e o glossrio sugerido. Eles o ajudaro na ampliao de seus
conhecimentos.
Boa aula!
Os recursos tecnolgicos vm permeando cada vez mais a realidade de nossa sociedade. Aparelhos
celulares, computadores, cmeras digitais e vrios outros dispositivos eletrnicos tm contribudo com
mudanas em nossos hbitos dirios. Geralmente, esses recursos manipulam muitos dados para nos
oferecer algum tipo de conforto ou segurana, agilizando atividades que poderiam demorar muito tempo
para serem concludas.

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:

Figura 1.1 Etapas do processamento de dados Fonte: RISSOLI, 2003.


Cada uma dessas etapas possui peculiaridades importantes e podem ser compreendidas na rea de
Tecnologia como:
Entrada de dados:
Fornecimento de dados ao computador que os armazena em recursos eletrnicos para posterior uso.

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

Figura 1.2 Processamento de dados sobre os recursos do computador


Fonte: RISSOLI, 2003.

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.

O automatismo do processo a ser realizado pelo computador torna-se essencial ao aproveitamento da


velocidade propiciada por ele, porm, este automatismo s possvel por meio do planejamento prvio
das operaes a serem realizadas automaticamente pelo computador. Este planejamento deve
contemplar todas as possibilidades de acontecimentos que possam ocorrer durante o processamento dos
dados, pois, assim, o computador realizar a ao coerente com o ocorrido, sem prejudicar o
processamento esperado.
Todas as aes, operaes e instrues sero previstas e planejadas pelo raciocnio humano, que
tambm os implementar sobre tal ferramenta (computador). Com isso, o computador conseguir
realizar eficientemente as operaes desejadas por seus usurios, sendo essas operaes identificadas
anteriormente pelo raciocnio humano. Esse raciocnio instruir o computador sobre o que fazer, por meio
da utilizao de programas computacionais elaborados em linguagens de programao.

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

Lgica e Raciocnio Lgico


Um raciocnio lgico completo para a soluo de um problema envolve muitos dados, operaes e
informaes, no sendo fcil sua elaborao. Diante disso, torna-se essencial sua organizao, que
permitir a fcil representao das aes, operaes, instrues e o reconhecimento dos dados
necessrios ao cumprimento adequado dos objetivos esperados. Para isso, o programador deve pensar
racionalmente de forma a buscar uma lgica coerente a ser aplicada sobre o problema computacional
existente, visando a encontrar uma boa soluo para ele.
A busca de uma lgica coerente e completa depende de vrios fatores relacionados ao ser humano, pois
este, para encontr-la, precisa de criatividade, persistncia, versatilidade, experincia, conhecimento,
responsabilidade, ponderao, entre outras caractersticas pessoais que formam um bom programador.
Alm disso, cada programador tambm precisa exercer domnio sobre o seu pensamento, sabendo
organizar o seu raciocnio em busca de um objetivo desejado. Vrias so as definies apresentadas por
estudiosos e pensadores de diversas reas do conhecimento (Filosofia, Educao, Matemtica etc.) sobre
lgica. A seguir, mostramos algumas conceituaes genricas sobre lgica em uma viso mais
computacional ou relacionada aos aspectos da rea de Tecnologia da Informao (TI).
"A lgica consiste em um esquema sistemtico que define
as interaes de sinais no computador que automatiza o
processamento de dados, com critrio e princpios formais
do raciocnio e pensamento" (MANZANO, 2003 p.3).
Para uma definio no to tcnica nesta rea, a lgica
poderia ser definida como a cincia que estuda as leis e
critrios de validade que regem o pensamento e a
demonstrao, sendo ela a cincia de princpios formais
do raciocnio (MANZANO, 2003, p.3).
A utilizao da lgica deve ser considerada por todos,
mas para alguns profissionais, como na rea de Tecnologia da Informao, ela requer sempre muita
ateno e desempenho rpido no raciocnio sobre o conhecimento disponvel.
Acompanhe no exemplo abaixo uma constatao lgica sobre alguns dados ou fatos conhecidos.

14

Algoritmos e Programao
Aula 01

As praias ficam na costa dos pases.


Braslia est no centro do pas.
Logo, Braslia no tem praia.
(uma concluso lgica)
No exemplo anterior, os dados conhecidos (fatos) so que as praias litorneas sempre ficam na costa de
um pas e a cidade de Braslia fica no centro do pas, no est na costa do Brasil. Como esta cidade no
tem costa, ela no possuir praia.
Normalmente, as atividades cotidianas dos programadores esto relacionadas soluo de problemas e
ao

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

O esforo dedicado na elaborao de um raciocnio lgico completo e


coerente com o problema existente poder ser realizado por um nico
indivduo ou por uma equipe de profissionais que almejam encontrar tal
soluo lgica a ser implementada em um computador. claro que a
complexidade do problema tambm far diferena considervel nesse
processo, pois quanto maior for sua complexidade, maior sero os fatores
que interferem em sua soluo. Com isso, a lgica racional a ser elaborada
tambm envolver diversos fatores a serem previstos e analisados por estes
profissionais.
Criar um raciocnio lgico coerente exige uma organizao sobre os
pensamentos a serem realizados por um indivduo ou mesmo indivduos que
compem a equipe na busca de uma soluo. A realizao desse tipo de atividade demanda tempo,
compreenso e cooperao dos envolvidos que precisam entender todas as situaes e informaes
envolvidas com o problema identificado.
Sendo assim, fundamental a organizao clara e simples de todos os raciocnios possveis a serem
elaborados e testados na busca da soluo para um problema computacional. Para a realizao desse
trabalho rduo so empregados mtodos e tcnicas de representao do raciocnio que contribuem,
significativamente, com a anlise, discusso e averiguao das possveis solues apresentadas.

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

um algoritmo a descrio de um conjunto de comandos que, obedecidos,


resultam numa sucesso finita de aes" (FARRER, 1999, p.14).
"Algoritmo a descrio de uma seqncia de passos que deve ser seguida
para a realizao de uma tarefa" (ASCENCIO, 2002, p.2).
"Algoritmo uma seqncia finita de instrues ou operaes cuja execuo,
em tempo finito, resolve um problema computacional, qualquer que seja sua
instncia" (SALVETTI, 1998, p.5).
"Um algoritmo consiste simplesmente em uma seqncia finita de regras ou
instrues que especificam como determinadas operaes bsicas, executveis
mecanicamente, devem ser combinadas para realizao de uma tarefa
desejada" (CAMARO, 2003, p.1).
Analisando essas definies, fica evidente que a noo de algoritmo, assim como a de programa, no so
peculiares somente computao. Observe, no exemplo a seguir, que cada indivduo realiza,
regularmente, vrios algoritmos no seu dia-a-dia, como na elaborao de um delicioso sanduche:
1 Pegar um po
2 Cortar o po ao meio
3 Pegar a maionese
4 Passar maionese entre as fatias de po
5 Pegar alface e tomate
6 Cortar alface e tomate
7 Colocar alface e tomate entre os pes
8 Pegar um hambrguer
9 Fritar o hambrguer
10 Colocar o hambrguer entre as fatias
11 Juntar as duas fatias do po

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.

Para Saber Mais


Para reforar os contedos iniciais sobre a representao de raciocnio por meio de algoritmos, sugerimos
a leitura do contedo introdutrio a algoritmo denominado Noo de Algoritmo, de Carla Alves.
s vezes, um problema pode ser resolvido de diversas maneiras, mas chegando sempre e corretamente
ao resultado desejado. Sendo assim, podem existir vrios algoritmos que solucionem um problema,
alguns mais rpidos, outros mais seguros, mas todos conseguem resolver o problema corretamente,
apesar das diferenas existentes no raciocnio lgico proposto como soluo.

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

Diversos contedos relevantes rea de Programao j foram abordados at o


momento. Para relembrar o assunto estudado at aqui, acesse o link a seguir
Atividades Interativas e faa as atividades que o auxiliaro no acompanhamento de
aprendizagem individual e no reforo dos principais tpicos estudados.

Etapas do Desenvolvimento de Programas Computacionais


No desenvolvimento de programas computacionais, em especial na rea de Tecnologia da Informao, h
a construo de algoritmos que possibilitam sua implementao por meio do uso de linguagens de
programao. Neste processo de desenvolvimento enfatizam-se as seguintes aes:
1.

empenhar grande ateno sobre os dados relacionados ao problema, procurando conhecer e


compreender o mximo sobre ele;

2.

definir os dados que essencialmente devero ser informados pelo usurio para que o
processamento seja realizado com sucesso (dados de entrada);

3.

descrever detalhadamente o processamento ou a transformao a ser executada sobre os dados


de entrada em busca dos resultados desejados (como chegar ao objetivo);

4.

definir quais so os dados resultantes do processamento ou transformao (dados de sada);

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.

A implementao das lgicas elaboradas e representadas em um algoritmo realizada sobre o


computador por meio da transcrio, representada no algoritmo para uma linguagem de programao,
que tambm possibilitar a compreenso e execuo das instrues pelo computador. Essa transcrio
tambm pode ser chamada de traduo, pois somente efetuar mudana na forma de descrever o
raciocnio a ser implementado no computador de uma linguagem de representao para uma linguagem
de programao.

19

Algoritmos e Programao
Aula 01

O uso da linguagem de programao permite ao programador elaborar programas que instruiro o


computador nas operaes a serem efetuadas por ele. Para a elaborao de programas, principalmente
os mais complexos, necessria a aplicao de um mtodo sistemtico de programao que contribuir
com o desenvolvimento de programas confiveis, flexveis e eficientes. Esse tipo de desenvolvimento
apresenta uma metodologia organizada em fases bsicas fundamentais, sendo estas descritas a seguir:
Anlise:
Nesta etapa, estuda-se o problema, buscando sua completa compreenso, por meio da correta
identificao da entrada, do processamento e da sada dos dados.

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.

Para Saber Mais


Para aprofundar seus conhecimentos sobre o estudo de algoritmo, sugerimos a leitura selecionada
Algoritmos e Estrutura de Dados I, da Universidade Regional Integrada do alto Uruguai e das Misses.

A abordagem iniciada nesta aula procurou esclarecer os aspectos fundamentais existentes


na atividade de processamentos de dados, to evidentes nos dias atuais. Exploramos aqui
as atividades e tarefas essenciais na elaborao de programas computacionais, explicamos
o sentido dos algoritmos para a rea de Tecnologia da Informao (TI) e mostramos,
sucintamente, as etapas de desenvolvimento de programas computacionais ou softwares.
Na prxima aula, trataremos da representao do raciocnio, da elaborao do algoritmo,
bem como da linguagem de programao.

21

Algoritmos e Programao
Aula 02

Aula 02 - Representao do Raciocnio


Nesta aula, voc estudar sobre a representao do raciocnio, a elaborao do algoritmo e a linguagem de

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

lgica racional proposta por esse tipo de representao de raciocnio. As

principais figuras usadas na elaborao do fluxograma esto relacionadas a seguir:

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

Figura utilizada para representao da sada de dados

Figura que indica o processo seletivo ou condicional,


possibilitando o desvio no caminho do processamento
Smbolo geomtrico usado como conector
Smbolo que identifica o fluxo de dados, permitindo a
conexo entre as outras figuras existentes
Fonte:

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.

Observe na representao acima a mesma situao representada no exemplo anterior com um


fluxograma. Nesse esquema diagramtico, o algoritmo est representando o mesmo raciocnio do
exemplo anterior, porm sua elaborao foi criada pelos esquemas definidos no

Diagrama de Chapin.

Representao grfica por meio de estruturas que contemplam as estruturas de


controle bsicas (seqencial, condicional e de repetio)
A necessidade do conhecimento grfico para representao do raciccio em
esquemas
Fonte:

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

portugol ou pseudocdigo, consiste na

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

linguagem natural para representar o

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.

algoritmo "avaliao mdica"


// Sntese
// Objetivo: analisar a idade de uma pessoa
// Entrada: uma idade
// Sada: mensagem de indicao de jovem

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

A linguagem de comunicao natural imprecisa e muitas vezes

prolixa, dificultando a comunicao

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.

Facilita a passagem do algoritmo para a linguagem de programao desejada


(criao do programa), habituando o programador com as regras da
programao.
Existe a necessidade do aprendizado das regras do pseudocdigo em
portugus.
Fonte: RISSOLI, 2003.

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:

facilitar o entendimento do problema pelo estudante;

promover o desenvolvimento de algoritmo coerente com o problema;

antecipar depurao (verificao de erros) do raciocnio lgico;

facilitar a manuteno corretiva e evolutiva do raciocnio proposto;

agilizar

aprendizagem

de

normas

regras

comuns

na

elaborao

de

programas

computacionais; e

contribuir com trabalho em equipe para elaborao de programas.

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

O algoritmo a parte mais importante no desenvolvimento de um programa computacional, pois nele


que se encontra a representao do raciocnio lgico que solucionar o problema existente.

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.

escreva (Informe sua idade:)


Esta instruo (escreva) corresponde a um comando que instrui o computador a realizar algumas aes
sobre seus recursos eletrnicos disponveis. Porm, ela deve ser traduzida para uma linguagem de
programao, possibilitando ao computador sua execuo. Na tabela abaixo, apresentamos algumas
possveis tradues para a instruo escreva em trs (3) linguagens de programao diferentes.

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.

A representao do raciocnio foi o contedo principal desta aula. Nela, foram


demonstradas algumas diferentes tcnicas de representao do raciocnio para a
elaborao do algoritmo e sua traduo para uma linguagem de programao.
Na prxima aula, trataremos dos conceitos fundamentais do algoritmo em portugus
estruturado.

30

Algoritmos e Programao
Aula 03

Aula 03 - Conceitos Fundamentais


Esta aula dar seqncia ao estudo e aprendizagem sobre a tcnica Portugus Estruturado.

Procuraremos consolidar esta forma de representao eficiente e eficaz na elaborao de algoritmos e


tambm seus respectivos programas computacionais.
Na aula anterior, apresentamos algumas formas de representao do raciocnio lgico existente em nossa
mente. Porm, este necessitava ser explicitado de uma maneira mais formal para ser avaliado ou
compartilhado com outras pessoas ou profissionais envolvidos em sua utilizao, avaliao ou mesmo
evoluo.
Entre as tcnicas apresentadas superficialmente na aula anterior para representao deste raciocnio
lgico, indicou-se uma para ser utilizada como recurso de apoio para o desenvolvimento e evoluo desta
disciplina. Em decorrncia disso, faz-se necessrio um estudo mais aprofundado sobre tal representao.
Portanto, daremos incio ao estudo desta tcnica, que o

Portugus Estruturado. Por meio dela

procuraremos consolidar uma forma de representao eficiente e eficaz na elaborao de algoritmos e,


conseqentemente, de seus respectivos programas computacionais. A adoo dessa tcnica torna-se
mais indicada porque utiliza o conhecimento j existente em cada estudante sobre sua linguagem de
comunicao natural, alm de iniciar a assimilao das regras formais de organizao e grafia das
instrues descritas em programas computacionais escritos por meio de linguagens de programao.

Estrutura do Algoritmo em Portugus Estruturado


A elaborao de um algoritmo deve respeitar as normas estabelecidas em cada mtodo ou tcnica de
representao de raciocnio, almejando tornar claro e simples a representao do raciocnio lgico
empregado por um futuro programa de computador.
Com a existncia de vrias dessas tcnicas, suas normas e regras de orientao devem ser sempre
respeitadas, o que garantir o desenvolvimento e a implementao de algoritmos claros, eficientes e de
qualidade

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.

algoritmo "modelo geral"


// Sntese
// Objetivo: <descrio resumida do que o algoritmo descrito abaixo realiza>
// Entrada: <valores lidos ou coletados pelos recursos de entrada de dados>
// Sada: <valores apresentados pelos recursos de sadas de dados>
// Declaraes
var
<constantes>
<variveis>
<subprogramas>
inicio
<bloco de instrues>
fimalgoritmo
Por meio do modelo descrito, possvel identificar trs (3) blocos essenciais na criao deste tipo de
algoritmo, so eles:

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).

Neste bloco so criados ou definidos os recursos ou objetos computacionais (varivel, constante e


subprograma) que sero utilizados pelo algoritmo em sua execuo.

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

Veja a seguir uma especificao mais detalhada dos

tipos de dados primitivos que um computador

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

Lgico: conjunto de valores possveis na lgica convencional (booleana), ou seja, FALSO ou


VERDADEIRO. Esse tipo de dado s apresenta um entre esses dois valores, sendo estes
mutuamente exclusivos.

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 identificador pode ser igual a uma palavra reservada;

nenhum carcter especial pode fazer parte do identificador, inclusive o espao em branco entre
palavras, sendo a nica exceo o underline;

identificadores compostos devem possuir o primeiro carcter da segunda palavra ou expresso


que compe o identificador em letras maisculas, sendo as demais sempre em minsculas
(valorTotal ou receitaArrecadadaMensal).

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

// declarao ou criao da varivel idade

Regra de Sintaxe Geral


<identificador> : <tipo de dado>
De acordo com sua regra sinttica geral, a ser respeitada na criao ou declarao de qualquer varivel,
primeiramente, definido o identificador que fornecer o nome de acesso a estas varivel, seguido do
tipo de dado especfico dela. Podem ser criadas mais de uma varivel na mesma instruo, quando assim
for necessrio ao algoritmo. Entretanto, cada varivel dever ser separada pela pontuao de uma
vrgula entre elas, como no exemplo que cria duas variveis (salrio e mensalidade) em uma nica
instruo do tipo de dado real a seguir.

salario , mensalidade : real // declarao ou criao de 2 variveis


reais
Observe que nos dois exemplos de criao de variveis acima (idade, salrio, mensalidade) existe um
contedo explicativo em azul que se segue a instruo declarativa da varivel. Essas explicaes so

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.

Lgica: representada pelas palavras VERDADEIRO ou FALSO como verdadeiro ou falso da


lgica convencional, sendo denominadas ainda como constantes lgicas ou booleanas.

Literal: formada por um caractere ou uma seqncia de caracteres aceitos na simbologia da


linguagem (smbolos especiais, letras e nmeros). Essas constantes so representadas pelos
caracteres correspondentes e vlidos, sempre envolvidos por aspas (" ").

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

Regra de Sintaxe Geral

<identificador> : <tipo do dado>

// 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:

equipe : inteiro // CONSTANTE


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.

Instrues de Entrada e Sada de Dados


Com a explorao do conhecimento inicial sobre tipo de dado, identificador, varivel e constante, pode-se
retomar o estudo conceitual envolvendo os dispositivos de entrada e sada de dados com o intuito de
relacion-los com a elaborao do algoritmo e a necessidade de uso desses importantes dispositivos no
processamento de dados.
Na criao de um algoritmo, os dispositivos de entrada de dados so acionados por meio da instruo
(ou comando) denominada leia. Esta expresso (leia) consiste em uma palavra reservada em 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

<identificador> indica a necessidade de incluso do nome de uma varivel anteriormente

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

// no possuem nenhum significado

expressivo ao computador, porm so importantes para os programadores que trabalham na construo


de algoritmos, pois auxiliaro na soluo de alguma situao que o envolva. A partir da codificao

//,

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

// cria varivel real com identificador temperatura

// cria varivel inteira com identificador dia

leia(temperatura , dia)

// l a temperatura e o dia informado e os armazena

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

// cria varivel real com identificador temperatura

// cria varivel inteira com identificador dia

escreva("Informe a temperatura e o
leia(temperatura

dia)

//

dia atual: ")


a

temperatura

// mensagem orientadora
e

dia

informado

os

armazena
escreva(temperatura , " graus no dia " , dia)

// apresenta dados ao usurio

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 %

Veja alguns exemplos de utilizao desses operadores:

2 + 3

// realiza a operao de adio entre 2 e 3 resultando no valor 5

44

Algoritmos e Programao
Aula 03

valor * numero

// efetua a multiplicao entre duas variveis (valor e

numero)
raizq(4)

// calcula a raiz quadrada do nmero 4 que teria resultado 2

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
=
<>
>
>=
<
<=

Veja alguns exemplos que utilizam esses operadores:

5 < 7

// compara o valor 5 verificando se este menor que 7

valor = 1
4 <> -4

// verifica se o contedo da varivel valor igual a 1

// averigua se 4 diferente de -4 (quatro negativo)

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

DISJUNO (ou lgico)


NEGAO (no lgico)

OU
NO

Veja alguns exemplos lgicos que podem empregar esses operadores:

falso E falso

// conforme a lgica matemtica, falso e falso resulta em

falso
NAO falso

// conforme a matemtica, a negao de falso verdadeiro

((valor = ano) ou (5 < 7))

// expresso com operadores relacionais e

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

// valor 10 atribudo a varivel ou constante meta

3,4 + 0,2

// resultado da expresso (3,6) atribudo a varivel

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 (

), como representao desse operador, o mesmo

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.

O esforo investido na aprendizagem desta aula possibilitou o conhecimento essencial na


programao de computadores, pois, por meio dela, foi possvel ver os contedos
envolvidos com as informaes j definidas na arquitetura lgica de um computador e a
nfase dada representao em portugus estruturado.
Na prxima aula, voc ter contato com o ambiente Visualg 2.0, um ambiente de
programao que apoiar a aprendizagem relacionada diretamente ao desenvolvimento de
algoritmo, avaliado e executado pelo computador em portugus estruturado.

47

Algoritmos e Programao
Aula 04

Aula 04 - Ambiente de Desenvolvimento de Algoritmo


Nesta aula, voc vai vivenciar o ambiente de programao Visualg 2.0. Nela, daremos o apoio necessrio
para a sedimentao das lgicas e instrues representadas no portugus estruturado e voc tambm ter
a oportunidade de aplicar os conhecimentos adquiridos.

Ambiente de Desenvolvimento de Algoritmo


Um ambiente de programao consiste em um conjunto de ferramentas computacionais usadas no
desenvolvimento de programas ou aplicaes a ser executadas pelo computador. Esses programas so
tambm conhecidos como softwares ou aplicaes.
Este conjunto de ferramentas pode corresponder somente a um sistema de arquivos, um editor de texto,
um linkeditor e um compilador, ou pode consistir em uma interface uniforme que oferea o acesso a uma
coleo de ferramentas convenientemente integradas.
Atualmente, esses ambientes integrados tm evoludo bastante e facilitado as atividades dos
programadores. Esta disciplina empregar o ambiente Visualg (verso 2.0) para auxiliar os estudantes
iniciantes na rea de programao computacional. Almeja-se com o seu uso o fornecimento do apoio
necessrio aprendizagem e sedimentao das lgicas e instrues representadas no portugus
estruturado (pseudocdigo).
Por meio desse ambiente de programao, todos os seus usurios iniciaro uma interao instrutiva junto
s principais funcionalidades existentes em ambientes de programao para linguagens bem projetadas e
disponveis ao desenvolvimento de programas e aplicaes computacionais.
O ambiente Visualg possui ferramentas de edio de texto, depurador de erros sobre o algoritmo fonte,
recursos de manipulao de arquivos e um simulador para acompanhamento detalhado da situao da
memria a cada execuo de instrues no algoritmo elaborado. Todas essas ferramentas de apoio ao
desenvolvimento do algoritmo em portugus estruturado so integradas em uma nica interface que
propicia o incio mais natural de cada aprendiz na rea de programao sobre o paradigma estruturado.
Uma das tcnicas mais importantes no projeto da lgica de programao conhecida como Programao
Estruturada e corresponde maneira mais natural de um estudante estabelecer e consolidar sua
organizao cognitiva fundamental para evoluo na rea de programao de computadores. Este
paradigma estruturado consiste em uma metodologia de projeto e raciocnio lgico que objetiva:

agilizar a codificao da escrita na programao;

facilitar a depurao da sua leitura;

permitir a verificao de possveis falhas apresentadas pelos programas;

48

Algoritmos e Programao
Aula 04

contribuir com as alteraes e atualizaes das aplicaes; e

facilitar a compreenso de seus aprendizes sobre os problemas na lgica elaborada como


proposta de soluo de um problema computacional.

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.

Caractersticas do Ambiente Visualg 2.0


O ambiente de programao a ser utilizado nesta disciplina consiste em um interpretador de
pseudocdigo, com base na linguagem de comunicao oficial do Brasil (Lngua Portuguesa).
Na rea de Tecnologia, um interpretador corresponde a um software responsvel pela traduo de uma
linguagem especfica e bem definida em um outro cdigo em linguagem que o computador compreenda.
Esta linguagem, entendida pelo computador, conhecida como linguagem de mquina ou binria e
classificada como uma linguagem de baixo nvel. Ela se utiliza somente de dois smbolos (binrios) para
escrever instrues a serem executadas pelo computador. Esses smbolos so o 0 (zero) e o 1 (um).
Com a dificuldade de expresso do ser humano em uma linguagem como esta, desenvolveram-se
linguagens de programao que no so diretamente compreensveis ao computador, mas que podem
ser traduzidas para a linguagem original (linguagem de mquina). Essa traduo pode acontecer de duas
formas distintas denominadas interpretao e compilao.

A diferena fundamental nesses dois processos de traduo relevante ao desenvolvimento de


programas computacionais, pois resulta na alocao de mais recursos computacionais em sua execuo

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.

Apesar da sutil diferena na descrio acima, a interpretao e a compilao so processos


significativamente diferentes s caractersticas computacionais. Essas duas formas de traduo so
aplicadas sobre o algoritmo, programa ou cdigo fonte. No caso do ambiente Visualg, essa traduo
acontecer sobre o algoritmo fonte elaborado em portugus estruturado.
O programa ou algoritmo fonte consiste no conjunto de instrues descritas no editor de texto disponvel
no ambiente de programao que esteja sendo usado em sua criao. Esse programa ou algoritmo
desenvolvido de acordo com as regras sintticas e semnticas definidas para essa linguagem,
normalmente uma linguagem de alto nvel. Contrariamente a uma linguagem de baixo nvel, explicada
anteriormente, uma linguagem de alto nvel est mais prxima da linguagem de comunicao natural
entre os seres humanos.
Depois da traduo de um programa fonte, por meio da compilao, o ambiente gera um programa
objeto. Este programa objeto consiste exatamente na traduo do programa fonte para um novo
programa escrito somente em linguagem de mquina. Essa funcionalidade no est disponvel em um
interpretador, pois este j traduz e executa a nica instruo traduzida, no sendo necessria a criao
do programa objeto.
Apesar de o programa objeto estar em linguagem de mquina, os computadores ainda no conseguem
execut-lo, pois necessria a linkedio sobre o programa objeto. Essa linkedio agrega rotinas

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.

Instalando Visualg 2.0


A

instalao

deste

ambiente

de

programao

em

seu

computador

essencial

para

seu

acompanhamento e aprendizagem nesta disciplina. Fornecemos a seguir as instrues para o correto


download do software instalador e para a correta instalao em equipamento que lhe seja mais
conveniente.
O Visualg um ambiente de programao livre e um software de domnio pblico desenvolvido por
Cludio Morgado de Souza. Dessa forma, no necessria nenhuma licena para efetivar legalmente sua
instalao em seu computador.
H vrios trabalhos e artigos disponveis na Internet para suporte no uso e instalao deste software.
Nesta aula, forneceremos alguns passos bsicos para a instalao compatvel desse ambiente de
programao, que servir de apoio para a realizao das atividades proposta nesta disciplina. Por isso,
importante a efetivao de todos esses passos para instalao do Visualg na verso 2.0.
Acompanhe os passos a seguir:
1.

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.

Segundo passo: Quando o arquivo setupv2.zip estiver completamente baixado (transferido)


para seu computador, feche todas as demais aplicaes abertas e solicite a descompactao dele
no diretrio indicado acima. Observe que somente um arquivo setupv2.exe ser descompactado
e, conseqentemente, executado, aps solicitao.

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.

Oitavo passo: Finalmente, apresenta-se a janela com as configuraes informadas. Confira se


todas esto corretas e pressione o boto Instalar. Caso exista algum erro, pressione o boto
<Voltar e reconfigure o valor incorreto e siga o caminho novamente at este ponto de
instalao.

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.

Elaborando o Primeiro Algoritmo no Visualg 2.0


Com o ambiente corretamente instalado e o modelo obrigatrio do portugus estruturado na janela de
edio do Visualg, vamos comear a desenvolver o primeiro algoritmo nesse ambiente.
Para comear, iremos desenvolver um algoritmo de boas vindas ao ambiente. Primeiramente, fornea um
nome para o algoritmo (boas

vindas), seguido da incluso de seu prprio nome pessoal (primeiro e

ltimo nome somente).


Neste momento, deve-se fazer uma sntese desse algoritmo, conforme modelo a seguir:

// Objetivo: realizar a saudao de boas vindas para este programador


// Entrada: no tem
// Sada: mensagem de boas vindas com o nome do programador
Na seqncia, elaboramos o corpo do algoritmo, com base exatamente no objetivo, entrada e sada de
dados sintetizados no bloco Sntese. Por fim, encerramos o algoritmo com a descrio apresentada
abaixo. No ambiente Visualg, voc poder executar e avaliar o algoritmo elaborado.

algoritmo "boas vindas"


// Aluno: Bill Gates
// Sntese
// Objetivo: realizar

saudao de boas vindas para este programador

// 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:

selecionar a opo de menu superior Algoritmo e Executar;

pressionar no teclado a tecla de atalho F9; e

pressionar o primeiro boto na segunda barra de botes superiores na janela do ambiente


Visualg.

A execuo desse primeiro algoritmo mostrar a

janela de execuo disponvel abaixo, porque no

foi encontrado nenhum erro nesse algoritmo elaborado.

54

Algoritmos e Programao
Aula 04

Observe com ateno os componentes que formam a interface integrada do Visualg.

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

consecutivamente ou a tecla F8 (terceiro boto na segunda barra de botes).


4.

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

Recursos de Ajuda no Visualg 2.0


O ambiente Visualg possui algumas opes interessantes de ajuda em seu uso e aprendizagem,
principalmente para os iniciantes. Similar a diversos outros softwares e aplicaes computacionais, este
ambiente disponibiliza, em seu menu superior Ajuda, um conjunto de opes de suporte na utilizao do
ambiente e na correta sintaxe e semntica de suas instrues.
Escolha uma de suas opes e procure esclarecer suas dvidas sobre a manipulao desse novo
ambiente. Por exemplo, acione a opo

ou o menu Ajuda e verifique as explicaes sobre cada um

dos botes existentes na primeira e segunda barra de botes do ambiente.

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!

Para Saber Mais


Para saber mais sobre a importncia do conhecimento relacionado a este tipo de ferramenta de apoio
aprendizagem da programao de computadores, sugerimos a leitura selecionada Visualg.

Esta aula procurou fomentar o desenvolvimento das habilidades operacionais sobre um


ambiente de programao, empregando uma ferramenta de desenvolvimento de algoritmo
em portugus estruturado (Visualg). As atividades prticas realizadas sobre este contedo
sero executadas ao longo das prximas aulas desta disciplina. Nesta e nas prximas aulas,
a utilizao do ambiente Visualg passar a ser obrigatrio e freqente.
Na prxima aula, trataremos das estruturas de controle de dados: seqencial e de seleo.

61

Algoritmos e Programao
Aula 05

Aula 05 - Estrutura de Controle de Dados


Esta aula abordar as estruturas de controle de dados realizados por um computador.
Veremos que as estruturas de controle de dados seqencial e de seleo so
responsveis pela manipulao dos dados, conforme sejam necessrios realizao de um
processamento. Ver tambm que cada instruo programvel possui uma lgica de
operao e estabelece uma seqncia de aes e a serem efetuadas ou verificadas.
Boa aula!
A tarefa de instruir um colega a realizar uma atividade correta e com xito exige conhecimento de causa
para que as orientaes tenham embasamento e sejam compreensveis. Assim tambm na elaborao
de um algoritmo, pois ele que instruir o computador sobre o que fazer para ajudar seu usurio diante
de um problema computacional.
Dessa forma, fundamental conhecer as possibilidades de manipulao e controle dos dados que um
computador pode fazer, pois s assim ser possvel elaborar algoritmos passveis de implementao
sobre seus recursos.
Nesta aula, daremos incio ao estudo sobre as estruturas de controle de dados realizado por um
computador. Elas so responsveis pela manipulao dos dados conforme sejam necessrios na
realizao de um processamento. Cada instruo programvel possui uma lgica de operao e
estabelece uma seqncia de aes a ser efetuadas ou verificadas.
As estruturas de controle de dados so basicamente de trs tipos:

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).

Repetio: uma instruo ou conjunto de instrues que ser executado repetidamente, de


acordo com o resultado de um teste condicional determinado.

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

Observe o exemplo abaixo em portugus estruturado:

algoritmo "nota da prova"


// Sntese
// Objetivo: armazenar e mostrar uma nota de prova
// Entrada: nota da prova
// Sada: nota da prova formatada
// Declaraes
var
nota : real // cria uma varivel real denominada nota
inicio
escreva("Informe a nota da prova: ") // mensagem de orientao ao
usurio
leia(nota) // leitura e armazenamento do valor informado pelo usurio
escreva("Nota =", nota:3:1) // mostra mensagem e o contedo de nota
formatada
fimalgoritmo
O algoritmo proposto no exemplo anterior descritivo e respeita as regras de organizao e sintaxe do
portugus estruturado. Porm, qual a primeira instruo a ser executada pelo algoritmo?
Ele ser executado de maneira seqencial. A partir da palavra reservada var, as instrues sero
executadas de cima para baixo, linha por linha, da esquerda para a direita, e a instruo seguinte s ser
executada depois que a anterior for totalmente encerrada.

63

Algoritmos e Programao
Aula 05

Observe a seqncia de instrues a ser realizada pelo computador que executar o algoritmo nota da
prova:
1.

criar a varivel nota;

2.

escrever a mensagem que orienta o usurio;

3.

armazenar o valor informado pelo usurio;

4.

mostrar a mensagem e o valor lido do usurio, que sero apresentados pelo computador de
maneira formatada.

Veja a instruo de apresentao final de dados para o usurio deste algoritmo:

escreva("Nota =", nota:3:1)


No comentrio que se segue, esclarecido que a nota informada ser apresentada formatada. Essa
formatao ou mscara consiste na organizao mais coerente para apresentao mnima das casas
numricas do valor armazenado na varivel nota.
A sintaxe para essa formatao deve ser precisa e correta para que seu resultado seja coerente. Na
instruo, inserem-se os dois pontos (:) seguido de um nmero inteiro que indica ao computador a
quantidade mnima de casas numricas que devero ser usadas para escrever o valor armazenado na
varivel nota (3). Logo em seguida, escrevem-se os dois pontos novamente (:) e outro nmero inteiro
encerrando a formatao deste nmero real (nota).
Os dois pontos (:) indicam ao computador que formatao ser especificada para apresentar o valor no
recurso de sada de dados do computador (monitor). O primeiro nmero inteiro indica a quantidade
mnima de casas que sero usadas, enquanto o segundo nmero inteiro indica quantas casas numricas
sero usadas para escrever os valores fracionrios. No exemplo (:3:1), o algoritmo solicita ao
computador que apresente o nmero armazenado em nota usando trs casas numricas, e somente uma
para os valores fracionrios. Se estivesse armazenando o nmero 8,58213, o nmero apresentado no
vdeo do computador seria 8,58, ao invs de mostrar o nmero 8,582130000. Esse tipo de recurso
facilita a compreenso do usurio. Essa formatao pode ser aplicada para valores reais somente com a
primeira especificao, ou seja, somente com o primeiro dois pontos seguido de um nico nmero inteiro
que indica a quantidade mnima de casas numricas que sero utilizadas para mostrar somente um valor
definido como inteiro.
importante observar tambm que sempre ser executado primeiro o bloco de Declaraes e na
seqncia o bloco de instrues (marcada pela palavra reservada inicio). A execuo da palavra
reservada fimalgoritmo encerra as aes e operaes de execuo do algoritmo elaborado.
Esta lgica de execuo das instrues pelo computador definida como seqencial que a forma mais
simples de organizao lgica na confeco de um algoritmo.

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 de mltipla escolha

Para compreender cada uma delas, acompanhe a abordagem instrutiva a seguir.

Seleo Simples
Nesse tipo de seleo, proposto um teste condicional, que sendo

verdadeiro, possibilitar a execuo

de uma instruo ou um conjunto de instrues especfico. Um conjunto de instruo especfico nesse


tipo de seleo tambm pode ser denominado como bloco de condicional.
Representao em Portugus Estruturado
Acompanhe a seguir as regras de representao dessa instruo de seleo em um algoritmo em
portugus estruturado.
Sintaxe Geral:

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:

algoritmo "avaliao da idade"


// Sntese
// Objetivo: avaliar a idade de uma pessoa
// Entrada: idade
// Sada: confirmao desta pessoa ser criana
// Declaraes

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

da idade quando aplicada a tcnica do

fluxograma.

67

Algoritmos e Programao
Aula 05

Fonte: RISSOLI, 2003.


Este fluxograma define as mesmas operaes propostas no portugus estruturado a ser executadas pelo
computador. Sendo que a nica diferena a forma de representao.

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:

algoritmo "avaliao da idade"


// Sntese
// Objetivo: avaliar a idade de uma pessoa
// Entrada: idade
// Sada: confirmao desta pessoa ser criana ou adulto
// Declaraes
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
senao
escreva ("Voc j um adulto") // mostra mensagem se falso
fimse // encerra a instruo de seleo ou condicional
fimalgoritmo

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

Fonte: RISSOLI, 2003.


O fluxograma acima representa as possveis operaes que sero executadas pelo computador. Sendo
que as operaes prevista no entao (verdadeiro) e senao (falso) no podero ser realizadas em uma
mesma execuo.

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

se (<condio 1>) entao


se (<condio 2>) entao
<bloco de

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

algoritmo "avaliao da idade"


// Sntese
// Objetivo: avaliar a idade de uma pessoa
// Entrada: idade
// Sada: confirmao de sua classificao pela idade
// Declaraes
var
idade : inteiro
inicio
escreva("Informe sua idade: ")
leia(idade)
se (idade < 20) entao
se (idade < 15) entao
escreva ("Voc uma criana")
senao
escreva ("Voc adolescente")

74

Algoritmos e Programao
Aula 05

fimse // encerra o condicional para os 15 anos


senao
se (idade < 60) entao
escreva ("Voc adulto")
senao
escreva ("Voc idoso")
fimse // encerra o condicional para os 60 anos
fimse // encerra o condicional para os 20 anos
fimalgoritmo
Se a idade informada for menor que 20, ento ela ser avaliada; se menor que 15, a mensagem a
classificar como uma criana. Porm, se ela no for menor que 15, ento a mensagem a classificar
como um adolescente. No entanto, a idade informada poderia no ser menor que 20, e a seleo iria
para o senao, onde seria avaliado se a idade menor que 60 e apresentada a mensagem de
classificao como adulto, seno a mensagem apresentada classificaria esta idade como idoso. Por meio
de vrios testes condicionais sobre a idade ser possvel averiguar a faixa etria mais precisa de uma
idade informada pelo usurio.
Observe com ateno o cuidado rigoroso com os alinhamentos e finalizaes de cada bloco condicional
existente no algoritmo para que o computador possa ser mais preciso. Pois um alinhamento errado pode
ser responsvel por problemas lgicos de uso e interpretao do algoritmo.
Representao em fluxograma
Acompanhe, a seguir, a representao do algoritmo avaliao da idade mais preciso com a seleo
encadeada no fluxograma.

75

Algoritmos e Programao
Aula 05

Fonte: RISSOLI, 2003.


A representao do fluxograma acima mostra como um aninhamento de instrues condicionais
apresentado graficamente. Sua soluo exatamente como a do portugus estruturado que o antecede.
Suponha que sua irm esteja usando seu computador e investigando o que voc tem feito. Ela executa o
algoritmo anterior e informa a idade dela no momento (17 anos). Veja qual seria tela de execuo que
ela veria em seu computador.

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.

Seleo de Mltipla Escolha


Uma outra forma de seleo, muito utilizada nas avaliaes de igualdade, a seleo de mltipla
escolha. Por meio dela possvel verificar somente a igualdade de um valor a ser averiguado, em que
sua veracidade resultar na execuo de um bloco de instrues ou de uma nica instruo especfica
separada pela nova palavra reservada caso.
Sintaxe geral

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:

algoritmo "estao climtica do ano"


// Sntese
// Objetivo: identifica qual a estao climtica do ano atual
// Entrada: cdigo numrico que identifica a estao atual
// Sada: descreve a estao do ano atual
// Declaraes
var
epoca : inteiro

78

Algoritmos e Programao
Aula 05

inicio
escreval("Digite

o perodo quadrimestral do ano em que se encontra:

")
leia(epoca)
escolha (epoca) // instruo de

mltipla escolha sobre epoca

caso 1 // caso epoca esteja armazenando o valor inteiro 1


escreva ("vero") // mensagem vero ser apresentada
caso 2 // caso epoca esteja armazenando o valor inteiro 2
escreva ("outono") // mensagem outono ser apresentada
caso 3 // caso epoca esteja armazenando o valor inteiro 3
escreva ("inverno") // mensagem inverno ser apresentada
caso 4 // caso epoca esteja armazenando o valor inteiro 4
escreva ("primavera") // mensagem apresenta primavera
outrocaso // caso epoca no seja igual as opes anteriores
escreva ("perodo invlido") // mensagem de erro
fimescolha
fimalgoritmo
Suponha que, mesmo achando difcil a elaborao do algoritmo acima, voc pede para o computador
execut-lo, no intuito de test-lo. Da voc informa o nmero 3 para verificar se o algoritmo apresentar
a estao do ano normalmente mais fria em nosso pas, e a tela apresentada seria:

79

Algoritmos e Programao
Aula 05

Representao em fluxograma
Veja a representao da seleo de mltipla escolha em um fluxograma.

Fonte: RISSOLI, 2003.

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

Aula 06 - Estrutura de Controle de Dados


Com o conhecimento sobre algumas estruturas de controle de dados, torna-se possvel a aprendizagem de
uma das principais instrues utilizadas na programao de computadores: a estrutura de repetio,
responsvel pelo correto processamento de muitas informaes e cadastros diversos. Este ser o
contedo desta aula. Atente-se a ele para que sua evoluo nesta rea de programao seja completa.

Estrutura de Controle de Dados para Repetio


Um processamento de valores pode acontecer sobre uma mesma lgica operacional, porm os dados
envolvidos so diferentes e resultam em valores finais tambm diferentes. Imagine o processamento
realizado em um banco (instituio financeira) para o clculo dos juros a ser agregados s contas de
poupana de seus clientes que possuam vencimento hoje.
A taxa de juros neste perodo de 30 dias chegou a 0,71%, aumentando o valor do investimento de cada
um desses clientes. O clculo operacional realizado sobre o montante investido e a taxa de juros desse
perodo de 30 dias. Dessa forma, chega-se ao valor obtido com esta aplicao, que agrega ao montante
investido o valor correspondente taxa de juros mensal atingida:

montante total = montante

investido + (montante investido * (taxa juros /

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:

Poupana do Papai: 100.000,00 + (100.000,00 * (0,71 / 100)) = 100.710,00


Sua Poupana: 553,00 + (553,00 * (0,71 / 100)) = 556,92
Poupana de seu irmo: 100,00 + (100,00 * (0,71 / 100)) = 100,71
O clculo realizado foi o mesmo, porm os valores envolvidos no clculo foram diferentes, pois seu pai
efetivou um investimento diferente do seu e de seu irmo. O clculo repetiu-se para os trs

82

Algoritmos e Programao
Aula 06

investimentos, porm envolveu valores de investimentos distintos e, consequentemente, resultados


diferentes.
Outro exemplo interessante o tradicional clculo da tabuada de um nmero, aprendido na escola
durante o ensino bsico (fundamental). Este clculo realizado pela aplicao da mesma operao de
multiplicao sobre os valores numricos inteiros seqenciais e diferentes, normalmente iniciado em 1 e
prosseguido at o nmero 10. Por exemplo, recorde a tabuada do nmero 2 apresentada a seguir:

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

// Sada: tabuada de 1 at 10 do nmero informado


// Declaraes
var
numero : inteiro
inicio
escreval("Digite o nmero inteiro desejado para

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

escreval(numero:2, " x 9 = ", (numero * 9):2 )


escreval(numero:2, " x 10 = ", (numero * 10):2 )
fimse
fimalgoritmo
Para o exemplo acima, foi desenvolvido um algoritmo que atende ao problema apresentado. Mas imagine
que a nova necessidade de clculo seja para gerao de at 1.000 ou 1.000.000 de valores para o
nmero escolhido da tabuada. Em decorrncia disso, o algoritmo no ficaria mais complexo, pois a
operao a ser realizada seria a mesma, mas ficaria enorme ou muito extenso (bem maior) sobre a
quantidade de linhas e instrues semelhantes que existiriam em seu corpo (o bloco de declaraes e
instrues corresponde ao corpo do algoritmo).
Para evitar esse tipo de extenso no corpo do algoritmo, possvel a construo de algoritmos com
instrues de repetio, que permitem a repetio contnua de uma operao previamente identificada
por quantas vezes forem necessrias. Tal repetio tem como base o resultado de um teste condicional.
Faremos agora o estudo dos trs diferentes tipos de instrues de repetio para programao de
computadores, apresentando outros benefcios que este tipo de instruo ocasiona na elaborao de
algoritmos.

Repetio para... faca


A instruo de repetio para... faca executa um conjunto de instrues por uma quantidade de vezes
conhecida ou bem definida antes de seu incio.
Sintaxe geral

:
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

na contagem da repetio iniciada com o valor

inicial <v_inicial> at o valor

final especificado em <v_final>;

<valor> corresponde a um nmero inteiro de incremento ou decremento


dado a

varivel definida em <varivel_controle>, tambm conhecida como

varivel de controle da repetio.


O problema da tabuada, apresentado anteriormente, pode ser solucionado com o algoritmo que
empregue a instruo de repetio para... faca, que o tornar mais eficiente e menor em quantidade de
linhas (menor extenso) sobre seu corpo. Observe a soluo lgica proposta abaixo em portugus
estruturado:

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

escreval("Digite o nmero inteiro desejado para

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:

algoritmo "primeira mdia da turma"


// Sntese
// Objetivo: calcular a mdia aritmtica de uma turma de alunos
// Entrada: 50 notas individuais de cada aluno
// Sada: mdia aritmtica de toda a turma
// Declaraes
var
auxiliar : inteiro
nota, soma, media : real
inicio
soma

0 // inicializao obrigatria da varivel que no possui

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

escreval("Mdia Aritmtica da turma = ", media:3:1 )


fimalgoritmo
Nesse exemplo, realizada a repetio, tambm chamada de lao ou looping, da instruo para... faca
que efetua a leitura e a soma das 50 notas de alunos de uma mesma turma, apresentando ao seu final a
mdia aritmtica alcanada pela turma.
Observe no comentrio existente no incio do bloco de instrues do algoritmo (aps a palavra reservada
inicio) a realizao de uma atribuio varivel soma, informando que esta inicializao obrigatria.
Esta obrigatoriedade decorrente da instruo soma

soma + nota que no pode acontecer sem que

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

soma + nota for executada, qual ser o

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

Fonte: RISSOLI, 2003.

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.

Repetio enquanto... faca


A instruo de repetio enquanto... faca permite a execuo de um conjunto de comandos
pertencentes ao seu bloco de repetio, sendo este executado a partir de um teste condicional que

90

Algoritmos e Programao
Aula 06

resulta em verdadeiro. Enquanto este teste permanecer verdadeiro, a repetio executada


continuamente, sendo encerrada somente quando a condio for falsa (terminando o bloco de repetio).
A seqncia de execuo da repetio enquanto... faca obedece s seguintes operaes:

Primeiramente, efetua-se um teste lgico antes de iniciar o bloco de repetio.

Caso o resultado desse teste lgico seja verdadeiro, todo bloco de repetio executado at a
instruo fimenquanto.

Chegando a fimenquanto o foco da execuo retorna para a instruo enquanto e o teste


condicional refeito.

Enquanto o teste resultar em verdadeiro, esta seqncia lgica prossegue em execuo,


repetindo o processamento previsto em seu bloco de repetio.

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:

algoritmo "mdia da turma"


// Sntese
// Objetivo: calcular a mdia aritmtica de uma turma de alunos
// Entrada: 50 notas individuais de cada aluno
// Sada: mdia aritmtica de toda a turma
// Declaraes
var
auxiliar : inteiro
nota, media : real
inicio
media

0 // inicializao obrigatria da varivel media

auxiliar

1 // inicializao obrigatria da varivel de controle

auxiliar
enquanto (auxiliar <= 50) faca
escreval("Informe a nota do aluno: ")
leia(nota)

92

Algoritmos e Programao
Aula 06

media

media + nota // realiza a soma de cada nota informada

auxiliar

auxiliar + 1 // conta a quantidade de notas informadas

fimenquanto
media

media / 50 // calcula a mdia da turma com todas as notas

escreval("Mdia Aritmtica da turma = ", media:3:1)


fimalgoritmo
Acompanhe no exemplo com a instruo enquanto... faca que uma nica varivel foi utilizada para
seguir somando todas as notas at o momento exato de calcular a mdia final da turma. Este clculo s
pode acontecer aps todas as notas j estarem somadas e no a cada nova nota informada pelo usurio,
pois resultaria na perda da preciso mais exata do resultado final (mdia aritmtica) do algoritmo.
Atente-se tambm aos alinhamentos ou endentaes obrigatrias para esta instruo no algoritmo em
portugus estruturado.
Alm disso, veja como os clculos que controlam a repetio esto explcitos no corpo do algoritmo,
desde a inicializao da varivel auxiliar (varivel de controle da repetio) at seu teste condicional
(auxiliar <= 50) e o incremento (auxiliar

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

1 // varivel de controle iniciada com valor aps o de (1)

auxiliar <= 50 // teste condicional de controle nesta repetio para... faca


com valor aps o ate (50)
auxiliar

auxiliar + 1 // incremento contnuo at o final da repetio

usando o valor

definido aps o passo (1)

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:

Fonte: RISSOLI, 2003.

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.

Repetio repita... ate


A instruo de repetio repita... ate possui caractersticas relevantes na sua lgica de execuo, sendo
as principais apresentadas na relao abaixo:

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.

algoritmo "mdia da turma"


// Sntese
// Objetivo: calcular a mdia aritmtica de uma turma de alunos
// Entrada: 50 notas individuais de cada aluno
// Sada: mdia aritmtica de toda a turma
// Declaraes
var
auxiliar : inteiro
nota, soma : real
inicio
soma
auxiliar

0 // inicializao obrigatria da varivel soma


1 // inicializao obrigatria da varivel de controle

auxiliar

96

Algoritmos e Programao
Aula 06

repita
escreval("Informe a nota do aluno: ")
leia(nota)
soma
auxiliar

soma + nota // realiza a soma de cada nota informada


auxiliar + 1 // conta a quantidade de notas informadas

ate (auxiliar > 50)


escreval("Mdia Aritmtica da turma = ", (soma / 50):3:1

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

Fonte: RISSOLI, 2003.


Observe que na soluo proposta no algoritmo acima no est sendo criada a varivel para armazenar o
valor final (media), pois seu valor gerado pelo clculo final e imediatamente apresentado na tela de
execuo do algoritmo, como pode ser acompanhada na janela de execuo final representada abaixo.

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.

Formas de Controle das Estruturas de Repetio


As estruturas de repetio possuem uma forma diferenciada para controlar a quantidade de repeties a
serem executadas. Esses controles podem ser genericamente classificados em:

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).

Controlado pelo usurio: O algoritmo sempre respeitar a solicitao do usurio, executando o


bloco de repetio de acordo com a solicitao dele e respeitando sempre a lgica existente no
algoritmo elaborado para soluo de um problema.

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.

algoritmo "enquanto automtico"


// Sntese
// Objetivo: confirmar a leitura de 5 pesos
// Entrada: 5 pesos
// Sada: mensagem confirmando a leitura de 5 pesos
// Declaraes
var
contador : inteiro
peso : real
inicio
contador

enquanto (contador < 5) faca


escreval("Digite o peso: ")
leia(peso)
contador

contador + 1 // contabiliza quantidade de pesos lidos

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:

Controlado pelo Usurio


algoritmo "enquanto controlado pelo usurio"
// Sntese
// Objetivo: confirma a quantidade de pesos lidos
// Entrada: pesos
// Sada: quantidade de pesos informados
// Declaraes
var
contador : inteiro
peso : real
inicio
contador

101

Algoritmos e Programao
Aula 06

peso

enquanto (peso > 0) faca


escreval("Digite um peso vlido ou negativo para encerrar:

")

leia(peso)
contador

contador + 1 // contabiliza quantidade de pesos lidos

fimenquanto
escreval("Foram informados ", (contador - 1):2,

" pesos. ")

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.

algoritmo "repita automtico"


// Sntese
// Objetivo: confirmar a leitura de 5 pesos
// Entrada: 5 pesos
// Sada: mensagem confirmando a leitura de 5 pesos

102

Algoritmos e Programao
Aula 06

// Declaraes
var
contador : inteiro
peso : real
inicio
contador

repita
escreval("Digite o peso: ")
leia(peso)
contador

contador + 1 // contabiliza quantidade de pesos lidos

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:

algoritmo "repita controlado pelo usurio"


// Sntese
// Objetivo: confirma a quantidade de pesos lidos

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,

" pesos. ")

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

algoritmo "analisa pesos"


// Sntese
// Objetivo: confirma a quantidade de pesos lidos
// Entrada: pesos
// Sada: quantidade

de pesos informados

// Declaraes
var
contador : inteiro
peso : real
inicio
contador
peso

0
1

repita
escreval("Digite um peso de pessoa vlido ou zero

para encerrar: ")

leia(peso)
se (peso < 0) entao
escreval("Peso invlido! Informe somente

pesos positivos.")

senao

105

Algoritmos e Programao
Aula 06

contador

contador + 1 // s contabiliza pesos vlidos

fimse
ate (peso = 0)
escreval("Foram informados ", (contador - 1):2,

" pesos. ")

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:

escreval("Foram informados ", (contador - 1):2, " pesos. ")

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.

Nesta aula, foram apresentadas as trs fundamentais estruturas de controle e repetio em


um algoritmo, o que possibilitou o uso mais coerente dos recursos computacionais
disponveis em qualquer computador, em consonncia com as necessidades lgicas
exigidas pelo problema apresentado.
Na prxima aula, trataremos das estruturas de dados composta homognea, unidimensional
e homognea do tipo caracter (string).

107

Algoritmos e Programao
Aula 07

Aula 07 - Estrutura de Dados


As estruturas de dados consistem em organizaes lgicas sobre o armazenamento e
manipulao dos dados que sero necessrios ao algoritmo e ao programa resultante de tal
representao (portugus estruturado ou fluxograma).
As principais estruturas a serem manipuladas nos algoritmos so classificadas em
homogneas (de um mesmo tipo de dado) e heterogneas (tipos de dados diferentes). Por
meio do uso mais correto dessas estruturas de dados os algoritmos e programas se tornam
altamente eficientes sobre os recursos computacionais disponveis.
Nesta aula, trataremos das estruturas de dados composta homognea, unidimensional e
homognea do tipo caracter (string).

Estrutura de Dados Composta Homognea


A elaborao de um algoritmo que armazene as notas de cinco alunos diferentes pode ser feita como
sugerido no portugus estruturado a seguir.

algoritmo "soma notas"


// Sntese
// Objetivo: armazenar 5 notas de 5 alunos diferentes e apresent-las
// Entrada: 5 notas
// Sada: soma das notas
// Declaraes
var
nota1, nota2, nota3, nota4, nota5, total : real

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

nota1 + nota2 + nota3 + nota4 + nota5

escreval("Total das notas do grupo = ", total:3:2)


fimalgoritmo
Por meio desse algoritmo, possvel ler cinco notas de cinco alunos diferentes e armazen-las em cinco
variveis diferentes. Uma instruo de repetio no melhoraria muito esta lgica, pois os cinco valores
precisaro estar disponveis independentes dos outros valores informados em variveis distintas.
Imagine ento que as leituras de todas as notas dos alunos do seu curso tivessem de ser lidas por seu
algoritmo. Como voc faria? E como saber a quantidade de alunos do prximo semestre para armazenar
suas respectivas notas?

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.

Estrutura de Dados Composta Homognea Unidimensional (vetor)


Uma estrutura de dados composta homognea consiste em uma nica estrutura (varivel ou constante)
com capacidade de armazenamento de mais de um valor (por isso composta) com um mesmo tipo de
dado (por isso homognea). Suas principais caractersticas so:

contm vrios valores, porm com quantidade definida;

todos os valores so do mesmo tipo de dado (homogneo);

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,

independentemente, na estrutura de dados indicada nesta instruo de entrada de dados.


Os ndices correspondem s posies de identificao dos valores armazenados de forma independente,
apesar de possurem acesso por meio do mesmo identificador. Por meio de seus valores inteiros que se
torna possvel manipular, especificamente, um ou mais valores armazenados nesta estrutura de dados,
conforme seja necessria a lgica operacional deste algoritmo.
Suponha que exista a necessidade de apresentao somente da sexta idade informada pelo usurio. Isso
ser possvel devido existncia do ndice da estrutura. Mas um cuidado especial deve ser tomado
quando for necessrio esse tipo de manipulao exata, pois essas estruturas possuem sua primeira

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:

Composta: porque podem armazenar vrios valores.

Unidimensional: porque s possui variao em uma dimenso.

Homognea: porque armazena um nico tipo de dado.

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:

Declarao de uma varivel convencional:

<identificador> : <tipo de

dado>

Exemplo:

nota: real
Declarao

da

estrutura

de

dados

composta

homognea

unidimensional:
<identificador> : vetor [<inicial>..<final>] de <tipo de dado>
Onde:

<tipo de dado> o tipo de dado que ser armazenado na estrutura;

<identificador> o nome atribudo estrutura de dados (vetor); e

<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:

notas : vetor [0..19] de real


No exemplo anterior, foi criado um vetor chamado notas que pode armazenar at 20 nmeros reais
independentes. Essa quantidade de valores (20) a capacidade de armazenamento declarada no bloco
de declaraes do algoritmo em portugus estruturado, pois de zero a dezenove existem vinte posies,
ou seja, capacidade do vetor notas de 20 valores reais, sendo o primeiro guardado na posio zero
enquanto o ltimo, na posio dezenove.
O acesso independente a um elemento do vetor acontece por meio da especificao de seu nome e de
seu ndice ou posio entre colchetes. Observe a representao grfica do vetor idades diagramado
abaixo. Suponha que todos os seus doze valores (de 0 at 11) j tenham sido informados pelo usurio e
voc ir manipul-los por meio de um algoritmo.
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.

algoritmo "manipulao de vrias idades no vetor"


// Sntese
// Objetivo: armazenar 12 idades e manipula-las convenientemente
// Entrada: 12 idades
// Sada: todos os 12 valores finais do vetor
// Declaraes
var

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

limpatela // Instruo que limpa toda tela de execuo do algoritmo


escreval("Elementos do Vetor Final") // mostra todos elementos do
vetor
para auxiliar de 0 ate 11 passo 1 faca
escreval("idades[", auxiliar:2, "] = ", idades[auxiliar]:4)
fimpara
fimalgoritmo

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]

idades[4] ou seja idade[1]

15

idades[2 * auxiliar] + 5

// corresponde a idades[4]

idades[2 * 4] + 5 ou seja

114

Algoritmos e Programao
Aula 07

// idades[4]

idades[8] + 5 que indica que idades[4]

// que resultar em 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.

algoritmo "mdia aritmtica com vetor"


// Sntese
// Objetivo: armazenar as notas individuais de cada aluno em uma turma e
apresentar a mdia aritmtica desta mesma turma
// Entrada: 30 notas
// Sada: nota individual por aluno e a mdia aritmtica da turma
// Declaraes
var
auxiliar : inteiro
soma : real
notas : vetor [0..29] de real // vetor notas com capacidade de 30
reais

115

Algoritmos e Programao
Aula 07

inicio
soma

0 // atribuio inicial obrigatria para soma

para auxiliar de 0 ate 29 passo 1 faca


escreva("Digite a nota (0 => 10) do ", (auxiliar+1):2, " aluno: ")
// Avaliao de nota

vlida (maior ou igual a 0 e menor ou igual a

10)
repita
leia(notas[auxiliar])
se ((notas[auxiliar] < 0) ou (notas[auxiliar] > 10)) entao
escreval("Nota invlida! Digite

novamente (0 => 10): ")

fimse
ate((notas[auxiliar] >= 0) e (notas[auxiliar] <= 10))
fimpara
limpatela
// Apresentao dos

resultados finais solicitados

escreval("Notas por aluno")


escreval
para auxiliar de 0 ate 29 passo 1 faca

116

Algoritmos e Programao
Aula 07

escreval((auxiliar + 1):2, " Aluno


soma

=", 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.

Estrutura de Dados Composta Homognea do Tipo Caracter (string)


Quando se declara uma varivel do tipo caracter, para armazenar um nome, por exemplo, est se
criando na verdade um vetor do tipo de dado caracter, pois um nome consiste de um conjunto de letras
(ou smbolos alfabticos) e no simplesmente de um nico caracter.
Um conjunto de caracteres tambm chamado de string ou cadeia de caracteres e possui sua
capacidade de armazenamento de letras independentes definida em sua coerente declarao. Suponha a
necessidade de armazenar o nome Marilda em uma varivel. Caso seja criada uma varivel do tipo
caracter, com identificador de nome, esta s possuir capacidade para guardar uma nica letra no nome
desejado. Portanto, ser necessrio criar um vetor do tipo caracter com tamanho coerente ao
armazenamento de todos os caracteres do nome desejado.
Teste o exemplo abaixo. Mas antes, lembre-se de que o nome deve ser informado letra por letra, sendo
pressionada a tecla <ENTER> depois de cada letra digitada at que seja digitado o ponto final seguido do
<ENTER> tambm.

117

Algoritmos e Programao
Aula 07

Exemplo:

algoritmo "manipulao de um nome"


// Sntese
//

Objetivo:

armazenar

nome

de

uma

pessoa

apresentar

somente

primeira letra deste nome


// Entrada: primeiro nome de uma pessoa
// Sada: somente a primeira letra do nome informado pelo usurio
// Declaraes
var
auxiliar : inteiro
nome : vetor [0..9] de caracter // vetor nome com capacidade de 10
caracteres
inicio
auxiliar

escreval("Informe um nome com at 9 caracteres e termine com ponto


final: ")
repita
leia(nome[auxiliar]) // leitura de um caracter por vez pressionando
<ENTER> para cada letra digitada
auxiliar

auxiliar + 1

118

Algoritmos e Programao
Aula 07

ate ((nome[auxiliar - 1] = ".") ou (auxiliar = 10))


// Apresentao

final solicitada pelo problema proposto com salto de

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:

algoritmo "validar senha do usurio"


// Sntese
// Objetivo: conferir senha informada pelo usurio
// Entrada: senha
// Sada: mensagem coerente com senha informada

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

verdadeiro // tipo de dado lgico possui verdadeiro ou

falso
auxiliar

// registro da senha CUBO pelo programador deste algoritmo


senha[0]

"C"

senha[1]

"U"

senha[2]

"B"

senha[3]

"O"

escreva("Digite

um caracter da senha por vez, pressionando <ENTER>:

")
repita

120

Algoritmos e Programao
Aula 07

leia(senhaUsuario[auxiliar]) // digite <ENTER> entre cada caracter


informado
auxiliar

auxiliar + 1

ate ((senhaUsuario[auxiliar - 1] = ".") ou (auxiliar = 4))


para

auxiliar de 0 ate 3 passo 1 faca

se (senha[auxiliar] <> senhaUsuario[auxiliar]) entao


igual

falso // tipo de dado lgico

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

A eficincia na utilizao de recursos computacionais para armazenamento e uso de dados


exigidos ao processamento de determinadas informaes s possvel por meio do emprego
correto das estruturas de dados, cujo estudo foi iniciado nesta aula.
Como a estrutura de dados fundamental ao eficiente uso dos recursos de armazenamento
e manipulao computacional, continuaremos, na prxima aula, o estudo sobre ela e
veremos as estruturas: Matriz, Pilha, Lista, fila e rvore.

122

Algoritmos e Programao
Aula 08

Aula 08 - Aprofundamento em Estrutura de Dados


Nesta aula, aprofundaremos nas estruturas de dados, explorando-as sobre os aspectos
lgicos e organizacionais.
Com o estudo iniciado na aula 7, sobre a estrutura de dados composta homognea, ser
possvel abordar agora alguns contedos relevantes ao emprego deste tipo de estrutura,
com variaes condizentes s necessidades de sua aplicao computacional, envolvendo,
assim, caractersticas essenciais a um processamento gil e eficiente em um conjunto bem
variado de problemas computacionais.

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:

<identificador> : vetor [<inicial>..<final> , <inicial>..<final>] de <tipo


de

dado>

Onde:

<tipo de dado> o tipo de dado que ser armazenado na estrutura;

<identificador> o nome atribudo estrutura de dados (matriz);

124

Algoritmos e Programao
Aula 08

<inicial> e <final> correspondem, respectivamente, aos valores numricos inteiros de incio e


fim dos ndices da primeira dimenso da matriz, sendo seu intervalo a quantidade exata de
elementos da primeira dimenso da matriz;

<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.

algoritmo "histrico de anos dos jogos Pan Americanos"


// Sntese
// Objetivo: Armazenar os 12 ltimos anos que aconteceram
// Pan Americano
// Entrada: 12 anos dos ltimos Pan Americanos
// Sada: 12 anos armazenados
// Declaraes
var
anos : vetor [0..2,0..3] de inteiro
contador, auxiliar : inteiro
inicio

125

Algoritmos e Programao
Aula 08

escreval("Informe os 12 anos dos ltimos Pan

Americanos:")

para contador de 0 ate 2 passo 1 faca


para auxiliar de 0 ate 3 passo 1 faca
escreva("valor[",contador:2,"][",auxiliar:2,"]= ")
leia(anos[contador,auxiliar])
fimpara
fimpara
limpatela
// Apresenta a

matriz com os anos armazenados

para contador de 0 ate 2 passo 1 faca


para auxiliar de 0 ate 3 passo 1 faca
escreva("Ano[",

contador,

",",

auxiliar,

"]=",

(anos[contador,auxiliar]):2, " ")


fimpara
escreval
fimpara
fimalgorimto
As demais estruturas de dados so elaboradas e desenvolvidas sobre os recursos computacionais que um
algoritmo, que se tornar um programa ou aplicao computacional posteriormente, possa manipular de
forma gil e melhor organizada para o armazenamento na memria do computador.

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:

Busca: procura localizar um elemento na lista.

Insero: objetiva acrescentar um novo elemento na lista.

Remoo: efetua a retirada de um elemento da lista.

Na nomenclatura de lista, os elementos so chamados tambm de itens, registros ou ns. Nesta


disciplina, essas estruturas sero referenciadas sempre como estrutura de dados composta homognea
ou mais comumente de vetor ou matriz.

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.

Verifique abaixo a representao de trs rvores binrias:

Podem existir vrias organizaes distintas de rvores binrias, porm todas elas devem respeitar as
caractersticas de formao e possvel decomposio dessas rvores.

Para Saber Mais


Sobre a implementao deste tipo de rvore, sugerimos a leitura selecionada rvore Binria.
Existem variaes em todas essas estruturas mais complexas, estudadas at aqui. Almeja-se para cada
uma delas a coerente adequao da estrutura s caractersticas existentes na situao em que o
computador estar envolvido para auxiliar na soluo de problemas existentes na realidade de algum
usurio.
Dessa forma, torna-se importante enfatizar que no existe uma estrutura melhor que todas as outras,
mas sim a melhor estrutura a ser utilizada sobre determinada situao, sendo responsabilidade do
programador esta identificao.

Para Saber Mais


O aprofundamento no estudo de cada uma dessas e outras estruturas de dados empregadas
coerentemente pela computao pode ser iniciado por meio da leitura selecionada Apostila de E.D.

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

Algoritmo No mbito da Tecnologia da Informao, definido como a seqncia de passos realizados


sobre uma situao inicial que chega a um estado final desejado e bem organizado.
Algoritmo Fonte Corresponde exatamente ao algoritmo de computador escrito pelo usurio,
respeitando suas regras de escrita em portugus estruturado, antes mesmo de solicitar a respectiva
traduo e possvel execuo dele.
rea de Memria no Computador Recurso eletrnico finito disponvel em um computador para
armazenamento e manipulao de dados fornecidos ou para processamento de dados no computador.

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

expresses normalmente utilizadas com a mesma idia de implementao so: implementada,


implementando, implementaes ou implementar.
Informaes Dados contextualizados e compreensveis aos indivduos envolvidos com eles.

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

Programa Computacional Expresso que referencia as orientaes escritas em uma linguagem de


programao para execuo de aes ou reaes do computador em diversas situaes e contextos. No
decorrer do texto esta expresso tambm aparece muito somente com a expresso reduzida de
programa ou programas.
Programao de Computador Elaborao de um programa de computador que orienta o que o
computador deve fazer, ou seja, o que ele est programado para executar.
Programador Indivduo ou pessoa responsvel pela programao do computador por meio da
elaborao de programas, softwares ou aplicaes usando uma linguagem de programao.
Prolixa Possui muito significado, sendo excessivo e difuso.
Pseudocdigo Representao de um programa de computador atravs de termos e expresses
originrias de uma linguagem de mais fcil entendimento e representao para o ser humano,
preparando esta codificao para real descrio em uma linguagem de programao.

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