Académique Documents
Professionnel Documents
Culture Documents
DA COMPUTAO
ALGORITMOS
EaD UNIVERSIDADE DO ESTADO DA BAHIA
PRESIDENTE DA REPBLICA
Dilma Roussef
MINISTRO DA EDUCAO
Alosio Mercadante
SISTEMA UNIVERSIDADE ABERTA DO BRASIL
PRESIDENTE DA CAPES
Jorge Guimares
DIRETOR DE EDUCAO A DISTNCIA DA CAPES
Joo Teatini
LICENCIATURA
LICENCIATURA EM
EM CINCIA
CINCIA DA
DA COMPUTAO
COMPUTAO
FABRIZIO LEANDRO FONSCA FISCINA
MARCIO VIEIRA BORGES
LICENCIATURA EM CINCIA
DA COMPUTAO
ALGORITMOS
EDUNEB
Salvador
UNEB 2012
Nenhuma parte deste material poder ser reproduzida, transmitida ou gravada, por qualquer meio eletrnico, mecnico, por fotocpia e outros,
sem a prvia autorizao, por escrito, da Coordenao UAB/UNEB.
Depsito Legal na Biblioteca Nacional
Impresso no Brasil 2012
DIRETORA
Maria Nadja Nunes Bittencourt
COORDENADOR EDITORIAL
Ricardo Baroud
COORDENAO UAB/UNEB
COLABORADORES REVISORA
SUPERVISO DE MATERIAL DIDTICO Mata Nogueira de Andrade
O contedo deste Material Didtico de inteira responsabilidade do(s)/da(s) autores (as), por cuja criao assume(m) ampla e total responsabilidade
quanto a titularidade, originalidade do contedo intelectual produzido, uso de citaes de obras consultadas, referncias, imagens e outros elementos
que faam parte desta publicao.
CDD: 658.05
Estamos comeando uma nova etapa de trabalho e para auxili-lo no desenvolvimento da sua aprendizagem
estruturamos este material didtico que atender ao Curso de Licenciatura na modalidade de Educao a Distncia
(EaD).
O componente curricular que agora lhe apresentamos foi preparado por profissionais habilitados, especialistas da
rea, pesquisadores, docentes que tiveram a preocupao em alinhar o conhecimento terico e prtico de maneira
contextualizada, fazendo uso de uma linguagem motivacional, capaz de aprofundar o conhecimento prvio dos
envolvidos com a disciplina em questo. Cabe salientar, porm, que esse no deve ser o nico material a ser
utilizado na disciplina, alm dele, o Ambiente Virtual de Aprendizagem (AVA), as atividades propostas pelo Professor
Formador e pelo Tutor, as atividades complementares, os horrios destinados aos estudos individuais, tudo isso
somado compe os estudos relacionados EaD.
importante tambm que vocs estejam sempre atentos s caixas de dilogos e cones especficos que aparecem
durante todo o texto apresentando informaes complementares ao contedo. A ideia mediar junto ao leitor, uma
forma de dialogar questes para o aprofundamento dos assuntos, a fim de que o mesmo se torne interlocutor ativo
desse material.
VOC SABIA?
convida o leitor a conhecer outros aspectos daquele tema/
contedo. So curiosidades ou informaes relevantes que podem ser associadas discusso proposta.
SAIBA MAIS
apresenta notas, textos para aprofundamento de assuntos
diversos e desenvolvimento da argumentao, conceitos, fatos, biografias, enfim, elementos que o auxiliam a
compreender melhor o contedo abordado.
INDICAO DE LEITURA
neste campo, voc encontrar sugestes de livros, sites,
vdeos. A partir deles, voc poder aprofundar seu estudo, conhecer melhor determinadas perspectivas tericas
ou outros olhares e interpretaes sobre determinado tema.
SUGESTO DE ATIVIDADE
consiste num conjunto de atividades para voc realizar
autonomamente em seu processo de autoestudo. Estas atividades podem (ou no) ser aproveitadas pelo professor-
formador como instrumentos de avaliao, mas o objetivo principal o de provoc-lo, desafi-lo em seu processo
de autoaprendizagem.
Sua postura ser essencial para o aproveitamento completo desta disciplina. Contamos com seu empenho e
entusiasmo para juntos desenvolvermos uma prtica pedaggica significativa.
REA DE AMBIENTAO
Dados Pessoais
Nome:
Telefones: E-mail:
Residncia:
Municpio/Polo do curso EaD:
Dados do Curso
Identificao da Turma
APRESENTAO
Estamos contentes em poder participar de sua formao e gostaramos de dar a voc boas-vindas
disciplina Algoritmos. Nosso objetivo com esta disciplina dialogar com voc sobre o estudo da lgica
computacional, conceituando o algoritmo, a anlise e a resoluo de problemas. A noo de algoritmo
muito importante para toda a computao, sendo que para sua criao, existem linhas mestras e estru-
turas bsicas, a partir das quais o aluno poder cria-lo. Mas a soluo completa depende em grande parte
do criador. Geralmente existem diversos algoritmos para resolver o mesmo problema, cada um segundo o
ponto de vista do seu criador.
Este material apoiar a disciplina, abordando os conceitos bsicos de algoritmo, anlise e resoluo
de problemas, a expresso de solues em termos de algoritmos estruturados, a aplicao das principais
estruturas para controle de fluxo da soluo, a aplicao de estruturas bsicas para estruturao da infor-
mao, o projeto de solues estruturadas e modularizadas para problemas simples.
Os principais objetivos da disciplina no capitulo um conceituar o algoritmo e suas formas de rep-
resentao mais conhecidas, alm de apresentar os conceitos de variveis e atribuio e assim contribuir
para desenvolver um conhecimento bsico geral que proporcionar base para a resoluo de problemas
atravs de solues estruturadas. Outro objetivo deste material fomentar no estudante a capacidade de
resoluo de problemas atravs das tcnicas de algoritmos, ampliando o conceito do funcionamento do
computador.
Ao longo deste mdulo, voc encontrar informaes que atendem a crescente demanda do mer-
cado de trabalho, que cada vez mais precisa de profissionais que tenham desenvolvido uma viso lgica e
tcnica da programao, fornecendo as principais estruturas e recursos na elaborao de um Algoritmo.
Para isso, a metodologia da disciplina deve contemplar tambm vdeo aulas, estudo de caso e re-
alizao de exerccios que estimulam o aprendizado e contribuem para o fortalecimento do conhecimento.
Alm disso, importante que o aluno utilize o ambiente virtual de aprendizagem para acompanhar as
atividades e a conduo da disciplina.
Gostaramos de convid-lo a participar deste dilogo conosco, esperando que os conhecimentos
aqui mediados sejam profcuos para o seu desenvolvimento profissional.
Prof. Msc. Fabrizio Leandro Fonsca Fiscina e Prof. Msc. Marcio Vieira Borges
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
SUMARIO
4 OPERADORES E EXPRESSES.......................................................................................................................................... 31
4.1 Operadores..................................................................................................................................................................... 33
4.1.1 Operadores de atribuio .......................................................................................................................................33
4.1.2 Operadores aritmticos........................................................................................................................................... 33
4.1.3 Operadores relacionais........................................................................................................................................... 34
4.1.4 Operadores lgicos................................................................................................................................................. 35
4.1.5 Operadores literais.................................................................................................................................................. 36
4.2 Expresses...................................................................................................................................................................... 36
4.2.1 Expresses aritmticas........................................................................................................................................... 36
4.2.2 Expresses lgicas................................................................................................................................................. 36
4.2.3 Expresses literais.................................................................................................................................................. 37
4.2.4 Avaliao de expresses......................................................................................................................................... 37
EaD UNIVERSIDADE DO ESTADO DA BAHIA
5 INSTRUES..................................................................................................................................................................... 39
5.1 Comandos de atribuio.................................................................................................................................................. 41
5.2 Comandos de sada de dados.......................................................................................................................................... 41
5.3 Comandos de entrada de dados....................................................................................................................................... 42
5.4 Interface com usurio...................................................................................................................................................... 42
5.5 Funes matemticas...................................................................................................................................................... 43
6 ESTRUTURAS DE CONTROLE............................................................................................................................................45
6.1 Comandos compostos.................................................................................................................................................... 47
6.2 Estrutura seqencial........................................................................................................................................................ 47
6.3 Estruturas de deciso...................................................................................................................................................... 47
6.3.1 Estruturas de deciso simples (se ... Ento)............................................................................................................ 48
6.3.2 Estruturas de deciso composta (se ... Ento ... Seno).......................................................................................... 48
6.3.3 Estruturas de deciso mltipla do tipo escolha (escolha...Caso...Seno).................................................................. 50
6.4 Estruturas de repetio.................................................................................................................................................... 51
6.4.1 Laos contados (para ... Faa)................................................................................................................................ 51
6.4.2 Laos condicionais................................................................................................................................................. 52
6.4.3 Laos condicionais com teste no incio (enquanto ... Faa)..................................................................................... 52
6.4.4 Laos condicionais com teste no final (repita ... At que)........................................................................................ 53
6.5 Estruturas de controle encadeadas ou aninhadas............................................................................................................. 54
7 ESTRUTURAS DE DADOS HOMOGNEAS..........................................................................................................................55
7.1 Matrizes de uma dimenso ou vetores............................................................................................................................. 57
7.1.1 Operaes bsicas com vetores............................................................................................................................. 57
7.1.2 Atribuio de uma matriz do tipo vetor.................................................................................................................... 57
7.1.3 Leitura de dados de uma matriz do tipo vetor.......................................................................................................... 57
7.1.4 Escrevendo dados de um vetor...............................................................................................................................58
7.1.5 Mtodo de bolha de classificao...........................................................................................................................59
7.2 Matrizes com mais de uma dimenso.............................................................................................................................. 60
7.2.1 Operaes bsicas com matrizes de duas dimenses............................................................................................. 60
7.2.2 Atribuio de uma matriz de duas dimenses.......................................................................................................... 61
7.2.3 Leitura de informaes de uma matriz de duas dimenses...................................................................................... 61
7.2.4 Escrita de dados de uma matriz de duas dimenses................................................................................................ 61
UNIVERSIDADE DO ESTADO DA BAHIA EaD
8 SUBALGORITMOS.............................................................................................................................................................63
8.1 Funcionamento do subalgoritmo...................................................................................................................................... 65
8.2 Elementos dos subalgoritmos.......................................................................................................................................... 66
8.3 Funes.......................................................................................................................................................................... 66
8.4 Procedimentos................................................................................................................................................................ 67
8.5 Variveis......................................................................................................................................................................... 68
8.6 Parmetros...................................................................................................................................................................... 69
8.7 Mecanismos de passagem de parmetros....................................................................................................................... 69
8.7.1 Passagem de parmetros por valor......................................................................................................................... 69
8.7.2 Passagem de parmetros por referncia.................................................................................................................. 70
8.8 Refinamentos sucessivos................................................................................................................................................ 70
glossrio..........................................................................................................................................................................92
REFERNCIAS......................................................................................................................................................................93
UNIVERSIDADE DO ESTADO DA BAHIA
EaD
INTRODUO
LGICA DE
PROGRAMAO
CAPTULO 1
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
Um algoritmo pode ser definido como um con- Linguagem de programao: Forma utilizada por
junto de regras (instrues), bem especificadas, para alguns programadores, que pulam a etapa do
soluo de um determinado problema. Conforme o projeto do programa (algoritmo) e passam direto
dicionrio Michaelis, o conceito de algoritmo a uti- para a programao em si.
lizao de regras para definir ou executar uma tarefa Linguagem estruturada (Portugol): Forma de
especfica ou para resolver um problema especfico. escrever algoritmos que muito se assemelha a
(MICHAELIS, 1998, p. 21). forma na qual os programas so escritos nas
A partir desses conceitos de algoritmos que linguagens de programao (Pascal, C, Java,
bastante amplo, pode-se perceber que a palavra algo- etc.).
ritmo no um termo computacional, ou seja, no se Fluxograma: Atravs de representaes grficas:
refere apenas rea de informtica. so bastante recomendveis, j que um diagra-
Para que um problema no computador possa ma ou fluxograma muitas vezes substitui, com
ser resolvido, necessrio que seja primeiro encon- vantagem, vrias palavras. A representao
trado uma maneira correta e clara de descrever este grfica de algoritmos, ou seja, das instrues
problema. preciso que encontremos uma seqncia e/ou mdulos do processamento, tambm
de passos que permitam que o problema possa ser conhecida como diagrama de bloco.
resolvido de maneira automtica e repetitiva. Esta claro que cada uma dessas formas de repre-
seqncia de passos chamada de algoritmo. sentar um algoritmo, tem suas vantagens e desvan-
Uma das formas mais eficazes de aprender tagens, cabe ao programador escolher a forma que
algoritmos atravs de muitos exerccios, construindo melhor lhe convir. Neste mdulo sero apresentadas
e testando os algoritmos. trs formas de representao de algoritmos, so elas:
SAIBA MAIS
Declaraes
inteiro IDADE;
Inicio
escreva(Informe sua idade: );
leia (IDADE);
se (IDADE < 16) ento
Figura 4: Fluxograma para calcular mdia diria de um salrio escreva (Voc no pode votar);
Fonte: MULLER(2012) seno
Observe que da forma que o mesmo foi ex- escreva (Voc pode votar);
posto, existe um procedimento lgico para o clculo fim se;
proposto, bem como, poderemos repetir este procedi- Fim
mento por quantas vezes for necessrio, que o resul- O Portugol uma forma de representar um algo-
tado sempre ser correto e preciso. ritmo mais detalhada que o fluxograma, se assemel-
Posteriormente, iremos criar fluxogramas mais hando muito s linhas de cdigo de uma linguagem
complexos, expressando situaes reais de proces- de programao, onde temos que definir as variveis,
samento, este teve apenas o objetivo de lhe dar uma rotinas, sub-rotinas, etc. Ao invs de smbolos gr-
noo simples e objetiva de fluxogramas. ficos, utilizamos comandos ou ordens para solicitar
uma determinada tarefa/rotina. Sua sintaxe bsica :
1.1.3 Portugus Estruturado
Algoritmo <nome do algoritmo>
O Portugus Estruturado, tambm conhecido <declarao das variveis>
como Portugol, Pseudocdigo ou Pseudolinguagem Inicio da rotina
Para uma completa compreenso, seguem Figura 5: Representao do algoritmo de clculo da mdia de um aluno
sob a forma de um fluxograma.
abaixo exemplos onde vamos mostrar a representao Fonte: MULLER (2012)
de um mesmo algoritmo de formas distintas.
A funo do algoritmo calcular a mdia de um aluno Exemplo 03: Diagrama de Chapin
que realizou duas avaliaes e que para ser aprovado
deve obter a mdia igual ou superior a 7,0.
Algoritmo Mdia
Var NOTA1, NOTA2, MEDIA
Incio
Leia NOTA1, NOTA2
MDIA (NOTA1+NOTA2)/2
Se MEDIA >= 7 Ento
Escreva Aprovado
Seno
Escreva Reprovado
Fim.
SUGESTO DE ATIVIDADE
Declaraes
inteiro IDADE;
Inicio
escreva(Informe sua idade: );
leia(IDADE);
se (IDADE < 16) ento
escreva (Voc no pode votar);
seno
escreva(Voc pode votar);
fim se;
Fim
CONSTANTES, VARIVEIS
E ATRIBUIES
CAPTULO 2
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
Declaraes
inteiro PRECO;
Inicio
escreva(Informe o preo: );
leia(PRECO);
PRECO VALOR*50%
escreva(O preo com desconto :,PRECO)
Fim
INDICAO DE LEITURA
INSTRUES BSICAS DO
ESTUDO DO ALGORITMO
CAPTULO 3
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
Como vimos anteriormente, a Instruo Es- Para o desenvolvimento de algoritmos que pos-
creva, existem basicamente duas instrues principais suam clculos matemticos, as expresses aritmti-
em algoritmos (e em programao em geral) que so: cas devem estar horizontalizadas, ou seja, linearizadas
Escrever e Ler. No captulo 4, foi apresentada a in- e tambm no devemos esquecer de utilizar os opera-
struo Escreva, agora, neste captulo, veremos como dores corretamente. No exemplo a seguir, apresenta-
funciona a instruo Leia. do um exemplo de uma expresso aritmtica na forma
A instruo Leia utilizada quando deseja-se tradicional e como deve ser utilizada nos algoritmos e
em programao em geral (linearmente).
obter informaes do teclado do computador, ou seja,
Na matemtica tradicional a representao
um comando de entrada de dados. Para simplificar,
usa-se a instruo Leia, quando necessita-se que o
MDIA = NOTA1+NOTA2
usurio do algoritmo digite algum dado (e posterior-
2
mente do programa).
No algoritmo a representao MDIA (NOTA1+NOTA2)/2
VOC SABIA?
As expresses matemticas na forma horizon-
Tanto no Diagrama de Chapin quanto em Portugus Estruturado
talizada no so apenas utilizadas em algoritmos, mas
representa-se a entrada de dados atravs da palavra Leia (ou ler). J tambm na maioria das linguagens de programao.
em Fluxogramas a representao da entrada de dados feita atravs
de uma forma geomtrica especfica.
OPERADORES E
EXPRESSES
CAPTULO 4
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
+ Binrio Adio 4
- Binrio Subtrao 4
* Binrio Multiplicao 3
/ Binrio Diviso 3
** Binrio Exponenciao 2
A prioridade entre operadores define a ordem em dado. O resultado de uma comparao sempre um
que os mesmos devem ser avaliados dentro de uma valor lgico
mesma expresso. Por exemplo, digamos que a varivel inteira
marco contenha o valor 10. A primeira das expresses
4.1.3 Operadores Relacionais a seguir fornece um valor falso, e a segunda um valor
verdadeiro:
J os operadores relacionais so operadores marco <= 4 (valor falso, pois o valor de marco 10,
binrios que devolvem os valores lgicos verdadeiros neste caso maior que 4)
e falsos. marco > 4 (valor verdadeiro, pois marco 10, neste
caso maior que 4)
Quadro 02 Operadores Relacionais No caso da utilizao dos operadores relacio-
Operador Comparao nais com valores de string (para escrever um texto,
= Igual mais de um caracter necessrio. Na programao,
<> Diferente precisamos representar essa cadeia de caracteres
> maior que de alguma forma. A palavra cadeia em ingls
< Menor que string), os operadores relacionais comparam os va-
>= maior ou igual lores levando como base a tabela ASCII dos caracteres
<= Menor ou igual correspondentes em cada string. Uma string dita
Fonte: PREUSS (2012)
menor que outra se os caracteres correspondentes
Os operadores relacionais so somente usados tiverem os nmeros de cdigos ASCII menores. Por
quando se deseja efetuar comparaes. Desta forma exemplo, todas as expresses a seguir so verdadei-
as comparaes s podem ser feitas entre objetos de ras:
mesma natureza, isto , variveis do mesmo tipo de informatica > INFORMATICA (verdadeiro)
Expresses aritmticas so aquelas cujo resul- As expresses lgicas so aquelas cujo re-
tado da avaliao do tipo numrico, seja ele inteiro sultado da avaliao um valor lgico verdadeiro ou
ou real. Somente o uso de operadores aritmticos, falso. Nestas expresses so usados os operadores
variveis numricas e parnteses permitido em relacionais e os operadores lgicos, podendo ainda
expresses deste tipo. serem combinados com expresses aritmticas.
muito comum no desenvolvimento de al- Quando forem combinadas duas ou mais
goritmos o uso de expresses matemticas para a expresses que utilizem operadores relacionais e
resoluo de clculos. A seguir so apresentados os lgicos, os mesmos devem utilizar os parnteses para
operadores aritmticos necessrios para determinadas indicar a ordem de precedncia, como foi apresentado
expresses. Veja o quadro 07. anteriormente.
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA
EaD
INSTRUES
CAPTULO 5
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
100
O modo de funcionamento (semntica) de uma
atribuio consiste:
Neste capitulo reforaremos o conceito de 1. Na avaliao da expresso;
instrues, e apresentaremos as estruturas de con-
2. No armazenamento do valor resultante na vari-
trole do fluxo de execuo, mostrando como o algo-
vel que aparece esquerda do comando.
ritmo ganha sua forma e responde a cada instruo e
estrutura de controle. Na seqncia, apresentamos um exemplo de um
As instrues so os comandos bsicos que algoritmo utilizando o comando de atribuio:
efetuam tarefas essenciais para a operao dos Algoritmo exemplo_comando_de_atribuio
computadores, como entrada e sada de dados e Var preo_unit, preo_total : real
movimentao dos mesmos na memria. Estes tipos
quantidade : inteiro
de instruo esto presentes na absoluta maioria das
linguagens de programao. Incio
Como j foi visto anteriormente, necessrio preco_unit := 10.0
entender o que representa a sintaxe e a semntica
para uma melhor compreenso das instrues. Assim, quantidade := 50
a sintaxe a forma como os comandos devem ser preo_total := preo_unit * quantidade
escritos, a fim de que possam ser entendidos pelo
Fim.
tradutor de programas. A violao das regras sin-
tticas considerada um erro sujeito pena do no
reconhecimento por parte do tradutor
5.2 COMANDOS DE SADA DE DADOS
J a semntica o significado, ou seja, o con-
junto de aes que sero exercidas pelo computador
Os comandos de sada de dados a forma pela
durante a execuo do referido comando. Deste
qual as informaes contidas na memria dos com-
ponto em diante, todos os comando novos sero apre-
putadores so colocadas nos dispositivos de sada,
sentados por meio de sua sintaxe e sua semntica,
para que os usurios possam apreci-las. Existem
isto , a forma como devem ser escritos e as aes
quatro sintaxes possveis para esta instruo:
que executam.
ESCREVA <varivel>
Ex: Escreva QUANTIDADE
5.1 COMANDOS DE ATRIBUIO ESCREVA <lista_de_variveis>
Ex: Escreva NOME, SOBRENOME, RUA,
O comando de atribuio ou simplesmente BAIRRO, CIDADE
atribuio, a principal maneira de armazenar uma ESCREVA <literal>
informao numa varivel. Sua sintaxe : Ex: Escreva Estou aprendendo a fazer
<nome_da_varivel> := <expresso> Algoritmo!
Exemplos: Nome := fabrizio ESCREVA <literal>, <varivel>, ... ,<lit-
preco := 25.67 eral>, <varivel>
quant := 10 Ex: Escreva Meu nome :, NOME, e
media : idade * quant meu endereo :, ENDERECO
imposto := total * 17 / Uma lista_de_variveis um conjunto de nomes
Fim. YX = EXP ( LN ( Y ) * X )
xY = EXP ( LN ( Y ) * ( 1 / X ))
5.5 FUNES MATEMTICAS
Funo Ao Prevista
Anotaes
ESTRUTURAS
DE CONTROLE
CAPTULO 6
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
determinados passos subordinada a uma condio creve se o mesmo maior que 15:
denominado algoritmo com seleo. Algoritmo exemplo_estrutura_de_deciso_simples
Var X : inteiro
6.3.1 Estruturas de Deciso Simples ( Se ...
ento ) Incio
interior no executado e a execuo prossegue nor- um teste lgico no final de um lao, verificando se
malmente pela instruo seguinte palavra-reservada permitido ou no executar novamente o conjunto de
fim que identifica o final da construo. comandos no interior do mesmo.
Se a condio for verdadeira, o comando A sintaxe do repita...at mostrada a seguir:
composto executado e ao seu trmino retorna-se REPITA
ao teste da condio. Assim, o processo acima ser <comando_composto>
repetido enquanto a condio testada for verdadeira. AT QUE <condio>
Quando esta for falsa, o fluxo de execuo prossegue O funcionamento bastante parecido com o da
normalmente pela instruo seguinte palavra-reser- construo Enquanto. O comando executado uma
vada fim que identifica o final da construo. vez. Na sequencia, a condio testada: se ela for
Uma vez dentro do corpo do lao, a execuo falsa, o comando composto executado novamente
somente abandonar o mesmo quando a condio e este processo repetido at que a condio seja
for falsa. Neste tipo de construo deve-se prestar verdadeira, quando ento a execuo prossegue pelo
muita ateno quanto necessidade de que em algum comando imediatamente seguinte ao final da con-
momento a condio dever se comportar como falsa, struo.
pois caso contrrio, o programa permanecer indefi- Esta construo difere da construo Enquanto
nidamente no interior do lao (loop infinito). Neste tipo pelo fato de o comando composto ser executado uma
de lao condicional a varivel a ser testada deve pos- ou mais vezes (pelo menos uma vez), ao passo que
suir um valor associado antes da construo do lao. na construo Enquanto o comando composto ex-
O algoritmo que escreve os nmeros maiores ecutado nenhuma ou mais vezes. Isto acontece porque
que 0 enquanto a sua soma no ultrapasse 2000 um na construo Repita o teste feito no final da con-
exemplo deste tipo de lao: struo, ao contrrio do que acontece na construo
Algoritmo exemplo_enquanto Enquanto, quando o teste da condio efetuado no
incio.
Var soma, num : inteiro
A construo Repita tambm difere da con-
Incio struo Enquanto no que se refere inicializao da
soma := 0 varivel, visto que na construo Repita a varivel
pode ser inicializada ou lida dentro do loop.
num := 1 Como exemplo: construir um algoritmo que leia
Enquanto soma < 2000 Faa um nmero no determinado de vezes um valor do
teclado e escreve o valor e o seu quadrado, at que
Incio
seja digitado o valor zero para ser finalizado:
Escreva num Algoritmo exemplo_repita
num := num + 1 Var num : inteiro
soma := soma + num Incio
Fim Repita
Fim. Ler num
Escrever num, - , num * num
6.4.4 Laos Condicionais com Teste
no Final ( Repita ... at que ) At que num mod 2 = 0
Fim.
Os laos condicionais com teste no final
caracterizam-se por possuir uma estrutura que efetua
Um encadeamento o fato de se ter qualquer SALIBA, Walter Lus Caram. Tcnicas de Programao: Uma
um dos tipos de construo apresentados anterior- Abordagem Estrutura. So Paulo: Ed. Makron Booksl, 1992.
mente dentro do conjunto de comandos de uma outra SANTANA, Joo. Algoritmos & Programao. Disponvel em:
construo, tambm chamado de aninhamento. <http://www.iesam.com.br/paginas/cursos/ec/1ano/aulas/08/joao/
APunidade-1.pdf>. Acesso em: 27 jul. 2010.
Em qualquer tipo de aninhamento necessrio
que a construo interna esteja completamente em-
butida na construo externa.
A seguir, so apresentados exemplos de aninha-
mentos vlidos e invlidos.
[Figura 7: Aninhamento
correto]
Fonte: PREUSS ( 2012)
ESTRUTURAS
DE DADOS
HOMOGNEAS
CAPTULO 7
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
A utilizao mais comum dos vetores est 7.1.2 Atribuio de Uma Matriz do Tipo Vetor
vinculada criao de tabelas. Caracteriza-se por ser
definida uma nica varivel vinculada dimensionada Quando falamos sobre as instrues anterior-
com um determinado tamanho. A dimenso de uma mente, o comando de atribuio foi definido como:
matriz constituda por constantes inteiras e positivas. <nome_da_varivel> := <expresso>
Os nomes dados s matrizes seguem as mesmas No caso de vetores, alm do nome da varivel
regras de nomes utilizados para indicar as variveis deve-se necessariamente fornecer tambm o ndice do
simples. componente do vetor onde ser armazenado o resul-
Este tipo de estrutura em particular tambm tado da avaliao da expresso.
denominado por profissionais da rea como matrizes Exemplo: m[1] := 25
unidimensionais. m[3] := 100
A sintaxe do comando de definio de vetores m[7] := 12
a seguinte: m[10] := 30
Var
<nome_da_varivel> : MATRIZ [ <coluna_ini- 7.1.3 Leitura de Dados de Uma Matriz do Tipo Vetor
cial> .. <coluna_final> ] DE <tipo_de_dado> A leitura de um vetor feita passo a passo, um
de seus componentes por vez, usando a mesma sin-
Exemplo: Var taxe da instruo da entrada, onde alm do nome da
m : Matriz [1 .. 10] De Inteiro varivel, deve ser explicitada a posio do componente
7.1.1 Operaes Bsicas com Ve- lido:
tores LEIA <nome_da_varivel> [ <ndice> ]
Incio Var
Incio i : inteiro
Fim Incio
Fim. soma := 0
Para i de 1 at 10 faa
Var Var
Incio Incio
Incio Incio
Fim Fim
j := 30 Para i de 1 at 29 faa
da coluna do componente desejado da matriz (um efetuar a operao de leitura repetidas vezes, em cada
nmero de 1 a 5 para a linha e um nmero de 1 a 10 uma delas lendo um determinado componente da
para a coluna, neste caso). matriz. Esse uso se faz necessrio, devido necessi-
Por exemplo, M[1,1] indica o primeiro elemento dade de se realizar uma mesma operao com os
da primeira linha da matriz, M[1,2] indica o segundo diversos componentes das mesmas.
elemento da primeira linha da matriz, M[1,10] indica o O algoritmo a seguir exemplifica a operao de
ltimo elemento da primeira linha da matriz e M[5,10] leitura de uma matriz:
indica o ltimo elemento da ltima linha da matriz Algoritmo exemplo_leitura_de_matriz
Da mesma forma como vetores, no possvel Var
operar diretamente sobre matrizes como um todo, mas
numeros : matriz[1..5, 1..10] de inteiro
apenas sobre seus componentes, um por vez. Por ex-
emplo, para somar duas matrizes necessrio somar i, j : inteiro
cada um de seus componentes dois a dois. Da mesma Incio
forma, as operaes de atribuio, leitura e escrita de
matrizes devem ser feitas elemento a elemento. Para i de 1 at 5 faa
Incio
7.2.2 Atribuio de Uma Matriz de Duas Di- Para j de 1 at 10 faa
menses
Incio
Da mesma forma vista anteriormente com os Leia numeros[i,j]
vetores, na atribuio de matrizes, alm do nome da
Fim
varivel, deve-se necessariamente fornecer tambm o
ndice do componente da matriz onde ser armazena- Fim
do o resultado da avaliao da expresso. O ndice Fim.
referente ao elemento composto por tantas infor-
maes quanto o nmero de dimenses da matriz.
Para matrizes com duas dimenses, o primeiro 7.2.4 Escrita de Dados de Uma Matriz de Duas
nmero se refere linha e o segundo nmero se refere Dimenses
coluna da matriz em que se encontra a informao
Ex.: m[1,1] := 10 A escrita de uma matriz obedece mesma
m[1,10] := 15 sintaxe da instruo de sada de dados e tambm vale
m[3,5] := 25 lembrar que, da mesma forma que com vetores, alm
m[5,10] := 35 do nome da matriz, deve-se tambm especificar por
meio do ndice o componente a ser escrito:
ESCREVA <nome_da_varivel> [ <ndice_1> , ... ,
7.2.3 Leitura de informaes de Uma Matriz <ndice_n> ]
de Duas Dimenses
O algoritmo a seguir exemplifica a operao
de leitura e escrita de uma matriz, utilizando as con-
Neste caso, a leitura de uma matriz feita passo
strues Para aninhadas ou encadeadas:
a passo, um de seus componentes por vez, usando
Algoritmo exemplo_escrita_de_matriz
a mesma sintaxe da instruo bsicas da entrada
de dados, onde alm do nome da varivel, deve ser Var
explicitada a posio do componente lido: numeros : matriz[1..5,1..10] de inteiro
LEIA <nome_da_varivel> [ <ndice_1>, ... , <
ndice_n> ] i, j : inteiro
importante ressaltar que feito o uso de Incio
construes Para aninhadas ou encadeada a fim de
A exemplo, temos uma matriz de 5 linhas por Escrever Soma Linha 2 = , somal2
10 colunas que lida e guardada na matriz numeros. Escrever Soma Coluna 3 = , somac3
A seguir efetuada e escrita a soma dos elementos da
Fim.
2 linha e tambm a soma dos elementos da 3 coluna
Algoritmo exemplo_escrita_de_matriz_com_soma
INDICAO DE LEITURA
Var
numeros : matriz[1..5,1..10] de inteiro TERADA, Routo; SETZER, Valdemar W. Introduo Computao e
Construo de Algoritmos. So Paulo: Ed. Makron Books, 1992.
i, j : inteiro
somal2, somac3 : inteiro
Incio
Para i de 1 at 5 faa
Incio
Para i de 1 at 10 faa
Incio
Leia numeros[i,j]
Fim
Fim
Para i de 1 at 5 faa
SUBALGORITMOS
CAPTULO 8
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
Antes X=1
Durante Y = 2
Procedimento PROC(Y : inteiro)
Depois X = 1
Uma observao importante que o procedi- Incio
mento no alterou o valor do parmetro real X durante Y := Y + 1
sua execuo.
Escreva Durante Y = , Y
8.7.2 Passagem de Parmetros por Referncia Fim
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA
EaD
LINGUAGEM DE
PROGRAMAO
PASCAL
CAPTULO 9
EaD
EaD UNIVERSIDADE DO
UNIVERSIDADEDO ESTADO
DOESTADO DA
ESTADODA BAHIA
DABAHIA
BAHIA
UNIVERSIDADE
Anotaes
Neste capitulo todos os conhecimentos estuda- VOC SABIA? O termo Pascal foi atribudo em homenagem ao
cientista e matemtico francs, Blaise Pascal (1623-1662), que se
dos anteriormente podero ser utilizados, muitos dos destacou com a inveno da primeira calculadora mecnica.
conceitos so similares na linguagem de programao A linguagem Pascal foi originalmente desenvolvida no incio dos anos
70 por Nicklaus Wirth, na Universidade Tcnica de Zurique, Sua.
Pascal. Assim, ser apresentada uma breve introduo O objetivo original foi o de desenvolver uma linguagem disciplinada
a essa linguagem que, apesar de no ser comercial, de alto nvel para ensinar programao estruturada. Esta linguagem
desenvolvida por Wirth conhecida como Pascal Padro. Nos
muito importante para o entendimento da pro- Estados Unidos, foi definido conjuntamente um padro oficial para
gramao. a linguagem, pelo American National Standarts Institute (ANSI) e
pelo Institute of Electrical and Electronics Engineers (IEEE). Este
padro oficial conhecido como ANSI Pascal. Em 1983 a Borland
9.1 A ORIGEM DO PASCAL International comeou a comercializar um compilador Pascal
relativamente barato, designado por Turbo Pascal, para ser usado em
computadores pessoais.
A linguagem de programao Pascal classifi-
cada como de alto nvel e de fins genricos, derivada
do Algol-60. 9.2 ELEMENTOS DA LINGUAGEM
PASCAL
VOC SABIA?
Geralmente uma linguagem de programao
A definio do ALGOL 60 foi um marco na histria das linguagens possui dois tipos de elementos: os elementos defi-
de programao, pois foi a primeira linguagem de Programao nidos pela linguagem e os elementos definidos pelo
estruturada.
prprio usurio:
9.2.1 Elementos definidos pela linguagem
Pascal
As suas instrues so formadas por ex-
presses do tipo algbrico e por algumas palavras
Letras (alfanumricas): A at Z
inglesas, tais como BEGIN, END, READ, WRITE, IF
THEN, REPEAT, WHILE, DO, etc. Neste aspecto o Pas- Dgitos (numricos): 0 at 9
cal assemelha-se a muitas outras linguagens de alto
nvel. Contudo, o Pascal contm ainda alguns aspec- Smbolos Especiais + - * / := ; > <
tos nicos, que foram especificamente concebidos
Palavras Reservadas ou Palavras Chave: array,
para estimular o uso de uma programao estruturada
goto, until
- um mtodo ordenado e disciplinado, do qual resul-
tam programas claros, eficientes e sem erros. Delimitadores: branco, final de linha ou comen-
trio.
A linguagem Pascal tem ainda alguns identi-
ficadores predefinidos pela linguagem conhecidos
como Identificadores Padro. Podem ser constantes,
tipos, variveis, procedimentos ou funes e podem
ser escritos tanto em minsculo como em maisculo.
Seguem abaixo algumas funes:
9.4.2 Variveis
Tipos Booleanos: Uma varivel do tipo Booleano
pode ser tanto TRUE (verdadeiro) como FALSE Como tambm j foi visto anteriormente, um
(falso). O Turbo Pascal fornece um conjunto de identificador cujo valor pode ser alterado durante a
operaes lgicas e relacionais, que produzem execuo do programa denominado varivel.
expresses que resultam em valores de TRUE Sempre no Pascal todas as variveis devem
ou FALSE. ser declaradas antes de serem usadas. As variveis
devem ser declaradas no incio de cada funo, pro-
Tipos definidos pelo usurio: Os tipos definidos
cedimento ou incio do programa. No podem ocorrer
pelo usurio so aqueles que usam um grupo
declaraes de variveis aps a primeira sentena
de tipos predefinidos ou um subgrupo de al-
executvel de uma rotina.
gum tipo. Este tipo chamado de tipo enumer-
Uma declarao de varivel consiste do nome
ado de dados e representa uma escolha dentre
da varivel seguido do nome do tipo.
um pequeno nmero de alternativas. Pode ser
Como tambm j foi visto anteriormente, as
discreto ou contnuo.
variveis podem ser globais ou locais no Pascal.
Tipo enumerado discreto: Na linguagem Turbo
Pascal temos o comando TYPE para definir o Variveis globais so declaradas fora de qualquer
tipo de dados que desejamos. funo, valem em qualquer ponto do programa,
so inicializadas com zero automaticamente e
Tipo enumerado contnuo: J o tipo enumerado uma nica vez e so armazenadas na memria.
contnuo pode ser definido como um intervalo Variveis locais so declaradas dentro das fun-
de um tipo enumerado discreto j definido ou es e existem apenas enquanto a funo na
de um tipo padro. qual foi declarada est ativa. Dentro de funes
variveis locais com mesmo nome de variveis
9.4 CONSTANTES E VARIVEIS DO globais tem preferncia, no so inicializadas
PASCAL automaticamente, ou seja, deve-se informar um
valor inicial, so alocadas na pilha (stack).
9.4.1 Constante
Os parmetros das funes so tratados como se
Como j vimos anteriormente, as constantes
fossem variveis locais, so inicializados com o valor
so valores declarados no incio do programa e que
passado na chamada, so declarados na lista de parme-
no se alteram na execuo do programa.
tros, so passados por valor e, somente tipos escalares
No Pascal uma constante deve sempre ser
de dados podem ser parmetros.
definida antes de aparecer. Esta definio tem duas
VAR nome1, nome2, ... , nomen : tipo ;
finalidades:
Ex:
Var
nome: string[50];
salario: real;
filhos: integer;
sexo: char;
9.4.3 Operadores
ESTRUTURA
DO PROGRAMA
DESENVOLVIDO EM
PASCAL
CAPTULO10
EaD UNIVERSIDADE DO ESTADO DA BAHIA
UNIVERSIDADE DO ESTADO DA BAHIA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
10.4.7 Runerror
Exemplo:
Program exemplos;
O comando RUNNERROR determina o trmino
uses crt; do programa no local onde estiver sendo executado,
gerando um erro de execuo com o mesmo valor
passado como parmetro. Caso o parmetro seja
var omitido, o valor de erro de execuo ser zero.
i: integer; Sua sintaxe : Runerror ([<valor>]: byte);
10.4.8 Clrscr
begin
Este procedimento limpa a tela e coloca o cursor
clrscr;
no canto superior esquerdo da tela. a contrao das
writeln(testando o break); palavras CLeaR SCReen. Geralmente inserido no
for i:= 1 to 10 do inicio do programa.
na e linha), antes de um comando de entrada ou sada. writeln(O caracter 65 da tabela ASCII : ,chr(65));
Sua sintaxe : GotoXY (<coluna>, <linha>: writeln(O caracter 75 da tabela ASCII : ,#75);
byte)
readkey;
10.4.10 Delay
end.
O DELAY permite fazer uma pausa programada 10.5 ESTRUTURAS DE CONTROLE
por um determinado intervalo de tempo, antes de ser
executado o prximo comando. As estruturas de controle vistas anteriormente
Sua sintaxe : Delay ( <milissegundos>: byte) possuem aplicaes similares no Pascal, a maioria
possuem sintexa exatamente igual ao uso do algo-
ritmo.
10.4.11 CHR
10.5.1 Seqncia de comandos
Esta funo retorna o caractere ASCII corre-
spondente ao valor do parmetro passado. No Pascal a seqncia delimitada pelas pala-
Sua sintaxe : CHR(<n>: byte):char; vras reservadas BEGIN no incio e END no final e seus
comando so separados pelo delimitador ; (ponto e
10.4.12 ORD vrgula).
10.5.2 Comandos Condicionais
Esta funo retorna a posio ordinal do
parmetro passado. Sua sintaxe : ORD(<x>): Comando IF (condio) THEN (....) ELSE (...)
longint; O comando if usado para executar um seg-
mento de cdigo condicionalmente.
10.4.13 UPCASE Sua sintaxe :
IF condio THEN
O comando UPCASE retorna o caractere contido { comandos que sero executados se a con-
no parmetro em maisculo. dio for TRUE}
Sua sintaxe : Upcase(<ch>:char): char; ELSE
Exemplo { comandos que sero executados se a con-
program exemplos; dio for FALSE}
No Pascal, durante uma execuo, se inicia uma
uses crt; avaliao da a condio da clusula IF. Esta condio
deve resultar num valor do tipo Booleano, embora
possa tomar uma variedade de formas - ela pode ser
var x: char;
uma expresso de qualquer combinao de opera-
begin dores lgicos ou relacionais, ou simplesmente uma
clrscr; varivel BOOLEAN.
Caso a condio for TRUE, o comando ou
writeln(Digite uma letra minuscula: ); comandos localizados entre o IF e ELSE so executa-
x:=readkey; dos e a execuo pula a clusula ELSE. Alternati-
vamente, se a expresso for FALSE, a execuo
writeln(A letra digitada : ,x);
desviada diretamente para o comando ou comandos
writeln(O seu valor na tabela ASCII : , ord(x)); localizados aps a clusula ELSE.
writeln(A letra maiuscula : ,upcase(x)); importante observar que a estrutura do IF e
ELSE so sempre seguidas de blocos BEGIN/END, que
writeln(O seu valor na tabela ASCII : , delimitam grupos de comandos. O formato geral desta
ord(upcase(x)));
dentro do loop.
Exemplo:
procedure imprimir;
Program ExemploWhile
begin
uses crt;
...
Var op: char;
end;
procedure imprimir;
begin
procedure excluir;
...
begin
end;
...
procedure excluir;
end;
begin
...
Begin
end;
repeat
Begin
clrscr;
op := 0;
write(1 - Imprimir);
while op <> 9 do
write(2 - Excluir);
begin
write(9 - Sair);
clrscr; case op of
write(1 - Imprimir); 1: imprimir;
write(2 - Excluir); 2: excluir;
write(9 - Sair); end;
case op of until op = 9
1: imprimir; end.
2: excluir;
end;
end;
end.
Program ExemploRepeat
uses crt;
Var op: char;
SUGESTO DE ATIVIDADE
1. Escreva um algoritmo/programa em Pascal para ler, calcular e escrever a mdia aritmtica entre dois nmeros.
2. Escreva um algoritmo/programa em Pascal para ler um nmero positivo qualquer, calcular e escrever o quadrado e a raiz quadrada do mesmo.
3. Escrever um algoritmo/programa em Pascal que l a hora de incio de um jogo e a hora de trmino do jogo, ambas subdivididas em 2 valores
distintos, a saber: horas e minutos. Calcular e escrever a durao do jogo, tambm em horas e minutos, considerando que o tempo mximo de
durao de um jogo de 12 horas e que o jogo pode iniciar em um dia e terminar no dia seguinte.
4. Escrever um algoritmo/programa em Pascal que l 5 valores para a, um de cada vez, e conta quantos destes valores so negativos, escrevendo
esta informao.
5. Escrever um algoritmo/programa em Pascal que escreve os nmeros pares entre 100 e 200.
6. Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros entre 0 e 100.
7. Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros pares entre 0 e 100.
8. Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros mltiplos de 7 entre 100 e 200.
9. Escrever um algoritmo/programa em Pascal que l o nmero de um funcionrio, seu nmero de horas trabalhadas, o valor que recebe por hora,
e o nmero de filhos com idade menor do que 14 anos e calcula o salrio deste funcionrio.
10. Escrever um algoritmo/programa em Pascal que l o nmero de um vendedor, o seu salrio-fixo, o tota1 de vendas por ele efetuadas e o percen-
tual que ganha sobre o total de vendas. Calcular o salrio total do vendedor. Escrever nmero do vendedor e o salrio total.
11. Uma revendedora de carros usados paga a seus funcionrios vendedores, um salrio fixo por ms, mais uma comisso tambm fixa para cada
carro vendido e mais 6% do valor das vendas por ele efetuadas. Escrever um algoritmo/programa em Pascal que l o nmero do vendedor, o
nmero de carros por ele vendidos, o valor tota1 de suas vendas, o salrio fixo e o valor que recebe por carro vendido e calcula o salrio mensal
do vendedor, escrevendo-o juntamente com o seu nmero de identificao.
12. Escrever um algoritmo/programa em Pascal que l 3 valores a, b, c, e escreva os 3 valores em ordem crescente.
13. Escrever um algoritmo/programa em Pascal que l um conjunto de 4 valores i, a, b, c, onde i um valor inteiro e positivo e a, b, c, so quais-
quer valores reais e os escreva. A seguir:
Se i = 1 escrever os 3 valores a, b, c em ordem crescente.
Se i = 2 escrever os 3 valores a, b, c em ordem decrescente.
Se i = 3 escrever os 3 valores de forma que o maior valor entre a, b, c fica entre os outros 2.
14. Escrever um algoritmo/programa em Pascal que l o nmero de um vendedor de uma empresa, seu salrio fixo e o total de vendas por ele efetu-
adas. Cada vendedor recebe um salrio fixo, mais uma comisso proporcional s vendas por ele efetuadas. A comisso de 5% sobre o total
de vendas at $ 1.000,00 e 10% sobre o que ultrapassa este valor. Escrever o nmero do vendedor, o total de suas vendas, seu salrio fixo e
seu salrio total.
15. Escrever um algoritmo/programa em Pascal que l 3 comprimentos de lados a, b, c e os ordena em ordem decrescente, de modo que o a rep-
resente o maior dos 3 lados lidos. Determine, a seguir, o tipo de tringulo que estes 3 lados formam, com base nos seguintes casos escrevendo
sempre os valores lidos e uma mensagem adequada:
16. Escrever um algoritmo/programa em Pascal que l o nmero de um funcionrio, o nmero de horas por ele trabalhadas, o valor que recebe por
hora, o nmero de filhos com idade inferior a 14 anos, a idade, o tempo de servio do funcionrio e o valor do salrio famlia por filho. Calcular
o salrio bruto, o desconto do INSS (8,5% do salrio bruto) e o salrio famlia.
17. Escrever um algoritmo/programa em Pascal que escreve a soma dos nmeros que no so mltiplos de 13 entre 100 e 200.
18. Escrever um algoritmo/programa em Pascal que l 20 valores, um de cada vez, e conta quantos deles esto em cada um dos intervalos [0,
25], (25, 50], (50, 75], (75, 100], escrevendo esta informao
19. Escrever um algoritmo/programa em Pascal que l um nmero no determinados de valores a, todos inteiros e positivos, um de cada vez,
e calcule e escreva a mdia aritmtica dos valores lidos, a quantidade de valores pares, a quantidade de valores impares, a percentagem de
valores pares e a percentagem de valores mpares.
20. Escrever um algoritmo/programa em Pascal semelhante ao anterior que calcula as mdias aritmticas de cada intervalo e as escreve, junta-
mente com o nmero de valores de cada intervalo.
21. Escrever um algoritmo/programa em Pascal que l um nmero e calcula e escreve o seu fatorial.
22. Escrever um algoritmo/programa em Pascal que l um nmero e escreva se ele primo ou no primo
23. Escrever um algoritmo/programa em Pascal que escreve os nmeros mltiplos de 7 entre 100 e 200, bem como a soma destes nmeros.
24. Escrever um algoritmo/programa em Pascal que l um nmero no conhecido de valores, um de cada vez, e conta quantos deles esto em
cada um dos intervalos [0, 50], (50, 100], (100,200]. O programa deve encerrar quando for informado um valor fora dos intervalos.
25. Escrever um algoritmo/programa em Pascal que escreve os nmeros primos entre 100 e 200, bem como a soma destes nmeros.
26. Escrever um algoritmo/programa em Pascal que l 5 conjuntos de 4 valores a1, a2, a3, a4, um conjunto por vez e os escreve assim como foram
lidos. Em seguida, ordene-os em ordem decrescente e escreva-os novamente.
27. Escrever um algoritmo/programa em Pascal que l 5 pares de valores a, b, todos inteiros e positivos, um par de cada vez, e com a < b, e
escreve os inteiros pares de a at b, incluindo o a e b se forem pares.
28. Escrever um algoritmo/programa em Pascal que l 5 conjuntos de 2 valores, o primeiro representando o nmero de um aluno e o segundo
representando a sua altura em centmetros. Encontrar o aluno mais alto e o mais baixo e escrever seus nmeros, suas alturas e uma mensagem
dizendo se o mais alto ou o mais baixo.
29. Escrever um algoritmo/programa em Pascal que l 50 valores, um de cada vez, e encontra e escreve o maior deles.
30. Escrever um algoritmo/programa em Pascal que gera os nmeros de 1000 a 1999 e escreve aqueles que divididos por 11 do um resto igual
a 5.
31. Escrever um algoritmo/programa em Pascal que l um vetor V[6] e o escreve. Conte, a seguir quantos valores de V so negativos e escreva
esta informao.
32. Escrever um algoritmo/programa em Pascal que l um vetor X(100) e o escreve. Substitua, a seguir, todos os valores nulos de X por 1 e
escreva novamente o vetor x
33. Escrever um algoritmo/programa em Pascal que l um vetor C[50] e o escreve. Encontre, a seguir, o maior elemento de C e o escreva.
34. Escrever um a1goritmo que l um vetor A[15] e o escreve. Ordene, a seguir os elementos de A em ordem crescente e escreva novamente A.
35. Escrever um algoritmo/programa em Pascal que l um vetor X[20] e o escreve. Troque, a seguir, o 1 elemento com o ltimo, o 2 com o
penltimo, etc., at o 10 com o 11 e escreva o vetor X assim modificado.
36. Escrever um algoritmo/programa em Pascal que l um vetor T(20) e o escreve. Troque, a seguir, os elementos de ordem mpar com os de
ordem par imediatamente seguintes e escreva o vetor k modificado.
37. Escrever um algoritmo/programa em Pascal que l um vetor H[20] e o escreve. Troque, a seguir, o 1 elemento com 11, o 2 com o 12, etc.,
at o 10 com o 20 e escreva o vetor assim modificado.
38. Escrever um algoritmo/programa em Pascal que l 2 vetores K[10] e N[10] e os escreve. Crie, a seguir, um vetor C que seja a diferena entre
K e N (C = K - N) e escreva o vetor C.
39. Escrever um algoritmo/programa em Pascal que l um vetor A[13] que o Gabarito de um teste da loteria esportiva, contendo os valores 1
(coluna 1), 2(coluna 2), e 3(coluna do meio). Ler, a seguir, para cada apostador, o n de seu carto e um vetor Resposta B[13]. Verificar
para cada apostador o n de acertos e escrever o n do apostador e seu nmero de acertos. Se tiver 13 acertos, acrescentar a mensagem:
ganhador, parabns!.
40. Escrever um algoritmo/programa em Pascal que l um vetor V(20) e o escreve. Retire, a seguir, os elementos em duplicata, compactando o
vetor Y, e escrevendo o vetor compactado.
41. Escreva um algoritmo/programa em Pascal que l um conjunto de 30 valores e os coloca em 2 vetores conforme forem pares ou impares. O
tamanho dos vetores de 5 posies. Se algum vetor estiver cheio, escreve-lo. Terminada a leitura escrever o contedo dos 2 vetores. Cada
vetor pode ser preenchido tantas vezes quantas for necessrio.
42. Escrever um algoritmo/programa em Pascal que gera os 10 primeiros nmeros primos acima de 100 e os armazena em um vetor A(10) es-
crevendo, no final, o vetor A.
43. Escrever um algoritmo/programa em Pascal que l uma matriz H(10,10) e a escreve. Troque, a seguir:
a linha 2 com a linha 8.
a coluna 4 com a coluna 10
a diagonal principal com a secundria
a linha 5 com a coluna 10
Escreva a matriz assim modificada.
44. Escrever um algoritmo/programa em Pascal que l uma matriz C(6,6) e um valor A e multiplica a matriz C pelo valor A e coloca os valores
da matriz multiplicados por A em um vetor de V(36) e escreve no final o vetor V.
45. Escrever um algoritmo/programa em Pascal que l uma matriz A(12,13) e divida todos os 13 elementos de cada uma das 12 linhas de A
pelo valor do maior elemento em mdulo daquela linha. Escrever a matriz A lida e a matriz A modificada.
INDICAO DE LEITURA
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
GLOSSRIO
ASCII: (American Standard Code for Information Inter- Dados: Qualquer tipo de informao (em um proces-
change) Padro muito usado em todo o mundo, no sador de texto, programa de imagem, etc.) processada
qual nmeros, letras maisculas e minsculas, alguns pelo computador.
sinais de pontuao, alguns smbolos e cdigos de
controle correspondem a nmeros de 0 a 127. Com o Delphi: Tipo de linguagem de programao.
ASCII, os documentos criados so facilmente trans-
feridos atravs da Internet. Inteiro: Nmeros que no possuem casas decimais,
apenas a parte inteira e podem ser positivos ou nega-
BIT: Dgito binrio, um nico 0 ou 1, ativado ou desa- tivos.
tivado, armazenado no seu computador. Quatro bits
formam um nibble (termo raramente usado), e 8 bits Linguagem de Programao: conjunto de instrues,
formam um byte, o equivalente a um nico caracter. comandos, chamado de sintaxe, que deve ser seguida
As CPUs possuem 8, 16 ou 32 bits. Isso se refere corretamente para que o programa funcione.
quantidade de informaes que podem processar de
cada vez. Pascal: Tipo de linguagem de programao.
BYTE: conjunto de 8 bits. Real: Nmeros que possuem casas decimais e tam-
bm podem ser positivos, negativos e inteiros - para
Binrio: Sistema de numerao composto por dois usar casas decimais necessrio usar o ponto ao ivs
dgitos (0 e 1) usado para representao interna de de vrgula.
informao nos computadores. Se refere tambm a
qualquer formato de arquivo cuja informao codi- String: Para escrever um texto, mais de um caracter
ficada em algum formato que no o padro character necessrio. Na programao, precisamos representar
encoding scheme (mtodo de codificao de carac- essa cadeia de caracteres de alguma forma. A palavra
teres). Um arquivo escrito em formato binrio contm cadeia em ingls string).
um tipo de informao que no mostrada como
caracteres. Um software capaz de entender o mtodo
de codificao de formato binrio necessrio para
interpretar a informao em um arquivo binrio. O for-
mato binrio normalmente utilizado para armazenar
mais informao em menos espao.
Anotaes
UNIVERSIDADE DO ESTADO DA BAHIA EaD
REFERNCIAS
CHAPIN, Ned. Flowcharting with the ANSI Standard: A Tutorial. ACM Computing Surveys, v.2, n. 2, p. 119-146,
jun.1979.
CHAPIN, Ned. New Format for Flowcharts, SoftwarePractice and Experience. v. 4, n. 4, p. 341-357, oct.-
dec. 1974.
COLLINS, Willian J. Programao Estruturada com estudo de casos em Pascal. So Paulo: Ed. Mc Graw-Hill
do Brasil, 1988.
CORMEN, Thomas H.; LEISERSON, Charles E. & RIVEST, Ronald L. Introduction to Algorithms. New
York:McGraw-Hill, 1990.
COSTA, Renato. Apostila de Lgica de Programao - Criao de Algoritmos e Programas. Disponvel em:<
http://www.meusite.pro.br/apostilas2.htm>. Acesso em: 17 jul. 2010.
FARRER, Harry et al. Algoritmos Estruturados. Rio de Janeiro: Editora Guanabara Koogan S.A, 1989. 252p.
FARRER, Harry. Programao Estruturada de Computadores. Rio de Janeiro: Ed. LTC, 1989.
GOMES, Abel. Algoritmos, Fluxogramas e Pseudo-cdigo - Design de Algoritmos. Disponvel em: <http://mail.
di.ubi.pt/~programacao/capitulo6.pdf>. Acesso em: 13 set. 2010.
GRILLO, Maria Clia Arruda. Turbo Pascal 5.0 e 5.5. Rio de Janeiro: LTC - Livros Tcnicos e Cientficos, 1990.
396p.
GUIMARES, Angelo de Moura. Algoritmos e Estruturas de Dados. Rio de Janeiro: Ed. LTC, 1985.
HERGERT, Douglas. Dominando o Turbo Pascal 5. Rio de Janeiro: Editora Cincia Moderna, 1989. 550p.
KNUTH, D. E. The Art of Computer Programming. v. 3. Sort and Searchim. Addison Wesley, Reading, Mass.,
1973
MANZANO, Jos Augusto N. G.; OLIVEIRA, Jayr Figueiredo. Algoritmos: Lgica Para Desenvolvimento de Pro-
gramao. So Paulo: rica, 1996. 270p.
MARTINS, Luiz E. G.; ZLIO, Valria M. D. Apostila da Disciplina Introduo Programao. Disponvel em:<
http://www.unimep.br/~vmdzilio/apostila00.doc>. Acesso em: 14 jun. 2010.
MECLER, Ian; MAIA, Luiz Paulo. Programao e Lgica com Turbo Pascal. Rio de Janeiro: Campus, 1989.
223p.
NASSI, Ike. Ike Nassis Home Page. Disponvel em:< http://www.nassi.com/ike.htm>. Acesso em: 11 jun.
2010.
NASSI, Ike; SHNEIDERMAN, Ben. Flowchart Techniques for Structured Programming. ACM SIGPLAN Notices,
v. 8, n. 8, p.12-26, August 1973
ORTH, Afonso Incio. Algoritmos. Porto Alegre: Editora Pallotti, 1985. 130p.
PALMER, Scott D. Guia do Programador Turbo Pascal for Windows. Rio de Janeiro: Ed. Cincia Moderna Ltda,
1992. 470p.
RINALDI, Roberto, Turbo Pascal 7.0: comandos e funes. So Paulo: rica, 1993. 525p.
SALIBA, Walter Lus Caram. Tcnicas de Programao: Uma Abordagem Estrutura. So Paulo: Makron,
McGraw-Hill, 1992. 141p.
SALIBA, Walter Lus Caram. Tcnicas de Programao: Uma Abordagem Estrutura. So Paulo: Ed. Makron
Books, 1992.
SALVETTI, Dirceu Douglas e Barbosa, L. M. Algoritmos. So Paulo: Ed. Makron Books, 1998.
TONET, Bruno; KOLIVER, Cristian. Introduo aos Algoritmos. Disponvel em:< http://dein.ucs.br/napro/Algo-
ritmo/manuais/Manual 20Visualg.pdf>. Acesso em: 21 mar. 2010.