Você está na página 1de 46

ALGORITMOS E PROGRAMAO

CURSOS DE GRADUAO EAD


Algoritmos e Programao Prof. Dr. Rodrigo de Oliveira Plotze

Meu nome Rodrigo Plotze. Sou doutor na rea de Computao Grfica e Processamento de Imagens
pelo Instituto de Cincias Matemticas e de Computao da USP So Carlos. Desenvolvo pesquisas na
rea de Viso Computacional aplicada Biologia e Medicina, na qual tenho diversos trabalhos
publicados em peridicos nacionais e internacionais. Trabalho como docente dos cursos de psgraduao em Desenvolvimento de Software (Java e .NET) no Centro Universitrio Claretiano, e,
tambm, em cursos de graduao em Cincia da Computao, Engenharia da Computao e Sistemas
de Informaes em outras instituies de ensino superior.
e-mail: rodrigoplotze@gmail.com

Fazemos parte do Claretiano - Rede de Educao

Rodrigo de Oliveira Plotze

ALGORITMOS E PROGRAMAO

Batatais
Claretiano
2013

Ao Educacional Claretiana, 2012 Batatais (SP)


Verso: dez./2013
005 P786a

Plotze, Rodrigo de Oliveira


Algoritmos e programao / Rodrigo de Oliveira Plotze Batatais, SP :
Claretiano, 2013.
322 p.
ISBN: 978-85-8377-122-7
1. Conceitos de algoritmos. 2. Estrutura sequencial. 3. Estrutura Condicional.
4. Estrutura de dados homogneas e heterogneas. 5. Programao Modular.
I. Algoritmos e programao.

CDD 005

Corpo Tcnico Editorial do Material Didtico Mediacional


Coordenador de Material Didtico Mediacional: J. Alves
Preparao
Aline de Ftima Guedes
Camila Maria Nardi Matos
Carolina de Andrade Baviera
Ctia Aparecida Ribeiro
Dandara Louise Vieira Matavelli
Elaine Aparecida de Lima Moraes
Josiane Marchiori Martins
Lidiane Maria Magalini
Luciana A. Mani Adami
Luciana dos Santos Sanana de Melo
Patrcia Alves Veronez Montera
Raquel Baptista Meneses Frata
Rosemeire Cristina Astolphi Buzzelli
Simone Rodrigues de Oliveira
Bibliotecria
Ana Carolina Guimares CRB7: 64/11

Reviso
Ceclia Beatriz Alves Teixeira
Eduardo Henrique Marinheiro
Felipe Aleixo
Filipi Andrade de Deus Silveira
Juliana Biggi
Paulo Roberto F. M. Sposati Ortiz
Rafael Antonio Morotti
Rodrigo Ferreira Daverni
Snia Galindo Melo
Talita Cristina Bartolomeu
Vanessa Vergani Machado
Projeto grfico, diagramao e
capa
Eduardo de Oliveira Azevedo
Joice Cristina Micai
Lcia Maria de Sousa Ferro
Luis Antnio Guimares Toloi
Raphael Fantacini de Oliveira
Tamires Botta Murakami de Souza
Wagner Segato dos Santos

Todos os direitos reservados. proibida a reproduo, a transmisso total ou parcial por qualquer forma
e/ou qualquer meio (eletrnico ou mecnico, incluindo fotocpia, gravao e distribuio na web), ou o
arquivamento em qualquer sistema de banco de dados sem a permisso por escrito do autor e da Ao
Educacional Claretiana.

Centro Universitrio Claretiano


Rua Dom Bosco, 466 - Bairro: Castelo Batatais SP CEP 14.300-000
cead@claretiano.edu.br
Fone: (16) 3660-1777 Fax: (16) 3660-1780 0800 941 0006
www.claretiano.edu.br

Fazemos parte do Claretiano - Rede de Educao

SUMRIO
CADERNO DE REFERNCIA DE CONTEDO
1 INTRODUO ............................................................................................................................................... 7
2 ORIENTAES PARA ESTUDO......................................................................................................................8
3 REFERNCIA BIBLIOGRFICA......................................................................................................................21

Unidade1 INTRODUO CONSTRUO DE ALGORITMOS


1 OBJETIVOS.................................................................................................................................................... 23
2 CONTEDOS................................................................................................................................................. 23
3 ORIENTAES PARA O ESTUDO DA UNIDADE...........................................................................................23
4 INTRODUO UNIDADE...........................................................................................................................24
5 INTRODUO LGICA.............................................................................................................................. 24
6 ELABORAO E REPRESENTAO DE ALGORITMOS................................................................................31
7 AMBIENTE PARA CONSTRUO DE ALGORITMOS....................................................................................41
8 QUESTES AUTOAVALIATIVAS....................................................................................................................45
9 CONSIDERAES.......................................................................................................................................... 45
10 R EFERNCIAS BIBLIOGRFICAS..................................................................................................................46

Unidade2 FUNDAMENTOS DA CONSTRUO DE ALGORITMOS


1 OBJETIVOS.................................................................................................................................................... 47
2 CONTEDOS................................................................................................................................................. 47
3 ORIENTAES PARA O ESTUDO DA UNIDADE...........................................................................................47
4 INTRODUO UNIDADE...........................................................................................................................48
5 ESTRUTURA SEQUENCIAL............................................................................................................................48
6 EXPRESSES ARITMTICAS.........................................................................................................................55
7 EXERCCIOS RESOLVIDOS............................................................................................................................64
8 QUESTES AUTOAVALIATIVAS....................................................................................................................85
9 CONSIDERAES.......................................................................................................................................... 86
10 R EFERNCIA BIBLIOGRFICA......................................................................................................................86

Unidade3 ESTRUTURAS DE CONTROLE


1 OBJETIVOS.................................................................................................................................................... 87
2 CONTEDOS................................................................................................................................................. 87
3 ORIENTAES PARA O ESTUDO DA UNIDADE...........................................................................................87
4 INTRODUO UNIDADE...........................................................................................................................88
5 ESTRUTURA CONDICIONAL.........................................................................................................................88
6 ESTRUTURA DE REPETIO.........................................................................................................................100
7 EXERCCIOS RESOLVIDOS ............................................................................................................................120
8 QUESTES AUTOAVALIATIVAS....................................................................................................................190
9 CONSIDERAES ......................................................................................................................................... 191
10 R EFERNCIA BIBLIOGRFICA......................................................................................................................191

Unidade4 ESTRUTURA DE DADOS


1 OBJETIVOS.................................................................................................................................................... 193
2 CONTEDOS................................................................................................................................................. 193
3 ORIENTAES PARA O ESTUDO DA UNIDADE...........................................................................................193
4 INTRODUO UNIDADE...........................................................................................................................194
5 ESTRUTURAS DE DADOS HOMOGNEAS...................................................................................................195
6 ESTRUTURAS DE DADOS HETEROGNEAS.................................................................................................213
7 EXERCCIOS RESOLVIDOS............................................................................................................................221
8 QUESTES AUTOAVALIATIVAS....................................................................................................................272
9 CONSIDERAES ......................................................................................................................................... 273
10 R EFERNCIA BIBLIOGRFICA......................................................................................................................273

Unidade5 PROGRAMAO MODULAR


1 OBJETIVOS.................................................................................................................................................... 275
2 CONTEDOS................................................................................................................................................. 275
3 ORIENTAES PARA O ESTUDO DA UNIDADE...........................................................................................275
4 INTRODUO UNIDADE...........................................................................................................................276
5 PROCEDIMENTOS......................................................................................................................................... 278
6 FUNES....................................................................................................................................................... 289
7 RECURSIVIDADE........................................................................................................................................... 294
8 EXERCCIOS RESOLVIDOS............................................................................................................................296
9 QUESTES AUTOAVALIATIVAS ...................................................................................................................321
10 C ONSIDERAES FINAIS.............................................................................................................................. 322
11 R EFERNCIA BIBLIOGRFICA......................................................................................................................322

Caderno de
Referncia de
Contedo

CRC

Contedo

Introduo Lgica. Introduo ao conceito de algoritmos e suas representaes fundamentais. Estrutura sequencial
para construo de algoritmos. Estruturas Condicionais. Estruturas de Repetio. Estruturas de dados homogneas
(vetores e matrizes) e heterogneas (registros). Programao modular: procedimentos, funes e recursividade.

1. INTRODUO
Neste Caderno de Referncia de Contedo, voc ter o primeiro contato com os principais
conceitos relacionados programao de computadores.
Para facilitar o seu estudo, o contedo foi dividido em cinco unidades. Nelas, voc ter a
oportunidade de aprender como elaborar algoritmos capazes de solucionar no s os problemas
computacionais, mas tambm os do cotidiano.
Estudar, ainda, tpicos fundamentais para a construo dos algoritmos, explicitando
desde os tipos de dados at as estruturas sequenciais e de repetio, passando, inclusive, pelas
variveis. Alm disso, voc poder estudar as estruturas de dados para armazenamento de
grandes conjuntos de informaes, como, por exemplo, as variveis compostas homogneas e
as variveis compostas heterogneas.
Por fim, voc ter a possibilidade de aprender como organizar eficientemente seus
algoritmos por meio de tcnicas de programao modular.
Dessa forma, essencial que, para um bom aproveitamento de seus estudos, voc
pratique. Para isso, no deixe de realizar os exerccios propostos. No se esquea de que tambm
fundamental que voc compartilhe seus conhecimentos na Sala de Aula Virtual.
Uma vez que este Caderno de Referncia de Contedo apenas uma referncia,
importante que voc complemente seu estudo por meio de outras fontes de informaes, como
livros, revistas e internet.

Algoritmos e Programao

Aps esta introduo aos conceitos principais, apresentamos, a seguir, no tpico


Orientaes para estudo, algumas orientaes de carter motivacional, dicas e estratgias de
aprendizagem que podero facilitar o seu estudo.

2. ORIENTAES PARA ESTUDO


Abordagem Geral
Neste tpico, apresenta-se uma viso geral do que ser estudado. Aqui, voc entrar em
contato com os assuntos principais deste contedo de forma breve e geral e ter a oportunidade
de aprofundar essas questes no estudo de cada unidade. Desse modo, essa Abordagem Geral
visa fornecer-lhe o conhecimento bsico necessrio a partir do qual voc possa construir um
referencial terico com base slida cientfica e cultural para que, no futuro exerccio de sua
profisso, voc a exera com competncia cognitiva, tica e responsabilidade social.
O estudo de Algoritmos e Programao tem carter fundamental para formao do aluno.
Ela apresenta os aspectos tericos e prticos do projeto e construo de algoritmos. Nesse
contexto, voc ter a possibilidade de estudar os principais aspectos relacionados elaborao
de algoritmos, os quais so fundamentais para o desenvolvimento de qualquer tipo de sistema
computacional, independentemente da linguagem de programao utilizada.
O incio do estudo de programao aborda conceitos relacionados lgica matemtica.
No dia a dia, utilizamos a todo o momento a palavra lgica para referenciar ou descrever algum
tipo de evento ocorrido, como por exemplo, " lgico que vai chover", "Se tudo correr bem,
lgico que vou ao cinema", ou ainda "Como voc estudou muito para prova, lgico que
acertar todas as questes".
No entanto, fundamental definirmos a palavra lgica. Segundo Aristteles, que foi
considerado o pai da lgica, ela representa as leis do pensamento. Assim, em todas as nossas
atividades, precisamos utiliz-la. Quando, por exemplo, estamos escrevendo uma mensagem
eletrnica ou falando ao telefone, precisamos da lgica para ordenar nossos pensamentos.
Para realizar tarefas mais simples, tambm utilizamos o raciocnio lgico. Por exemplo,
suponha que voc deseja preparar um leite com achocolatado. Uma possvel ordem lgica para
a soluo do problema seria: (1) Abrir a geladeira; (2) Retirar o litro de leite; (3) Abrir o armrio;
(3) Retirar o pote de achocolatado; (5) Pegar um copo vazio; (6) Adicionar leite no copo; (7)
Adicionar achocolatado no copo com leite, e por fim, (8) Misturar.
Neste momento, voc provavelmente deve estar se perguntando: o que isso tem a ver com
algoritmos e programao? simples. A lgica auxiliar voc na compreenso dos conceitos
fundamentais para a construo de algoritmos. Alm disso, com ela, voc estar preparado para
analisar a formalidade e a coerncia dos programas.
Alguns conceitos da lgica matemtica so essenciais para o estudo de algortmos e
programao, como, por exemplo, as proposies. Uma das aplicaes da lgica a representao
simblica de raciocnios. Desse modo, podemos dizer que as afirmaes que realizamos
diariamente so transformadas em smbolos para demonstrar fatos ou transmitir informaes.
Uma proposio representa uma afirmao (ou sentena), que pode assumir o valor lgico
verdadeiro ou o valor falso. As proposies so sempre simbolizadas por letras minsculas {a,b,c,...x,y,z}.

Caderno de Referncia de Contedo

Os conectivos lgicos so smbolos utilizados para combinar proposies. No dia a dia,


utilizamos esses conectivos ao falar e tambm ao escrever. As proposies formadas por meio
da combinao de conectivos so chamadas proposies compostas.
Utilizando as proposies simples (p, q), podemos formar algumas proposies compostas
com os conectivos (e, ou, se ... ento). Considerando a proposio p como, por exemplo, na
sentena "Os cachorros possuem quatro patas" e a proposio q, como na sentena "Os gatos
adoram leite", podemos formar as seguintes proposies compostas: "Os cachorros possuem
quatro patas e os gatos adoram leite"; "Os cachorros possuem quatro patas ou os gatos adoram
leite"; "Se os cachorros possuem quatro patas, ento os gatos adoram leite".
Na lgica matemtica, cada conectivo representado por um smbolo, conforme
apresentado na Tabela 1.
Tabela 1 Conectivos lgicos.
Conectivo Lgico

Significado

Smbolo

Negao

no

Conjuno

Disjuno

ou

Disjuno Exclusiva

ou exclusivo

Condicional

se ... ento

Bicondicional

se, somente se

As tabelas-verdade so um recurso muito utilizado na avaliao de proposies lgicas.


Elas permitem avaliar uma proposio em funo de todas as entradas possveis. Para isso, so
utilizados os conectivos descritos anteriormente. Esses conectivos e seus respectivos valores
so expressos resumidamente na Tabela 2.
Tabela 2 Valores dos conectivos lgicos.
p

pq

pq

pq

pq

pq

Para demonstrar a construo de tabelas-verdade, consideremos a proposio (a b) a.


A resoluo por meio da tabela-verdade apresentada na Tabela 3.
Tabela 3 Tabela-verdade da proposio (a b) a.
Entrada
a

(a b)

Resultado

No exemplo anterior, voc pde notar que as colunas 1 e 2 representam as possveis entradas para as proposies a e b. A coluna 3 representa o resultado da avaliao da proposio
composta (a b). Para facilitar o entendimento, a coluna 3 foi nomeada como .
Claretiano - Centro Universitrio

10

Algoritmos e Programao

Por fim, a coluna 4 contm o resultado da coluna 3 () combinada com o conectivo e


a coluna 1. sempre importante destacar a coluna que representa o resultado final da tabela-verdade. Alm disso, voc pde observar que essa tabela possui um total de quatro linhas, pois
o nmero de proposies (ou variveis) igual a 2, ou seja, 22 = 4.
Os conceitos de lgica apresentados anteriormente tiveram como objetivo a formalizao e a
representao dos pensamentos. Por meio da lgica, voc pde perceber que possvel definir, de
maneira organizada e coerente, uma sequncia de raciocnio e, com isso, atingir os objetivos propostos.
Todo esse ferramental apresentado pode ser empregado na construo de algoritmos e
programas. Assim, quando voc for escrever programas para computador, um dos primeiros
passos a criao de algoritmos. Por meio deles, voc pode esboar todos os passos necessrios
para a resoluo de um determinado problema.
Segundo Ascencio (1999), o algoritmo a descrio de uma sequncia de passos que deve
ser seguida para a realizao de uma tarefa.
Dessa forma, em nosso cotidiano, utilizamos algoritmos a todo instante para realizar atividades como, por exemplo, ir ao supermercado, trocar o pneu do carro, limpar a casa, passear
com o cachorro, ir ao trabalho, dentre outros. A seguir, sero apresentados alguns exemplos de
algoritmos do cotidiano, tais como: trocar o pneu do carro e ir ao trabalho. Veja:
Algoritmo 1 Trocar o pneu do carro
1
2
3
4
5
6

Desparafusar a roda.
Levantar o carro com o macaco.
Retirar a roda com o pneu furado.
Colocar o estepe.
Abaixar o carro.
Parafusar a roda.

A maneira mais simples de representao chamada de descrio narrativa. Alm desse


tipo de descrio, os algoritmos tambm podem ser representados por meio de fluxogramas e
pseudocdigos (ou portugol) (ASCENCIO & CAMPOS, 2008).
Independentemente da forma de elaborao dos algoritmos (descrio narrativa, fluxograma ou pseudocdigo), todas visam construo de programas. Assim, um programa de computador pode ser definido como a traduo de um algoritmo para uma linguagem que apenas o
computador entenda, tambm conhecida como linguagem de programao.
O exemplo a seguir apresenta a soluo algortmica para o problema de somar trs nmeros e apresentar na tela o resultado. Essa soluo foi elaborada com base nas trs abordagens:
descrio narrativa, fluxogramas e pseudocdigos.
Descrio narrativa:
1
2
3
4
5

Receber o primeiro nmero.


Receber o segundo nmero.
Receber o terceiro nmero.
Somar os trs nmeros.
Apresentar o resultado obtido com a soma.

Caderno de Referncia de Contedo

11

Fluxograma:
incio

num1, num2 e num3

leitura dos nmeros

soma= (num1+num2+num3)

clculo da soma

soma

exibio do resultado

fim
Figura 1 Fluxograma de uma soma.

Pseudocdigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

algoritmo "soma trs nmeros"


{Algoritmo elaborado para somar trs nmeros
e apresentar o resultado }
Declare
num1, num2, num3 : inteiro
Soma : inteiro

Inicio
escreva("Entre com o primeiro nmero:")
leia(num1)
escreva("Entre com o segundo nmero:")
leia(num2)
escreva("Entre com o terceiro nmero:")
leia(num3)
Soma <- num1+num2+num3
escreva("Resultado = ", soma)

fimalgoritmo

Para construir e testar seus algoritmos, voc pode utilizar programas especficos. Esses
programas permitem elaborar algoritmos por meio da metodologia do pseudocdigo e visualizar seu funcionamento. Um dos programas mais utilizados para esse propsito o VisuAlg, que
pode ser obtido gratuitamente na internet.
Claretiano - Centro Universitrio

12

Algoritmos e Programao

Fundamentos da construo de algoritmos


A construo de um algoritmo depende da organizao lgica e coerente de um conjunto
de passos. Esses passos devem ser executados de maneira sequencial, e, no caso dos algoritmos,
sempre do incio para o fim. Os algoritmos computacionais possuem uma estrutura bsica na
qual so definidos, por exemplo, o nome do algoritmo, as variveis utilizadas e o bloco principal.
Um algoritmo que no manipula informaes pode no ter nenhuma utilidade. A grande
essncia da construo de algoritmos e programas a possibilidade de manipulao de grandes
volumes de informao. Essas informaes manipuladas pelos algoritmos so chamadas de tipos abstratos de dados.
Os tipos abstratos de dados, ou, simplesmente, tipos de dados, definem quais tipos de informaes podem ser processadas pelo computador. Todo tipo abstrato de dados um conjunto
de valores especficos e, tambm, um conjunto de operaes.
O tipo abstrato de dados inteiro permite a manipulao de valores numricos que no possuem a parte decimal. So exemplos de nmeros inteiros: 10, 8, -23, 183, 3245, 0, -12345. Para
manipular valores numricos com parte decimal, utilizado o tipo abstrato de dados real. Alguns
exemplos de nmeros reais so: 10,32, 943,03, -32,25, 0,43, 41234,98. Os tipos abstratos de dados
tambm permitem a manipulao de informaes textuais, esse tipo conhecido como caractere
ou literal. Com o tipo caractere possvel manipular nmeros (0...9), letras (A...Z, a...z) e, tambm,
caracteres especiais (por exemplo, #,@,!,$,%,*). O tipo de dados abstrato lgico permite a manipulao de informaes que pode assumir apenas dois valores: verdadeiro ou falso.
Quando construmos algoritmos, podemos definir que uma determinada informao no
poder ser alterada ao longo da execuo. Esse conceito chamado de constante. Tambm possvel definir dados que podem ter seu valor alterado durante a execuo do algoritmo; esses dados
recebem o nome de variveis. O nome de uma varivel denominado identificador, o qual possui
regras muito bem definidas para a especificao de nomes. Alm dos nomes das variveis, os nomes dos algoritmos, das constantes e das sub-rotinas tambm so considerados identificadores.
A elaborao de programas no teria sentido se no houvesse a possibilidade de leitura
de informaes dos usurios. Para que um programa ou algoritmo seja capaz de receber dados
digitados pelo usurio, so utilizados os comandos de entrada.
Desse modo, quando utilizamos um comando de entrada em um algoritmo, o valor informado pelo usurio armazenado em uma varivel. Em linguagem algortmica, o comando de
entrada representado pela palavra leia. A instruo leia(nome) faz que o valor digitado pelo
usurio seja armazenado na varivel nome.
Outra caracterstica essencial na elaborao de um algoritmo a capacidade de exibir
informaes para o usurio na tela ou na impressora. Para isso, so utilizados comandos especficos, que so chamados de comandos de sada. Um comando de sada tem como objetivo
a apresentao de uma informao ou de um contedo de uma varivel para o usurio. Esse
comando definido pela palavra escreva. Por exemplo: a instruo escreva("Seja bem-vindo!")
exibe na tela do usurio a mensagem definida entre aspas.
Estruturas de controle
A execuo de um algoritmo sempre segue um fluxo sequencial, que vai do incio para
o fim. Assim, com as estruturas de controle, podemos determinar como esse fluxo dever ser
executado.

Caderno de Referncia de Contedo

13

Estruturas condicionais
As estruturas condicionais possibilitam ao programador definir se um determinado bloco
do algoritmo deve ou no ser executado. A execuo do bloco depender da avaliao de uma
expresso lgica.
J as estruturas de repetio permitem ao programador executar um bloco de comandos
um determinado nmero de vezes, ou, at mesmo, executar esse bloco at que uma condio
acontea.
Quando voc utiliza uma estrutura condicional na elaborao de um algoritmo, possvel
selecionar, com base em uma ou mais condies, qual parte do algoritmo dever ser executada. H dois tipos de estruturas condicionais: a estrutura condicional simples e a estrutura condicional composta. Essas estruturas so representadas em linguagem algortmica pela palavra
reservada se.
Uma estrutura condicional simples permite ao programador definir que um bloco do algoritmo ser executado se uma determinada condio ocorrer. Para definirmos uma estrutura
condicional se, utilizamos um bloco do tipo: se (condio) ento {bloco de comandos} fimse.
H outra maneira de controlar o fluxo de execuo de um algoritmo, que por meio de
uma estrutura condicional composta. Ao contrrio das estruturas condicionais simples, que executam um bloco de instrues apenas quando o valor da condio verdadeiro, as estruturas
condicionais compostas podem executar um determinado bloco de comandos quando a condio for verdadeira ou executar outro bloco de comandos quando a condio for falsa. Uma condicional composta definida pela seguinte estrutura: se (condio) ento {bloco de comandos}
seno {bloco de comandos} fimse.
Alm das estruturas condicionais simples e compostas, possvel controlar o fluxo de execuo de um algoritmo por meio de um recurso conhecido como estrutura de seleo mltipla
ou estrutura de seleo de mltipla escolha.
Essa estrutura permite ao programador testar o valor de uma determinada varivel (que pode
ser inteiro ou caractere) contra um conjunto de valores. Caso o valor da varivel seja igual a um valor
presente no conjunto, o bloco de comandos associado ao valor do conjunto executado. Essa estrutura definida pela sintaxe a seguir: escolha(expresso) caso 1, caso 2, ... caso n, fim escolha.
Estruturas de repetio
As estruturas de repetio so recursos utilizados na construo de algoritmos e programas e permitem ao programador definir quais blocos de instrues sero repetidos at que
ocorra certa condio.
Essas estruturas tm muitas aplicaes. Podemos dizer, inclusive, que quase todos os algoritmos possuem pelo menos uma estrutura de repetio. Como exemplo, suponha a seguinte
situao: voc precisa criar um algoritmo que escreva dez vezes na tela um nome informado
pelo usurio. H trs tipos de estruturas de repetio: estrutura para; estrutura enquanto; estrutura repita.
A estrutura para permite que o programador defina o nmero de vezes que um bloco de
comandos deve ser repetido. O controle do nmero de repeties realizado por uma varivel
que conhecida como contador. A sintaxe da estrutura representada por: para <contador> de
<valor inicial> at <valor final> faa {bloco de comandos} fimpara.

Claretiano - Centro Universitrio

14

Algoritmos e Programao

Quando utilizamos uma estrutura de repetio, comum precisarmos acumular uma varivel ao longo dos laos de repetio. Assim, na maioria das vezes, acumulamos a soma dessa
varivel. Porm, tambm podemos acumular a subtrao, a multiplicao ou a diviso.
Um fato importante do qual devemos nos lembrar ao usarmos acumuladores que a
varivel utilizada como acumulador sempre ser inicializada com o valor zero. Isso garante que
nenhum valor prvio afetar o processo do acumulador.
Para exemplificar o funcionamento do acumulador, calcularemos a soma dos nmeros de
um at cinco. Para tanto, utilizaremos uma estrutura de repetio para que o acumulador seja
definido em uma varivel nomeada soma. A aplicao de acumuladores para somar nmeros
conhecida como somatrio. Como resultado da execuo do algoritmo, a varivel soma ter o
valor de 1+2+3+4+5, que igual a 15.
A estrutura de repetio enquanto outra maneira de produzir um lao de repetio em
um algoritmo. Essa estrutura permite ao programador especificar a repetio de um bloco de
comandos enquanto uma condio permanecer verdadeira.
Ao contrrio da estrutura para, que pode ser aplicada apenas em problemas envolvendo
contadores, a estrutura de repetio enquanto pode ser utilizada para laos de repetio com
ou sem contadores. Isso permite que a estrutura enquanto seja utilizada em problemas nos
quais no sabemos o nmero de vezes que o bloco de comandos ser repetido. A sintaxe da
estrutura de repetio enquanto definida como se segue: enquanto <expresso lgica> faa
{bloco de comandos} fimenquanto.
Na estrutura repita, o bloco de comandos repetido at que uma determinada condio
se torne verdadeira. Ao contrrio da estrutura de repetio enquanto, em que a condio de
parada testada no incio da estrutura, na estrutura repita, a condio de parada testada no
final. A sintaxe definida como se segue: repita {bloco de comandos} at <expresso lgica>.
Estrutura de dados
As estruturas de dados estabelecem mecanismos para a organizao dos dados, de forma
que podemos trabalhar com as informaes de maneira prtica e eficiente. Alm disso, elas so
capazes de manipular grandes quantidades de informaes. As estruturas de dados tambm
so conhecidas como variveis compostas e so divididas em dois grupos: estruturas de dados
homogneas e estruturas de dados heterogneas.
As estruturas de dados homogneas so utilizadas na manipulao de dados do mesmo
tipo. De maneira prtica e simples, podemos entender que uma estrutura homognea uma
sequncia de variveis do mesmo tipo.
Imagine, por exemplo, que voc precisa manipular uma grande quantidade de notas de
alunos. Ao invs de declarar uma varivel para armazenar cada nota, voc pode criar uma estrutura de dados homognea capaz de armazenar uma sequncia de notas. H dois tipos de
estruturas homogneas: vetores; matrizes.
O vetor, tambm conhecido como array, pode ser definido como um conjunto de elementos do mesmo tipo armazenado sequencialmente na memria.
Para entender melhor esse conceito, imagine um problema em que devemos elaborar um
algoritmo que calcule a mdia de preo entre cinco produtos fornecidos pelo usurio. Se utilizarmos cinco variveis para armazenar os preos, elas estaro distribudas em posies aleatrias

Caderno de Referncia de Contedo

15

da memria. Entretanto, se utilizarmos um vetor de preos contendo cinco posies, cada posio desse vetor ser definida sequencialmente na memria.
Como os vetores organizam as informaes do mesmo tipo sequencialmente na memria,
precisamos de um mecanismo para armazenar ou recuperar as informaes de cada posio.
Para isso, so utilizados valores inteiros, conhecidos como ndice.
Um ndice um valor inteiro, maior ou igual a zero, utilizado para fazer referncia a uma
determinada posio do vetor.
As matrizes so outro tipo de estrutura de dados homognea e permitem a manipulao
de informaes em muitas dimenses. Como vimos anteriormente, os vetores manipulam dados em uma nica dimenso, e, por isso, so conhecidos como estruturas de dados unidimensionais. J as matrizes permitem a manipulao de informaes em muitas dimenses, e, dessa
forma, so conhecidas como estruturas multidimensionais.
Desse modo, a matriz mais simples chamada de matriz bidimensional, e, nela, os dados
so representados em duas dimenses. Entretanto, nas matrizes bidimensionais, os dados so
dispostos em linhas e colunas, como em uma tabela, e o acesso s informaes realizado por
meio de dois ndices: um ndice para representar a linha e outro para representar a coluna.
Uma estrutura de dados heterognea uma estrutura de dados capaz de agrupar conjuntos de dados de tipos diferentes. Imagine uma situao em que voc necessita elaborar um
algoritmo que armazene o nome e a idade de cinquenta pessoas. Como j aprendemos a utilizar vetores, podemos criar um vetor para armazenar os nomes e outro para armazenar as
idades. Essa soluo funciona perfeitamente; no entanto, precisamos declarar duas estruturas
diferentes. Alm disso, durante a construo do algoritmo, devemos referenciar cada vetor. Por
exemplo: atribuir o nome "Joo da Silva", com idade igual a 22 anos, na Posio 6 dos vetores.
Acompanhe:
vet_nomes[6] = "Joo da Silva"
vet_idade[6] = 22

A ideia de uma estrutura heterognea criar um mecanismo nico para a manipulao


das informaes, assim, teramos uma estrutura do tipo:
dados[6].nome = "Joo da Silva"
dados[6].idade = 22

A principal estrutura de dados para a manipulao de informaes heterogneas, ou seja,


de tipos diferentes, conhecida como registro.
Um registro permite que variveis de tipos diferentes sejam agrupadas em uma mesma
estrutura. A grande vantagem da utilizao do registro que todas essas variveis so referenciadas a partir de um nico nome. Quando definimos um registro, possvel realizar a combinao de qualquer tipo de dados, assim, esses dados sero logicamente relacionados.
Todas essas informaes sero agrupadas por meio de um registro. Por exemplo, a declarao de um registro para armazenar informaes cadastrais de um funcionrio apresentada
como se segue: funcionrio: registro{ nome literal, sexo caractere, idade inteiro, salrio real).
A atribuio de informaes ao registro pode ser realizada sempre referenciando o nome
da estrutura, e em seguida o nome do campo, por exemplo: funcionrio.nome="Joo da Silva".
Claretiano - Centro Universitrio

16

Algoritmos e Programao

Uma das principais utilizaes da estrutura de dados registro a possibilidade de criarmos vetores de registros. Assim, podemos definir uma estrutura de dados composta contendo
inmeros elementos. Por exemplo, para um conjunto de informaes de produtos de um supermercado, temos a seguinte declarao: produto: registro(cdigo inteiro, descrio literal, preo
real, ativo lgico), e em seguida o vetor de registros definido como se segue: vetor_de_produtos: vetor[0...99] de produto. Nesse caso, temos um vetor de registro com cem posies, onde
cada posio capaz de armazenar informaes a respeito dos produtos.
Programao modular
A complexidade do desenvolvimento dos algoritmos aumenta, e, assim, dois problemas
tornam-se evidentes: o aumento significante do nmero de linhas e a dificuldade para a organizao do cdigo.
Para solucionar tais problemas, aprenderemos uma tcnica muito interessante para a reutilizao e organizao dos blocos de comandos presentes nos algoritmos. Essa tcnica conhecida como programao modular. O objetivo da programao modular dividir o algoritmo
em pequenas partes, ou mdulos, que so chamadas de sub-rotinas. Ao utilizar as sub-rotinas,
temos a vantagem de poder reaproveitar partes do cdigo ao longo de todo o algoritmo, com
isso, no precisamos reescrever trechos do cdigo novamente. Como resultado, teremos um
algoritmo mais organizado e com um nmero menor de linhas.
Vale ressaltar, tambm, outro aspecto importante das sub-rotinas: por meio delas que dividimos o problema da construo do algoritmo em pequenas partes, tornando-o mais fcil de ser resolvido. Essa abordagem para a resoluo de problemas conhecida como dividir-para-conquistar.
As tcnicas de modularizao de programas permitem a definio de dois tipos de sub-rotinas, que so conhecidas como procedimentos e funes.
Os procedimentos so a maneira mais simples de criao de sub-rotinas. Um procedimento um mdulo dentro do algoritmo utilizado para executar um conjunto de instrues. A principal caracterstica de um procedimento que ele executa instrues. Porm, ele no retorna
nenhum tipo de resultado para o programa principal.
As funes tambm so um mecanismo para a modularizao de algoritmos. A principal
caracterstica de uma funo que ela sempre retorna um valor para o bloco principal do algoritmo. As funes sempre retornam informaes. De modo geral, podemos pensar nas funes
como algo que executa uma determinada tarefa e retorna o resultado da execuo.
Uma caracterstica interessante das sub-rotinas (tanto procedimentos quanto funes) a
possibilidade de haver a passagem de parmetros. Os parmetros permitem que as variveis do
bloco principal do algoritmo sejam passadas para as sub-rotinas. Esse conceito pode ser aplicado aos procedimentos e tambm s funes.
Quando passamos um parmetro para uma sub-rotina, ele tem a funo de uma varivel,
que pode ser manipulada ao longo da sub-rotina.
Chegamos ao fim da sntese da Abordagem Geral, e esperamos que voc tenha aproveitado ao
mximo os conceitos apresentados e que sero detalhados no decorrer das unidades. No podemos
esquecer que apenas o estudo terico de algoritmos e programao no suficiente. Portanto,
fundamental que voc pratique! Para isso, instale o ambiente de desenvolvimento VisuAlg em seu
computador, caso ainda no tenha feito, e no perca tempo para comear a elaborao dos algoritmos.
Um grande abrao e bons estudos!

Caderno de Referncia de Contedo

17

Glossrio de Conceitos
O Glossrio de Conceitos permite a voc uma consulta rpida e precisa das definies conceituais, possibilitando-lhe um bom domnio dos termos tcnico-cientficos utilizados na rea de
conhecimento dos temas tratados em Algoritmos e Programao. Veja, a seguir, a definio dos
principais conceitos:
1) Algoritmo: a descrio de uma sequncia de passos que deve ser seguida para a
realizao de uma tarefa (ASCENCIO, 1999).
2) Comandos de atribuio: os utilizamos para inserir os valores ou operaes em uma
varivel. Assim, por meio do comando de atribuio, adicionamos um determinado
valor posio de memria reservada pela varivel.
3) Comentrios: so um recurso imprescindvel para uma boa prtica de programao.
Por meio deles, o programador pode documentar o algoritmo e, com isso, aumentar a
clareza do cdigo. Um aspecto importante a ser destacado a respeito dos comentrios
que eles so desconsiderados durante a execuo do algoritmo ou do programa.
Isso significa que eles no interferem no contedo do algoritmo, por isso, podemos
escrever qualquer tipo de informao para facilitar o entendimento.
4) Constante: o conceito de constante que uma determinada informao no poder
ser alterada ao longo da execuo. Assim, uma constante um dado definido no algoritmo que no pode ter seu valor modificado.
5) Estrutura condicional: quando voc utiliza uma estrutura condicional na elaborao
de um algoritmo, possvel selecionar, com base em uma ou mais condies, qual
parte do algoritmo dever ser executada.
6) Estrutura de repetio: um recurso utilizado na construo de algoritmos e programas que permite ao programador definir quais blocos de instrues sero repetidos
at que ocorra certa condio.
7) Estruturas de dados: estabelecem mecanismos para a organizao dos dados, de forma que podemos trabalhar com as informaes de maneira prtica e eficiente. Alm
disso, elas so capazes de manipular grandes quantidades de informaes. As estruturas de dados tambm so conhecidas como variveis compostas e so divididas em
dois grupos: estruturas de dados homogneas e estruturas de dados heterogneas.
8) Identificador: o nome de uma varivel denominado "identificador", o qual possui regras
muito bem definidas para a especificao de nomes. Alm dos nomes das variveis, os nomes
dos algoritmos, das constantes e das sub-rotinas tambm so considerados identificadores.
9) Lgica matemtica conectivos lgicos: os conectivos lgicos so smbolos utilizados
para combinar proposies. No dia a dia, utilizamos esses conectivos ao falar e, tambm, ao escrever. As proposies formadas por meio da combinao de conectivos
so chamadas proposies compostas.
10) Lgica matemtica proposies: uma das aplicaes da lgica a representao simblica
de raciocnios. Desse modo, podemos dizer que as afirmaes que realizamos diariamente
so transformadas em smbolos para demonstrar fatos ou transmitir informaes. Uma proposio representa uma afirmao (ou sentena), que pode assumir o valor lgico verdadeiro
ou o valor falso. As proposies so sempre simbolizadas por letras minsculas {a,b,c,...x,y,z}.
11) Lgica matemtica tabelas-verdade: as tabelas-verdade so um recurso muito utilizado na avaliao de proposies lgicas. Elas permitem avaliar uma proposio em
funo de todas as entradas possveis.
12) Programao modular: tem como objetivo dividir o algoritmo em pequenas partes,
ou mdulos, que so chamadas de sub-rotinas.
13) Tipos Abstratos de Dados (TAD): um algoritmo que no manipula informaes pode
no ter nenhuma utilidade. A grande essncia da construo de algoritmos e programas a possibilidade de manipulao de grandes volumes de informao. Essas
informaes que so manipuladas pelos algoritmos so chamadas de Tipos de Dados.
Claretiano - Centro Universitrio

18

Algoritmos e Programao

14) Variveis: dados que podem ter seu valor alterado durante a execuo do algoritmo.
Quando voc declara uma varivel em um programa, significa que voc est reservando um espao da memria principal (RAM) para o armazenamento de uma determinada informao. O tamanho do espao reservado depende do tipo de dados
utilizado na varivel.
Esquema dos Conceitos-chave
Para que voc tenha uma viso geral dos conceitos mais importantes deste estudo, apresentamos, a seguir (Figura 2), um Esquema dos Conceitos-chave. O mais aconselhvel que
voc mesmo faa o seu esquema de conceitos-chave ou at mesmo o seu mapa mental. Esse
exerccio uma forma de voc construir o seu conhecimento, ressignificando as informaes a
partir de suas prprias percepes.
importante ressaltar que o propsito desse Esquema dos Conceitos-chave representar,
de maneira grfica, as relaes entre os conceitos por meio de palavras-chave, partindo dos
mais complexos para os mais simples. Esse recurso pode auxiliar voc na ordenao e na sequenciao hierarquizada dos contedos de ensino.
Com base na teoria de aprendizagem significativa, entende-se que, por meio da organizao das ideias e dos princpios em esquemas e mapas mentais, o indivduo pode construir o seu
conhecimento de maneira mais produtiva e obter, assim, ganhos pedaggicos significativos no
seu processo de ensino e aprendizagem.
Aplicado a diversas reas do ensino e da aprendizagem escolar (tais como planejamentos
de currculo, sistemas e pesquisas em Educao), o Esquema dos Conceitos-chave baseia-se,
ainda, na ideia fundamental da Psicologia Cognitiva de Ausubel, que estabelece que a aprendizagem ocorre pela assimilao de novos conceitos e de proposies na estrutura cognitiva
do aluno. Assim, novas ideias e informaes so aprendidas, uma vez que existem pontos de
ancoragem.
Tem-se de destacar que "aprendizagem" no significa, apenas, realizar acrscimos na estrutura cognitiva do aluno; preciso, sobretudo, estabelecer modificaes para que ela se configure como uma aprendizagem significativa. Para isso, importante considerar as entradas de
conhecimento e organizar bem os materiais de aprendizagem. Alm disso, as novas ideias e os
novos conceitos devem ser potencialmente significativos para o aluno, uma vez que, ao fixar
esses conceitos nas suas j existentes estruturas cognitivas, outros sero tambm relembrados.
Nessa perspectiva, partindo-se do pressuposto de que voc o principal agente da construo do prprio conhecimento, por meio de sua predisposio afetiva e de suas motivaes
internas e externas, o Esquema dos Conceitos-chave tem por objetivo tornar significativa a sua
aprendizagem, transformando o seu conhecimento sistematizado em contedo curricular, ou
seja, estabelecendo uma relao entre aquilo que voc acabou de conhecer com o que j fazia
parte do seu conhecimento de mundo (adaptado do site disponvel em: <http://penta2.ufrgs.
br/edutools/mapasconceituais/utilizamapasconceituais.html>. Acesso em: 11 mar. 2010).

Caderno de Referncia de Contedo

19

Lgica
Matemtica
Conectivos

Tabelas-Verdade

Proposies

Algoritmos
Tipos de Dados

Estrutura
Sequencial

Estrutura de
Controle

Constantes e
Variveis

Comandos de
Entrada e Sada

Expresses
Matemticas e Lgicas

Estrutura de
Dados

se e escolha
vetores e
matrizes
para, enquanto e
repita
registros

Modularizao
Figura 2 Esquema dos Conceitos-chave do Caderno de Referncia de Contedo de Algoritmos e Programao.

Como pode observar, esse Esquema oferece a voc, como dissemos anteriormente, uma
viso geral dos conceitos mais importantes deste estudo. Ao segui-lo, ser possvel transitar
entre os principais conceitos e descobrir o caminho para construir o seu processo de ensino-aprendizagem.
O Esquema dos Conceitos-chave mais um dos recursos de aprendizagem que vem se
somar queles disponveis no ambiente virtual, por meio de suas ferramentas interativas, bem
Claretiano - Centro Universitrio

20

Algoritmos e Programao

como queles relacionados s atividades didtico-pedaggicas realizadas presencialmente no


polo. Lembre-se de que voc, aluno EaD, deve valer-se da sua autonomia na construo de seu
prprio conhecimento.
Questes Autoavaliativas
No final de cada unidade, voc encontrar algumas questes autoavaliativas sobre os contedos ali tratados.
Responder, discutir e comentar estas questes e relacion-las com a prtica do ensino
de Algoritmos e Programao pode ser uma forma de voc avaliar o seu conhecimento. Assim,
mediante a resoluo de questes pertinentes ao assunto tratado, voc estar se preparando
para a avaliao final, que ser dissertativa. Alm disso, essa uma maneira privilegiada de voc
testar seus conhecimentos e adquirir uma formao slida para a sua prtica profissional.
Bibliografia Bsica
fundamental que voc use a Bibliografia Bsica em seus estudos, mas no se prenda s
a ela. Consulte, tambm, as bibliografias complementares.
Figuras (ilustraes, quadros...)
Neste material instrucional, as ilustraes fazem parte integrante dos contedos, ou seja,
elas no so meramente ilustrativas, pois esquematizam e resumem contedos explicitados no
texto. No deixe de observar a relao dessas figuras com os contedos, pois relacionar aquilo que
est no campo visual com o conceitual faz parte de uma boa formao intelectual.
Dicas (motivacionais)
Este estudo convida voc a olhar, de forma mais apurada, a Educao como processo de
emancipao do ser humano. importante que voc se atente s explicaes tericas, prticas e
cientficas que esto presentes nos meios de comunicao, bem como partilhe suas descobertas
com seus colegas, pois, ao compartilhar com outras pessoas aquilo que voc observa, permite-se
descobrir algo que ainda no se conhece, aprendendo a ver e a notar o que no havia sido percebido antes. Observar , portanto, uma capacidade que nos impele maturidade.
Voc, como aluno dos Cursos de Graduao na modalidade EaD, necessita de uma formao conceitual slida e consistente. Para isso, voc contar com a ajuda do tutor a distncia, do
tutor presencial e, sobretudo, da interao com seus colegas. Sugerimos, pois, que organize bem
o seu tempo, realize as atividades nas datas estipuladas.
importante, ainda, que voc anote suas reflexes em seu caderno ou no Bloco de Anotaes, pois, no futuro, elas podero ser utilizadas na elaborao de sua monografia ou de produes cientficas.
Leia os livros da bibliografia indicada, para que voc amplie seus horizontes tericos. Coteje-os com o material didtico, discuta a unidade com seus colegas e com o tutor e assista s
videoaulas.
No final de cada unidade, voc encontrar algumas questes autoavaliativas, que so importantes para a sua anlise sobre os contedos desenvolvidos e para saber se estes foram
significativos para sua formao. Indague, reflita, conteste e construa resenhas, pois esses procedimentos sero importantes para o seu amadurecimento intelectual.

Caderno de Referncia de Contedo

21

Lembre-se de que o segredo do sucesso em um curso na modalidade a distncia participar, ou seja, interagir, procurando sempre cooperar e colaborar com seus colegas e tutores.
Caso precise de auxilio sobre algum assunto relacionado a este Caderno de Referncia de
Contedo, entre em contato com seu tutor. Ele estar pronto para ajudar voc.

3. REFERNCIA BIBLIOGRFICA
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programao de computadores. 2. ed. So Paulo: Pearson, 2008.

Claretiano - Centro Universitrio

Claretiano - Centro Universitrio

EAD

Introduo Construo de
Algoritmos

1. OBJETIVOS
Compreender os principais conceitos relativos lgica matemtica.
Elaborar e representar algoritmos.

2. CONTEDOS
Fundamentos da lgica.
Elaborao e representao de algoritmos.

3. ORIENTAES PARA O ESTUDO DA UNIDADE


Antes de iniciar o estudo desta unidade, importante que voc leia as orientaes a seguir:
1) Leia os livros da bibliografia indicada, especialmente aqueles que tratam sobre os
conceitos relativos lgica matemtica. Algumas sugestes para leitura so as obras:
Introduo lgica para a cincia da computao e Fundamentos matemticos para
cincia da computao.
2) Os principais termos discutidos ao longo da unidade esto sintetizados no Glossrio
de Conceitos. Por isso, sempre que possvel, consulte-o.
3) Para o estudo de conectivos lgicos e tabelas-verdade, voc poder utilizar um "construtor de tabelas-verdade" disponvel em: <http://www.brian-borowski.com/Software/
Truth/>. Acesso em: 6 nov. 2012.

24

Algoritmos e Programao

4. INTRODUO UNIDADE
Nesta primeira unidade, voc ter a oportunidade de conhecer os conceitos fundamentais
para a construo e representao de algoritmos.
Inicialmente, sero descritos os fundamentos da lgica de programao e suas principais
terminologias. fundamental que voc se dedique aos seus estudos, pois a lgica de programao ser essencial para a compreenso e anlise dos algoritmos e programas.
Estudaremos, em seguida, os conceitos preliminares a respeito dos algoritmos e as principais tcnicas de elaborao e representao.
Bons estudos!

5. INTRODUO LGICA
Provavelmente, voc j utilizou a palavra lgica para referenciar algum tipo de evento
ocorrido no seu dia a dia, como, por exemplo:
lgico que hoje ir chover.
Se tudo correr bem, lgico que vou ao cinema.
Como voc estudou muito para prova, lgico que acertar todas as questes.
No entanto, como podemos definir a palavra lgica?
Na maioria das vezes, a palavra lgica est relacionada ao pensamento, porm, no a
pensamentos desordenados ou confusos, mas a pensamentos coerentes e racionais. Para Aristteles, considerado o pai da lgica, ela representa as leis do pensamento (GERSTING, 2004).
Assim, em todas as nossas atividades, precisamos utilizar a lgica. Quando, por exemplo,
estamos escrevendo uma mensagem eletrnica ou falando ao telefone, precisamos dela para
ordenar nossos pensamentos.
Tambm utilizamos a lgica para agir corretamente. Imagine que voc precisa sair da sua
casa e ir ao supermercado comprar leite. Apesar de realizar essa tarefa facilmente, voc, inconscientemente, utiliza conceitos lgicos para determinar quais passos ou quais caminhos devero
ser seguidos at chegar ao seu destino (o supermercado). Caso contrrio, voc poderia ficar
"andando em crculos" e nunca encontrar o supermercado. Alm disso, voc ficaria sem o leite.
Voc sabia que, para realizar tarefas mais simples, tambm utilizamos o raciocnio lgico?
Como exemplo, suponha que voc deseja preparar um leite com achocolatado. Uma possvel ordem lgica para a soluo do problema seria:
Algoritmo 1 Preparar um leite com achocolatado
1
2
3
4
5
6
7
8

Abrir a geladeira.
Retirar o litro de leite.
Abrir o armrio.
Retirar o pote de achocolatado.
Pegar um copo vazio.
Adicionar leite no copo.
Adicionar achocolatado no copo com o leite.
Misturar.

U1 ntroduo Construo de Algoritmos

25

Apesar de ser considerada uma tarefa extremamente simples, veja quantos passos so
necessrios para alcanar o objetivo.
Outro fato importante que deve ser destacado a ordem dos acontecimentos. A correta
organizao do raciocnio faz com que o resultado seja facilmente alcanado. Em contrapartida,
imagine o seguinte raciocnio, desordenado logicamente:
Algoritmo 2 Preparar um leite com achocolatado
1
2
3
4
5
6
7
8

Pegar um copo vazio.


Retirar o litro de leite.
Abrir a geladeira.
Misturar.
Retirar o pote de achocolatado.
Adicionar leite no copo.
Abrir o armrio.
Adicionar achocolatado no copo com o leite.

Observe que os passos so exatamente os mesmos. No entanto, esto de maneira desordenada. Dessa forma, seria difcil alcanarmos o objetivo proposto.
Neste momento, voc provavelmente deve estar se perguntado: o que isso tem a ver com
algoritmos e programao? simples. A lgica auxiliar voc na compreenso dos conceitos
fundamentais para a construo de algoritmos. Alm disso, com ela, voc estar preparado para
analisar a formalidade e a coerncia dos programas.
Inicialmente, voc ter a possibilidade de estudar as proposies lgicas, que so essenciais para a construo do raciocnio lgico organizado. Em seguida, aprender os conectivos
lgicos, responsveis pelo agrupamento das proposies. E, finalmente, poder explorar uma
ferramenta importante para a lgica matemtica, que conhecida como tabela-verdade.
Proposies
Uma das aplicaes da lgica a representao simblica de raciocnios. Desse modo,
podemos dizer que as afirmaes que realizamos diariamente so transformadas em smbolos
para demonstrar fatos ou transmitir informaes.
Uma proposio representa uma afirmao (ou sentena), que pode assumir o valor lgico verdadeiro ou o valor falso. As proposies so sempre simbolizadas por letras minsculas
{a,b,c,...x,y,z}. Observe a Tabela 1:
Tabela 1 Valores lgicos.
Sentena

Valor Lgico

Smbolo

As bolas de futebol so redondas.

Verdadeiro

O sol azul.

Falso

Dez menor que sete.

Falso

A neve branca.

Verdadeiro

H sentenas que no possuem valor lgico, e, por isso, no so consideradas proposies. Por exemplo:
Como est voc?
Ela muito talentosa.
Existe vida em outros planetas.
Claretiano - Centro Universitrio

26

Algoritmos e Programao

Conectivos Lgicos
Os conectivos lgicos so smbolos utilizados para combinar proposies. No dia a dia, utilizamos esses conectivos ao falar ao escrever. As proposies formadas por meio da combinao
de conectivos so chamadas proposies compostas (GERSTING, 2004).
Observe o exemplo na Tabela 2:
Tabela 2 Proposies.
Sentena

Valor Lgico

Smbolo

Os cachorros possuem quatro patas.

Verdadeiro

Os gatos adoram leite.

Verdadeiro

Utilizando as proposies simples (p, q), podemos formar algumas proposies compostas
com os conectivos e, ou, se ... ento. Observe na Tabela 3.
Tabela 3 Proposies Compostas.
Proposio

Conectivo

Proposio

Proposio Composta

Os cachorros possuem quatro patas e os gatos adoram leite.

ou

Os cachorros possuem quatro patas ou os gatos adoram leite.

se ... ento

Se os cachorros possuem quatro patas, ento os gatos adoram leite.

importante notar que o valor lgico de uma proposio composta depende dos valores
lgicos das proposies simples que a compem.
Na lgica matemtica, cada conectivo representado por um smbolo, conforme apresentado na Tabela 4.
Tabela 4 Conectivos.
Conectivo Lgico

Significado

Smbolo

Negao

no

Conjuno

Disjuno

ou

Disjuno Exclusiva

ou exclusivo

Condicional

se ... ento

Bicondicional

se, somente se

Na formulao de proposies compostas, podemos utilizar diversos conectivos, porm,


lembre-se de que necessrio inserir um conectivo entre as duas proposies. Por exemplo:
(a b) c
incorreto, falta um conectivo entre a e b;
(a b) c
correto.
Tabelas-verdade
As tabelas-verdade so um recurso muito utilizado na avaliao de proposies lgicas.
Elas permitem avaliar uma proposio em funo de todas as entradas possveis.
Desse modo, o nmero de linhas de uma tabela-verdade depende do nmero de
proposies simples da proposio composta, assumindo sempre a seguinte regra: 2n (l-se dois
elevado a n), em que n representa o nmero de proposies simples.

U1 ntroduo Construo de Algoritmos

27

Alternativamente, podemos considerar as proposies simples como variveis e as proposies compostas como expresses. Veja um exemplo na Tabela 5.
Tabela 5 Variveis e expresses.
Nmero de variveis

Nmero de linhas da
tabela verdade (2n)

(a b)

22 = 4

(a b) c

23 = 8

(a b) (c d)

24 = 16

Expresses

Para construir a tabela-verdade, necessrio avaliar todas as possibilidades de entradas


para cada proposio simples. Observe, na Tabela 6, uma possvel tabela-verdade para proposio (a b):
Tabela 6 Tabela-verdade para proposio (a b).
Entrada

Sada

...

Verdadeiro

Verdadeiro

...

Verdadeiro

Falso

...

Falso

Verdadeiro

...

Falso

Falso

...

Para simplificar, podemos representar o valor lgico verdadeiro como V e o valor lgico
falso como F. Dessa forma, para a proposio composta (a b) c, temos a tabela-verdade
descrita na Tabela 7.
Tabela 7 Tabela-verdade da proposio composta (a b) c.
Entrada

Sada

...

...

...

...

...

...

...

...

...

Cada conectivo lgico possui sua tabela-verdade. Assim, a tabela-verdade do conectivo


lgico negao, simbolizado por p (leia-se "no p"), representada conforme a Tabela 8.
Tabela 8 Tabela-verdade do conectivo p.
p

Exemplo
p = Hoje est frio.
p = Hoje no est frio.
Claretiano - Centro Universitrio

28

Algoritmos e Programao

As proposies compostas do tipo p q so chamadas de conjuno, que entendida


como p e q, e sua tabela-verdade representada na forma encontrada na Tabela 9.
Tabela 9 Tabela-verdade da conjuno.
p

pq

Exemplo
p = Fernanda estudiosa.
q = Fernanda tem um bom rendimento nas provas.
p q = Fernanda estudiosa e tem um bom rendimento nas provas.
A disjuno representa a combinao ou, expressa pelo smbolo (leia-se "p ou q"), e sua
tabela-verdade est representada na Tabela 10.
Tabela 10 Tabela-verdade da disjuno.
p

pq

Exemplo
p = Hoje vou ao clube.
q = Hoje vou trabalhar.
p q = Hoje vou ao clube ou hoje vou trabalhar.
A disjuno exclusiva, tambm conhecida como ou exclusivo, representada pelo smbolo
, e a tabela-verdade demonstrada conforme a Tabela 11. Veja:
Tabela 11 Tabela-verdade da disjuno exclusiva.
p

pq

Exemplo
p = Lcia bonita.
q = Lcia inteligente.
p q = Ou Lcia bonita ou inteligente.
As proposies tambm podem ser combinadas na forma "se proposio p, ento proposio q", e so representadas pelo smbolo . A proposio composta denotada por
p q (leia-se "p implica q") e o seu conectivo chamado condicional, ou implicao. Observe,
na Tabela 12, a tabela-verdade expressa na forma condicional.

U1 ntroduo Construo de Algoritmos

29

Tabela 12 Tabela-verdade do condicional.


p

pq

Exemplo
p = Hoje sbado.
q = Hoje vou sair.
pq = Se hoje sbado, ento vou sair.
O conectivo bicondicional, ou equivalncia, simbolizado por . A expresso p q
uma abreviatura de (pq) (qp); assim, a tabela-verdade pode ser definida como mostrado na Tabela 13:
Tabela 13 Tabela-verdade do bicondicional.
p

pq

Exemplo
p = Joo ganhar presentes no Natal.
q = Joo um bom menino.
pq = Joo ganhar presentes no Natal, se e somente se for um bom menino.
Veja resumidamente, na Tabela 14, as tabelas-verdade para os principais conectivos.
Tabela 14 Tabela do resumo das tabelas-verdade dos principais conectivos.
p

pq

pq

pq

pq

pq

Conforme comentado anteriormente, podemos utilizar as tabelas-verdade para avaliar


proposies compostas. Desse modo, vamos a alguns exemplos:
Exemplo 1: (a b) a
Tabela 15 Tabela-verdade da proposio (a b) a.
Entrada
a

(a b)

V
V
F
V

Resultado

Claretiano - Centro Universitrio

30

Algoritmos e Programao

No Exemplo 1, voc pde notar que as colunas 1 e 2 representam as possveis entradas


para as proposies a e b. A coluna 3 representa o resultado da avaliao da proposio composta (a b). Para facilitar o entendimento, a coluna 3 foi nomeada .
Por fim, a coluna 4 contm o resultado da coluna 3 () combinada com o conectivo e
a coluna 1. sempre importante destacar a coluna que representa o resultado final da tabela-verdade. Alm disso, voc pde observar que essa tabela possui um total de quatro linhas, pois
o nmero de proposies (ou variveis) igual a 2, ou seja, 22 = 4.
Exemplo 2: (a b) (a c)
Tabela 16 Tabela-verdade da proposio (a b) (a c).
Entrada
a

(a b)

(a c)

Resultado

No Exemplo 2, inicialmente so resolvidas as expresses que esto dentro dos parnteses.


O resultado da expresso (a b) expresso na coluna , enquanto o resultado da expresso
(a c) representado na coluna . Finalmente, a coluna em destaque recebe a disjuno
exclusiva entre as colunas e .
Exemplo 3: (a b) ( (b c) (b d) )
Tabela 17 Tabela-verdade da proposio (a b) ( (b c) (b d) ).
Entrada
a

(a b)

(b c)

(b d)

10

11

12

13

14

15

16

Resultado

U1 ntroduo Construo de Algoritmos

31

Tautologias, contradies e contingncias


Os resultados das tabelas-verdade podem ser classificados considerando trs critrios, a
saber: tautologias, contradies e contingncias. Observe, a seguir, a explicao de cada critrio:
Tautologia: quando o resultado da tabela-verdade apresenta apenas valores verdadeiros (V).
Contradio: para tabelas-verdade contendo todos os valores resultantes falsos (F).
Contingncia: para tabelas-verdade com valores tanto verdadeiros (V) quanto falsos (F).
Exemplo
1) Seja p a proposio "Chove" e p sua negao "No chove".
"Chove ou no chove" uma tautologia, pois o resultado da tabela-verdade sempre verdadeiro.
Tabela 18 Tabela-verdade da proposio (p p).
p

(p p)

"Chove e no chove" uma contradio, pois a tabela verdade possui apenas valores
falsos no resultado.
Tabela 19 Tabela-verdade da proposio (p p).
p

(p p)

"Se chove, ento no chove" uma contingncia, uma vez que o resultado da tabela
possui valores verdadeiros e falsos.
Tabela 20 Tabela-verdade da proposio (p p).
p

(p p)

6. ELABORAO E REPRESENTAO DE ALGORITMOS


Os conceitos de lgica apresentados no tpico 5 tiveram como objetivo a formalizao e a
representao dos pensamentos. Por meio da lgica, voc pde perceber que possvel definir,
de maneira organizada e coerente, uma sequncia de raciocnio e, com isso, atingir os objetivos
propostos.
Todo esse ferramental apresentado pode ser empregado na construo de algoritmos e
programas.
Assim, quando voc for escrever programas para computador, um dos primeiros passos
a criao de algoritmos. Por meio deles, voc pode esboar todos os passos necessrios para a
resoluo de um determinado problema.
Segundo Ascencio (1999), o algoritmo a descrio de uma sequncia de passos que deve
ser seguida para a realizao de uma tarefa.
Claretiano - Centro Universitrio

32

Algoritmos e Programao

Dessa forma, em nosso cotidiano, utilizamos algoritmos a todo instante para realizar atividades, como, por exemplo, ir ao supermercado, trocar o pneu do carro, limpar a casa, passear
com o cachorro, ir ao trabalho, dentre outros. A seguir, sero apresentados alguns exemplos de
algoritmos do cotidiano, tais como: trocar o pneu do carro e ir ao trabalho. Veja:
Algoritmo 3 Trocar o pneu do carro
1
2
3
4
5
6

Desparafusar a roda.
Levantar o carro com o macaco.
Retirar a roda com o pneu furado.
Colocar o estepe.
Abaixar o carro.
Parafusar a roda.

Algoritmo 4 Ir ao trabalho
1

Acordar cedo.

Ir ao banheiro.

2
4
5
6

Levantar da cama.
Vestir as roupas.
Tomar caf.

Ir para o trabalho.

A Figura 1 ilustra graficamente o fluxo de execuo de um algoritmo. O estado inicial representa o ponto de partida do algoritmo, ou seja, o ponto em que a primeira ao ser executada. A
sequncia lgica define o conjunto de passos, desde o incio, que devem ser seguidos para atingir os
objetivos. imprescindvel que esses passos sejam claros e precisos, caso contrrio, o objetivo pode
no ser atingido. Por ltimo, o estado final determina qual ser o resultado da execuo do algoritmo.

estado inicial

sequncia lgica

estado final

Figura 1 Fluxo de execuo de um algoritmo.

Quando pensamos em programao de computadores, utilizamos os algoritmos para abstrair o raciocnio em um conjunto de passos que devem ser executados pelo computador. Esses
passos solucionam um determinado problema.
Podemos, por exemplo, criar um algoritmo computacional para determinar a soma entre
dois nmeros. Observe o algoritmo a seguir:

U1 ntroduo Construo de Algoritmos

33

Algoritmo 5 Soma entre dois nmeros


1
2
3
4

Receber o primeiro nmero.


Receber o segundo nmero.
Calcular a soma entre o primeiro e o segundo nmero.
Exibir o resultado na tela.

Outro exemplo de algoritmo pode ser elaborado para determinar se uma pessoa pode ou
no votar. Observe:
Algoritmo 6 Votar
1
2
3

Receber a idade.
Se a idade for maior ou igual a 16
exibir "Voc j pode votar."
Se a idade for menor que 16
exibir "Voc no pode votar."

Os exemplos de algoritmos apresentados at o momento utilizam a maneira mais simples de representao, que chamada de descrio narrativa. Alm dessa representao, os
algoritmos tambm podem ser representados por meio de fluxogramas e pseudocdigos (ou
portugol) (ASCENCIO, 2002).
Desse modo, podemos dizer que a descrio narrativa a forma mais simples de elaborao de algoritmos. Esse mtodo tem como objetivo a abstrao de problemas em algoritmos
por meio da utilizao da linguagem natural.
Como j mencionamos, possumos outra maneira de construir algoritmos, que por meio
de fluxogramas. Nesse caso, a abstrao de problemas representada por meio de smbolos
grficos bem definidos, os quais esboam uma ao dentro da sequncia lgica do algoritmo. Os
principais smbolos so ilustrados no Quadro 1. Observe:
Quadro 1 Principais smbolos utilizados na construo de fluxogramas.
SMBOLOS UTILIZADOS NA CONSTRUO DE FLUXOGRAMAS
Smbolo

Significado
Incio ou fim do algoritmo.

Fluxo de dados durante a execuo do algoritmo.

Clculos realizados pelo algoritmo.

Entrada de dados.

Sada de dados.

Tomadas de deciso.
Fonte: adaptado de Ascencio (2002).
Claretiano - Centro Universitrio

34

Algoritmos e Programao

Alm dos smbolos ilustrados no quadro (principais smbolos utilizados na construo de


Fluxogramas), os algoritmos tambm podem ser representados por meio de pseudocdigos,
cuja elaborao segue regras bem definidas para a resoluo de problemas.
Independentemente da forma de elaborao dos algoritmos (descrio narrativa, fluxograma ou pseudocdigo), todas visam construo de programas. Assim, um programa de computador pode ser definido como a traduo de um algoritmo para uma linguagem que apenas o
computador entende, tambm conhecida como "linguagem de programao". A Figura 2 ilustra
o processo de abstrao do raciocnio em algoritmo e a traduo em uma linguagem de programao. Veja:

raciocnio

abstrao

algoritmo

traduo

programa
de
computador

Figura 2 Processo de construo de programas de computador (raciocnio, algoritmo e programa).

Para facilitar o entendimento dos trs tipos de algoritmos, vamos, a seguir, elaborar alguns
exemplos completos utilizando as representaes de descrio narrativa, fluxograma e pseudocdigo. Observe que a mesma situao est representada nos trs tipos de algoritmos.
Algoritmo 7 Somar trs nmeros e apresentar o resultado
Descrio narrativa
1
2
3
4
5

Receber o primeiro nmero.


Receber o segundo nmero.
Receber o terceiro nmero.
Somar os trs nmeros.
Apresentar o resultado obtido com a soma.

U1 ntroduo Construo de Algoritmos

35

Fluxograma
incio

num1, num2 e num3

leitura dos nmeros

soma = (num1+num2+num3)

clculo da soma

soma

exibio do resultado

fim

Figura 3 Fluxograma da soma de trs nmeros.

Pseudocdigo
Cdigo 1
1

algoritmo "soma trs nmeros"

e apresentar o resultado }

{Algoritmo elaborado para somar trs nmeros

4
5

declare

Soma : inteiro

num1, num2, num3 : inteiro

inicio

10
11

escreva("Entre com o primeiro nmero:")

13

escreva("Entre com o segundo nmero:")

12

leia(num1)

14

leia(num2)

15

escreva("Entre com o terceiro nmero:")

16

leia(num3)

17

Soma <- num1+num2+num3

18

escreva("Resultado = ", soma)

19

20

fimalgoritmo

Fim cdigo 1

Algoritmo 8 Calcular a idade de uma pessoa


Descrio narrativa
1
2
3
4

Receber o ano de nascimento de uma pessoa.


Receber o ano atual.
Idade da pessoa igual ao ano atual ano de nascimento.
Apresentar o resultado.
Claretiano - Centro Universitrio

36

Algoritmos e Programao

Fluxograma
incio
leitura dos anos, exemplo:
ano_nascimento = 1990 e
ano_atual = 2010

ano_nascimento,
ano_atual

idade = ano_atual ano_nascimento

idade

clculo da idade
idade = 20 anos

exibio do resultado

fim
Figura 4 Fluxograma do clculo da idade de uma pessoa.

Pseudocdigo
Cdigo 2
1

algoritmo "idade"

declare

2
4

{algoritmo para calcular a idade de uma pessoa}


ano_nascimento: inteiro

5
6
7
8

ano_atual: inteiro
idade: inteiro

inicio

escreva("Informe o ano do seu nascimento: ")

10

leia(ano_nascimento)

11

escreva("Informe o ano atual: ")

12

leia(ano_atual)

13
14
15
16

idade <- ano_nascimento - ano_atual


escreva("Voc tem ", idade, " anos")

fimalgoritmo

Fim cdigo 2

Algoritmo 9 Calcular a mdia entre duas notas e determinar se o aluno foi "Aprovado" ou
"Reprovado"
Descrio narrativa
1
2

Receber a primeira nota.


Receber a segunda nota.

U1 ntroduo Construo de Algoritmos

3
4
5
6

37

Calcular a soma das notas.


Calcular a mdia das notas.
Se a mdia alcanada for maior ou igual a 5,
exibir "Aprovado".
Se a mdia alcanada for menor que 5,
exibir "Reprovado".

Fluxograma

incio

nota1 e nota2

soma = nota1+nota2

mdia

No

mdia = soma/2

Sim

mdia >=5

Aprovado

Reprovado

fim

Figura 5 Fluxograma do clculo da mdia entre duas notas.

Pseudocdigo
Cdigo 3
1
2
3
4
5
6
7
8
9

10
11
12
13

algoritmo "mdia das notas"

{algoritmo para calcular a mdia entre duas notas}


declare

nota1, nota2: real


soma, media: real

inicio

escreva("Informe a primeira nota: ")


leia(nota1)

escreva("Informe a segunda nota: ")


leia(nota2)

14

soma <- nota1 + nota2

16

escreva("Mdia = ", media)

15
17

media <- soma/2

Claretiano - Centro Universitrio

38

Algoritmos e Programao

18

se ( media >= 5 ) entao

20

fimse

19

escreva("Aprovado")

21

se ( media < 5) entao

22

escreva("Reprovado")

23
24
25

fimse

fimalgoritmo

Fim cdigo 3

Algoritmo 10 Determinar o maior nmero


Descrio narrativa
1 Receber o primeiro nmero.
2 Receber o maior nmero.
3 Se o primeiro nmero for maior que o segundo.
O primeiro nmero o maior.
4 Se o segundo nmero for maior que o primeiro.
O segundo nmero o maior.
5 Se o primeiro nmero for igual ao segundo.
Os nmeros so iguais.

Fluxograma

incio

Num1 e Num2

No

No

Num1 = Num2

Num2 > Num1

Sim

Num1 > Num2

Sim

Num1 igual
a Num2

Figura 6 Fluxograma da determinao do maior nmero.

Sim

Num1 o
maior

Num2 o
maior

fim

U1 ntroduo Construo de Algoritmos

39

Pseudocdigo
Cdigo 4
1

algoritmo "maior nmero"

declare

2
4
5
6

{algoritmo para determinar o maior nmero}


num1, num2: inteiro

inicio

escreva("Informe o primeiro nmero:


")
leia(num1)

escreva("Informe o segundo nmero:")

leia(num2)

10
11

se ( num1 > num2 ) ento

13

Fimse

12

escreva("Nmero 1 maior que nmero 2")

14

se ( num2 > num1 ) ento

15

escreva("Nmero 2 maior que nmero 1")

16

Fimse

17

se ( num1 = num2 ) entao

18
19
20

escreva("Os nmeros so iguais")

fimse

fimalgoritmo

Fim cdigo 4

Algoritmo 11 Construir uma calculadora para as operaes bsicas.


As operaes permitidas pela calculadora so: soma (+), subtrao (-), multiplicao (*)
e diviso (/). No caso da diviso, o algoritmo considera que o segundo valor informado sempre
ser diferente de zero, pois, caso contrrio, no possvel realizar a diviso.
Descrio narrativa
1
2
3
4
5
6
7

Receber o primeiro valor.


Receber o segundo valor.
Receber a operao.
Se a operao for igual a soma(+)
exibir a soma do valor1 pelo valor2.
Se a operao for igual a subtrao(-)
exibir a subtrao do valor1 pelo valor2.
Se a operao for igual a multiplicao(*)
exibir a multiplicao do valor1 pelo valor2.
Se a operao for igual a diviso(/)
exibir a diviso do valor1 pelo valor2.

Claretiano - Centro Universitrio

40

Algoritmos e Programao

Fluxograma

incio

valor1, valor2, operacao

operacao = +
valor1
+
valor2

operacao = valor1
valor2

operacao = *
valor1
*
valor2

operacao = /
valor1
/
valor2
operao
invlida

fim

Figura 7 Fluxograma da construo de uma calculadora.

Pseudocdigo
Cdigo 5
1

algoritmo "calculadora"

uma calculadora}

2
4
5
6
7
8
9

10
11
12
13
14

{algoritmo para simular o funcionamento de


declare

valor1, valor2: real


operacao: caractere

inicio

escreva("Informe o primeiro valor: ")


leia(valor1)

escreva("Informe o segundo valor: ")


leia(valor2)

escreva("Informe a operao: ")


leia(operacao)

15

se ( operacao = "+" ) entao

17

senao

16
18
19
20
21

escreva("Resultado = ", valor1+valor2)


se ( operacao = "-" ) entao

escreva("Resultado = ", valor1-valor2)

senao

se ( operacao = "*" ) entao

U1 ntroduo Construo de Algoritmos

22

escreva("Resultado = ", valor1*valor2)

23

senao

24
25

se ( operacao = "/" ) entao

escreva("Resultado = ", valor1/valor2)

26

senao

28

fimse

27
29
30
31
32
33

41

fimse

fimse

fimse

escreva("Operao invlida")

fimalgoritmo

Fim cdigo 5

Nos cinco exemplos apresentados, voc pde perceber, de maneira ilustrativa, o processo
de construo de algoritmos utilizando as trs metodologias: descrio narrativa, fluxograma e
pseudocdigo. Ao longo dos prximos tpicos, voc ter a oportunidade de estudar, detalhadamente, cada um dos conceitos empregados nesses algoritmos.

7. AMBIENTE PARA CONSTRUO DE ALGORITMOS


Para construir e testar seus algoritmos, voc pode utilizar programas especficos. Esses
programas permitem elaborar algoritmos por meio da metodologia do pseudocdigo e visualizar seu funcionamento.
Um dos programas mais utilizados para esse propsito o VisuAlg, que pode ser obtido
gratuitamente na internet. Atualmente, o VisuAlg est na verso 2.0. No Quadro 2, voc encontra algumas opes para download.
Quadro 2 Opes para download.
OPES PARA DOWNLOAD
Programas

Endereos

Apoio Informtica* (Desenvolvedor do VisuAlg)

http://www.apoioinformatica.inf.br/

Superdownloads*

http://www.superdownloads.com.br/busca.aspx?q=visualg

BaixaKi*
*Acesso em: 13 nov. 2012.

http://www.baixaki.com.br/download/visualg.htm

Como instalar e executar o VisuAlg


1) Faa o download do programa VisuAlg ( 897k). Para tanto, acesse o site <http://www.
apoioinformatica.inf.br/visualg/setupv2.exe>.
2) Aps terminar o download, clique duas vezes sobre o arquivo setupv2.exe. Voc visualizar a tela inicial apresentada na Figura 8. Clique no boto Avanar.

Claretiano - Centro Universitrio

42

Algoritmos e Programao

Figura 8 Instalao do programa VisuAlg.

3) Em seguida, selecione o diretrio para instalao do VisuAlg, ou, simplesmente, clique


no boto Avanar.

Figura 9 Instalao do programa VisuAlg continuao.

4) Para aceitar as configuraes padro do Instalador do VisuAlg, clique no boto Avanar at encontrar o boto Instalar. Finalmente, a instalao do VisuAlg ser iniciada.
5) Concluda a instalao, voc poder iniciar o VisuAlg por meio do menu IniciarProgramasApoio InformticaVisuAlg. Observe, na Figura 10, a tela inicial do VisuAlg:

U1 ntroduo Construo de Algoritmos

43

Figura 10 Tela inicial do ambiente para construo de algoritmos VisuAlg.

Escrever e executar algoritmos com o VisuAlg


Vamos, agora, escrever nosso primeiro algoritmo utilizando o VisuAlg. O exemplo utilizado
ser extremamente simples, pois voc dever apenas testar as funcionalidades do ambiente.
Carregue o programa VisuAlg. Para criar novos algoritmos, voc pode utilizar o menu
Arquivo>Novo. Digite o algoritmo descrito no Cdigo 6:
Cdigo 6
1

algoritmo "ol mundo"

inicio

fimalgoritmo

2
4

escreva("Ol Mundo!")

Fim cdigo 6

Nesse momento, a tela do VisuAlg deve ser parecida com a da Figura 11:

Claretiano - Centro Universitrio

44

Algoritmos e Programao

Figura 11 Ambiente para construo de algoritmos VisuAlg - continuao.

Utilize o menu Arquivo>Salvar para armazenar o seu algoritmo recm-criado. Veja que o
VisuAlg salva os algoritmos com a extenso .alg.
Finalmente, executaremos o algoritmo. Para isso, utilize o menu Algoritmo>Executar, ou
simplesmente pressione a tecla de atalho F9. A tela representada na Figura 12 ser exibida. Veja:

Figura 12 Resultado da execuo de um algoritmo no VisuAlg.

U1 ntroduo Construo de Algoritmos

45

Parece simples, no ? Agora, s continuar os seus estudos.


Boa sorte!

8. QUESTES AUTOAVALIATIVAS
Sugerimos que voc procure responder, discutir e comentar as questes a seguir que tratam da temtica desenvolvida nesta unidade.
A autoavaliao pode ser uma ferramenta importante para voc testar o seu desempenho.
Se voc encontrar dificuldades em responder a essas questes, procure revisar os contedos
estudados para sanar as suas dvidas. Esse o momento ideal para que voc faa uma reviso
desta unidade. Lembre-se de que, na Educao a Distncia, a construo do conhecimento ocorre de forma cooperativa e colaborativa; compartilhe, portanto, as suas descobertas com os seus
colegas.
Confira, a seguir, as questes propostas para verificar o seu desempenho no estudo desta
unidade:
1) A lgica de programao fundamental no desenvolvimento de sistemas computacionais, pois por meio da
lgica que os problemas do mundo real so abstrados para o mundo virtual. Dentro desse contexto, responda
as seguintes questes:
a) O que so proposies? Defina e apresente pelo menos cinco exemplos (por exemplo, "O Brasil pentacampeo de futebol").
b) Qual a utilidade dos conectivos lgicos? E qual a relao desses conectivos com as proposies?
c) Apresente pelo menos dois exemplos de expresses do cotidiano que utilizam o conectivo lgico e. Por
exemplo: "Os cachorros possuem quatro patas e os gatos adoram leite".
d) Apresente pelo menos dois exemplos de expresses do cotidiano que utilizam o conectivo lgico ou. Por
exemplo: "Os cachorros possuem quatro patas ou os gatos adoram leite".
e) Apresente pelo menos dois exemplos de expresses do cotidiano que utilizam o conectivo lgico se ... ento. Por exemplo: "Se os cachorros possuem quatro patas, ento os gatos adoram leite".
2) Os principais conectivos lgicos so: negao, conjuno, disjuno, disjuno exclusiva, condicional e bicondicional. Elabore uma tabela contendo o conectivo lgico e seu respectivo smbolo.
3) O que so tabelas-verdade e qual sua relao com a lgica de programao?
4) Qual o nmero de linhas de uma tabela-verdade contendo cinco variveis?
5) Elabore uma tabela-verdade, contendo pelo menos trs variveis, em que o resultado final seja uma tautologia.
Lembre-se que o termo "tautologia" utilizado para definir uma tabela-verdade em que todos os seus resultados so verdadeiros.
6) Utilizando a mesma ideia do exerccio anterior, elabore uma tabela-verdade, contendo pelo menos trs variveis, em que o resultado final seja uma contradio. Uma tabela classificada como contradio quando o seu
resultado possui apenas valores falsos.
7) Utilizando as suas palavras, defina o termo algoritmo.
8) Descreva e apresente um exemplo de um algoritmo representado na forma de descrio narrativa.
9) Descreva e apresente um exemplo de um algoritmo representado na forma de fluxograma.
10) Descreva e apresente um exemplo de um algoritmo representado na forma de pseudocdigo.

9. CONSIDERAES
Chegamos ao final do estudo da primeira unidade de Algoritmos e Programao. Nesta
unidade, voc teve a oportunidade de aprender os principais conceitos a respeito da lgica,
como, por exemplo, as proposies, os conectivos e as tabelas-verdade. Alm disso, pde esClaretiano - Centro Universitrio

46

Algoritmos e Programao

tudar os conceitos fundamentais dos algoritmos e conhecer os trs tipos de representao: a


descrio narrativa, o fluxograma e o pseudocdigo. Por fim, aprendeu a instalar o programa
VisuAlg, que ser utilizado para construo e teste de algoritmos.

10. REFERNCIAS BIBLIOGRFICAS


ABE, J. M.; SILVA FILHO, J. I.; SCALZITTI, A. Introduo lgica para a cincia da computao. So Paulo: Arte & Cincia, 2001.
ASCENCIO, A. F. G. Lgica de programao com Pascal. So Paulo: Makron Books, 1999.
ASCENCIO, A. F. G.; EDILENE, A. V. de. Fundamentos da programao de computadores: algoritmos, Pascal e C/C++. So Paulo:
Prentice Hall, 2002.
GERSTING, J. L. Fundamentos matemticos para a cincia da computao. 5. ed. Rio de Janeiro: Livros Tcnicos e Cientficos
LTC, 2004.

Você também pode gostar