Você está na página 1de 71

1

Algoritmos
PROF. RAFAEL VARGAS MESQUITA DOS SANTOS
ALGORITMOS
CACHOEIRO DE ITAPEMIRIM

2009
2
Licenciatura em Informtica
Governo Federal
Ministro de Educao
Fernando Haddad
Ifes Instituto Federal do Esprito Santo
Reitor
Denio Rebello Arantes
Pr-Reitora de Ensino
Cristiane Tenan Schlittler dos Santos
Diretora do CEAD Centro de Educao a Distncia
Yvina Pavan Baldo
Coordenadoras da UAB Universidade Aberta do Brasil
Yvina Pavan Baldo
Maria das Graas Zamborlini
Curso de Licenciatura em Informtica
Coordenao de Curso
Giovany Frossard Teixeira
Designer Instrucional
Jonathan Toczek Souza
Professor Especialista/Autor
Rafael Vargas Mesquita dos Santos
Catalogao da fonte: Rogria Gomes Belchior - CRB 12/417
S231a Santos, Rafael Vargas Mesquita dos.
Algoritmos. / Rafael Vargas Mesquita dos Santos. Vitria: Instituto Federal de
Educao, Cincia e Tecnologia do Esprito Santo, 2009.
71 p. : il.
1. Sequncia Lgica. 2. Algoritmos. 3. Estrutura de Dados . I.Ttulo.
CDD 005.1
DIREITOS RESERVADOS
Ifes Instituto Federal do Esprito Santo
Av. Vitria Jucutuquara Vitria ES - CEP - (27) 3331.2139
Crditos de autoria da editorao
Capa: Juliana Cristina da Silva
Projeto grfco: Juliana Cristina e Nelson Torres
Iconografa: Nelson Torres
Editorao eletrnica: Duo Translation
Reviso de texto:
Zenas Vieira Romano
COPYRIGHT proibida a reproduo, mesmo que parcial, por qualquer meio, sem autorizao escrita dos
autores e do detentor dos direitos autorais.
3
Algoritmos
Ol, Aluno(a)!
um prazer t-lo conosco.
O Ifes oferece a voc, em parceria com as Prefeituras e com o Gover-
no Federal, o Curso de Licenciatura em Informtica, na modalidade
distncia. Apesar de este curso ser ofertado distncia, esperamos que
haja proximidade entre ns, pois, hoje, graas aos recursos da tecnologia
da informao (e-mails, chat, videoconfernca, etc.), podemos manter
uma comunicao efetiva.
importante que voc conhea toda a equipe envolvida neste curso: coor-
denadores, professores especialistas, tutores distncia e tutores presenciais.
Assim, quando precisar de algum tipo de ajuda, saber a quem recorrer.
Na EaD - Educao a Distncia - voc o grande responsvel pelo sucesso
da aprendizagem. Por isso necessrio que se organize para os estudos e
para a realizao de todas as atividades, nos prazos estabelecidos, confor-
me orientao dos Professores Especialistas e Tutores.
Fique atento s orientaes de estudo que se encontram no Manual do Aluno!
A EaD, pela sua caracterstica de amplitude e pelo uso de tecnologias modernas,
representa uma nova forma de aprender, respeitando, sempre, o seu tempo.
Desejamos a voc sucesso e dedicao!
Equipe do Ifes
4
Licenciatura em Informtica
Fala do Professor
Conceitos importantes. Fique atento!
Atividades que devem ser elaboradas por voc,
aps a leitura dos textos.
Indicao de leituras complemtares, referentes
ao contedo estudado.
Destaque de algo importante, referente ao
contedo apresentado. Ateno!
Refexo/questionamento sobre algo impor-
tante referente ao contedo apresentado.
Espao reservado para as anotaes que voc
julgar necessrias.
ICONOGRAFIA
Veja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos
5
Algoritmos
ALGORITMOS
Cap. 1 - INTRODUO 9
1.1 Sequncia lgica 9
1.2 Instrues 10
1.3 Algoritmo 10
1.4 Linguagem de computador 12
1.5 Linguagem de programao 13
1.6 Programa 14
Cap. 2 - DESENVOLVENDO ALGORITMOS 17
2.1 Pseudo cdigo 17
2.2 Diretrizes para construo de algoritmos 17
2.3 Partes 18
2.4 Exemplo de algoritmo 19
Cap. 3 - DIAGRAMA DE BLOCO 21
3.1 O que um diagrama de bloco? 21
Cap. 4 - VISUALG - ITENS FUNDAMENTAIS 25
4.1 Constantes 25
4.1.1 Constantes numricas 25
4.1.2 Constantes lgicas 26
4.1.3 Constantes literais 26
4.2 Variveis 26
4.2.1 Declarao de variveis 28
4.3 Expresses aritmticas 28
4.3.1 Prioridade das operaes 29
4.4 Expresses relacionais 29
4.5 Expresses lgicas 31
Cap. 5 - VISUALG ITENS COMPLEMENTARES 35
5.1 Comentrios 35
5.2 Funces matemticas 35
5.3 Comandos de entrada e sada 36
5.4 Atribuio 37
6
Licenciatura em Informtica
Cap. 6 - ESTRUTURA DE DECISO E REPETIO 43
6.1 Comandos de deciso 43
6.1.1 Se entao 43
6.1.2 Se ... Entao ... Senao 45
6.1.3 Escolha ... Caso 46
6.2 Comandos de repetio 49
6.2.1 Enquanto x faca 49
6.2.2 Repita ... Ate x 51
6.2.3 Para ... De ... Ate ... Faca 52
Cap. 7 - ESTRUTURA DE DADOS HOMOGNEAS
- VETOR 55
7.1 Estruturas de dados 55
7.2 Variveis compostas homogneas 59
7.3 Variveis compostas unidimensionais vetores 60
7.3.1 Declarao de vetores 61
Cap. 8 - MODULARIZAO 65
8.1 Introduo 65
8.2 Procedimentos e funes 66
8.2.1 Funes 66
8.2.2 Passagem de parmetros por valor e passagem de par-
metros por referncia 67
8.2.3 Procedimentos 68
8.2.4 Uso de funes e procedimentos 68
7
Algoritmos
APRESENTAO
Ol!
Meu nome Rafael Vargas Mesquita, responsvel pela disciplina de
Algoritmos. Atuo como professor do Ifes h trs anos. Sou graduado
em Cincia da Computao (2001) e Mestre em Gesto da Quali-
dade de Sofware (2007), ambos pela UFLA. Minhas reas de inte-
resse so: Qualidade de Sofware, Melhoria de Processo de Sofware,
Medio de Sofware, Anlise e Projeto de Sistemas Orientados a
Objetos.
Nesta disciplina, voc entender alguns conceitos importantes rela-
cionados a Algoritmos.
Os captulos 1, 2, 3 e 4 visam apresentar conceitos iniciais a respei-
to da disciplina. Nos captulos 5 e 6, voc comear a desenvolver
algoritmos simples em uma linguagem alto nvel. Os ltimos cap-
tulos, 7 e 8, so captulos nos quais vamos elaborar algoritmos mais
complexos, com a fnalidade de nos aprofundarmos na lgica de
programao.
O objetivo deste material auxili-lo no estudo da disciplina de Al-
goritmos, por meio de dicas e sugestes que destacam os pontos mais
importantes a serem estudados. Aqui voc encontrar conceitos com
os quais trabalharemos ao longo de todo o Curso.
importante esclarecer que, alm deste material, voc poder en-
contrar na sala virtual alguns tutoriais em vdeo para facilitar a
utilizao da ferramenta Visual utilizada para elaborao de
Algoritmos.
Bons estudos, e sucesso!
Prof. Rafael Vargas Mesquita dos Santos
8
Licenciatura em Informtica
9
Algoritmos
Prezado aluno,
Comearemos o primeiro captulo com uma introduo sobre Al-
goritmos. Para entendermos essa matria precisaremos, primeira-
mente, defnir alguns conceitos fundamentais como: Linguagem de
Computador, Linguagem de Programao, Programa, etc. Em ge-
ral, esta disciplina acumulativa, ou seja, a compreenso dos con-
ceitos estudados em um captulo a base para o entendimento dos
captulos posteriores.
Bom estudo!
A lgica de programao necessria para pessoas que desejam traba-
lhar com desenvolvimento de sistemas e programas. Ela permite defnir
a sequncia lgica para o desenvolvimento.
Ento, o que lgica?
Lgica de Programao a tcnica de encadear pensamentos
para atingir determinado objetivo.
1.1 Sequncia lgica
Os pensamentos podem ser descritos como uma sequncia de instru-
es que devem ser seguidas para se cumprir uma determinada tarefa.
Sequncia Lgica so passos executados at atingir um objetivo
ou soluo de um problema.
INTRODUO
10
Licenciatura em Informtica
1.2 Instrues
Na linguagem comum, entende-se por instrues um conjunto de regras
ou normas defnidas para a realizao ou emprego de algo.
Em Informtica, porm, instruo a informao que indica a um com-
putador uma ao elementar a ser executada.
Convm ressaltar que uma ordem isolada no permite realizar o proces-
so completo. Para isso, necessrio um conjunto de instrues coloca-
das em ordem sequencial lgica.
Por exemplo, se quisermos fazer uma omelete de batatas, precisaremos
colocar em prtica uma srie de instrues: descascar as batatas, bater
os ovos, fritar as batatas etc.
evidente que essas instrues tm que ser executadas em uma ordem
adequada no se pode descascar as batatas depois de frit-las.
Dessa maneira, uma instruo tomada em separado no tem muito sen-
tido; para obtermos o resultado, precisamos colocar em prtica o con-
junto de todas as instrues, na ordem correta.
Instrues so um conjunto de regras ou normas defnidas para
a realizao ou emprego de algo. Em Informtica, o que indica a
um computador uma ao elementar a ser executada.
1.3 Algoritmo
Um Algoritmo formalmente uma sequncia fnita de passos que
levam execuo de uma tarefa.
Podemos pensar em algoritmo como uma receita, uma sequncia de
instrues para se atingir uma meta especfca. Essas tarefas no po-
dem ser redundantes nem subjetivas na sua defnio, devem ser claras
e precisas.
Como exemplos de algoritmos podemos citar os das operaes bsicas
Captulo 1
11
Algoritmos
(adio, multiplicao, diviso e subtrao) de nmeros reais decimais.
Outros exemplos seriam os manuais de aparelhos eletrnicos, como um
videocassete, que explicam passo-a-passo como, por exemplo, gravar
um evento.
At mesmo as coisas mais simples, podem ser descritas por sequncias
lgicas. Por exemplo:
Chupar uma bala.
Pegar a bala
Retirar o papel.
Chupar a bala.
Jogar o papel no lixo.
Fritar Batatas Suponhamos a existncia de uma despensa onde se
encontram as batatas e a existncia de um cesto para se colocar tais ba-
tatas. Suponhamos ainda que o leo, a panela, a faca, o prato e o sal
estejam em um armrio.
Pegar cesto.
Ir dispensa.
Colocar as batatas no cesto.
Trazer o cesto para prximo do fogo.
Pegar a panela e o leo no armrio.
Colocar o avental.
Pegar a faca no armrio.
Descascar as batatas que esto no cesto.
Cortar as batatas em pedaos menores.
Colocar o leo na panela.
Colocar a panela com leo no fogo.
Ligar o fogo.
Aguardar at o leo esquentar.
Colocar as batatas no leo.
Aguardar fritar.
Pegar prato no armrio.
Retirar batatas da panela .
Colocar as batatas no prato.
Pegar o sal no armrio.
Colocar sal na batata.
Jogar cascas da batata no lixo.
Introduo
12
Licenciatura em Informtica
Vamos supor que a colocao do avental seja condicionada cor da roupa
da pessoa que frita as batatas. Se a cor da roupa for clara, o avental colo-
cado, seno, o avental no colocado. Vejamos como fca o algoritmo:
Pegar cesto.
Ir dispensa.
Colocar as batatas no cesto.
Trazer o cesto para prximo do fogo.
Pegar a panela e o leo no armrio.
Se roupa clara, ento Colocar o avental.
Pegar a faca no armrio.
Descascar as batatas que esto no cesto.
Cortar as batatas em pedaos menores.
Colocar o leo na panela.
Colocar a panela com leo no fogo.
Ligar o fogo.
Aguardar at o leo esquentar.
Colocar as batatas no leo.
Aguardar fritar.
Pegar prato no armrio.
Retirar batatas da panela.
Colocar as batatas no prato.
Pegar o sal no armrio.
Colocar sal na batata.
Jogar cascas da batata no lixo.
Ns podemos tambm subdividir certas instrues. Por exemplo, a
instruo:
Descascar as batatas que esto no cesto.
Pode ser mais bem detalhada na forma:
Enquanto houver batatas no descascadas no cesto faa
Descascar uma batata.
1.4 Linguagem de computador
O computador possui uma linguagem prpria, formada por conjuntos es-
pecfcos de zeros e uns (Linguagem Binria ou de Mquina) para a qual
todos os caracteres da linguagem humana so convertidos de modo que o
computador possa entender os comandos que desejamos que ele execute.
Captulo 1
13
Algoritmos
A Linguagem de Mquina a forma de se representar os dois es-
tados (ligado/desligado) da corrente eltrica utilizados nos circui-
tos eletrnicos dos computadores. a nica linguagem inteligvel
pelo computador.
1.5 Linguagem de programao
Como a Linguagem de Mquina de difcil compreenso e mani-
pulao, foram desenvolvidas linguagens intermedirias entre a da
mquina e a do homem; essas linguagens denominam-se Lingua-
gens de Programao.
A Linguagem de Programao um mtodo padronizado para
expressar instrues para um computador.
Dizemos que quanto mais prxima da linguagem humana for a
linguagem de programao ela de alto nvel, caso contrrio
considerado baixo nvel.
Os programas so geralmente, escritos em linguagem de programao e
convertidos para linguagem de mquina atravs de programas especf-
cos. Tais programas se dividem em duas categorias:
Compiladores : convertem o programa escrito em uma lingua-
gem de programao em linguagem de mquina uma nica vez,
a partir da, toda vez que o programa executado ele executa-
do j no formato binrio.
Interpretadores : convertem o programa escrito em uma lin-
guagem de programao em linguagem de mquina toda vez
que ele for executado.
Introduo
14
Licenciatura em Informtica
1.6 Programa
Os Programas de Computadores nada mais so do que algoritmos
escritos numa linguagem de programao (Visualg, Pascal, C, Co-
bol, Fortran, Visual Basic, Java, entre outras) e que so interpreta-
dos e executados por uma mquina, no caso um computador.
Notem que dada essa interpretao rigorosa, um programa , por natu-
reza, muito especfco e rgido em relao aos algoritmos da vida real.
Notar que: Toda linguagem de programao defne um conjunto de ins-
trues que ela consegue converter para linguagem de mquina. Logo
se tivermos uma linguagem que entenda a instruo:
Descascar todas as batatas.
Ele ir executar tal instruo, entretanto normalmente as linguagens de
programao no defnem instrues to especfcas, da necessrio
transformar essa instruo em sub-instrues compreensveis pela lin-
guagem escolhida e passvel de gerao de linguagem de computador.
Vamos resumir o contedo visto neste captulo:
Aprendemos conceitos importantes, como:
Instrues , em informtica, o que indica a um computador
uma ao elementar a executar.
Algoritmo uma sequncia fnita de passos que levam a exe-
cuo de uma tarefa.
Linguagem de Mquina ou de Computador a nica lingua-
gem inteligvel pelo computador.
Linguagem de Programao um mtodo padronizado para
expressar instrues para um computador.
Programa so algoritmos escritos numa linguagem de
programao.
Captulo 1
15
Algoritmos
Atividades
Elabore um algoritmo para tomar banho. 1.
Faa um algoritmo para trocar o pneu de um carro. 2.
Faa um algoritmo para trocar uma lmpada. (Descreva 3.
em detalhes)
Escreva um algoritmo para descrever como voc faz para ir de 4.
sua casa at a escola.
Introduo
16
Licenciatura em Informtica
Captulo 1 Captulo 1
17
Algoritmos
Prezado aluno,
Agora que voc j tem uma viso geral de algoritmos, apresentaremos
neste captulo como desenvolver alguns algoritmos simples.
Os algoritmos desenvolvidos nesta fase da disciplina so bem sim-
ples, todavia no menos importantes, pois a partir do entendimento
destes voc ter uma maior facilidade na compreenso dos demais.
Bom estudo!
2.1 Pseudo cdigo
Os algoritmos so descritos em uma linguagem chamada pseudocdi-
go. Esse nome uma aluso posterior implementao em uma lingua-
gem de programao, ou seja, quando formos programar em linguagem
C, por exemplo, estaremos gerando cdigo em C. Por isso os algoritmos
so independentes das linguagens de programao. Ao contrrio de
uma linguagem de programao, no existe um formalismo rgido de
como deve ser escrito o algoritmo.
O algoritmo deve ser fcil de interpretar e fcil de codifcar. Ou
seja, ele deve ser o intermedirio entre a linguagem falada e a lin-
guagem de programao.
2.2 Diretrizes para construo de algoritmos
Para escrever um algoritmo, precisamos descrever a sequncia de instrues,
de maneira simples e objetiva. Para isso, utilizaremos algumas tcnicas:
Usar somente um verbo por frase.
Imaginar que voc est desenvolvendo um algoritmo para pessoas
que no trabalham com informtica.
DESENVOLVENDO ALGORITMOS
18
Licenciatura em Informtica
Usar frases curtas e simples.
Ser objetivo.
Procurar usar palavras que no tenham sentido dbio.
2.3 Partes
No Captulo anterior, vimos que ALGORITMO uma sequncia lgica
de instrues que podem ser executadas.
importante ressaltar que qualquer tarefa que siga determinado padro
pode ser descrita por um algoritmo, como por exemplo:
COMO FAZER ARROZ DOCE
ou ento
CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE
Entretanto, ao montar um algoritmo, precisamos primeiro dividir o
problema apresentado em trs partes fundamentais (Figura 2-1).
Figura 2-1: Partes Fundamentais.
Onde temos:
ENTRADA: So os dados de entrada do algoritmo. Em algoritmos de
alto nvel, podem ser identifcados por verbos como: Ler, Receber etc.
PROCESSAMENTO: So os procedimentos utilizados para chegar
ao resultado final
SADA: So os dados j processados. Em algoritmos de alto nvel, podem
ser identifcados por verbos como: Retornar, Imprimir, Mostrar etc.
A analogia com o homem pode ser observada na Figura 2-2.
Captulo 2
19
Algoritmos
Figura 2-2: Analogia com o Homem.
2.4 Exemplo de algoritmo
Imagine o seguinte problema:
Calcular a mdia fnal de um aluno da 3 Srie. O aluno realizar quatro
provas: P1, P2, P3 e P4.
Onde:
Mdia Final = (P1 + P2 + P3 + P4) / 4
Para montar o algoritmo proposto, faremos trs perguntas:
a) Quais so os dados de entrada?
R: Os dados de entrada so P1, P2, P3 e P4
b) Qual ser o processamento a ser utilizado?
R: O procedimento ser somar todos os dados de entrada e dividi-
los por 4 (quatro)
c) Quais sero os dados de sada?
R: O dado de sada a mdia fnal
Desenvolvendo Algoritmos
20
Licenciatura em Informtica
Algoritmo
Receba a nota da prova1.
Receba a nota de prova2.
Receba a nota de prova3.
Receba a nota da prova4.
Some todas as notas e divida o resultado por 4.
Mostre o resultado da diviso.
Vamos resumir o contedo visto neste captulo:
Aprendemos que os algoritmos podem ser descritos utilizando-se
uma linguagem denominada Pseudo-Cdigo. Essa linguagem nos
ajuda a entendermos os passos que um algoritmo possui.
Compreendemos algumas regras bsicas que devem ser segui-
das para a construo de algoritmos, como: utilizar apenas um
verbo por frase, etc.
E, principalmente, passamos a entender que podemos dividir nos-
so algoritmo em trs partes: Entrada, Processamento e Sada.
Atividades
1. Identifque os dados de entrada, processamento e sada no al-
goritmo abaixo:
Receba cdigo da pea.
Receba valor da pea.
Receba Quantidade de peas.
Calcule o valor total da pea (Quantidade * Valor da pea).
Mostre o cdigo da pea e seu valor total.
2. Faa um algoritmo para Calcular o estoque mdio de uma
pea, sendo que:
ESTOQUEMDIO = (QUANTIDADE MNIMA + QUANTI-
DADE MXIMA) /2
3. Teste o algoritmo anterior com dados defnidos por voc.
Captulo 2 Captulo 2
21
Algoritmos
3.1 O que um diagrama de bloco?
O Diagrama de Blocos uma forma padronizada e efcaz para represen-
tar os passos lgicos de um determinado processamento.
Com o diagrama podemos defnir uma sequncia de smbolos, com sig-
nifcado bem defnido. Portanto, sua principal funo a de facilitar a
visualizao dos passos de um processamento.
Existem diversos smbolos em um diagrama de bloco. Na Figura 3-1
apresentaremos os principais:
Figura 3-1: Smbolos de um Diagrama de Blocos.
DIAGRAMA DE BLOCO
22
Licenciatura em Informtica
Dentro do smbolo sempre haver algo escrito, pois somente os smbo-
los no nos dizem nada. Veja no exemplo a seguir:
Exemplos de Diagrama de Bloco (Figura 3-2):
CHUPAR UMA BALA CALCULAR MDIA DE 4 NOTAS
Figura 3-2: Exemplos de Diagramas de Blocos.
Captulo 3
23
Algoritmos
Vamos resumir o contedo visto neste captulo:
Aprendemos a construir algoritmos grafcamente, utilizando sm-
bolos padres, os quais juntos constroem o que chamado de Dia-
grama de Blocos. Ser importante este entendimento, pois alguns
algoritmos mais complexos, de captulos posteriores, sero me-
lhor entendidos grafcamente, ou seja, em Diagrama de Blocos.
Atividades
Construa um diagrama de blocos que: 1.
Leia a cotao do dlar.
Leia um valor em dlares.
Converta esse valor para Real.
Mostre o resultado.
Desenvolva um diagrama que: 2.
Leia 4 (quatro) nmeros.
Calcule o quadrado para cada um.
Somem todos.
Mostre o resultado.
Faa testes numricos para testar seu algoritmo. 3.
Identifque nestes algoritmos o que entrada, processamento 4.
e sada.
Diagrama de Bloco
24
Licenciatura em Informtica
Captulo 3
25
Algoritmos
Prezado aluno,
Para compreendermos melhor como elaborar algoritmos que pos-
sam ser executados em um computador, precisamos escolher uma
Linguagem de Programao. A partir desta escolha, poderemos en-
to escrever nossos algoritmos na Linguagem de Programao es-
colhida, fazendo com que estes algoritmos possam ser considerados
Programas de Computador.
Nesta disciplina, a Linguagem de Programao escolhida foi o Vi-
sualg, que uma Linguagem bem prxima da nossa linguagem
natural e, por isso, fcar bem fcil de aprendermos a Lgica de
Programao em si.
A partir deste captulo, os conceitos apresentados sero associados
Linguagem de Programao Visualg.
Bom estudo!
4.1 Constantes
Uma Constante um determinado valor fxo que no se modif-
car ao longo do tempo, durante a execuo do programa.
Uma constante pode ser um nmero (como se conhece na Matemtica),
um valor lgico ou uma sequncia de caracteres com algum signifca-
do para o problema em estudo. No contexto de Algoritmos escritos em
Visualg uma constante pode ser classifcada como sendo numrica (in-
teira ou real), lgica ou literal.
4.1.1 Constantes numricas
A representao de uma constante numrica nos algoritmos feita no sis-
tema decimal, podendo ser um nmero com ou sem parte fracionria.
VISUALG - ITENS
FUNDAMENTAIS
26
Licenciatura em Informtica
Exemplos:
33
44,21
-4
comum a representao de constantes com parte exponencial, isto ,
um fator de 10 elevado a um expoente inteiro.
Exemplos:
44,17 X 10
5

22,35 X 10
-1

4.1.2 Constantes lgicas
um valor lgico, isto , s pode ser falso ou verdadeiro.
4.1.3 Constantes literais
Uma constante deste tipo pode ser qualquer sequncia de caracteres (li-
terais, dgitos ou smbolos especiais) que formem um literal com algum
signifcado para o problema em estudo.
Para que no ocorra confuso na identifcao de constantes literais elas
sero colocadas entre aspas.
Exemplos:
JOO DE DEUS
MK3227
23/02/2006
4.2 Variveis
Na Matemtica, uma varivel a representao simblica dos elementos
de certo conjunto.
Na Informtica, uma Varivel um espao de memria em uma
determinada posio, cujo contedo pode variar ao longo do tem-
po durante a execuo de um programa, mas a cada instante existe
um nico valor.
Captulo 4
27
Algoritmos
Toda varivel defnida por um nome ou identifcador. Um identifca-
dor uma sequncia de caracteres alfanumricos vlida na nomeao
de variveis. Nos compiladores atuais, uma sequncia validade de carac-
teres alfanumricos defnida como:
O primeiro caractere deve ser obrigatoriamente uma letra.
Os caracteres seguintes devem ser letras ou dgitos, no sendo per-
mitido o uso de caracteres especiais.
No devemos utilizar acentos (, ^, ~). Isso porque as lingua-
gens de programao classificam estes smbolos como carac-
teres especiais.
Exemplos:
Identifcadores vlidos
A
NOTA
X5
A33C423
FITTKM
nome_da_cidade
Identifcadores No Vlidos
5B
(14)B5
B(B)
X Y
5(KM32)
Considerando a linguagem Visualg importante entender que: o
caractere underline (_) pode ser utilizado em identifcadores. J
o caractere hfen (-) no deve ser utilizado.
Visualg - Itens Fundamentais
28
Licenciatura em Informtica
4.2.1 Declarao de variveis
No Visualg, as variveis s podem armazenar valores de um mesmo
tipo, podendo ser classifcadas em numricas, lgicas e literais, assim
como as constantes.
A declarao de variveis deve ser feita da seguinte forma:
<Lista de Identifcadores > : <Nome do Tipo >
Onde:
Lista de Identiciadores: a lista de nomes escolhidos para as variveis,
que devem estar separados por vrgula.
Nome do Tipo: um dos quatro tipos que indicam o tipo da varivel:
inteiro, real, logico ou literal.
Exemplos:
idade: inteiro.
peso, altura, nota: real.
cidade, nome, sobrenome : literal.
fag, teste, maior_de_18 : logico.
Observe que o nome dos tipos deve estar sem acentos. Exemplos:
inteiro, real, literal e logico.
No Visualg a palavra literal pode ser substituda por caractere,
ambos representam o mesmo tipo.
4.3 Expresses aritmticas
Expresso aritmtica aquela que utiliza operadores aritmticos e cujos
operandos so constantes e/ou variveis do tipo numrico.
So operadores aritmticos: Adio, Subtrao, Multiplicao, Diviso,
Potenciao e Radiciao.
A tabela abaixo mostra exemplos de utilizao de operadores na mate-
mtica em comparao com a utilizao no Visualg. Para tal, considere
A e B como sendo variveis numricas.
Captulo 4
29
Algoritmos
OPERADOR MATEMTICA
(EXEMPLO)
VISUALG
(EXEMPLO)
Adio A + B A + B
Subtrao A B A B
Multiplicao A x B A * B
Diviso A / B A / B
Potenciao A
B
A ^ B
Radiciao
Y
X X ^ (1/Y)
Exemplos de Expresses Aritmticas em Visualg:
X + Y
X Y
2 * NOTA
NOTA ^ 2
4.3.1 Prioridade das operaes
Assim como na Matemtica os operadores aritmticos obedecem a se-
guinte ordem:
1 Potenciao e Radiciao.
2 Multiplicao e Diviso.
3 Adio e Subtrao.
Para mudar a precedncia podemos, como na Matemtica, utilizar parnteses.
Colchetes e Chaves no devem ser utilizados nas expresses arit-
mticas, pois so usados nos algoritmos com outras fnalidades.
4.4 Expresses relacionais
Expresses Relacionais so aquelas que utilizam operadores relacio-
nais, cujos operandos em uma relao so do mesmo tipo, e cujo
resultado do tipo lgico.
So operadores relacionais (Tabela 4-1):
Visualg - Itens Fundamentais
30
Licenciatura em Informtica
DESCRIO SMBOLO
IGUAL A =
DIFERENTE DE < >
MAIOR QUE >
MENOR QUE <
MAIOR OU IGUAL A > =
MENOR OU IGUAL A < =
Tabela 4-1: Operadores Relacionais.
Exemplo:
Suponhamos duas variveis do tipo numrico:
A = 50
B = 30
Ao fazermos comparaes entre elas, teramos a seguinte soluo
(Tabela 4-2):
EXPRESSO RESULTADO
A = B FALSO
A <> B VERDADEIRO
A > B VERDADEIRO
A < B FALSO
A >= B VERDADEIRO
A <= B FALSO
Tabela 4-2: Soluo para A = 50 e B = 30.
Fazendo uma pequena referncia aos diagramas de blocos, o smbolo
que indica os operadores relacionais (Figura 4-1):
Figura 4-1: Smbolo do operador Relacional.
Vejamos, ento, alguns exemplos de uso. Na Figura 4-2, temos a com-
parao de duas variveis, na Figura 4-3 temos a comparao de uma
varivel numrica com uma constante numrica e na Figura 4-4 temos
a comparao de uma varivel (literal) com uma constante literal.
Captulo 4
31
Algoritmos
Figura 4-2: Comparando duas variveis.
Figura 4-3: Comparando uma varivel
(numrica) com uma constante numrica.

Figura 4-4: Comparando uma varivel
(literal) com uma constante literal.
4.5 Expresses lgicas
Expresses lgicas so aquelas que utilizam operadores lgicos e cujos
operandos so expresses relacionais, pois seus resultados so do tipo
lgico, constantes e/ou variveis do tipo lgico. Toda expresso lgica
tem como resultado um valor lgico VERDADEIRO ou FALSO.
Visualg - Itens Fundamentais
32
Licenciatura em Informtica
Os operadores lgicos so (Tabela 4-3):
E
OU
NO
Tabela 4-3: Operadores Lgicos.
E: Uma expresso lgica E verdadeira se todos os seus operandos
possurem o valor VERDADEIRO.
OU: Uma expresso lgica OU verdadeira se algum de seus operan-
dos possuir o valor VERDADEIRO.
NAO: Uma expresso lgica NAO verdadeira se seu operando FALSO.
A Tabela 4-4 ilustra o comportamento dos operadores lgicos:
1 VALOR OPERADOR 2 VALOR RESULTADO
VERDADEIRO E VERDADEIRO VERDADEIRO
VERDADEIRO E FALSO FALSO
FALSO E VERDADEIRO FALSO
FALSO E FALSO FALSO
VERDADEIRO OU VERDADEIRO VERDADEIRO
VERDADEIRO OU FALSO VERDADEIRO
FALSO OU VERDADEIRO VERDADEIRO
FALSO OU FALSO FALSO
VERDADEIRO NAO FALSO
FALSO NAO VERDADEIRO
Tabela 4-4: Comportamento dos Operadores Lgicos.
Exemplo:
Suponha que temos 3 variveis A = 50, B = 80 e C = 10
Os resultados das expresses seriam conforme a Tabela 4-5:
EXPRESSES RESULTADO
A = B E B > C FALSO
A <> B OU B < C VERDADEIRO
A > B NAO VERDADEIRO
A < B E B > C VERDADEIRO
A >= B OU B = C FALSO
A <= B NAO FALSO
Tabela 4-5: Resultado das expresses de acordo com o exemplo dado.
Captulo 4
33
Algoritmos
Vamos resumir o contedo visto neste captulo:
Neste captulo defnimos:
Constante: um determinado valor fxo que no se modifcar ao
longo do tempo, durante a execuo do programa.
Varivel: um espao de memria em uma determinada posio,
cujo contedo pode variar ao longo do tempo durante a execuo
de um programa, mas a cada instante existe um nico valor.
Vimos tambm que podemos realizar expresses com estas cons-
tantes e variveis. Os tipos de expresses so: Aritmticas, Rela-
cionais e Lgicas.
Atividades
1. Identifque o tipo das constantes utilizando a seguinte legenda:
1 Constante Numrica
2 Constante Lgica
3 Constante Literal
a. ( ) 33 h. ( ) falso
b. ( ) 33 i. ( ) verdadeiro
c. ( ) Constante Lgica j. ( ) falso
d. ( ) Constante Literal k. ( ) 123KO
e. ( ) Constante Numrica l. ( ) 123verdadeiro123
f. ( ) 5878987,23 m. ( ) 9999999
g. ( ) verdadeiro n. ( ) fm
2. Assinale X nos identifcadores vlidos:
a. ( ) VALOR h. ( ) AHHHH
b. ( ) 33 i. ( ) AHHHH!!!
c. ( ) 33 j. ( ) SALARIO-LQUIDO
d. ( ) X2 k. ( ) NOTA*DO*ALUNO
e. ( ) 2X l. ( ) m{23}
f. ( ) x2 m. ( ) sacada256
g. ( ) 2X n. ( ) 256sacada
o. ( ) NOMEDAEMPRESA
Visualg - Itens Fundamentais
34
Licenciatura em Informtica
3. Supondo que temos as variveis SALARIO, IR e SALLIQ e
que os valores esto representados na tabela abaixo. Aplicando as
expresses na tabela qual o resultado lgico obtido:
SALARIO IR SALLIQ EXPRESSO V ou F
100,00 0,00 100 (SALLIQ >= 100,00)
200,00 10,00 190,00 (SALLIQ <190,00)
300,00 15,00 285,00 (SALLIQ = SALARIO - IR
4. Sabendo que A = 3, B = 7 e C = 4, informe se as expresses
abaixo so V (verdadeiro) ou F (falso).
a. ( ) ( A + B ) > C h. ( ) (B^2 A^2 2 ) >= 49
b. ( ) B >= ( A + 2 ) i. ( ) ( C^(1/2) + B A/2 ) < 15
c. ( ) C = ( B A ) j. ( ) NOT ( C^2 = (A^2 + B) )
d. ( ) ( B A ) <= C k. ( ) NOT ( C^2 <> (A^2 + B) )
e. ( ) ( B + A ) <= C l. ( ) NOT ( NOT ( NOT ( NOT (
A > B ) ) ) )
f. ( ) ( C+ A) > B
g. ( ) ( B^2 A^2 ) >= 39
5. Repita o exerccio anterior com A = 1, B = 2 e C = 16.
a. ( ) ( A + B ) > C h. ( ) (B^2 A^2 2 ) >= 49
b. ( ) B >= ( A + 2 ) i. ( ) ( C^(1/2) + B A/2 ) < 15
c. ( ) C = ( B A ) j. ( ) NOT ( C^2 = (A^2 + B) )
d. ( ) ( B A ) <= C k. ( ) NOT ( C^2 <> (A^2 + B) )
e. ( ) ( B + A ) <= C l. ( ) NOT ( NOT ( NOT ( NOT (
A > B ) ) ) )
f. ( ) ( C+ A) > B
g. ( ) ( B^2 A^2 ) >= 39
Captulo 4
35
Algoritmos
Caro aluno,
At o presente momento, abordamos conceitos fundamentais com
relao a Linguagem de Programao Visualg.
Vamos continuar aprofundando nossos conhecimentos sobre essa
Linguagem de Programao neste captulo.
Leia com ateno todas as novas informaes aqui contidas, pois
comearemos a programar de verdade.
Depois de entendermos os conceitos vamos, de fato, utilizar a Ferra-
menta de Programao Visualg.
Bom estudo!
5.1 Comentrios
Quando implementamos um algoritmo, fundamental a preocupao com
sua clareza (facilidade de entendimento). Um comentrio uma observa-
o que se coloca no cdigo, de forma a possibilitar seu entendimento.
No Visualg, os comentrios so representados por um texto aps //.
No seguinte exemplo a declarao das variveis foi comentada de forma
a explicar para que serve cada varivel:
MATRICULA: inteiro // nmero da matricula do aluno
NOTA: real // nota do aluno
CODIGO: inteiro // cdigo do curso
5.2 Funces matemticas
Alm dos operadores aritmticos normalmente utilizados, podemos
usar funes disponibilizadas pela linguagem Visualg, que comumente
esto presentes em muitas linguagens (Tabela 5.1):
VISUALG ITENS
COMPLEMENTARES
36
Licenciatura em Informtica
NOME RESULTADO
log ( X ) Logaritmo na base 10 de X
abs ( X ) Valor Absoluto de X
int ( X ) Parte inteira de um nmero fracionrio
X div Y Quociente inteiro da diviso de X por Y
X mod Y Resto da diviso de X por Y
sen ( X ) Funo seno aplicada ao argumento X (em radianos)
cos ( X ) Funo co-seno aplicada ao argumento X (em radianos)
tan ( X ) Funo tangente aplicada ao argumento X (em radianos)
Tabela 5-1: Funes do Visualg.
Exemplos de Funes em Visualg:
Sendo A, B, X, Y variveis do tipo numrico, quais os resultados fornecidos
por cada uma das seguintes funes, onde A = 10, B = 3 e X = 2.5 e Y = 1.2.
A div B = 10 div 3 = 3
A mod B = 10 mod 3 = 1
abs ( B A ) = abs ( 3 10 ) = abs ( -7 ) = 7
int ( 4 * Y ) = int ( 4 * 1.2 ) = int ( 4.8 ) = 4
5.3 Comandos de entrada e sada
Precisamos de alguns comandos para entrada/sada de dados nos algo-
ritmos. Para tanto, utilizaremos os seguintes comandos:
Entrada:
leia (<Nome da Varivel>)
Onde:
leia: uma palavra-chave.
( ): Os parnteses delimitam o identifcador da varivel.
<Nome da Varivel>: o nome da varivel na qual ser armazenado o
valor proveniente do meio de entrada.
importante ressaltar que as linguagens de programao normal-
mente utilizadas obrigam a leitura varivel a varivel.
Captulo 5
37
Algoritmos
Sada:
escreva (<Lista de variveis>)
Onde:
escreva: uma palavra chave.
( ): Os parnteses delimitam os identifcadores das variveis
<Lista de variveis>: so os nomes das variveis, separados por vrgula,
das quais sero obtidos os valores a serem escritos.
Voc ainda pode utilizar uma variao do comando escreva na
Linguagem de Programao Visualg: escreval.
O comando escreval tem a mesma finalidade que o comando
escreva. Todavia, aps mostrar o valor especificado na tela, o
computador salta uma linha para separar as prximas exibi-
es de valores na tela.
Exemplos de Comandos de Entrada e Sada:
leia (A)
leia (NOME)
escreva (A)
escreva (NOME, SOBRENOME, TECEIRONOME)
5.4 Atribuio
O comando responsvel pela colocao de um valor em uma varivel o co-
mando de atribuio. Tal comando pode ser apresentado da seguinte forma:
Identifcador Expresso
Onde:
Identifcador: o nome da varivel qual est sendo atribudo o valor.
: o smbolo de atribuio
Visualg - Itens Complementares
38
Licenciatura em Informtica
Expresso: pode ser uma expresso aritmtica, expresso lgica ou expres-
so literal, de cuja avaliao obtido o valor a ser atribudo varivel.
Exemplo de Atribuio:
NOTA 5
MEDIA NOTA + 3
Vamos resumir o contedo visto neste captulo: Neste captulo,
aprendemos sobre alguns comandos da linguagem Visualg muito
importantes:
Descrio No Visualg
Comentrios //
Comandos de Entrada leia
Comandos de Sada escreva
Atribuio
Para fazer este exerccio nmero dois (2) muito importante lem-
brar que:
2 ^ (1/2) =
2
2
2 ^ (1/3) =
3
2
Atividades
1. Suponha as seguintes variveis:
SOMA, NUMERO, CONT: real
NOME, COR, DIA, MS, ANO: literal
TESTE, CODIGO, TUDO: logico
Determine que atribuies so vlidas e escreva nas que no so o
motivo de no serem:
a. NOME 5
b. SOMA NUMERO + 2 * CONT
c. TESTE CODIGO OR CONT^2 <> SOMA
d. TUDO SOMA
e. COR Preto CONT^(1/2)
f. CONT CONT + 1
Captulo 5
39
Algoritmos
g. NUMERO *abC*
h. DIA SEGUNDA FEIRA
i. MS AGOSTO
j. ANO 2006
k. SOMA + 2 CONT^2 NUMERO^(1/2)
l. CONT NOME >= CODIGO
2. Determine os valores obtidos por cada uma das expresses arit-
mticas a seguir:
Suponha as seguintes instrues antes das expresses aritmticas:
P, Q, R: inteiro
S: real
P 2
Q 3
R 12
S 4.5
a. 100 * (Q div P) + R
b. P * (R mod 5) - Q/2
c. abs ( S - R ) + 100 * (Q div P) + R - P * (R mod 5) - Q/2
d. ( R + P^2 ) ^ (1/2) + int( S )
e. ( int(S) mod (P + 1)) - Q * R
f, 1 + ( ( P ^3 + 2 * R ) ^ ( 1/5 ) ) - int (S - 1)
g. abs ( int ( abs ( S - R ) ) )
h. int (abs ( S - R ) ) )
i. 1 + (int(R+S) div (P)) * int(2 * P * Q - R)
j. abs ( int ( abs ( R - S ) ) )
k. int ( abs ( R - S ) )
l. P + abs ( 2.9 + int ( 0.3 + S ) * 2 )
3. Determine o que ser escrito pelo comando ESCREVA:
A) Supondo que o comando leia ler informaes a partir do teclado e
que as informaes digitadas sero as seguintes:
INFORMATICA, 35
algoritmo Cap05-3.a
var
N, P: literal
X, A: real
inicio
Visualg - Itens Complementares
40
Licenciatura em Informtica
X <- 10
leia(N)
leia(A)
X <- X + A
P <- N
escreva(P, X)
X <- X + A
escreva(X)
A <- X
escreva(N, X, A)
fmalgoritmo
Utilize as tabelas abaixo para responder o exerccio 3.A:
Variveis
N P X A
Comando escreva
1
2
3
B) Supondo que o comando leia ler informaes a partir do te-
clado e que as informaes digitadas sero as seguintes:
JOAO, SILVA, SILVA, 35, 47, 26, VERDADEIRO, FALSO,
VERDADEIRO
algoritmo Cap05-3.b
var
NOME, SOBRENOME, TERCEIRONOME: literal
NUM1, NUM2, NUM3: inteiro
FLAG1, FLAG2, FLAG3: logico
inicio
leia(NOME)
leia(SOBRENOME)
leia(TERCEIRONOME)
leia(NUM1)
leia(NUM2)
leia(NUM3)
leia(FLAG1)
leia(FLAG2)
leia(FLAG3)
FLAG1 <- ( SOBRENOME = TERCEIRONOME )
Captulo 5
41
Algoritmos
FLAG2 <- ( NUM2 <= NUM1 + NUM3 )
FLAG3 <- FLAG1 AND FLAG2 OR FLAG3
NUM1 <- NUM2 + NUM1 - (NUM3 mod 3)
NUM2 <- NUM1 + (NUM3 div 3)
NUM3 <- 10
TERCEIRONOME <- NOME
NOME <- SOBRENOME
FLAG3 <- ( NOME = TERCEIRONOME )
escreva(NOME, SOBRENOME, TERCEIRONOME)
escreva(NUM1, NUM2, NUM3)
escreva(FLAG1, FLAG2, FLAG3)
fmalgoritmo
Utilize as tabelas abaixo para responder o exerccio 3.B:
Variveis
N
O
M
E
S
O
B
R
E
N
O
M
E
T
E
R
C
E
I
R
O
N
O
M
E
N
U
M
1
N
U
M
2
N
U
M
3
F
L
A
G
1
F
L
A
G
2
F
L
A
G
3
Comando escreva
1
2
3
Visualg - Itens Complementares
42
Licenciatura em Informtica
Para facilitar o entendimento dos algoritmos descritos na apostila,
daqui para frente, iremos colorir os cdigos de acordo com o pa-
dro de cores da ferramenta Visualg. Cada cor tem um signifcado
especfco:
Elementos Cores Exemplo
Palavras Especiais Azul algoritmo
Palavras-Chave Azul Escuro leia
Comentrios Verde // Teste
Constantes Vermelho 1 , Teste
Tipo de Dados Vermelho Escuro inteiro
Texto em Geral Preto nome
Obs.: Palavras Especiais e Palavras-Chave (ou Palavras Reserva-
das) so palavras com uma fnalidade especfca dentro da lingua-
gem de programao utilizada (no nosso caso, Visualg), as quais
no podem ser utilizadas como identifcadores de variveis.
Captulo 5
43
Algoritmos
Prezado programador (agora j posso te chamar assim),
Fizemos nossos primeiros programas utilizando a Linguagem de
Programao Visualg.
Neste captulo, sero abordados os importantssimos conceitos de
Comandos de Deciso e Comandos de Repetio.
A partir de agora, voc vai entender que nem todas as linhas de cdigo
de nosso programas precisam ser executadas pelo computador. Ou seja,
vai aprender que por meio de Comandos de Deciso voc pode criar
diferentes possibilidades de execuo de um determinado programa.
Alm disso, por meio de Comandos de Repetio, compreender que
um certo trecho do cdigo de um programa pode ser executado re-
petidamente um determinado nmero de vezes.
Bom estudo!
6.1 Comandos de deciso
Os comandos de deciso ou de desvio fazem parte das tcnicas de pro-
gramao que conduzem a estruturas de programas que no so total-
mente sequenciais. Com as instrues de SALTO ou DESVIO pode-se
fazer com que o programa proceda de uma ou outra maneira, de acordo
com as decises lgicas tomadas em funo dos dados ou resultados
anteriores. As principais estruturas de deciso so:
se entao
se entao senao
escolha caso
6.1.1 Se entao
A estrutura de deciso se normalmente vem acompanhada de um co-
mando, ou seja, se determinada condio for satisfeita pelo comando
se ento execute determinado comando.
Imagine um algoritmo em que determinado aluno somente estar aprovado se
sua mdia for maior ou igual a 5.0, veja no exemplo de algoritmo como fcaria.
ESTRUTURA DE DECISO E
REPETIO
44
Licenciatura em Informtica
se (media >= 5.0) entao
escreva(Aluno Aprovado)
fmse
O comando de deciso caracterizado por:
se (expresso lgica) entao
comandos
fmse
Onde:
Expresso lgica tem como resultado um valor lgico VERDA-
DEIRO ou FALSO.
Comandos so linhas de cdigo no algoritmo.
Em diagrama de blocos, fcaria conforme Figura 6-1:
Figura 6-1: Diagrama de Blocos se entao.
Vejamos outro exemplo com um algoritmo completo:
O algoritmo a seguir escreve uma mensagem caso o terceiro nmero
lido seja maior que a soma dos outros dois nmeros lidos.
algoritmo Exemplo se entao
var
NUM1, NUM2, NUM3: real
inicio
leia(NUM1)
Captulo 6
45
Algoritmos
leia(NUM2)
leia(NUM3)
se (NUM1 + NUM2 < NUM3) entao
escreva (O terceiro nmero maior que a soma dos
outros dois)
fmse
fmalgoritmo
6.1.2 Se ... Entao ... Senao
A estrutura de deciso se/entao/senao, funciona exatamente como a
estrutura se, com apenas uma diferena, em se somente podemos
executar comandos caso a condio seja verdadeira, diferente de se/
senao pois sempre um comando ser executado independente da con-
dio, ou seja, caso a condio seja verdadeira, seu comando ser exe-
cutado; caso contrrio, o comando da condio falsa ser executado.
Em algoritmo o exemplo da seo anterior fcaria assim:
se media >= 5.0 entao
escreva(Aluno Aprovado)
senao
escreva(Aluno Reprovado)
fmse
Em diagrama seria conforme Figura 6-2 .
Figura 6-2: Diagrama de Blocos se entao senao.
No exemplo acima, est sendo executada uma condio que, se for ver-
dadeira, executa o comando APROVADO, caso contrrio executa o
segundo comando REPROVADO. Podemos tambm testar outras
condies dentro de uma mesma condio. Veja a Figura 6-3.
Estrutura de Deciso e Repetio
46
Licenciatura em Informtica
Figura 6-3: Diagrama de Blocos se entao senao se.
Neste caso, poderamos utilizar o seguinte trecho de algoritmo para re-
presentar o diagrama de blocos acima:
se media >= 5.0 entao
se media >= 7.0
escreva(Aluno Aprovado)
senao
escreva(Aluno Necessita Fazer Outra Avaliao)
fmse
senao
escreva(Aluno Reprovado)
fmse
6.1.3 Escolha ... Caso
A estrutura de deciso escolha ... caso utilizada para testar na con-
dio uma nica expresso que produz um resultado, ou, ento, o valor
de uma varivel em que est armazenado um determinado contedo.
Compara-se, ento, o resultado obtido no teste com os valores forneci-
dos em cada clusula Caso.
No exemplo do diagrama de blocos da Figura 6-4, uma varivel Op
recebida e seu contedo testado. Caso uma das condies seja satisfei-
ta, atribudo para a Varivel Ttulo a constante literal Opo X, caso
contrrio atribuda a constante literal Opo Errada.
Captulo 6
47
Algoritmos
Figura 6-4: Diagrama de Blocos escolha caso.
Neste caso, poderamos utilizar o seguinte trecho de algoritmo para re-
presentar o diagrama de blocos anteriormente mostrado:
algoritmo
titulo ;
leia op
escolha op
caso 1 titulo opo 1
caso 2 titulo opo 2
caso 3 titulo opo 3
Estrutura de Deciso e Repetio
48
Licenciatura em Informtica
caso 4 titulo opo 4
caso 5 titulo opo 5
outro caso titulo opo errada
fmescolha
escreva titulo
fmalgoritmo
Atividades
Crie um algoritmo que receba pelo teclado o nome de um 1.
Funcionrio e seu salrio bruto. Se o salrio for acima de R$
1.000,00, calcule 11% de desconto de INSS; se no, calcule 9%.
Ao fnal, exiba o nome do funcionrio, o salrio bruto e o sa-
lrio com o desconto de INSS.
Crie um algoritmo que receba pelo teclado o nome de um alu- 2.
no e trs notas. Ao fnal, dever ser exibido o nome do aluno,
sua mdia e o resultado (se for acima ou igual a 6, o aluno
estar aprovado; se no for, estar reprovado).
Usando o algoritmo do item 2, altere o resultado para: 3.
Mdia <=3, reprovado, Mdia < 6, recuperao e M-
dia >=6, aprovado.
Crie um algoritmo em que, dada a tabela a seguir, calcula o va- 4.
lor de desconto a ser concedido para um determinado cliente,
de acordo com o valor da compra. O algoritmo dever receber
pelo teclado o nome do cliente e o valor total da compra.
Valor a compra % de desconto
At R$ 1.000,00 5
Entre R$ 1.000,00 a R$
5.000,00
10
Acima de R$ 5.000,00 15
Crie um algoritmo que calcule o valor a ser pago de acordo 5.
com a quantidade de m de um tecido no valor de R$ 25,00. Se
a quantidade de metros for acima de 10 m, o valor do m pas-
sa a ser R$ 23,00. Ao fnal, o algoritmo dever exibir a quanti-
dade de m, o valor pago pelo m e o valor a ser pago.
Captulo 6
49
Algoritmos
Usando a linguagem Visualg, desenvolva um programa 6.
que leia dois nmeros inteiros e execute a operao que o
usurio deseja realizar. O usurio poder escolher entre as
operaes: somar, subtrair, multiplicar ou dividir. Ao fnal,
o programa dever exibir o resultado da operao. Utilize
o comando escolha-caso.
Explicando:
Exibiremos, para o usurio, as operaes disponveis e so-
licitaremos os dois nmeros e a opo, assim:
Digite 1 para somar.
Digite 2 para subtrair.
Digite 3 para multiplicar.
Digite 4 para dividir.
Primeiro nmero: (leia o nmero 1)
Segundo nmero: (leia o nmero 2)
Digite a opo: (leia a opo)
Assumindo que o usurio digitou os nmeros 20 e 40 e a
opo 1, o resultado exibido ser 60.
Obs.: Se o usurio digitar um valor invlido para opo
deve ser exibido uma mensagem: Opo Invlida!
6.2 Comandos de repetio
A estrutura de repetio permite que uma sequncia de comandos seja
executada repetidamente at que uma determinada condio de inter-
rupo seja satisfeita.
Trabalharemos com modelos de comandos de repetio:
enquanto x faca
repita ... ate x
para ... de ... ate ... faca
6.2.1 Enquanto x faca
Neste caso, o bloco de operaes ser executado enquanto a condi-
o x for verdadeira. O teste da condio ser sempre realizado
antes de qualquer operao. Enquanto a condio for verdadeira
o processo se repete. Podemos utilizar essa estrutura para traba-
lharmos com contadores. Em diagrama de bloco a estrutura a
seguinte (Figura 6-5):
Estrutura de Deciso e Repetio
50
Licenciatura em Informtica
Figura 6-5: Diagrama de Blocos
enquanto x faca.
A Figura 6-6 mostra um exemplo em Diagrama de Blocos. Em seguida,
temos o algoritmo.
Figura 6-6 Diagrama de Blocos
Exemplo: enquanto x faca.
Captulo 6
51
Algoritmos
algoritmo Exemplo enquanto x faca
var j: inteiro
inicio
j <- 0
enquanto j <= 100 faca
j <- j + 1
fmenquanto
fmalgoritmo
6.2.2 Repita ... Ate x
Neste caso, executa-se primeiro o bloco de operaes e somente depois
realizado o teste de condio. Se a condio for verdadeira, o fuxo
do programa continua normalmente. Caso contrrio, so processados
novamente os comandos antes do teste da condio.
Em diagrama de Bloco (Figura 6-7).
Figura 6-7 Diagrama de Blocos
repita ... ate x.
Estrutura de Deciso e Repetio
52
Licenciatura em Informtica
A Figura 6-8 mostra um exemplo em Diagrama de Blocos. Em seguida,
temos o algoritmo.
Figura 6-8 Diagrama de Blocos
Exemplo: repita ... ate x.
algoritmo Exemplo repita ... ate x
var j: inteiro
inicio
j <- 0
repita
j <- j + 1
ate j > 100
fmalgoritmo
6.2.3 Para ... de ... ate ... faca
O comando para ... de ... ate ... faca possui a caracterstica de ser execu-
tado uma quantidade fxa de vezes de acordo com um incremento fxo.
No caso do comando na forma padro, esse incremento 1 (um).
O comando para ... de ... ate ... faca pode ser substitudo por outros
comandos de repetio com certa facilidade.
Captulo 6
53
Algoritmos
Vejamos o exemplo:
Sem o uso de para ... de ... ate ... faca
algoritmo Exemplo repita ... ate x
.
.
j <- 0
repita
j <- j + 1
ate j > 100
..
Com o uso de para ... de ... ate ... faca
algoritmo Ex. para...de...ate...faca
var j: inteiro
inicio
para j de 0 ate 100 faca
fmpara
fmalgoritmo
Caso voc queira utilizar o comando para ... de ... ate ... faca com
um incremento diferente de 1 (um), por exemplo dois (dois), voc
deve fazer da seguinte forma:
para j de 1 ate 100 passo 2 faca
fmpara
Onde:
passo o comando que deve ser utilizado para indicar que a varivel
j deve ser atualizada com um incremento diferente de 1 (um).
2 (dois) o nmero colocado depois do comando passo, com a
fnalidade de especifcar que o incremento para a varivel j deve
ser de dois em dois.
Estrutura de Deciso e Repetio
54
Licenciatura em Informtica
Vamos resumir o contedo visto neste captulo:
Neste captulo, aprendemos sobre dois tipos importantssimos de
comandos que nos ajudaro (e muito!) a programar:
Comandos de Deciso:
se entao
se entao senao
escolha caso
Comandos de Repetio:
enquanto x faca
repita ... ate x
para ... de ... ate ... faca
Atividades
7. Elabore um algoritmo que gera e escreve os nmeros mpares
lidos entre 100 e 200.
8. Construa um algoritmo que leia 500 valores inteiros e positivos e:
Encontre o maior valor
Encontre o menor valor
Calcule a mdia dos nmeros lidos
Captulo 6
55
Algoritmos
Ol Aluno,
Este o captulo em que vamos aprender sobre estruturas de dados;
mais precisamente sobre Vetores.
Em muitos casos, os Vetores so alternativas interessantes para se
resolver alguns problemas. Alm deles, existem muitas outras estru-
turas de armazenamentos de dados, como por exemplo: matrizes,
listas, flas, etc.
Todavia, como o foco de nossa disciplina tem cunho introdutrio,
vamos trabalhar apenas com Vetores.
de suma importncia entendermos bem a programao com Ve-
tores, pois isso facilitar muito o nosso aprendizado quanto s ou-
tras possibilidades de armazenamento de dados.
Bom estudo!
7.1 Estruturas de dados
J sabemos que variveis correspondem a posies de memria, s quais
o programador tem acesso, atravs de algum algoritmo, visando atingir
resultados desejados.
Uma varivel passa a existir a partir de sua declarao, quando, ento,
lhe associado um nome ou identifcador, que a identifcao da po-
sio de memria que a varivel representa.
Analisaremos no exemplo a seguir a necessidade de se utilizarem estru-
turas de dados.
Exemplo:
Suponhamos que seja requisitado um algoritmo para calcular a mdia
das notas de 5 alunos. Nesse contexto, o algoritmo fcaria assim:
ESTRUTURA DE DADOS
HOMOGNEAS - VETOR
56
Licenciatura em Informtica
algoritmo Calculando Mdia de 5 Notas
var
//Declarando as variveis
I: inteiro
NOTA, SOMA, MEDIA: real
inicio
//Inicializando SOMA
SOMA <- 0
//Aplicando o comando de repetio
para I de 1 ate 5 faca
escreva(Digite a nota:)
leia(NOTA)
//Acumulando a NOTA lida
SOMA <- SOMA + NOTA
fmpara
//Calculando a mdia
MEDIA <- SOMA / 5
//Escrevendo a mdia calculada
escreva (A mdia :, MEDIA)
fmalgoritmo
Suponhamos, agora, que se deseja saber quantos alunos tiveram nota
acima da mdia. fcil ver que, para saber o nmero de alunos com
nota acima da mdia necessrio saber as notas e a mdia de cada um
deles. Da, existem duas abordagens possveis:
Abordagem 1: Fazer dois algoritmos: um que l as notas e calcula a
mdia e outro que leia a mdia e novamente todas as notas para que
as comparaes pudessem ser feitas.
Abordagem 2: Fazer um nico algoritmo e armazenar cada uma
das notas numa varivel; calcular a mdia dessas notas e fnalmen-
te calcular a quantidade de alunos com nota superior a mdia.
Abordagem 1 (Abordagem de dois algoritmos):
O primeiro algoritmo j estaria implementado: o algoritmo do clculo
da mdia. O segundo algoritmo fcaria da seguinte forma:
Captulo 7
57
Algoritmos
algoritmo Abordagem 1
var
I, QUANTIDADE: inteiro
MEDIA, NOTA: real
inicio
//Leitura da mdia das notas
escreva(Digite a mdia:)
leia(MEDIA)
//Repetio para cada aluno
para I de 1 ate 5 faca
escreva(Digite a nota:)
leia(NOTA)
//Se aluno tem nota superior a mdia
se (NOTA > MEDIA) entao
//Incremente a Quantidade
QUANTIDADE <- QUANTIDADE + 1
fmse
fmpara
escreva (Quantidade: , QUANTIDADE)
fmalgoritmo
Abordagem 2 (Abordagem de um algoritmo):
Este algoritmo realiza o armazenamento das notas em variveis:
algoritmo Abordagem 2
var
//Declarando as variveis
MEDIA: real
NOTA1, NOTA2, NOTA3, NOTA4, NOTA5: real
QUANTIDADE: inteiro
inicio
//Inicializando a Quantidade
QUANTIDADE <- 0
//Lendo as notas
escreva(Digite a nota 1:)
leia(NOTA1)
escreva(Digite a nota 2:)
leia(NOTA2)
Estrutura de Dados Homogneas - Vetor
58
Licenciatura em Informtica
escreva(Digite a nota 3:)
leia(NOTA3)
escreva(Digite a nota 4:)
leia(NOTA4)
escreva(Digite a nota 5:)
leia(NOTA5)
//Calculando a mdia
MEDIA <- (NOTA1+NOTA2+NOTA3+NOTA4+NOTA5)/5
//Escrevendo a mdia calculada
escreva(Mdia: , MEDIA)
se NOTA1 > MEDIA entao
QUANTIDADE <- QUANTIDADE + 1
fmse
se NOTA2 > MEDIA entao
QUANTIDADE <- QUANTIDADE + 1
fmse
se NOTA3 > MEDIA entao
QUANTIDADE <- QUANTIDADE + 1
fmse
se NOTA4 > MEDIA entao
QUANTIDADE <- QUANTIDADE + 1
fmse
se NOTA5 > MEDIA entao
QUANTIDADE <- QUANTIDADE + 1
fmse
escreva(Quantidade: , QUANTIDADE)
fmalgoritmo
Note que nenhuma das solues completamente adequada, pois:
Abordagem 1: implica na releitura das notas dos alunos. Su-
pondo que essas notas fossem informadas via teclado, isso seria
bastante desagradvel para quem utiliza esse algoritmo.
Abordagem 2: no traz problemas para o usurio, mas implica
em termos uma quantidade possivelmente grande de variveis
que representam o mesmo tipo de informao. Imaginemos que
no fossem 5 alunos e sim 5000; a elaborao desse algoritmo
seria impraticvel.
nesse contexto que as estruturas de dados so apresentadas,
especifcamente as variveis compostas homogneas (vetores).
Captulo 7
59
Algoritmos
7.2 Variveis compostas homogneas
Variveis compostas homogneas correspondem a posies de
memria, identifcadas por um mesmo identifcador, individuali-
zadas por ndices e cujo contedo do mesmo tipo.
No exemplo do clculo da quantidade de alunos com nota acima da
mdia, podemos representar o conjunto das 5 notas dos alunos por
uma varivel do tipo composta homognea. Chamemos essa varivel de
NOTA. Tal varivel homognea porque todos os seus elementos so
do tipo real, e composta porque um conjunto de espaos de memria
e no apenas um. A referncia ao ensimo elemento do conjunto ser
indicado pela notao NOTA[n], onde n um nmero inteiro ou uma
varivel numrica contendo um valor inteiro.
Exemplo 1:
Suponhamos que a varivel NOTA contivesse os seguintes valores:
NOTA[3] estaria referenciando o terceiro elemento do conjunto cujo contedo 30.
Exemplo 2:
Voltemos ao exemplo do clculo da quantidade de alunos com nota
acima da mdia; mas suponhamos que sejam 250 alunos. O algoritmo
ento fcaria da seguinte forma ( No sero apresentadas as declaraes
de variveis ):
algoritmo Utilizando Vetor
var
//Foram omitidas as declaraes
inicio
//Inicializando SOMA e QUANTIDADE
SOMA <- 0
QUANTIDADE <- 0
// Aplicando o comando de repetio
para I de 1 ate 250 faca
escreva(Digite a nota:)
Estrutura de Dados Homogneas - Vetor
60
Licenciatura em Informtica
leia ( NOTA[I] )
//Acumulando a NOTA lida
SOMA <- SOMA + NOTA[I]
fmpara
//Calculando a mdia
MEDIA <- SOMA / 250
para I de 1 ate 250 faca
se NOTA[I] > MEDIA entao
//Acumulando a Quantidade
QUANTIDADE <- QUANTIDADE + 1
fmse
fmpara
escreva (Quantidade: , QUANTIDADE)
fmalgoritmo
7.3 Variveis compostas unidimensionais
vetores
Vetor um conjunto de espaos de memria referenciados por
um mesmo nome e que necessitam de apenas um ndice para que
seus elementos sejam endereados.
Grafcamente um vetor pode ser representado da seguinte forma:
Exemplos de Vetores:
Estados do Sudeste:
Alguns Municpios do Sul do Esprito Santo:
Captulo 7
61
Algoritmos
7.3.1 Declarao de vetores
lista_de_identifcadores: vetor [li .. ls] de t
Onde:
lista_de_identifcadores: so nomes associados s variveis que se
deseja declarar.
vetor: palavra reservada.
li: o limite inferior do intervalo de variao dos ndices.
ls: o limite superior do intervalo de variao dos ndices.
t: tipo dos componentes do vetor ( inteiro, real, literal, logico ).
As regras de declarao de identifcadores das variveis compos-
tas (vetores, por exemplo) so as mesmas das variveis simples.
Exemplo 1:
NOTA: vetor [ 1 .. 10 ] de real
Exemplo 2:
Ser mostrado novamente o exemplo do clculo da quantidade de alu-
nos com nota acima da mdia, tambm supondo 250 alunos.
algoritmo Utilizando Vetor
var
//Foram omitidas as declaraes
inicio
//Inicializando SOMA e QUANTIDADE
SOMA <- 0
QUANTIDADE <- 0
// Aplicando o comando de repetio
para I de 1 ate 250 faca
escreva(Digite a nota:)
leia ( NOTA[I] )
//Acumulando a NOTA lida
SOMA <- SOMA + NOTA[I]
fmpara
Estrutura de Dados Homogneas - Vetor
62
Licenciatura em Informtica
//Calculando a mdia
MEDIA <- SOMA / 250
para I de 1 ate 250 faca
se NOTA[I] > MEDIA entao
//Acumulando a Quantidade
QUANTIDADE <- QUANTIDADE + 1
fmse
fmpara
escreva (Quantidade: , QUANTIDADE)
fmalgoritmo
importante ressaltar que, por uma limitao da linguagem Vi-
sualg, apenas podemos declarar vetores com no mximo 499 po-
sies. Isso no ocorre em outras linguagens!
Atividades
Faa um algoritmo que leia 200 nmeros e verifque quantos 1.
deles so iguais a 30. Se existirem, escrever as posies onde
eles esto armazenados.
Faa um algoritmo que leia n nmeros ( n < 200) e verifque 2.
quantos deles so iguais a um nmero k. Se existirem, escrever
as posies onde eles esto armazenados.
Implemente um algoritmo que leia 200 nmeros. Esse algorit- 3.
mo deve escrever quantos deles so maiores que um nmero
ki e menores que um nmero kj. (ki e kj tambm lidos).
O Instituto de Cincias Exatas da UFMG deseja saber se exis- 4.
tem alunos cursando, simultaneamente, as disciplinas Pro-
gramao de Computadores e Clculo Numrico. Existem
disponveis na unidade de entrada os nmeros de matrcula
dos alunos de Programao de Computadores (no mximo
150 alunos) e de Clculo Numrico (no mximo 220 alu-
nos). Cada conjunto dos nmeros de matrcula dos alunos de
uma disciplina tem a matrcula fctcia 9999 no fnal.
Captulo 7
63
Algoritmos
Formular um algoritmo que imprima o nmero de matr-
cula dos alunos que esto cursando ambas as disciplinas
simultaneamente.
Trata-se, ento, da verifcao da ocorrncia de um elemento de
um conjunto em outro conjunto. Assim, aps a leitura dos dados,
poderiam estar montadas as seguintes variveis compostas unidi-
mensionais PC e CN contendo, respectivamente, os nmeros de
matrcula dos alunos que esto cursando: Programao de Com-
putadores e Clculo Numrico.
Estrutura de Dados Homogneas - Vetor
64
Licenciatura em Informtica
Captulo 7
65
Algoritmos
Prezado Aluno,
medida que estamos avanando nos conceitos de Lgica de Pro-
gramao, somos preparados para resoluo de problemas cada vez
mais complexos.
No geral, problemas complexos exigem algoritmos complexos, mas sem-
pre possvel dividir um problema grande em problemas menores. Dessa
forma, cada parte menor tem um algoritmo mais simples.
Neste captulo, aprenderemos a tcnica de programao Dividir
para Conquistar, isto , partindo da diviso de um problema com-
plexo em vrios subprogramas, ao conquistar o objetivo em cada
um dos subprogramas, o programador estar caminhando rumo
Soluo Total do problema original.
Atravs desse mtodo, desaparece o problema complicado e apare-
cem vrios subprogramas descomplicados, tornando assim a solu-
o mais simples, direta e objetiva.
Sucesso a todos! E vamos aos estudos!
8.1 Introduo
No fm da dcada de 60, um conjunto de problemas no desenvolvi-
mento de programas levou os pases desenvolvidos chamada crise
do sofware. Isso ocorreu devido a uma ausncia de metodologia no
desenvolvimento dos sofwares. Para suprir essa carncia, foi criada a
programao estruturada, a fm de organizar os mtodos e diminuir os
custos de desenvolvimento de sofwares.
Uma das principais armas da programao estruturada no desenvolvimento
de sofwares a modularizao, pois permite um maior reaproveitamento
de funcionalidades, diminuindo o tempo e os custos de desenvolvimento.
A modularizao a tcnica de subdividir um algoritmo em mdulos
menores que podem ser reaproveitados em outros algoritmos.
MODULARIZAO
66
Licenciatura em Informtica
8.2 Procedimentos e funes
Os procedimentos e funes possuem trs objetivos bsicos:
a) Reaproveitamento de cdigo: quando uma certa sequncia de
comandos usada em vrios locais.
b) Dividir o algoritmo em partes logicamente coerentes: gerar
sub-algoritmos.
c) Aumentar a legibilidade do algoritmo.
8.2.1 Funes
Uma funo um trecho de cdigo que pode ser utilizado em
vrios algoritmos, e que retorna um valor.
A funo fundamental para a manutenibilidade dos algoritmos uma
vez que, dessa forma, se for necessrio fazer uma manuteno em um
procedimento, essa manuteno automaticamente ser aplicada a todos
os algoritmos que a utilizam.
Declarao de Funes
Uma funo deve ser declarada da seguinte forma:
funcao <nome da funo> ( <declarao de parmetros> ) : < tipo do
retorno>
var
< declarao de variveis locais >
inicio
< implementao da funcao >
fmfuncao
Exemplo:
funcao menor_numero(numero1,numero2:real): real
inicio
se numero1 > numero2 entao
retorne numero2
senao
retorne numero1
fmse
fmfuncao
Captulo 8
67
Algoritmos
8.2.2 Passagem de parmetros por valor e passagem de
parmetros por referncia
Passagem por Valor: a declarao de parmetros de forma que
eles no tero seus valores alterados aps a execuo do procedi-
mento ou da funo.
Passagem por Referncia: a declarao de parmetros de forma
que eles podero ter seus valores alterados aps a execuo do
procedimento ou funo. Um parmetro por referncia precedi-
do pela palavra VAR.
Passagem por Valor
funcao menor_numero(numero1,numero2:real): real
inicio
se numero1 > numero2 entao
retorne numero2
senao
retorne numero1
fmse
fmfuncao
Passagem por Referncia
funcao menor_numero(numero1, numero2: real; var
menor:real): inteiro
inicio
se numero1 > numero2 entao
menor <- numero2
retorne 1
senao
se numero1 < numero2 entao
menor <- numero1
retorne 1
senao
//Indica que os nmeros so iguais
menor <- 0
retorne -1
fmse
fmse
fmfuncao
Modularizao
68
Licenciatura em Informtica
8.2.3 Procedimentos
Um procedimento uma funo que no retorna valores.
Declarao de Procedimentos
Um procedimento deve ser declarado na seguinte forma:
procedimento <nome do procedimento>(<declarao de parmetros>)
var
< declarao de variveis locais >
inicio
< implementao do procedimento >
fmprocedimento
Exemplo:
procedimento menor_numero ( numero1, numero2: real ;
var menor: real )
inicio
se numero1 > numero2 entao
menor <- numero2
senao
menor <- numero1
fmse
fmprocedimento
8.2.4 Uso de Funes e Procedimentos
Para se utilizar uma funo ou procedimento, basta fazer da seguinte forma:
algoritmo Uso de Funes e Procedimentos
var
...
inicio
...
<nome da funo> ( <lista de parmetros> )
...
fmalgoritmo
Captulo 8
69
Algoritmos
Exemplo: O seguinte algoritmo determina o menor de 3 nmeros
algoritmo Exemplo Uso de Funes
var
n1, n2, n3, menor: real
inicio
escreva(Digite o primeiro nmero: )
leia( n1 )
escreva(Digite o segundo nmero: )
leia( n2 )
escreva(Digite o terceiro nmero: )
leia( n3 )
menor <- menor_numero(n1, menor_numero(n2, n3))
escreva(O menor nmero :, menor)
fmalgoritmo
importante ressaltar que, por uma limitao da linguagem Visu-
alg, variveis do tipo vetor no podem ser passadas por parmetro
para funes ou procedimentos.
Todavia isso possvel, e muito comum, em outras linguagens de
programao, como por exemplo: C, Java, etc.
Atividades
Escreva uma funo que calcule a distncia entre dois pontos, sa- 1.
bendo que a distncia entre dois pontos dada pela expresso:
DISTANCIA = ( ( X2 X1 ) ^ 2 + ( Y2 Y1 ) ^ 2 ) ^ ( 1 / 2 )
Onde: O primeiro ponto dado por ( X1, Y1 ) e o segundo
ponto dado por ( X2, Y2 )
Sabendo-se que um tringulo formado por trs pontos: 2.
A = ( X1, Y1 )
B = ( X2, Y2 )
C = ( X3, Y3 )

Modularizao
70
Licenciatura em Informtica
E que o permetro de um tringulo a soma das distncias dos
lados do tringulo, podendo ser escrito da seguinte forma:
Permetro = DISTANCIA AB + DISTANCIA AC + DISTANCIA
BC
Faa um algoritmo que calcule o permetro de um tringulo.
Faa uma funo em que, dados dois valores (X, Y), retorne X ^ Y; 3.
entretanto no permitido usar o operador de potncia. ( ^ ).
Sugesto: Use o operador de multiplicao.
Faa uma funo em que, dados dois valores ( X, Y ), retorne X 4.
* Y; entretanto no permitido usar o operador de multiplicao.
( * ).
Sugesto: Use o operador de soma.
Refaa a funo do exerccio 3) utilizando a funo de multiplica- 5.
o do exerccio 4).
Faa uma funo para o operador de raiz ( X ^ ( 1 / Y ) ) 6.
Implemente um algoritmo de calculadora que faa as operaes de: 7.
Adio
Subtrao
Multiplicao ( usando a funo do exerccio 4 )
Diviso
Potenciao ( usando a funo do exerccio 5 )
Radiciao ( usando a funo do exerccio 6 )
Captulo 8
[1] BOENTE, A. Construindo Algoritmos Computacionais - Lgica de Programao.
Rio de Janeiro, 2003.
[2] ZIVIANE, N. Projeto de Algoritmos. Cengage Learning, 2003.
[3] SOUZA, M. A. F., GOMES, M. M., SOARES M. V. Algoritmos e Lgica de Progra-
mao. Cengage Learning, 2005.

Você também pode gostar