Professional Documents
Culture Documents
Programas.
Professor: Patrick Flix
Bragana-Pa
Introduo
Software:
Corresponde
a
um
conjunto
Programas
que
comandam
funcionamento do hardware.
de
o
Introduo
Programa:
um conjunto de instrues que contm as
operaes necessrias para, a partir de
dados inseridos, obter um resultado que ser
disponibilizado por alguns dispositivo de
sada.
Algoritmo:
Programas so feitos a partir de Algoritmos,
que so seqncias de instrues/comandos
para atingir um objetivo.
Introduo
Linguagem de Programao:
o conjunto de representaes e/ou
regras utilizadas para criar programas.
Existem trs nveis de linguagem:
Linguagem de Mquina;
Linguagem de Baixo Nvel;
Linguagem de Alto Nvel.
Nvel de Linguagem
HOMEM
Alto
Baixo
MQUINA
Introduo
Sistema:
um conjunto de subsistemas ou
mdulos formados por um programa que
executam operaes especficas.
Lgica
Definio: a coerncia de raciocnio, de
idias, ou ainda a sequncia coerente,
regular e necessria de acontecimento de
coisas.
Exemplo:
O nmero 3 menor que o nmero 5.
O nmero 7 maior que o nmero 5.
Logo, o nmero 3 menor que os
nmeros 5 e 7.
Lgica
Porm, s vezes o
raciocnio
funciona
desordenado.
Quantas vezes voc j
escutou a frase: E se
acontecer aquilo? Ou
, mais eu no pensei
nisso.
Por exemplo: Leia as
sequncias
de
instrues ao lado e
veja se voc consegue
sacar o dinheiro do
banco.
1 Sair do banco;
2 aguardar a vez de ser
atendida;
3 Entrar na fila do caixa;
4 Digitar a senha;
5 Informar o valor a ser
retirado;
6 Procurar a fila do caixa;
7 Pegar o comprovante do
saque, o carto eletrnico e
o dinheiro;
8 Entregar o carto
eletrnico ao funcionrio
que atende no caixa.
9 Conferir o valor em
dinheiro.
Lgica
Voc conseguiu retirar o dinheiro? Com
certeza no! Pois embora as instrues
estejam corretas, a sequncia est errada.
Agora faa o exemplo do banco de forma
correta.
Exerccio Proposto
Uma pessoa precisa trocar o pneu furado
de um carro. Quais as aes necessrias
para realizar essa tarefa e em qual
sequncia?
Qual a sequncia para se obter a resposta
da operao matemtica 5 multiplicado
por 6 mais 2, dividido por 3 em uma
calculadora simples?
Soluo:
1 - Deve-se colocar a ao de Incio e fim.
Incio
Entrar no carro
Ajustar o banco e os espelhos
retrovisores
Colocar o cinto de segurana
Pisar na embreagem
Exerccio Proposto
1 Imagine que uma pessoa decida ir de txi a uma reunio de
negcios. Monte um algoritmo com a sequencia de aes para que
ela chegue ao prdio onde vai ocorrer a reunio.
2 Monte um algoritmo com a sequncia de aes para fazer uma
vitamina com um mamo, uma banana, uma ma, um pouco de
leite e acar.
3 Monte um algoritmo com as aes para encontrar o nome de
Joo Ferreira Neto em uma lista telefnica.
4 Monte um algoritmo com as aes para retirar R$ 100,00 de um
caixa automtico de banco.
5 Monte um algoritmo com as aes para fazer uma macarronada
com molho de tomate (em lata)
Constantes e Variveis
Constantes:
Dentro do algoritmo, constantes so os
valores que permanecem os mesmos do
incio ao fim.
Tipos de constantes:
Numricas;
Constantes literais;
Constantes lgicas.
Constantes
Constantes Numricas: So nmeros positivos e
negativos.
Exemplos: 3, -123, 2*102, 0,89, 0,00076
Constantes Literais: Tambm conhecidas como
altanumricas, so conjunto de caracteres(letras,
dgitos ou smbolos especiais: -, %, $, etc). Esses
conjuntos devem ser colocados entre aspas().
Exemplos: IFPA, 10/02/2009 R$ 100,00.
Constantes Lgicas: So valores que representam
para expresses lgicas e so compostas somente
pelos valores Verdadeiro e Falso que devem ser
sublinhados, p/ no serem confundidos com as
Const. Literais.
Identificando as constantes
Identifique de que tipo so as constantes a
seguir:
A) 46593;
B) Clube do Remo;
C) -3456;
D) -007
E) Verdadeiro;
F) Falso;
G) Falso.
Exerccio Proposto
Indique os tipos de constantes que podem ser
utilizados para representar;
A) o nome de um pas;
B) RG;
C) CPF;
D) se uma pessoa ou no maior de idade
(maior de 18 anos);
E) Idade de uma pessoa;
F) Endereo de uma pessoa.
Exerccio Proposto
Diga se so validas as afirmaes a
seguir. Se no forem, explique por qu.
A) Pode-se utilizar constantes numricas
para representar a placa de um
automvel.
B) Constantes alfanumricas s podem
conter letras.
C) So constantes lgicas os valores:
verdadeiro, sim, falso e no.
Variveis
Definio: Corresponde ao nome associado ao
endereo da memria.
Quando quiser guardar algum dado no computador,
bastar criar uma varivel para guard-lo.
O nome de uma varivel deve sempre identificar o que
est sendo armazenado.
Exemplo:
IDADE 26, A varivel indica a idade.
END Mamor 35, A varivel indica o endereo.
CPF 345.465.098-23, indica o cpf de algum.
Cada varivel pode conter apenas um valor, quando
mais de um valor inserido o mais antigo substitudo
pelo valor recente.
O nome de uma varivel chamado de identificador.
Varivel
Regras para criao de um nome para a
varivel.
O nome pode ser formado por um ou mais
caracteres;
Deve estar sempre com letra maiscula;
O primeiro caractere dever ser obrigatoriamente
letra e os caracteres seguintes podem ser letras
e nmeros;
No permitido o uso de smbolos, sinais
grficos e de pontuao:
(/,.-!@#$%^&*()+=~`<>?:;{[}]), exceto o sinal _ .
Variveis
Exemplo de identificadores permitidos:
A,
T2,
IDADE,
NOME,
END2,
ENDERECO, NOME_DO_ALUNO.
Exemplo
de
identificadores
nopermitidos:
6D, 45, F&T$, END(2), A*F, NOME-DOALUNO, 2NUM/1NUM, F-G4,nome.
Declarao de variveis
No incio do programa sempre indique as
variveis que sero utilizadas. Assim, o
computador reserva um espao na
memria para cada uma.
Exemplo:
Inicio
PESSOA : literal
IDADE: numrico
Fim.
Exerccio Proposto
Verifique se os identificadores a seguir so vlidos. Se
no forem explique.
A) NOME-DO-ALUNO
B) $
C) DINHEIRO
D) DATA/DE/NASC
E) verdadeiro
F) NOME2
G) 2APESSOA
H) MAIOR_DE_IDADE
I) NOME_DE_PESSOA
J) END
K) %JUROS
L) M239083
Exerccio Proposto
Declare as variveis para os algoritmos dos cadastros a
seguir:
A) Passagem areas;
B) Fitas de vdeo de uma locadora;
C) Livros de uma biblioteca;
D) Carros de uma concessionria;
E) CDs de uma coleo de msicas;
F) Cursos de uma academia;
G) Disciplina de uma academia;
H) Clientes de uma loja;
I) Roupas de uma loja.
Cap2,ativ.2,exe2
Comentando Algoritmo
Um algoritmo deve ser entendido de maneira que seja
entendido e executado facilmente. Para que isso ocorra,
so necessrios informaes auxiliares denominadas
Comentrios.
Exemplos:
Inicio
{Exemplo de comentrio}
PESSOA : literal {variveis para armazenar o nome}
IDADE: numerico {variveis para armazenar a idade}
Fim.
Comando Atribuio
Armazena uma constante em uma varivel, isto , atribui um valor
varivel.
Exemplo: inicio
PESSOA: literal
IDADE: numerico
PESSOA Maria { Atribuindo o valor Maria a varivel PESSOA}
IDADE 26
{Atribuindo o valor 26 a varivel IDADE}
fim.
OBS: Quando o computador executar os comandos PESSOA:literal e IDADE:
numerico sero criados dois locais na memria: um para armazenar dados
literais e outro dados numricos e em seguida, sero armazenados os valores
Maria na varivel PESSOA e 26 na varivel IDADE.
Identificador Tipo de Dado Dados Armazenados
PESSOA
literal
Maria
IDADE
numerico
26
Constante e Varivel
As constantes e variveis devem ser
sempre do mesmo tipo, portanto, nunca
utilize o comando atribuio para colocar
uma constate em uma varivel que no
seja compatvel.
Exemplo: NOME 26 (o n 26 no pode
ser atribudo a uma varivel literal).
Expresses
So expresses que utilizam operadores
aritmticos e funes aritmticas envolvendo
constates e variveis constantes.
Operador aritmtico
+
*
/
^
Operaes
Adio
Subtrao
Multiplicao
Diviso
Potenciao
Exemplo de Expresses
Variveis
Comando atribuies
operaes
Procedimentos
A2
A
_
B
_
C
_
B A+3
C B-A
Exemplo:
Tomando como
base o exemplo
anterior faa o
exerccio
ao
lado.
Variveis
A
2
B
5
C
3
Comando atribuies
operaes
B A*C
C B^A
B C/A
A B+A
-
Funes Aritmticas
Funo Aritmtica
Sintaxe
Descrio
Diviso inteira
DIV(x,y)
RESTO(x,y)
Valor absoluto
ABS(x)
Arredondamento
ARREDONDA(x)
Potenciao
ELEV(x,y)
RZQD(x)
Raiz quadrada
Exemplo:
Tomando como
base a tabela
anterior, faa o
exerccio
ao
lado.
Variveis
A
Comando atribuies
operaes
A2
B DIV(17,A)
C RESTO(B,A)
C ABS(-4,5)
CARREDONDA(C)
B ELEV(B,A)
C RZQD(C)
Prioridade
Operadores
Potenciao/ Radiciao
Multiplicao / Diviso
Adio/ Subtrao
Exerccio Proposto
Problema: Sendo X,Y,Z e W variveis
numricas, qual o resultado de cada varivel no
final do algoritmo?
Inicio
X,Y,Z,W: inteiro
X10
Z(X+(RESTO(ELEV(X,2),DIV(X,3))))
YABS(X-((X^2)/(ARREDONDA(5,7))))
WDIV((Z-RQZD(64)),10)
fim
Expresses Literais
So expresses c/ constantes literais que tm c/
resultado valores literais. As expresses literais
aceitam somente o operador de concatenao.
Operador literal
+
Operao
Concatenao
Descrio
Junta dois valores
literais em um s
Expresses Literais
Exemplo de expresses
variveis literais A e B.
Variveis
A
Comando atribuio/
operao
B
ARose
literais
c/
as
Procedimentos
Armazenar
o
valor
Rose na varivel A.
BA+meire
Concatenar o valor da
varivel A (Rose) c/ a
constante literal meira
e armazenar o resultado
na varivel B.
Rose
Rosemeire
Funes literais
Funo
Sintaxe
Descrio
LTRIM(a)
RTRIM(a)
Quantidade de caracteres
COMP(a)
Subpalavra esquerda
ESQUERDA(a,x)
Subpalavra direita
DIREITA(a,x)
Subpalavra
SUB(a,x,y)
Posio de caracteres
POS(a,b)
Funes literais
Variveis
Comando atribuies/
Funo
Procedimento
AAna_
Ana_
BRTRIM(A)
Ana_
Ana
CCOMP(A)
Ana_
Ana
AB+_Maria
Ana _Maria
Ana
BESQUERDA(A,3)
Ana _Maria
Ana
ADIREIRA(B,2)
na
Ana
ASUB(B,2,1)
Ana
CPOS(B,A)
Ana
Exerccio
Sendo X,Y,Z variveis literais e W, T
variveis numricas, qual o valor de cada
varivel no final do algoritmo?
Inicio
X,Y,Z : literal
W,T : numerico
X ABCD
Z LTRIM(X) + EFG
Y SUB(Z,3,4)
W COMP(Z+Y)
T POS(Z,Y)
fim
Exerccio
Sendo as variveis do tipo literal, qual o resultado de
cada varivel no final dos algoritmos A e B.
Algoritmo A.
Inicio
A,B,C,D : literal
D LGICA
B LIVRO
C B + DE + D
L (SUB(SUB(D,1,3),1,1)+O+
(SUB(SUB(D,1,3),3,3)+OS)
Fim
Cap2, Ativ5, exe1, Algo A
Algoritmo B.
Inicio
H,I,J,L : literal
H PROGRAMAO
J ESQUEDA(H,8)
I DIREITA(H,4)+ DE +
(J+R)
L SUB(H,4,5)
fim.
Algo B
Expresses Relacionais
Operao
Descrio
Igualdade
<>
Diferena
<
Menor que
>
Maior que
<=
Menor ou igual a
>=
Maior ou Igual a
Expresses Relacionais
Variveis
Comando
atribuio/ operao
Procedimento
A5
B7
X(A=B)
X(A<>B)
X(A<B)
X(A>B)
X(A<=B)
X(A>=B)
Exerccio
Sendo, x,y,z variveis numricas e w, t variveis
lgicas, qual o valor de cada varivel no final do
algoritmo?
Inicio
X,Y,Z : numerico
W,T : logico
X 5
Z (X+4)/3
Y RZQD(X+4)
W(X>=Z)
T(Z<>Y)
fim
Exerccio
Sendo
A,B,C
variveis
numricas e D, E variveis
lgicas, qual o resultado de
cada varivel no final do
algoritmo?
Inicio
A,B,C : numerico
D,E: lgico
A 20
B (40+A)/3
C RZQD (A+80)
D (A>=B)
E (C=B)
Fim.
Inicio
A,B,C : literal
D,E: lgico
A ABACATE
B ABACAXI
C BANANA
D (SUB(A,1,5) = ESQUERDO (B,5))
E(SUB(A,2,2) <> (ESQUERDA(C,2))
D (D=E)
Fim.
Expresses lgicas
So expresses compostos por expresses relacionais com
operadores lgicos. As expresses lgicas retornam valores
lgicos.
Operador
lgico
ou
no
Operao
Descrio
Interseco
Unio
Negao
Aritmticos e Literais
Relacionais
no
e
ou
Exerccio
Variveis
Comando
atribuies/
Funo
Procedimento
A5
B7
X(A=B)
falso
Y(A<>B)
falso
verda YX ou (A>B)
deiro
falso
falso
XY e (A>B)
falso
falso
Xno Y
verda
deiro
falso
Exerccio
Sendo, X,Y variveis numricas, Z,W variveis literais e
T,K variveis lgicas, qual o resultado de cada varivel no
final do algoritmo?
inicio
X,Y : numerico
Z,W : literal
T,K : logico
X3 =verdadeiro
YELEV(3,2) = 9
ZABACATE = Verdadeiro
W(SUB(Z,1,5)+XI) = falso
T(X<=Y) e (no(POS(Z,CA) <> POS (W,CA)))
=verdadeiro
Kno T ou (POS(Z,XI) <> 6) = Falso
Fim.
Exerccio
Sendo A,B variveis numricas, C,D variveis literais e E, F
variveis lgicas, qual o resultado de cada varivel no final
do algoritmo?
Inicio
A,B : numerico
C,D : literal
E,F : logico
A45
BRZQD ((A + 55))
CUVA
D(VI+ C)
E(A>=B) e (no(D<>VIUVA))
Fno E ou (POS(C,U)<>2)
Fim.
Exerccio
Sendo A varivel numrica, C varivel literal e E varivel
lgica, qual o resultado de cada varivel no final do
algoritmo?
Inicio
A : numerico
C : literal
E : logico
A100
CMARIA
E(10 = RZQD(A)) e (no(C <> MARIA))
AA+(RZQD(64)/4)*2))
fim
Exemplo
Crie um algoritmo para cadastrar e um imprimir os dados de um aluno.
Exerccio
Exerccio
7) Ler o nome de um cliente da fest food e a quantidada de cada item do
menu que ele vai pedir. Imprimir o nome do cliente e o total de compra.
Menu
Hot-dog
R$ 1,00
Hamburguer
R$ 1,30
Cheeseburguer
R$ 1,50
Refri-lata
R$ 1,00
Batata frita
R$ 0,80
se NUMERO > 10
ento NUMERONUMERO*0,1
fim-se
Exemplo
Faa um algoritmo para ler um nmero e verificar se ele
maior que 100. Se for, o algoritmo deve somar 150 a
esse nmero. No final, o algoritmo deve imprimir o
resultado da soma.
inicio
NUMERO : numerico
leia NUMERO
se NUMERO > 100
ento NUMERONUMERO+150
fim-se
Escreva O nmero :, NUMERO
Fim.
Exerccio
Faa um algoritmo para ler dois nmeros e responder se a diviso
do primeiro nmero pelo segundo exata (o resto da diviso deve
ser igual a 0). Se for, o algoritmo deve imprimir a mensagem A
diviso de (nmero 1) por (nmero 2) exata.
inicio
NUM1, NUM2, RESTODIV : numerico
leia NUM1, NUM2
RESTODIV RESTO (NUM1,NUM2)
se RESTODIV = 0
ento escreva A diviso do, NUM1, pelo, NUM2, exata
fim-se
Fim.
Exerccio
1)
2)
3)
4)
5)
6)
PseudoCdigo:
se <condio>
ento <comandos>
Seno <comandos>
fim-se
Soluo:
Inicio
NOTA1, NOTA2, MEDIA : numerico
ler NOTA1, NOTA2
MEDIA(NOTA1+NOTA2)/2
se MEDIA > 6
ento escreva Mdia superior mdia mnima 6,0
seno se MEDIA = 6
ento escreva Mdia igual mdia mnima 6,0
seno escreva Mdia inferior mdia mnima 6
fim-se
fim-se
fim.
Exerccio
Exerccio
2 - Ler trs nomes de pessoas e seus pesos. Imprimir os dados
(nome e peso) em ordem decrescente de peso.
3 - Ler o pedido de um cliente de fast food, baseado no menu
abaixo, e imprimir o preo e a opo que ele escolher.
Opo
nica
Promoo
Especificao
Preo (R$)
2 hamburgueres,
queijo, batata frita
e refri.
5,00
1 hamburguer,
batata frita e refri.
3,00
Mirradus Sanduba
1 misto quente e
refri.
1,50
Inicio
PESSOA: literal
Leia PESSOA
Escreva PESSOA
fim
Repita / at que
Essa estrutura semelhante estrutura
enquanto/faa/fim-enquanto, diferindo apenas no
local da condio de interrupo, que deve ser no
final em vez de no incio da estrutura. Veja como
fica o exemplo anterior com a aplicao dessa
estrutura.
Inicio
PESSOA: literal
NUMERO_PESSOA: numerico
NUMERO_PESSOA0
repita
leia PESSOA
escreva PESSOA
NUMERO_PESSOANUMERO_PESSOA + 1
at que NUMERO_PESSOA = 5
fim
Para/faa/fim-para
Essa estrutura quase similar estrutura
enquanto/faa/fim-enquanto. A diferena entre as duas
que a varivel contadora (NUMERO_PESSOA0) e a
condio
de
interrupo
(NUMERO_PESSOANUMERO+1) so eliminadas na
estrutura para/faa/fim-para. No exemplo a seguir,
quando a execuo do algoritmo iniciada, o comando
para inicializar a varivel NUMERO_PESSOA com o
valor 1 e executa todos os comandos dentro da
estrutura para/faa/fim-para. Essa estrutura vai
acrescentando o valor 1 e executando novamente os
comandos
at
que
o
valor
da
varivel
NUMERO_PESSOA seja 5.
Exemplo
Inicio
PESSOA: literal
NUMERO_PESSOA: numerico
para NUMERO_PASSOA de 1 at 5 passo 1 faa
leia PESSOA
escreva PESSOA
fim-para
fim
Se quiser o valor de incremento da varivel contadora seja superior
a 1, coloque o valor depois da palavra passo. Veja o exemplo a
seguir.
para NUMERO de 0 at 100 passo 10 faa
Cada vez que se repetirem os comandos do exemplo, o valor 10
ser acrescentado ao valor da varivel NUMERO. Entretanto, se o
valor de incremento for 1, no sero necessrio o parmetro passo
nem o valor 1 depois dele, pois a estrutura para/faa/fim-para ser
executada automaticamente, conforme o exemplo a seguir:
Exerccio
1) Imprimir o total da sequencia: 1, 1/2, 1/3, [...],
1/20.
2) Imprimir os nmeros pares entre 100 e 1 .
3) Simular o jogo de adivinhao: o jogador 1
escolhe um nmero entre 1 e 10; o jogador 2
insere nmeros na tentativa de acertar o
nmero escolhido pelo jogador 1. Quando ele
acertar, o algoritmo deve informar que ele
acertou o nmero x (escolhido pelo jogador 1)
em x tentativas (quantidade de tentativas do
jogador 2).
escreva NOME
fim-enquanto
Fim.
Observao
Exerccio
1) Cadastrar e imprimir os dados de vrios
professores
de
um
sistema
de
administrao escolar: nome, endereo,
cidade, UF, CEP, telefone, CPF, RG, data
de nascimento, grau de escolaridade,
curso em que se formou.
2) Cadastrar e imprimir os dados das
disciplinas de uma escola: nome,
descrio do contedo, frequencia e nota
mnimas para aprovao do aluno.
Exerccio
3) Na declarao de imposto de renda devem constar os dados: nome do
contribuinte, CPF, renda anual e nmero de dependentes. Os clculos so
feitos da forma a seguir.
A) Desconto de R$ 110,00 por dependente.
B) Com base na base na renda lquida (renda anual menos descontos)
calculada a alquota de contribuio de acordo com a tabela:
Renda lquida
Alquota(%)
At R$ 900,00
Isento
De R$ 901,00 at R$ 5.000,00
De R$ 5.001at R$ 10.000,00
10
Acima de R$ 10.001,00
15
Varivel Acumuladora
Exerccio
Exerccio
Vetor
O vetor uma varivel que pode conter vrias
constantes do mesmo tipo.
Declarando Vetor
Sintaxe do Vetor
<nome vetor> : vetor <posio inicial>...<posio final> <tipo de
constante que o vetor poder conter>
Exemplo: NOTAS : vetor [1..20] numerico
ESTADO : vetor [1..27] literal
NOME_DE_PESSOA : vetor [1..0] literal
Observao: recomendado que voc utilize o valor 1 como valor
padro do primeiro ndice (primeiro endereo) do vetor. Se quiser
utilizar um ndice diferente de 1, voc deve considerar essa
modificao para poder localizar a posio correta na varivel. Por
exemplo: NOME [0..30]. Neste caso, o vetor tem 31 posies e no
30. Se quisesse acessar a terceira posio do vetor, voc teria de
escrever NOME [2].
Montando o Vetor
Ler e armazenar os nomes de 15 Pessoas.
Inicio
PESSOAS: vetor [1..15] literal {declarando vetor PESSOAS}
PESSOA: literal
NUMERO_PESSOA, POS: numerico
NUMERO_PESSOA 0
{NUMERO_PESSOA controla repetio de 1 a 15}
POS 0
{POS indica a posio onde ser colocado o nome lido}
Enquanto NUMERO_PESSOA < 15 faa
leia PESSOA
POS POS + 1
PESSOAS [POS] PESSOA {atribuindo o nome lido posio 1 do vetor}
NUMERO_PESSOA NUMERO_PESSOA + 1
fim-enquanto
Fim.
Montando o Vetor
Montando o vetor do exemplo anterior, mas
utilizando a estrutura para/faa/fim-para.
Inicio
PESSOA: vetor [1..15] literal
POS: numerico
para POS de 1 at 15 faa
leia PESSOA [POS]
fim-para
Fim.
Exerccio
1)
2)
3)
4)
Ordenando Vetores
Imagine um vetor c/ 5 elementos. Como
coloc-los em ordem crescente? Existem
vrias formas, mas utilizaremos o mtodo
Bolha ou Burble Sort.
Para criar esse algoritmo, voc deve
primeiro resolver a parte lgica e depois
escrev-la por meio dos comandos.
Utilize um vetor de cinco posies, que
pode ser denominado VET.
VET
Exemplo
Inicio
Inicio
VET[POS] NUMLIDO
fim-para
fim-para
POS 1
POS 1
ULTIMO 5
ULTIMO 5
AUX 0
AUX 0
AUX VET[POS]
AUX VET[POS]
VET[POS] VET[POS+1]
VET[POS] VET[POS+1]
VET[POS+1] AUX
VET[POS+1] AUX
seno
fim-se
POS POS+1
POS POS+1
fim-se
fim-enquuanto
fim-enquuanto
POS 1
ULTIMO ULTIMO 1
POS 1
fim-enquanto
ULTIMO ULTIMO 1
fim-enquanto
Fim.
Fim.
Exerccio
1) Colocar em ordem crescente 100 nmeros de matrculas em um vetor.
2) Ler um vetor de 50 nmeros e montar outro com os valores do primeiro
multiplicados por sete, em ordem decrescente. Imprimir os dois vetores.
3. Ler os vetores A e B, com 100 nmeros cada. Criar o vetor C, colocando em cada
posio dele o resultado da soma dos valores das posies correspondentes em
A e B. Criar o vetor D, colocando nele o resultado da multiplicao de A por B.
Imprimir os valores armazenados no vetor C em ordem decrescente e os
armazenados em D em ordem crescente.
4. Considerar dois vetores: PROFESSOR, contendo 100 nomes de professores de
uma faculdade, e TEMPOPROFISSAO, contendo o tempo de atuao de cada
um. Para cada nome do vetor PROFESSOR h, na mesma posio do vetor
TEMPOPROFISSAO, o respectivo valor do tempo de atuao. Imprimir os nomes
dos professores contidos nesse vetor seguindo a ordem decrescente do tempo de
profisso.
5. Ler um vetor contendo 100 cdigos relativos s mercadorias de um armazm e
outro relativo s quantidades de mercadorias. Imprimir os cdigos e as
quantidades dos produtos seguindo a ordem crescente das quantidades.
Cap5 ativ2
Pesquisando em Vetores
Depois que voc ordena os vetores, como
foi mostrado na aula anterior, fica bem
menos trabalhoso.
Existem vrios mtodos de pesquisa em
vetor: para maioria, pr-requisito o
ordenamento do vetor, em ordem
crescente e decrescente.
Vamos conhecer os mtodos de pesquisa
em vetor denominados de Sequencial e
Binrio.
Pesquisa Sequencial
O mtodo de pesquisa sequencial o mais
simples: um valor lido e, em seguida,
pesquisado em um vetor at que seja
encontrado ou que o vetor termine.
Esse mtodo o 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 for aplicado
em um vetor ordenado; mesmo assim, ainda
inferior aos outros mtodos.
Exerccio
1) Ler um vetor contendo 100 nmeros, que
correspondem a matriculas de alunos. Ler
cinco nmeros e imprimir uma mensagem
informando se eles esto ou no presentes no
vetor.
2) Ler uma frase de no mximo 20 caracteres e,
armazenar cada caractere em uma posio de
um vetor. Imprimir a quantidade de vezes que
aparecem as letras A maisculas e minsculas
e a quantidade de espaos que existem na
frase.
Pesquisa Binria
Esse mtodo mais rpido que o
sequencial, 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,
Matriz
Corresponde a uma estrutura que apresenta o recurso de se
colocar vrias constantes em uma s varivel semelhante ao
vetor.
Observe que a matriz possui linhas e colunas.
Coluna
Matriz 6x4
1
Linha
2
3
4
5
6
1
Declarando Matriz
Quando uma matriz declarada, o computador reserva uma parte da
memria para ela, como acontece com outras variveis. No caso da
matriz, essa parte dividida em determinada quantidade de colunas e
linhas (indicada na declarao) e identificada por um par de nmeros
(um referente linhas e outro coluna).
A matriz s pode armazenar constantes de um nico tipo.
Sintaxe da Matriz:
<nome da matriz> : matriz [N inicial de linha .. N final de linha,N inicial de
colunas .. N final de linha] <tipo de constante>
Exemplo:
NOTAS_DE_ALUNOS : matriz [1..4,1..200] numerico
MAT : matriz [1..10,1..30] literal
Obs: recomendado que voc utilize o valor 1 como
padro de ndice (primeiro endereo) das linhas e colunas
da matriz.
Montando Matriz
Monte um algoritmo para ler e armazenar os nomes de duas
pessoas juntamente com os primeiros nomes de seus pais.
Neste algoritmo ser usada uma matriz com 2 linhas por 3
colunas: uma linha para cada nome (no se esquea que so
duas); uma coluna para o nome da pessoa, uma para o nome do
pai e outra para o nome da me.
Nome Pessoa
Nome Pai
Nome Me
Pessoa 1
Pessoa 2
2
1
Montando Matriz
inicio
PESSOA : matriz [1..2, 1..3] literal
LINHA, COLUNA : numerico
para LINHA de 1 at 2 faa
para COLUNA de 1 at 3 faa
se COLUNA = 1 ento
leia Digite o 1 nome de uma Pessoa:,
PESSOA[LINHA, COLUNA]
Exerccio
1.
2.
3.
Registro
Na declarao das variveis o computador reserva uma
rea da memria para a acomodar a mesma.
No entanto, o armazenamento das variveis pode
ocorrer de forma independente, ou seja, cada varivel
pode ser armazenada em local diferente.
Logo, isso torna o desempenho do programa um pouco
mais lento.
Vale lembrar que esse problema no notado em
programas pequenos, j que a leitura do mesmo ocorre
em alguns segundos.
J em programas que manipulam uma grande
quantidade de dados, trabalham com um numero grande
de variveis interessante utilizar a tcnica do Registro.
Registro
Para
solucionar
o
problema
do
desempenho
dos
programas
que
manipulam uma grande quantidade de
variveis. Podemos utilizar o recurso da
varivel heterognea, isto , que permite
armazenar vrios tipos diferentes de
constantes, denominadas de Registro.
Observe como fica a declarao das
variveis por meio do Registro Ficha:
Comando Enquanto
Se o usurio no digitar a palavra FIM logo no campo NOME,
repita a leitura dos campos para outras fichas at encontrar
essa palavra. Utilize o comando enquanto.
FICHA: registro
NOME, ESTADOCIVIL, NOMECONJ,
ENDERECO, BAIRRO, CIDADE, UF, EMAIL : literal
IDADE, DATANASC, NUMERO, CEP : numerico
FONE : vetor [1..3] numerico
fim-registro
leia Digite o nome da pessoa ou FIM para encerra o cadastro,
FICHA.NOME
enquanto (FICHA.NOME <> FIM) faa
civil
da
pessoa
(casado,
solteiro,
vivo):,
Comando Se
Para no perguntar o nome do cnjuge a uma pessoa solteira, utilize o
comando se, que vai verificar se a pessoa solteira ou no.
FICHA: registro
NOME, ESTADOCIVIL, NOMECONJ,
ENDERECO, BAIRRO, CIDADE, UF, EMAIL : literal
IDADE, DATANASC, NUMERO, CEP : numerico
FONE : vetor [1..3] numerico
fim-registro
leia Digite o nome da pessoa ou FIM para encerra o cadastro, FICHA.NOME
enquanto (FICHA.NOME <> FIM) faa
leia Digite a idade da pessoa:, FICHA.IDADE
leia Digite a data de nascimento da pessoa:, FICHA.DATANAS
leia Digite o estado
FICHA.ESTADOCIVIL
civil
da
pessoa
(casado,
solteiro,
vivo):,
Exerccio
1 - Cadastrar e imprimir os dados pessoais de vrios professores de um sistema
de administrao escolar, utilizando registros. Os dados pessoais so: nome,
endereo, cidade, UF, CEP, telefone, CPF, RG, data de nascimento, grau de
escolaridade, curso em que se formou.
2. Cadastrar e imprimir os dados gerais das disciplinas de um sistema de
administrao escolar: nome da disciplina, descrio do contedo, freqncia
e nota mnima para aprovao.
3. Cadastrar e imprimir os dados dos veculos de uma concessionria: placa, tipo
de combustvel, fabricante, nmero do chassis, cor, tipo, modelo, ano de
fabricao, ano do modelo e categoria.
4. Cadastrar e imprimir os dados das fitas de vdeo de uma locadora: cdigo do
filme, nome, tipo de filme, durao, produtor, ator principal, diretor e ano de
produo.
5. Cadastrar os dados dos livros de uma biblioteca: cdigo do livro, ttulo,
subttulo, autor, ano de edio, nmero da edio e editora. Imprimir um
relatrio desses dados.
Cap7 , atividade 1.
Armazenando no Registro
Armazenamento de uma varivel ocorre atravs do
nome do registro seguido do campo da nova
varivel. Veja os exemplos a seguir.
FICHAF.FONE [2] 32336367
Registro
Campo
Exemplo
FICHAF.ENDERFICHA.RUA Rua do Ouvidor
incio
| tipo FICHA = registro
|
| NOME, ENDRECO, CIDADE, UF, RG,
|
| CURSO, GRAUESC : literal
|
| CEP, FONE, CPF, DATANASCIMENTO : numrico
|
fim-registro
| PROFESSORES : vetor [1..50] FICHA
| NOMECONSUL : literal
| CONT,POS : numrico
| para POS de 1 at 50 faa
| | leia "Digite o nome do professor:", PROFESSORES[POS].NOME
| | leia "Digite o endereo do professor:", PROFESSORES[POS].ENDERECO
| | leia "Digite a cidade onde reside o professor:", PROFESSORES[POS].CIDADE
| | leia "Digite a Unidade Federativa (Estado):", PROFESSORES[POS].UF
| | leia "Digite o CEP:", PROFESSORES[POS].CEP
| | leia "Digite o nmero do telefone(somente os nmeros) do professor:", PROFESSORES[POS].FONE
| | leia "Digite o Cadastro de Pessoas Fsicas (C.P.F.) do professor:", PROFESSORES[POS].CPF
| | leia "Digite o Registro Geral (R.G.) do professor:", PROFESSORES[POS].RG
| | leia "Digite a data de nascimento(somente os nmeros):", PROFESSORES[POS].DATANASCIMENTO
| | leia "Digite o grau de escolaridade do professor(Mestre, Doutor,...):", PROFESSORES[POS].GRAUESC
| | leia "Digite o nome do curso em que o professor se formou:", PROFESSORES[POS].CURSO
| fim-para
Exerccio
1)
2)