Professional Documents
Culture Documents
DE PROGRAMAO
Curso Tcnico de Nvel Mdio em Informtica
Goinia / 2013
ORGANIZAO DO MATERIAL
Prof. Sidney Martins Pereira Arruda
REVISO E ADAPTAO
Prof. Jos Carlos Cordeiro e Silva
FORMATAO
Prof. Jos Carlos Cordeiro e Silva
FEVEREIRO 2013
SUMRIO
1. ALGORITMOS E ESTRUTURAS DE DADOS ......................................................................... 1
1.1. ALGORITMOS ................................................................................................................................... 1
1.2. PROGRAMA....................................................................................................................................... 2
1.3. SISTEMA ............................................................................................................................................ 2
1.4. SOFTWARE ........................................................................................................................................ 3
1.5. LINGUAGEM DE PROGRAMAO ............................................................................................... 3
1.6. LGICA DE PROGRAMAO ........................................................................................................ 4
1.7. ESTRUTURA BSICA DE UM ALGORITMO ................................................................................ 5
1.8. PROBLEMAS DE NARRATIVA ....................................................................................................... 5
2. CONSTANTES E VARIVEIS .................................................................................................. 6
2.1. CONSTANTES ................................................................................................................................... 6
2.1.1. TIPOS DE CONSTANTES ................................................................................................................. 7
2.1.2. SINTAXE ............................................................................................................................................ 7
2.2. VARIVEIS ........................................................................................................................................ 7
2.2.1. TIPOS DE VARIVEIS ..................................................................................................................... 8
2.2.2. TIPOS DE VARIVEIS ..................................................................................................................... 9
2.2.3. DECLARANDO VARIVEIS ........................................................................................................... 9
2.2.4. APRENDENDO A DECLARAR VARIVEIS................................................................................ 10
2.3. COMENTANDO ALGORITMOS .................................................................................................... 11
2.4. COMANDO DE ATRIBUIO ....................................................................................................... 11
3. OPERADORES ..........................................................................................................................13
3.1. EXPRESSES ARITMTICAS ....................................................................................................... 13
3.1.1. HIERARQUIA DAS OPERAES ARITMTICAS (PRECEDNCIA) ....................................... 13
3.1.2. OPERADORES ARITMTICOS ..................................................................................................... 13
3.1.3. FUNES ARITMTICAS ............................................................................................................. 14
3.2. EXPRESSES LITERAIS ................................................................................................................ 15
3.2.1. OPERADORES LITERAIS .............................................................................................................. 15
3.2.2. FUNES LITERAIS ...................................................................................................................... 16
3.3. EXPRESSES RELACIONAIS ....................................................................................................... 17
3.3.1. OPERADORES RELACIONAIS ...................................................................................................... 17
3.4. EXPRESSES LGICAS................................................................................................................. 18
3.4.1. OPERADORES LGICOS ............................................................................................................... 18
3.5. PRIORIDADES ENTRE OPERADORES E OPERAES ............................................................. 19
4. ENTRADA E SADA DE DADOS .............................................................................................21
4.1. COMANDOS DE ENTRADA E SADA DE DADOS ...................................................................... 21
4.2. ENTRADA DE DADOS: COMANDO LEIA ................................................................................... 21
4.2.1. SINTAXE DO COMANDO LEIA .................................................................................................... 21
4.3. SADA DE DADOS: COMANDO ESCREVA ................................................................................. 21
4.3.1. SINTAXE DO COMANDO ESCREVA ........................................................................................... 21
5. ESTRUTURAS DE CONTROLE ..............................................................................................22
5.1. ESTRUTURA DE CONTROLE SEQUENCIAL .............................................................................. 22
5.2. ESTRUTURA DE CONTROLE SELEO OU CONDICIONAL .................................................. 23
5.2.1. ESTRUTURA DE CONTROLE CONDICIONAL SIMPLES ......................................................... 23
5.2.1.1. SINTAXE DO COMANDO SE......ENTO ...............................................................................................23
5.2.2. ESTRUTURA DE CONTROLE CONDICIONAL COMPOSTA .................................................... 25
5.2.2.1. SINTAXE DO COMANDO SE...ENTO...SENO...FIM-SE...............................................................25
5.2.3. SELEO ENCADEADA................................................................................................................ 27
5.2.3.1. SINTAXE DO COMANDO SE......ENTO ......SENO SE.....ENTO.... ........................................28
5.2.4. SELEO DE MLTIPLA ESCOLHA........................................................................................... 30
5.2.4.1. SINTAXE DO COMANDO ESCOLHA / CASO / FIM ESCOLHA......................................................30
5.3. ESTRUTURAS DE REPETIO ..................................................................................................... 30
5.3.1. ESTRUTURA DE CONTROLE DE REPETIO .......................................................................... 31
5.3.1.1. SINTAXE DO COMANDO ENQUANTO/FAA/FIM-ENQUANTO .................................................31
5.3.1.2. SINTAXE DO COMANDO REPITA/AT QUE ......................................................................................35
5.3.1.3. SINTAXE DO COMANDO PARA/FAA/FIM-PARA...........................................................................35
5.3.2. FORMAS DE CONTROLE DE UMA REPETIO ....................................................................... 36
5.4. VARIVEL ACUMULADORA ....................................................................................................... 37
6. VETORES E MATRIZES ..........................................................................................................39
6.1. ESTRUTURA DE DADOS COMPOSTA HOMOGNEA .............................................................. 39
6.1.1. VARIVEL COMPOSTA UNIDIMENSIONAL............................................................................. 40
6.1.1.1. VETORES .........................................................................................................................................................40
6.1.1.1.1. DECLARANDO O VETOR ..........................................................................................................................40
6.1.1.1.2. SINTAXE DO VETOR...................................................................................................................................40
6.1.1.1.3. INSERINDO VALORES EM CADA PARTE DO VETOR ....................................................................41
6.1.1.1.4. VETORES X ESPAO ALOCADO NA MEMRIA ..............................................................................41
6.1.1.1.5. MONTANDO O VETOR ...............................................................................................................................41
6.1.1.1.6. PESQUISA EM VETORES ...........................................................................................................................44
6.1.1.1.6.1. PESQUISA SEQUENCIAL ...........................................................................................................................44
6.1.1.1.6.2. PESQUISA BINRIA ....................................................................................................................................44
6.1.2. VARIVEL COMPOSTA MULTIDIMENSIONAL ....................................................................... 46
6.1.2.1. MATRIZES ......................................................................................................................................................46
6.1.2.1.1. DECLARANDO A MATRIZ ........................................................................................................................46
6.1.2.1.2. SINTAXE DA MATRIZ ................................................................................................................................46
6.1.2.1.3. INSERINDO VALORES NA MATRIZ ......................................................................................................47
6.1.2.1.4. MONTANDO A MATRIZ .............................................................................................................................48
6.1.3. TESTE DE MESA ............................................................................................................................. 49
7. BIBLIOGRAFIA ........................................................................................................................53
LISTA DE TABELAS
ALGORITMO
Descrio de um conjunto de aes que, quando obedecido, dentro de um padro de
comportamento definido, resulta uma sucesso finita de passos, atingindo-se o objetivo.
PROGRAMA
uma adaptao ou codificao de um algoritmo atendendo as regras de uma linguagem
especfica.
PSEUDOCDIGO (PORTUGOL)
Modelo de representao de algoritmos que utiliza comandos escritos na lngua portuguesa.
Tambm conhecido como portugus estruturado ou portugol.
AO
Fato que, a partir de um estado inicial, aps um perodo de tempo finito, produz um estado
final previsvel e definido.
LGICA
Utilizada para ordenar e corrigir pensamentos ou aes voltados para a soluo de problemas.
FLUXOGRAMA
Modelo de representao que utiliza figuras para representar o fluxo dos dados e os comandos
do algoritmo.
PSEUDOCGICO
Modelo de representao de algoritmos que utiliza comandos escritos na lngua portuguesa.
Tambm conhecido como portugus estruturado ou portugol.
CONSTANTES
Valores inseridos em cada parte da memria do computador, que permanecem os mesmos do
incio ao fim do algoritmo.
CONSTANTES NUMRICAS
Todo e qualquer valor numrico positivo ou negativo.
CONSTANTES LITERAIS
Todo e qualquer valor literal, tambm conhecido por alfanumricos (conjunto composto por
letras, dgitos ou smbolos especiais: -, %, $, etc), que devem ser colocados entre aspas.
CONSTANTES LGICAS
So os valores lgicos verdadeiro e falso.
CONSTANTES LGICAS
So os valores lgicos verdadeiro e falso.
VARIVEIS
Nomes associados a endereos de memria que armazenam valores (constantes).
VARIVEIS NUMRICAS
Variveis que podem receber apenas valores (constantes) numricos.
VARIVEIS LITERAIS
Variveis que podem receber apenas valores (constantes) literais.
VARIVEIS LGICAS
Variveis que podem receber apenas valores (constantes) lgicos.
EXPRESSES LITERAIS
Expresses que utilizam operadores e/ou variveis literais que tm como resultado valores
literais. Diferentemente das expresses aritmticas, as expresses literais aceitam somente o
operador de concatenao.
EXPRESSES RELACIONAIS
Expresses compostas por expresses relacionais com operadores relacionais. As expresses
relacionais retornam valores lgicos.
EXPRESSES LGICAS
Expresses compostas por expresses relacionais com operadores lgicos. As expresses
lgicas retornam valores lgicos.
COMENTRIOS
Informaes auxiliares que facilitam o entendimento do algoritmo.
VARIVEL CONTADORA
Varivel que adiciona um valor a cada repetio em uma estrutura de repetio.
VARIVEL ACUMULADORA
Varivel que acumula valores que sero utilizados no trmino da repetio.
FLAG OU MARCA
Tcnica que marca um evento que deve ocorrer com uma varivel para indicar o trmino de
uma repetio.
VETOR
Varivel unidimensional (uma dimenso) que pode armazenar vrias constantes do mesmo
tipo (homognea). Isso permite manipular um conjunto de dados do mesmo tipo sem a
necessidade de se recorrer declarao de muitas variveis.
MATRIZ
Varivel bidimensional (linha e coluna) que armazena vrias constantes do mesmo tipo
(homognea). Isso permite manipular um conjunto de dados do mesmo tipo sem a
necessidade de se recorrer declarao de muitas variveis.
PROGRAMAO ESTRUTURADA
Programao que utiliza tcnicas que decompem a soluo de um problema em blocos que
interagem com um bloco principal. Esse tipo de programao desenvolve
programas/algoritmos confiveis, legveis, de fcil entendimento, flexveis e de fcil
manuteno.
APRESENTAO
1.2. Programa
Um programa de computador essencialmente um algoritmo que diz ao computador
os passos especficos e em que ordem eles devem ser executados, como por exemplo, os
passos a serem tomados para calcular as notas que sero impressas nos boletins dos alunos de
uma escola. Logo, o algoritmo pode ser considerado uma sequncia de operaes que podem
ser simuladas por uma mquina de Turing completa.
Quando os procedimentos de um algoritmo envolvem o processamento de dados, a
informao lida de uma fonte de entrada, processada e retornada sob novo valor aps
processamento, o que geralmente realizado com o auxlio de uma ou mais estrutura de
dados.
Para qualquer processo computacional, o algoritmo precisa estar rigorosamente
definido, especificando a maneira que ele se comportar em todas as circunstncias. A
corretude do algoritmo pode ser provada matematicamente, bem como a quantidade
assinttica de tempo e espao (complexidade) necessrios para a sua execuo. Estes aspectos
dos algoritmos so alvo da anlise de algoritmos.
A maneira mais simples de se pensar um algoritmo por uma lista de procedimentos
bem definida, na qual as instrues so executadas passo a passo a partir do comeo da lista,
uma ideia que pode ser facilmente visualizada atravs de um fluxograma ( ver figura 1 ). Tal
formalizao adota as premissas da programao imperativa, que uma forma mecnica para
visualizar e desenvolver um algoritmo. Concepes alternativas para algoritmos variam em
programao funcional e programao lgica.
1.3. Sistema
Para entender o que sistema, teremos que utilizar a analogia com outros tipos de
sistemas, como o caso do corpo humano. Ele formado por vrios subsistemas, como:
Respiratrio, nervoso, urinrio, cardiovascular, msculo-esqueltico, etc. Os vrios
subsistemas formam o Sistema Orgnico ( ver figura 2 ).
Reprodutor Nervoso
Msculo-
Respiratrio esqueltico Urinrio
Cardiovascular Outros
Figura 2 Sistema Orgnico dosubsistemas
Corpo Humano
Como pudemos perceber na figura acima, cada subsistema tem uma funo no corpo
e formado por rgos que tambm tm a sua funo especfica. Por exemplo, o subsistema
cardiovascular, alm das veias e outros rgos, so formados pelo corao, que tem como
funo principal bombear o sangue.
1.4. Software
Software um conjunto dos programas que comandam o funcionamento do
hardware. Programas so feitos a partir de algoritmos sequncias de instrues/commandos
para se atingir um objetivo.
Depois de pronto, o algoritmo convertido para uma linguagem de programao. O
produto dessa converso um programa.
Resumindo:
Soluo:
1 Andar at a prxima porta.
2 Pegar na maaneta.
3 Girar a maaneta.
4 Puxar a porta.
Concluso: Devemos utilizar essa ordem para realizar a ao Abrir a porta , pois, no
poderamos realiz-las na ordem diferente, afinal de contas, ao estabelecerem as aes,
definida uma sequncia que seria naturalmente executada por qualquer pessoa, determinando-
se um padro de comportamento, porm, em alguns casos agiramos com aes diferentes,
atingindo um mesmo objetivo.
1. Nome do programa
2. Incluso das bibliotecas utilizadas
3. Declarao das variveis globais
4. Criao dos procedimentos e funes
5. Indicador do incio do programa (Incio)
6. Cdigo principal
7. Indicador de fim do programa (fim)
Existem certas regras que devem ser seguidas ao se criar um algoritmo. Essas regras
vo desde a sintaxe dos comandos at a ordenao dos mesmos. A seguir aprenderemos como
deve ser a estrutura bsica de um algoritmo desde a primeira at a ltima linha.
Somar A e B a menos que A seja menor que B aonde neste caso subtrair A de B
Somar A e B, entretanto se a for menor que B a resposta ser a diferena entre A e
B
Somar A e B, mas subtrair A de B quando A for menor que B
O Total a soma de A e B, somente quando A for menor que a diferena deve ser
utilizada no total
Ambiguidade do E/OU
Clientes regulares que adquirirem mais de 1 Milho e que tem um bom histrico de
pagamento ou que esto conosco a mais de 20 anos devem receber tratamento especial
Como pode ser visto acima a utilizao da linguagem coloquial pode gerar diversas
interpretaes, e tambm muitas dvidas. Desta forma faz-se necessrio a utilizao de uma
linguagem mais prxima a lgica dos computadores. E tambm, com uma linguagem bem
parecida com as linguagens de programao, fica mais fcil a transformao do algoritmo em
um programa. O Algoritmo ento um intermedirio entre a linguagem coloquial utilizada
normalmente, e as linguagens de programao em outras palavras Portugol.
1.9. Exerccios
1. Qual a diferena entre Programa, Sistema e Software.
4. O que algoritmo?
2. CONSTANTES E VARIVEIS
Para que possamos entender e desenvolver algoritmos precisaremos de alguns
conceitos bsicos, como: constantes, variveis, tipos de dados, nome das variveis, dentre
outros.
2.1. Constantes
Uma constante consiste em recurso computacional que pode ser criado em um
algoritmo, sendo ela capaz de armazenar um nico valor de um tipo de dado definido durante
toda execuo deste algoritmo. Este recurso no est sujeito a variaes no seu valor
armazenado, ou seja, o valor guardado em uma constante no sofre alterao, se mantendo
sempre constante aps a sua criao.
A criao de uma constante exige a indicao de um tipo de dado e um identificador
para mesma ser armazenada e acessada na memria do computador. Quando esta constante
criada com sucesso, ela ocupa uma rea de memria que poder ser acessada por meio de seu
nome (identificador), mas seu valor inicial nunca poder ser alterado enquanto seu algoritmo
estiver em execuo. Exemplo:
2.1.2. Sintaxe
Constante <identificador>: <tipo do dado> <valor do identificador>
Exemplo:
2.2. Variveis
Uma varivel corresponde a uma rea de memria, cujo contedo varia durante a
execuo do algoritmo. Os valores guardados por este importante recurso podem ser incertos,
instveis ou inconstantes, conforme a situao a ser processada pelo computador.
Similar as constantes, uma varivel exige um tipo de dado conhecido pelo
computador e um identificador para ser criada e manipulada na memria do mesmo. No
entanto, este recurso pode guardar um ou vrios valores de um mesmo tipo de dado nesta rea
de memria, conforme seja necessrio ao computador processar o algoritmo elaborado e em
execuo.
Apesar da varivel poder armazenar vrios valores de um mesmo tipo, ela s
consegue guardar um valor por vez, ou seja, o armazenamento de uma varivel no
simultneo de vrios valores, mas somente um de cada vez (sobreposio dos valores de uma
mesma varivel na memria).
Assim como na declarao de constantes, a declarao de variveis define primeiro
o tipo de dado a ser armazenado como seu contedo e qual o seu identificador (nome da
varivel). A principal diferena entre estes recursos a possibilidade de modificao do
contedo armazenado na varivel, sendo ele alterado quantas vezes forem necessrias para o
correto funcionamento do algoritmo. No entanto, as constantes possuem uma mesma sintaxe
de definio, incluindo somente a palavra reservada constante, porm elas no sofrem
alterao durante toda execuo do algoritmo, somente recebendo um valor que permanece
inaltervel durante toda esta execuo.
Nomes de Variveis
Para que possamos declarar uma varivel devemos dar-lhe um nome. Dentro do
algoritmo, toda vez que eu precisar usar o valor armazenado nesta varivel, deveremos
referenci-la pelo seu nome.
Exemplo:
Nome: inteiro
Sexo: lgico
IMPORTANTE:
Nome: literal
RG, CPF: numrico
Status: lgico
Data_de_Nascimento: literal
Soluo:
Nome, sexo, endereo, cidade, estado, CEP, telefone, data de nascimento, RG, nome do pai,
nome da me e grau de escolaridade.
2 Classificar os dados segundo os tipos de variveis que sero armazenados.
Variveis literais: Nome, sexo, endereo, cidade, estado, nome do pai, nome da me.
OBS: Os dados referentes data de nascimento foram colocados em uma varivel numrica
porque devero ser digitados apenas os nmeros, sem as barras de separao. Se as barras
fossem utilizadas, esse dado seria classificado como literal. O mesmo vale para o telefone,
em que no sero digitados o hfen e os parnteses que separam os nmeros.
3 Criando identificadores ( nomes ) para os dados que sero armazenados nas variveis.
Variveis literais:
Nome do aluno = Nome;
Sexo = Sexo;
Endereo = Endereo;
Cidade = Cidade;
Estado ( Unidade Federativa ) = UF;
Nome do pai = Pai;
Nome da me = Mae;
Variveis numricas:
CEP = CEP;
Telefone = Fone;
Registro Geral(RG) = RG;
Data de nascimento = DataNasc;
Incio
Nome, sexo, endereo, cidade, uf, pai, me: literal
Fone, CEP, RG, DataNasc,GrauEsc: numrico
fim
Exemplo:
Incio
Pessoa: literal //Varivel para armazenar o nome
Idade: numrico //Varivel para armazenar a idade
fim
Pessoa Joo
Idade 25
Sexo M
Exemplo:
Incio
Pessoa: literal //Varivel para armazenar o nome
Idade: numrico //Varivel para armazenar a idade
Pessoa Joo
Idade 25
fim
2.5. Exerccios
1. Por que utilizamos constantes e variveis nas construes de algoritmos?
3. OPERADORES
Suponha que durante a construo de um algoritmo fosse necessrio somar dois
nmeros. Para isso, existem as expresses, utilizadas para obter ou modificar os valores de
algumas variveis. A seguir, voc vai conhecer os tipos de expresses, seus operadores e suas
descries.
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e
avaliamos dados dentro do computador. Temos quatro tipos de operadores:
Operadores Aritmticos
Operadores Literais
Operadores Relacionais
Operadores Lgicos
Variveis
Comando atribuio / Operao Procedimento
X Y Z
- - - X 25 Armazenar o valor 25 na varivel X
Somar o valor da varivel A ( 25 ) com 30 e
25 - - Y X + 30
armazenar o resultado na varivel Y.
Subtrair o valor da varivel Y ( 55 ) do valor da
25 55 - ZYX varivel X ( 25 ) e armazenar o resultado na
varivel Z
Subtrair o valor da varivel Y ( 55 ) por duas
25 55 30 Y Y 2*X vezes o valor da varivel X ( 25) e armazenar o
resultado na varivel Y.
Somar o valor da varivel X ( 25 ) por trs vezes
25 5 30 Z X + 3*(-Y) o valor da varivel Y ( 5 ), porm, com sinal
negativo (5) e armazenar o resultado na varivel Z.
Multiplicar o valor da varivel X (25) pelo valor da
varivel Z (10), subtraindo o resultado pela
25 5 10 X Y * Z X*Y
multiplicao do valor de X(10) pela varivel
Y(25) e armazenar o resultado na varivel X.
Elevar o valor da varivel Y (5) ao valor da
0 5 10 X Y^X varivel X (0) e armazenar o seu resultado na
varivel X.
Dividir o valor da varivel Z (10) pelo valor da
1 5 10 YZ/Y varivel Y(5) e armazenar o resultado na varivel
Y.
Elevar o valor da varivel Z(10) pelo valor da
1 2 10 X Z ^Y varivel Y(2) e armazenar o resultado na varivel
X.
100 2 10
TABELA 6 UTILIZAO DAS EXPRESSES ARITMTICAS
Funo
Sintaxe Descrio
aritmtica
Faz a diviso inteira do nmero x pelo nmero y,
Diviso inteira DIV (x,y) ou seja, retorna somente a parte inteira da
diviso.
Resto da diviso Retorna o resto da diviso inteira do nmero x
MOD (x,y)
inteira pelo nmero y.
Valor absoluto ABS (x) Retorna o valor absoluto do nmero x.
Arredondamento ARREDONDA (x) Retorna o valor arredondado do nmero x.
Semelhante ao operador ^, retorna o resultado do
Potenciao ELEV (x,y)
nmero x elevado ao nmero y.
Raiz quadrada RZQD (x) Retorna o valor da raiz quadrada do nmero x.
Retorna o valor somente com sua parte inteira,
Truncamento TRUNCA (x)
excluindo a parte decimal.
Converte o valor introduzido em parmetro em
Radiano RADIANOS (x) radianos. O valor dado em parmetro deve ser
exprimido em graus.
Converte o valor inserido em parmetro em
Grau GRAUS (x) graus. O valor dado em parmetro deve ser
exprimido em radianos.
TABELA 7 FUNES ARITMTICAS
Variveis
Comando atribuio / Operao Procedimento
X Y Z
- - - X5 Armazenar o valor 5 na varivel X
Armazenar na varivel Y o valor da diviso
5 - - Y DIV (25,X) inteira de 17 pelo valor da varivel X (2)
( 25 / 2 = 12,5; parte inteira = 12 ).
Armazenar na varivel Z o valor do resto da
diviso inteira do valor da varivel Y (12) pelo
5 12 - Z RESTO (Y,X)
valor da varivel X (5)
(12 / 5) = 2; resto = 2).
Armazenar na varivel Z o valor da subtrao
entre o valor absoluto de -9,5 e o valor da varivel
5 12 2 Z ABS (-6,5) - X
X (5).
( Valor absoluto = 9,5; 9,5 - 5 = 4,5)
Armazenar na varivel Y o valor absoluto do
valor da varivel Z(4,5)
5 12 4,5 Y ARREDONDA (Z) (Valor Arredondado = 4).
Obs: ( Valor: 6,6: < ou = a 6,5, arredonda para
menos ( 6,0), > 5 arredonda para mais (7,0))
Armazena na varivel Y o valor truncado de 4,9,
5 4 4,5 Y TRUNCA (4,9) ou seja, permanece somente a parte inteira.
(Valor truncado = 4)
Armazenar na varivel X o valor da raiz quadrada
5 4 4,5 X RZQD (Y) da varivel Y(4).
(Valor = 4; raiz quadrada de 4 = 2)
2 4 4,5
TABELA 8 UTILIZAO DAS FUNES ARITMTICAS
OBS: Primeiramente, voc deve inserir valores nas variveis que sero utilizadas nas
expresses. Isso necessrio para evitar erro, pois, caso a varivel utilizada na expresso no
tenha valor, o computador no saber qual valor dever ser levado em conta no clculo.
Operador
Operao Descrio
relacional
Verifica se dois valores so iguais e retorna um
= Igualdade
valor lgico.
Verifica se um nmero maior que outro e
> Maior que
retorna um valor lgico.
Verifica se um nmero menor que outro e
< Menor que
retorna um valor lgico.
Verifica se dois valores so diferentes e retorna
<> Diferena
um valor lgico.
Verifica se um nmero menor ou igual a outro e
<= Menor ou igual a
retorna um valor lgico.
Verifica se um nmero menor ou igual a outro e
>= Maior ou igual a
retorna um valor lgico.
TABELA 13 OPERADORES RELACIONAIS
3.6. Exerccios
1. Quais so os operadores existentes e cite 1 exemplo para cada operador ?
2. Declare 3 variveis com os seus respectivos tipos e atribua alguns algarismos e/ou
valores, conforme o seu respective operador.
VARIVEL TIPO
X 30
Z Z + + Incio
Z Lula + + Z
Y X <> Y
X Y > 40
Z Z + da Silva
WYeW
W W ou W
Z Z + 13
X 40
VARIVEL TIPO
Z RTRIM (Z)
Z (X=Y)
Y DIV (60,Y)
Z DIV (25,X)
X RESTO (Y,X)
Y ABS (-6,5) + X
W (X = Y)
WY>X
XX^2
Y Y + (Z ARREDONDA (2,3))
X TRUNCA (Y)
Exemplo:
Incio
PESSOA: literal
leia PESSOA
fim
Exemplo:
Incio
PESSOA: literal
leia PESSOA
escreva PESSOA
fim
OBS: Para utilizar o comando escreva, necessrio que a varivel seja declarada e que
contenha um valor, seno ocorrer um erro.
Em alguns livros voc poder encontrar os comandos exiba e imprimir no lugar de
escreva para diferenciar a sada por vdeo ou pela impressora. No utilizamos essa
sintaxe, mas se preferir pode empreg-lo nos algoritmos em pseudocdigo.
4.4. Exerccios
1. Explique com suas palavras onde utilizamos as entradas de dados? E de sada de
dados?
2. Declare 2 variveis com os seus respectivos tipos e atribua valores para a mesma,
leia e imprima o valor das suas variveis.
5. ESTRUTURAS DE CONTROLE
Para fazer um algoritmo, como vimos at agora, so necessrios vrios comandos
dentro de uma determinada estrutura. Como em um quebra-cabea, em que as peas
(comandos) so colocados em lugares estabelecidos ( estruturas ).
Utilizamos os conceitos de bloco lgico, entrada e sada de dados, variveis,
constantes, atribuies, expresses lgicas, relacionadas e aritmticas, bem como comandos
que traduzam esses conceitos de forma a representar o conjunto de aes. Essas estruturas,
chamadas Estruturas de Controle, permitem o controle do fluxo de execuo dos comandos,
tornando a soluo de um algoritmo diferente da encontrada em outro algoritmo.
Para que esse conjunto de aes se torne vivel, deve existir uma perfeita relao
lgica intrnseca pelo qual as aes so executadas e pelo qual regido o fluxo de execuo
do algoritmo. Nas Operaes Lgicas verificamos que na maioria das vezes necessitamos
tomar decises no andamento do algoritmo. Essas decises interferem diretamente no
andamento do programa.
Por meio das estruturas bsicas de controle do fluxo de execuo sequenciao,
seleo, repetio e da combinao delas, poderemos criar algoritmos para solucionar
nossos problemas. Basicamente as estruturas de controle de dados so de trs tipos principais:
Incio
real NOTA; // cria uma varivel real denominada NOTA
escreva("Informa a nota da prova: "); // orientao para o usurio
leia(NOTA); // leitura e armazenamento do valor informado
escreva("Nota = ", NOTA);// mostra a mensagem e o contedo de NOTA
fim
se <condio>
ento <comandos>
fim-se
EXEMPLO 1:
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 10
ento NUMERO NUMERO * 0,1
fim-se
fim
No respectivo algoritmo ir verificar se o nmero recebido maior que 10, caso seja
verdadeiro o seu resultado ser a clusula ento, realizando a multiplicao do nmero
recebido por 0,1 (NUMERO NUMERO * 0,1), sendo falso no far nada, pois no
colocamos uma clusula para essa finalidade e no escrevemos o algoritmo para impresso do
resultado. Se quisermos atribuir uma impresso do resultado obtido pela condio, deveremos
usar o comando escreva.
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 10
ento NUMERO NUMERO * 0,1
fim-se
escreva O NMERO : , NMERO
fim
EXEMPLO 2: Fazer um algoritmo para ler um nmero e verificar se ele maior que
100. Se for, o algoritmo deve somar 200 a esse nmero. No final, o algoritmo deve
imprimir o resultado da soma.
Soluo:
Incio
NUMERO: numrico
Incio
NUMERO: numrico
leia NUMERO
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 100
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 100
ento NUMERO NUMERO * 0,1
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 100
ento NUMERO NUMERO + 200
fim-se
Incio
NUMERO: numrico
leia NUMERO
se NUMERO > 100
ento NUMERO NUMERO + 200
fim-se
escreva O nmero : , NUMERO
fim
se <condio>
ento <comandos>
seno <comandos>
fim-se
EXEMPLO 1:
Incio
NUMERO: numrico
NUMERO 13
se NUMERO <= 30
ento NUMERO (NUMERO/NUMERO) * NUMERO
seno NUMERO NUMERO + NUMERO
fim-se
escreva O nmero : , NUMERO
fim
EXEMPLO 2:
Incio
NUMERO: numrico
NUMERO 23
se NUMERO >= 30
ento NUMERO (NUMERO/NUMERO) * NUMERO
seno NUMERO NUMERO + NUMERO
fim-se
escreva O nmero : , NUMERO
fim
Soluo:
a. O enunciado do problema indica dois dados de entrada: o nome do aluno e a
mdia final. O primeiro passo, portanto, declarar uma varivel literal para o
nome e uma varivel numrica para a mdia final.
Incio
NOME: literal
MEDIA: numrico
leia MEDIA
Incio
NOME: literal
MEDIO: numrico
leia NOME
leia MEDIO
Incio
NOME: literal
MEDIA: numrico
leia NOME
leia MEDIA
se MEDIO >= 6
ento escreva O aluno , NOME, est aprovado
e. Se a mdia for menor que 6,0, deve aparecer a mensagem dizendo que o aluno
est reprovado. Nesse caso, deve ser utilizado o parmetro seno.
Incio
NOME: literal
MEDIA: numrico
leia NOME
leia MEDIA
se MEDIO >= 6
ento escreva O aluno , NOME, est aprovado !
seno escreva O aluno , NOME,est reprovado !
fim-se
fim
se <condio>
ento <comandos>
seno se <comandos>
fim-se
Nos problemas com vrios testes/comparaes, portanto, com vrios comandos se,
necessrio encadear os comandos, inserindo um dentro do outro, para aplicar e verificar todas
as solues possveis.
EXEMPLO 1: Faa um algoritmo para ler duas notas de um aluno. Sendo a mdia
aritmtica das notas for maior que 7,0, deve aparecer a mensagem Mdia superior
mdia mnima (7,0); se for igual a 7,0, Mdia igual mdia mnima (7,0); se for
menor que 7,0, Mdia inferior mdia mnima(7,0). Represente o algoritmo em
pseudocdigo.
Solues:
Incio
NOTA_1, NOTA_2, MEDIA: numrico
Incio
NOTA_1, NOTA_2, MEDIA: numrico
leia NOTA_1, NOTA_2
c. A prxima etapa fazer a mdia aritmtica das notas ( Soma dos valores
dividida pela quantidade dos valores ).
Incio
NOTA_1, NOTA_2, MEDIA: numrico
leia NOTA_1, NOTA_2
MEDIA (NOTA_1 + NOTA_2) / 2
Incio
NOTA_1, NOTA_2, MEDIA: numrico
leia NOTA_1, NOTA_2
MEDIA (NOTA_1 + NOTA_2) / 2
se MEDIA > 7
ento escreva Mdia superior mdia mnima (7,0)
Incio
NOTA_1, NOTA_2, MEDIA: numrico
leia NOTA_1, NOTA_2
MEDIA (NOTA_1 + NOTA_2) / 2
se MEDIA > 7
ento escreva Mdia superior mdia mnima (7,0)
seno se MEDIA = 7
ento escreva Mdia igual mdia mnima (7,0)
seno escreva Mdia inferior mdia mnima (7,0)
fim-se
fim-se
fim
EXEMPLO 2: Faa um algoritmo para ler duas notas de um aluno. Sendo a mdia
aritmtica das notas for maior que 7,0, deve aparecer a mensagem Mdia superior
mdia mnima (7,0); se for igual a 7,0, Mdia igual mdia mnima (7,0); se for
menor que 7,0, Mdia inferior mdia mnima(7,0). Represente o algoritmo em
pseudocdigo. (Outra forma de fazer o mesmo exerccio do Exemplo 1).
Incio
NOTA_1, NOTA_2, MEDIA: numrico
leia NOTA_1, NOTA_2
MEDIA (NOTA_1 + NOTA_2) / 2
se MEDIA > 7
ento escreva Mdia superior mdia mnima (7,0)
fim-se
se MEDIA < 7
ento escreva Mdia inferior mdia mnima (7,0)
fim-se
se MEDIA = 7
ento escreva Mdia igual mdia mnima (7,0)
fim-se
fim
Os cases [<v1>, <v2> e <v3>] so supostos valores a serem relacionados por meio
da operao de igualdade.
Exemplo:
Incio
inteiro EPOCA;
escreva("Digite o perodo trimestral do ano em que estamos: ");
leia(EPOCA);
escolha (EPOCA) { instruo de mltipla escolha sobre EPOCA }
caso 1: escreva ("vero"); { testes de igualdades sobre EPOCA }
caso 2: escreva ("outono");
caso 3: escreva ("inverno");
caso 4: escreva ("primavera");
caso contrario: escreva ("perodo invlido");
fim escolha;
fim
Enquanto/faa/fim-enquanto
Repita/at que
Para/ faa /fim-para
fim-enquanto
Incio
NOME: literal
leia NOME
escreva NOME
fim
EXEMPLO 2: Para ler o nome de duas pessoas, basta declarar mais uma varivel.
Observe o acrscimo de um dado provoca o aumento do tamanho do algoritmo.
Incio
NOME1, NOME2: literal
leia NOME1
leia NOME2
escreva NOME1
escreva NOME2
fim
OBS: Caso fossem lidos cinco nomes de pessoas teramos que declarar cinco variveis e
aplic-las os comandos leia e escreva. Como veremos no Exemplo 3, resolveremos essa
situao utilizando a estrutura de repetio, porm, utilizando uma varivel chamada
NMERO_PESSOAS para que no ocorra erro na execuo do algoritmo, o qual
desempenhou o papel de contador, ou seja, contagem da quantidade dos nomes lidos e
escritos.
EXEMPLO 3: Para ler os nomes de duas pessoas, basta declararem mais uma varivel.
Observe o acrscimo de um dado provoca o aumento do tamanho do algoritmo.
Incio
NOME: literal
NUMERO_PESSOAS: numrico
NUMERO_PESSOAS 0
enquanto NUMERO_PESSOAS < 5 faa
leia NOME
escreva NOME
fim-enquanto
fim
Incio
NOME: literal
NUMERO_PESSOAS: numrico
NUMERO_PESSOAS 0
Incio
NOME: literal
NUMERO_PESSOAS: numrico
NUMERO_PESSOAS 0
enquanto NUMERO_PESSOAS < 5 faa
c. O primeiro comando dessa estrutura o comando leia, que deve ler o primeiro
nome, Arthur e coloc-lo na varivel NOME.
Incio
NOME: literal
NUMERO_PESSOAS: numrico
NUMERO_PESSOAS 0
enquanto NUMERO_PESSOAS < 5 faa
leia NOME
OBS: Depois que o algoritmo ler e escrever o nome Plnio, somado 1 ao valor da
varivel NUMERO_PESSOAS (portanto: NUMERO_PESSOAS
NUMERO_PESSOAS + 2).
OBS: Ao utilizar uma varivel como contadora, fique atento para o valor inicial a ser
inserido nessa varivel e para a sentena a ser inserida na estrutura enquanto/fim/fim-
enquanto, pois, dependendo desse valor inicial e do lugar onde foi colocado o acrscimo a
varivel contadora a expresso pode ser outra. Por exemplo, se, no exerccio anterior,
voc tivesse inserido 1 no valor inicial da varivel contadora ( NMERO_PESSOAS), a
expresso na estrutura enquanto/faa/fim-enquanto deveria ser NUMERO_PESSOAS <
= 5, pois, na primeira leitura do nome, o valor da varivel contadora no final da
estrutura seria 2.
repita
at que <condio>
Incio
NOME: literal
NUMERO_PESSOAS: numrico
NUMERO_PESSOAS 0
repita
leia NOME
escreva NOME
NUMERO_PESSOAS NUMERO_PESSOAS + 1
at que NUMERO_PESSOAS = 5
fim
para < varivel > de < valor inicial > at < valor final > passo < valor a ser acrescentado ou
diminudo> faa
<comandos a serem repetidos>
fim-para
Incio
NOME: literal
NUMERO_PESSOAS: numrico
para NUMERO_PESSOAS de 1 at 5 passo 1 faa
leia NOME
escreva NOME
fim-para NUMERO_PESSOAS = 5
fim
Incio
NOME: literal
leia Digite o nome de uma pessoa ou a palavra SAIR para encerrar, NOME
enquanto (NOME< >SAIR) e (NOME< >Sair) e (NOME< >sair) faa
escreva NOME
leia Digite o nome de uma pessoa ou a palavra SAIR para encerrar, NOME
fim-enquanto
fim
Esse algoritmo foi criado para ler os nomes de vrias pessoas, entretanto, no se
sabia quantos nomes seriam lidos. Para solucionar o problema, utilizou-se uma mensagem
para o usurio digitar quando quisesse SAIR ou prosseguir com as inseres dos nomes.
Como observado no algoritmo acima no utilizamos a varivel contadora, pois, no havia a
quantidade de nomes a serem lidos.
Dentro da estrutura enquanto/faa/fim-enquanto utilizamos como condio NOME <
> SAIR, ou seja, o valor digitado diferente da literal SAIR e Sair e sair (provveis
valores digitados pelo usurio), sendo diferente ocorre a insero de novo nome; sendo igual
ir para o fim-enquanto , realizando a sada da estrutura enquanto/fim-enquanto.
Incio
NUMERO, MEDIA, SOMA, CONT_NUM: numrico
SOMA 0
para CONT de 1 at 10 faa
leia Digite um nmero: , NUMERO
SOMA SOMA + NUMERO
escreva NUMERO
fim-para MEDIA SOMA / CONT_NUM
fim
5.5. Exerccios
1. Temos 3 tipos principais de estrutura de controle. Cite-os e mostre um exemplo
para cada estrutura de controle?
Incio
NOME: literal
NUM_PESSOAS: numrico
para NUM_PESSOAS de 1 at 10 faa
leia NOME
escreva O nome : , NOME
escreva Pessoa numero: , NUM_PESSOAS
fim-para NUM_PESSOAS = 10
fim
4. Explique com suas palavras o uso da varivel acumuladora, para qu serve esse
tipo de varivel e quando indicado o seu uso.
6. VETORES E MATRIZES
A quantidade de tipos de dados estipulados (tipos primitivos) no suficiente para
representar toda e qualquer informao que possa surgir. Portanto, em muitas situaes esses
recursos de representao so escassos, o que poderia ser suprido se existissem mais tipos de
dados ou, ainda melhor, se esses tipos pudessem ser 'construdos', criados, medida que se
fizessem necessrios.
Construiremos novos tipos, denominados tipos abstratos de dados, a partir da
composio de tipos primitivos. Esses novos tipos tm um formato denominado estrutura de
dados, que define como os tipos primitivos esto organizados.
As principais estruturas a serem manipuladas nos algoritmos so classificadas em
homogneas (de um mesmo tipo de dado) e heterogneas (tipos diferentes).
Incio
real ALUNO1,ALUNO2,ALUNO3,ALUNO4,ALUNO5;
escreva("Informe a nota do 1 aluno: ");
leia (ALUNO1);
escreva("Informe a nota do 2 aluno: ");
leia (ALUNO2);
escreva("Informe a nota do 3 aluno: ");
leia (ALUNO3);
escreva("Informe a nota do 4 aluno: ");
leia (ALUNO4);
escreva("Informe a nota do 5 aluno: ");
leia (ALUNO5);
fim
Por meio deste algoritmo seria possvel ler 5 notas de 5 alunos diferentes e
armazen-las em 5 diferentes variveis. Uma instruo de repetio no melhoraria muito
esta lgica, pois os cinco valores precisaro estar disponveis independente dos outros valores
informados. Mas imagine se a leitura de todas as notas dos alunos do seu curso tivessem quer
ser lidas pelo seu algoritmo, o que faramos? E no prximo semestre quantos alunos seriam?
6.1.1.1. Vetores
O Vetor uma varivel que pode conter vrias constantes do mesmo tipo. Veja o
exemplo a seguir.
Esse esquema representa um vetor numrico, que pode ser denominado NUMEROS.
Ele possui nove posies, ou seja, nove locais possveis para armazenar constantes
numricas. O vetor prtico porque manipula um conjunto de dados do mesmo tipo sem que
seja necessrio declarar muitas variveis.
OBS: O vetor s pode armazenar constantes de um nico tipo: literal, numrico ou lgico. O
tipo lgico geralmente no muito utilizado em vetores.
< nome do vetor> : vetor [< posio inicial do vetor >., < posio final do vetor >] < tipo de constante que o
vetor poder conter>
OBS: Podemos chamar os vetores de matrizes, pois, vetores nada mais que matrizes com
uma linha e uma ou mais colunas. J matrizes, veremos mais adiante, so constitudas por
uma/vrias linhas com uma/vrias colunas, ou seja, mais de uma dimenso.
Os vetores iniciam na posio 0, ou seja, para acessar a informao 1 estar na
posio 0, a informao 2 na posio 1 e sucessivamente. Por isso altamente recomendado
iniciar os vetores na posio 1, pois, quando utilize-se 5 posies, iniciando em 1 o seu ultimo
elemento estar na posio 5. Caso no estabelea a posio inicial do vetor como 1, o mesmo
ser atribudo da posio 0 at a posio 4, obtendo assim 5 posies.
NUMEROS[1] 233908866545
NUMEROS[2] 955
NUMEROS[3] 36756
NUMEROS[4] 1255566
NUMEROS[5] 223456
Aps a insero dos valores nas respectivas posies, podemos acessar as suas
variveis atravs do comando leia NUMEROS [posio_do_vetor]. Para acessar o vetor na
posio 4.
leia NUMEROS[4]
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
4. As leituras dos nomes das 15 pessoas devem ser feitas dentro de uma
estrutura de repetio. Utilize a estrutura enquanto/faa/fim-enqunanto.
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
enquanto NUM_PESSOAS < 20 faa
leia PESSOA
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
enquanto NUM_PESSOAS < 20 faa
leia PESSOA
POS POS + 1
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
enquanto NUM_PESSOAS < 20 faa
leia PESSOA
POS POS + 1
PESSOAS [POS] PESSOA
Incio
PESSOAS: vetor [1..20] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
enquanto NUM_PESSOAS < 20 faa
leia PESSOA
POS POS + 1
PESSOAS [POS] PESSOA
NUM_PESSOAS NUM_PESSOAS + 1
fim-enquanto
fim
Incio
PESSOAS: vetor [1..20] literal
OBS: Com vetores, deve-se usar uma varivel para contar ou para indicar a posio, ou
para ambas as funes.
Incio
PESSOAS: vetor [1..20] literal
POS: numrico
Incio
PESSOAS: vetor [1..20] literal
POS: numrico
para POS de 1 at 20 faa
leia PESSOAS [POS]
fim-para
fim
Depois que voc ordena os valores de um vetor, a pesquisa para localiz-los fica
menos penosa. Existem vrios mtodos de pesquisa em vetor; para a maioria, pr-requisito
que o vetor esteja ordenado, em ordem crescente ou decrescente. Voc vai conhecer os
mtodos de pesquisa seqencial e binria.
O mtodo de pesquisa seqencial o mais simples: um valor lido e, em seguida,
pesquisa em um vetor at que seja encontrado ou que o vetor termine. Esse mtodo mais
eficaz em vetores com valores desordenados, mas tambm o mtodo mais lento de pesquisa,
pois, se no localizar o valor pesquisado, percorre todo o vetor e no somente uma parte dele,
como nos outros mtodos. O desempenho desse mtodo pode melhorar se ele se aplicado em
um vetor ordenado; mesmo assim, ainda ser inferior aos outros mtodos.
Esse mtodo mais rpido que o seqencial, pois pesquisa um nmero menor de
dados. A cada teste, pesquisada somente a parte do vetor que contm valores que satisfaam
a condio da pesquisa (ser o valor maior ou menor que o nmero lido). Para que essa
pesquisa seja feita, imprescindvel que o vetor esteja ordenado.
6.1.2.1. MATRIZES
Perceba que a matriz possui duas dimenses ( linha e coluna / altura e comprimento )
diferentemente do vetor, o qual possui apenas uma dimenso (comprimento). Por essas
caractersticas, a matriz chamada de varivel homognea pois aceita somente um tipo de
constante bidimensional e o vetor, de varivel homognea unidimensional.
Quando uma matriz declarada, o computador reserva uma parte da memria para
ela. No caso da matriz, essa parte dividida em determinada quantidade de colunas e linhas
(indicadas na declarao) e identificada por um par de nmeros (um referente linha e outro
coluna).
OBS: Em matrizes s podemos armazenar constantes de um nico tipo, ou seja, o seu tipo de
varivel tambm homogneo como nos vetores.
< nome da matriz> : matriz [< nmero inicial de linhas >..< nmero final de linhas >], [< nmero inicial
de colunas >.. < nmero final de colunas >] < tipo de constantes que a matriz poder conter>
EXEMPLO 1: Declarar duas variveis com duas dimenses, NOTAS DOS ALUNOS e
ALUNOS, tipos de dados numricos e literal, respectivamente.
OBS: Como fizemos nos vetores, faremos tambm nas matrizes, ou seja, a inicializao
das matrizes com o valor 1, primeiro endereo para linha e coluna.
EXEMPLO 1: Declarar uma matriz com quatro colunas e seis linhas a qual possua o
valor 22 armazenado na terceira linha, coluna dois ( 3,2); valor 59 na linha 4, coluna 4
(4,4).
MATRIZ_ALUNOS
TABELA 28 MATRIZES
NUMEROS[3,2] 22
NUMEROS[4,4] 59
MATRIZ_ALUNOS
22
59
TABELA 29 ALOCAO DE MATRIZES NA MEMRIA
Aps a insero dos valores nas respectivas posies, podemos acessar as suas
variveis atravs do comando leia MATRIZ_ALUNOS [posio_da_linha, posio da
coluna]. Para acessar o vetor na posio 22;59.
leia MATRIZ_ALUNOS[3,2]
leia MATRIZ_ALUNOS[4,4]
Neste algoritmo ser usada uma matriz com 2 linhas por 3 colunas: uma linha para
cada pessoa (no se esquea de que so duas); uma coluna para o nome da pessoa, uma para o
nome do pai e outra para o nome da me. Comece declarando a matriz.
Incio
PESSOAS: matriz [1..2, 1..3] literal
Declararemos duas variveis para indicar as posies da linha e da coluna que voc
pretende acessar.
Incio
PESSOAS: matriz [1..2, 1..3] literal
LINHA, COLUNA: numrico
Incio
PESSOAS: matriz [1..2, 1..3] literal
LINHA, COLUNA: numrico
para LINHA de 1 at 2 faa // Comando para variando a linha
para COLUNA de 1 at 3 faa // Comando para variando a coluna
Utilize o comando se apenas para mudar a mensagem que ser emitida ao
usurio (se no fosse por isso, no haveria necessidade desse comando). Finalize o algoritmo.
Incio
PESSOAS: matriz [1..2, 1..3] literal
LINHA, COLUNA: numrico
para LINHA de 1 at 2 faa // Comando para variando a linha
para COLUNA de 1 at 3 faa // Comando para variando a coluna
se COLUNA = 1
ento leia Digite o primeiro nome de uma pessoa: , PESSOAS [LINHA,
COLUNA]
seno se COLUNA = 2
ento leia Digite o primeiro nome do pai desta pessoa: ,
PESSOAS [LINHA, COLUNA]
EXEMPLO 4: Vamos executar as aes realizadas na matriz para verificar se o mesmo est
correto.
Criar a matriz PESSOAS, com 2 linhas e 3 colunas (PESSOAS: matriz [1..2, 1..3]
literal).
PESSOAS
LINHA COLUNA
TABELA 31 TESTE DE MESA VARIVEIS
LINHA COLUNA
1
TABELA 32 TESTE DE MESA INCREMENTO DA VARIVEL LINHA.
LINHA COLUNA
1 1
TABELA 33 TESTE DE MESA INCREMENTO DA VARIVEL COLUNA.
PESSOAS
JOAQUIM
Voltar ao comando para, que insere mais 1 ao valor da varivel COLUNA (para
COLUNA de 1 at 3 faa)
LINHA COLUNA
1 2
TABELA 35 TESTE DE MESA INCREMENTO DA VARIVEL COLUNA.
PESSOAS
JOAQUIM JOO
LINHA COLUNA
1 3
TABELA 37 TESTE DE MESA INCREMENTO DA VARIVEL COLUNA.
PESSOAS
JOAQUIM JOO APARECIDA
LINHA COLUNA
2 3
TABELA 39 TESTE DE MESA INCREMENTO DA VARIVEL LINHA.
LINHA COLUNA
2 1
TABELA 40 TESTE DE MESA ESTRUTURA DE REPETIO USANDO A VARIVEL COLUNA.
Aplicar o comando se. Para o teste O valor da COLUNA igual a 1?, a resposta
verdadeira, ativando a mensagem Digite o primeiro nome de uma pessoa: . O nome que
deve ser digitado, PATRICIA, armazenado na matriz PESSOAS, no endereo Linha = 2 e
Coluna = 1 (PESSOAS [LINHA, COLUNA]).
PESSOAS
JOAQUIM JOO APARECIDA
PATRICIA
TABELA 41 TESTE DE MESA INSERO DE VALORES NA MATRIZ PESSOAS.
LINHA COLUNA
2 2
TABELA 42 TESTE DE MESA INCREMENTO DA VARIVEL LINHA
PESSOAS
JOAQUIM JOO APARECIDA
PATRICIA JOSE
TABELA 43 TESTE DE MESA INSERO DE VALORES NA MATRIZ PESSOAS.
LINHA COLUNA
1 3
TABELA 44 TESTE DE MESA INCREMENTO DA VARIVEL COLUNA
PESSOAS
JOAQUIM JOO APARECIDA
PATRICIA JOSE MARIA
TABELA 45 TESTE DE MESA INSERO DE VALORES NA MATRIZ PESSOAS.
6.2. Exerccios
1. Explique com as suas palavras a diferena existente entre Vetores e Matrizes?
Incio
PESSOAS: vetor [1..10] literal
PESSOA: literal
NUM_PESSOAS, POS: numrico
NUM_PESSOAS 0
POS 0
enquanto NUM_PESSOAS < 10 faa
leia PESSOA
POS POS + 1
PESSOAS [POS] PESSOA
NUM_PESSOAS NUM_PESSOAS + 2
fim-enquanto
fim
7. BIBLIOGRAFIA
FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton
Fbio de, SANTOS, Marcos Augusto dos, MAIA, Miriam Loureno. Algoritmos
Estruturados. Rio de Janeiro: Editora Guanabara, 1989.
A Linguagem do Visualg
Introduo
algoritmo "semnome"
// Funo :
// Autor :
// Data :
// Seo de Declaraes
inicio
// Seo de Comandos
fimalgoritmo
Tipos de Dados
<lista-de-variveis> : <tipo-de-dado>
<lista-de-variveis> : vetor "["<lista-de-intervalos>"]" de
<tipo-de-dado>
Exemplos:
var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..4,8..10] de inteiro
nome_do_aluno: caractere
sinalizador: logico
a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
vet[1] <- vet[1] + (a * 3)
matriz[3,9] <- a/4 - 5
nome_do_aluno <- "Jos da Silva"
sinalizador <- FALSO
Operadores Aritmticos
Operadores de Caracteres
Operadores Relacionais
=
Respectivamente: igual, menor que, maior que, menor ou
, <,
igual a, maior ou igual a, diferente de. So utilizados em expresses
>,
lgicas para se testar a relao entre dois valores do mesmo tipo.
<=,
Exemplos: 3 = 3 ( 3 igual a 3?) resulta em VERDADEIRO ; "A" >
>=,
"B" ("A" est depois de "B" na ordem alfabtica?) resulta em FALSO.
<>
Operadores Lgicos
escreva (<lista-de-expresses>)
escreval (<lista-de-expresses>).
Exemplos:
algoritmo "exemplo"
var x: real
y: inteiro
a: caractere
l: logico
inicio
x <- 2.5
y <- 6
a <- "teste"
l <- VERDADEIRO
escreval ("x", x:4:1, y+3:4) // Escreve: x 2.5 9
escreval (a, "ok") // Escreve: testeok (e depois pula linha)
escreval (a, " ok") // Escreve: teste ok (e depois pula linha)
escreval (a + " ok") // Escreve: teste ok (e depois pula
linha)
escreva (l) // Escreve: VERDADEIRO
fimalgoritmo
leia (<lista-de-variveis>)
Se voc clicar em
Cancelar ou teclar Esc durante a
leitura de dados, o programa
ser imediatamente
interrompido.
Comando de Desvio
Condicional
se <expresso-lgica> entao
<seqncia-de-comandos>
fimse
se <expresso-lgica> entao
<seqncia-de-comandos-1>
senao
<seqncia-de-comandos-2>
fimse
escolha <expresso-de-seleo>
caso <exp11>, <exp12>, ..., <exp1n>
<seqncia-de-comandos-1>
caso <exp21>, <exp22>, ..., <exp2n>
<seqncia-de-comandos-2>
...
outrocaso
<seqncia-de-comandos-extra>
fimescolha
Veja o exemplo a seguir, que ilustra bem o que faz este comando:
algoritmo "Times"
var time: caractere
inicio
escreva ("Entre com o nome de um time de
futebol: ")
leia (time)
escolha time
caso "Flamengo", "Fluminense", "Vasco", "Botafogo"
escreval (" um time carioca.")
caso "So Paulo", "Palmeiras", "Santos", "Cornthians"
escreval (" um time paulista.")
outrocaso
escreval (" de outro estado.")
fimescolha
fimalgoritmo
Comandos de Repetio
Repita ... at
repita
<seqncia-de-comandos>
ate <expresso-lgica>
Comando Interrompa
repita
x <- x + 1
escreva (x:3)
se x = 10 entao
interrompa
fimse
fimrepita
fimalgoritmo
Procedimentos
<lista-de-variveis> : <tipo-de-dado>
procedimento soma
var aux: inteiro
inicio
// n, m e res so variveis globais
aux <- n + m
res <- aux
fimprocedimento
Funes
<lista-de-variveis> : <tipo-de-dado>
Recurso e Aninhamento
Comando Aleatrio
Comando Arquivo
A sintaxe do comando :
arquivo <nome-de-arquivo>
Comando Timer
fundo azul o comando que est sendo executado, da mesma forma que na
execuo passo a passo.
Comandos de Depurao
Comando Pausa
pausa
Comando Debug
Sua sintaxe :
debug <expresso-lgica>
Comando Eco
Sua sintaxe :
eco on | off
Comando Cronmetro
Sua sintaxe :
cronometro on | off
Comando Limpatela
Sua sintaxe
limpatela