You are on page 1of 26

Lgica de Programao

Prof Silvano Oliveira


(prof.silvano.oliveira@gmail.com)

Prof. Silvano Oliveira / 26


Estruturas de Dados
Neste captulo
Vetores
Matrizes
Registros
Registro de Conjuntos
Conjuntos de Registros

Prof. Silvano Oliveira Lgica de Programao 2 / 26


Estruturas de Dados
Os tipos primitivos (inteiro, real, caracter e lgico) no so suficientes
para representar todos os tipos de informao.
Particularmente quando temos mais de uma informao relacionada.
Ex: Lista dos nomes dos alunos de uma sala, endereo de algum etc.
Utilizaremos os tipos primitivos para construir outras estruturas de
dados mais complexas.

Prof. Silvano Oliveira Lgica de Programao 3 / 26


Vetores
Tambm denominados Estruturas compostas homogneas
unidimensionais
Permitem a manipulao de um conjunto de informaes de um
mesmo tipo primitivo
Declarao :
VCLASSE: vetor [1 .. 40] de real
Onde:
1: Limite inicial do vetor
40: Limite final do vetor
real: Tipo primitivo base do vetor
VCLASSE: Nome da varivel do tipo VETOR

Prof. Silvano Oliveira Lgica de Programao 4 / 26


Vetores
Manipulao:
A: inteiro
VCLASSE [ 7 ] 6,5;
VCLASSE [ 2 ] 7,8;
VCLASSE [ 4 ] 5,3;
leia (A); // supondo que foi informado 6
VCLASSE [ A ] 9,8;
VCLASSE [ A-1 ] 9,1;
leia ( VCLASSE [ A+3 ] ); // supondo que foi informado 4,7

VCLASSE

7,8 5,3 9,1 9,8 6,5 4,7


1 2 3 4 5 6 7 8 9 38 39 40

Prof. Silvano Oliveira Lgica de Programao 5 / 26


Vetores
Algoritmo 4.2 Notas acima da mdia usando variveis simples
var
NotaAcima: inteiro
A, B, C, D, E, F, G, H, I, J, Media: real
incio
NotaAcima 0
leia (A,B,C,D,E,F,G,H,I,J)
Media (A + B + C + D + E + F + G + H + I + J)/10
se (A > Media) ento
NotaAcima NotaAcima + 1
fimse
se (B > Media) ento
NotaAcima NotaAcima + 1
fimse;
...
se (J > Media) ento
NotaAcima NotaAcima + 1
fimse;
escreva (NotaAcima)
fimalgoritmo
Prof. Silvano Oliveira Lgica de Programao 6 / 26
Vetores
Algoritmo 4.3 Notas acima da mdia usando vetor
var
VClasse: vetor [1 .. 10] de real
NotaAcima, X: inteiro
Soma, Media: real
incio
Soma 0
NotaAcima 0
para X de 1 at 10 passo 1 faa
leia ( VClasse[X] )
Soma Soma + VClasse[X]
fimpara
Media Soma / 10
para X de 1 at 10 passo 1 faa
se ( VClasse[X] > Media ) ento
NotaAcima NotaAcima + 1
fimse
fimpara
escreva (NotaAcima)
fimalgoritmo
Prof. Silvano Oliveira Lgica de Programao 7 / 26
Exerccio - Vetor
Desenvolver um programa que efetue a leitura de cinco elementos de
um vetor A. No final, apresente o total da soma de todos os elementos
que sejam mpares.
Dicas:
1. Iniciar o contador de ndice, varivel i como 1 em um contador at 5
2. Ler os 5 valores, um a um
3. Verificar se o elemento mpar a cada leitura; se sim efetuar a soma dos
elementos
4. Apresentar o total somado de todos os elementos mpares da vetor.

Prof. Silvano Oliveira Lgica de Programao 8 / 26


Soluo Exerccio Vetor (Impar)
algoritmo "Elemento_impar
var
A: vetor[1..5] de inteiro
i, R, SOMA: inteiro
inicio
soma 0
para i de 1 ate 5 faca
leia(A[ i ])
se ((A[ i ] % 2) <> 0) ento
SOMA <- SOMA + A[ i ]
fimse
fimpara
escreva(SOMA)
fimalgoritmo

Prof. Silvano Oliveira Lgica de Programao 9 / 26


Exerccio - Vetor
Solicitar 5 elementos inteiros para um vetor A, reorden-los e mostrar
o contedo em ordem crescente.

Prof. Silvano Oliveira Lgica de Programao 10 / 26


Exerccio Vetor n Primo
Dado um nmero qualquer, verifique se primo ou no.

Prof. Silvano Oliveira Lgica de Programao 11 / 26


Exerccio Vetor Mdias
Dados 2 alunos com 4 mdias bimestrais cada, organizar suas mdias
em ordem crescente, calcular a mdia anual e imprimir as mdias e o
nome dos alunos de forma que fique como abaixo:
Aluno1: xxxxxxxxxxxxxxxxxx
Mdias Bimestrais: 0,0 | 0,0 | 0,0 | 0,0
Mdia Anual: 0,0
Aluno2: xxxxxxxxxxxxxxxxxx
Mdias Bimestrais: 0,0 | 0,0 | 0,0 | 0,0
Mdia Anual: 0,0

Prof. Silvano Oliveira Lgica de Programao 12 / 26


Matrizes
Tambm denominadas Estruturas compostas homogneas
multidimensionais
Permitem a manipulao de um conjunto de informaes de um
mesmo tipo primitivo
Declarao:
MSALA = vetor [1 .. 4, 1 .. 4] de inteiro
Onde:
1: Limite inicial da primeira e da segunda dimenso
4: Limite final da primeira e da segunda dimenso
inteiros: Tipo primitivo base da matriz
MSALA: Nome da varivel MATRIZ

Prof. Silvano Oliveira Lgica de Programao 13 / 26


Matrizes
Manipulao: MSALA
1 2 3 4
A, B: inteiro
MSALA [ 2, 3 ] 5; 1 7 12
MSALA [ 3, 2 ] 6;
MSALA [ 1, 2 ] 7; 2 10 5
A 4;
B 3; 3 6 11
MSALA [ A, B ] 8;
MSALA [ A, B-2 ] 9; 4 9 8
MSALA [ A-2, B-2 ] 10;
MSALA [ B, A ] 11;
MSALA [ B-2, A ] 12;

Prof. Silvano Oliveira Lgica de Programao 14 / 26


Matrizes
Exemplo: Carto da Loteria Esportiva
Jg Coluna 1 Ept Coluna 2
1 Santos Corinthians
2 Flamengo Fluminense
3 Palmeiras So Paulo
4 Vasco Botafogo
5 Portuguesa XV de ja
6 So Caetano XV de Piracicaba
7 Grmio Internacional
8 Hava Figueirense
9 Coritiba Atltico-PR
10 Paysand Juventude
11 Atltico-MG Cruzeiro
12 Brasiliense Ponte Preta
13 Fortaleza Gois
14 Esportivo Londrina

Prof. Silvano Oliveira Lgica de Programao 15 / 26


Matrizes
Algoritmo 4.5 Loteria Esportiva, jogo mais marcado
var
mLoteria = vetor [1 .. 14, 1 .. 3] de caracteres
inteiro: I, J, maisMar, nJogo, marLin
incio
maisMar 0
para I de 1 at 14 faa
marLin 0
para J de 1 at 3 faa
se mLoteria[ I, J] =x ento
marLin marLin + 1
fimse
fimpara
se marLin > maisMar ento
maisMar marLin
nJogo I
fimse
fimpara
escreva (Jogo mais marcado: , nJogo, com , maisMar)
fimalgoritmo
Prof. Silvano Oliveira Lgica de Programao 16 / 26
Matrizes
Algoritmo 4.6 Loteria Esportiva, coluna mais marcada
var
mLoteria = vetor [1 .. 14, 1 .. 3] de caracteres
I, J, maisMar, nColuna, marCol: inteiro
incio
maisMar 0
para J de 1 at 3 faa
marCol 0
para I de 1 at 14 faa
se mLoteria[ I, J] =x ento
marCol marCol + 1
fimse
fimpara
se marCol > maisMar ento
maisMar marCol
nColuna J
fimse
fimpara
escreva (Coluna mais marcada: , nColuna, com , maisMar)
fimalgoritmo
Prof. Silvano Oliveira Lgica de Programao 17 / 26
Registros
Tambm denominadas Estruturas compostas heterogneas
Permitem a manipulao de um conjunto de informaes de tipos
primitivos diferentes
Exemplo: Passagem de nibus

Nmero: 0001

De: ____________________ Para: _______________________

Data: ____ / ____ / _______ Horrio: ________ : _________

Poltrona: ____________ Distncia: ____________ km

Prof. Silvano Oliveira Lgica de Programao 18 / 26


Registros
Declarao:
tipo
regPassagem = registro
Nmero: inteiro
Origem, Destino, Data, Horrio: caractere
Poltrona: inteiro
Distncia: real
fimregistro
var
Passagem: regPassagem

Manipulao:
Manipulao:
leia (Passagem.Origem);
leia (Passagem)
escreva (Passagem.Destino);
escreva (Passagem)
Passagem.Distncia 500;
Prof. Silvano Oliveira Lgica de Programao 19 / 26
Registro de Conjuntos
Combinao de Estruturas heterogneas com homogneas
Podem ser obtidas ao incluir num registro outro tipo de dados
construdo
Exemplo: Registro de Estoque com Baixa semanal

Nome: _____________________________________________

Cdigo: ___________________ Preo: __________________

Baixa

1 2 3 4 5 6

Prof. Silvano Oliveira Lgica de Programao 20 / 26


Registro de Conjuntos
Declarao:
tipo
vDias = vetor [ 1 .. 6 ] de inteiros
tipo
regProd = registro
Nome: caractere
Cdigo: inteiro
Preo: real
Baixa: vDias
fimregistro
var
Produto: regProduto

Manipulao:
Manipulao: escreva (Produto.Preo);
escreva (Produto.Nome); escreva (Produto[ 1 ].Baixa);
escreva (Produto.Cdigo); Produto[ 1 ].Baixa 500;

Prof. Silvano Oliveira Lgica de Programao 21 / 26


Conjunto de Registros
Combinao de Estruturas homogneas com heterogneas
Podem ser obtidas ao formar um conjunto com outro tipo de dados
construdo
Exemplo: nibus formado por Passagem

1 Nmero: 0001

2 De: ____________________ Para: _______________________

3 Data: ____ / ____ / _______ Horrio: ________ : _________

4 Poltrona: ____________ Distncia: ____________ km

44

Prof. Silvano Oliveira Lgica de Programao 22 / 26


Conjunto de Registros
Declarao:
tipo
regPassagem = registro
Nmero: inteiro
Origem, Destino, Data, Horrio: caractere
Poltrona: inteiro
Distncia: real
fimregistro
tipo
vetPassagem = vetor [ 1 .. 44 ] de regPassagem;
var
nibus: vetPassagem

Manipulao: Manipulao:
leia (Passagem [ 7 ]); escreva (Passagem [21].Destino);
escreva (Passagem [ 4 ]); Passagem [34].Distncia 500;
leia (Passagem [12].Origem);
Prof. Silvano Oliveira Lgica de Programao 23 / 26
Exerccio - Matriz
Dadas 2(duas) matrizes A e B (2 x 2) Matriz A
com nmeros inteiros em seus 1 2
elementos, ler cada elemento e
efetuar a soma das matrizes e 3 4
mostrar o resultado como ao lado: Matriz B
2 3
4 5
Matriz Soma
3 5
7 9
Prof. Silvano Oliveira Lgica de Programao 24 / 26
Exerccio Vetor (Caractere)
Crie um algoritmo que solicite 3 Digite o nome 1: Zebra
nomes em um vetor e mostre Digite o nome 2: Babau
este vetor reorganizado. E
apresente o resultado ao lado. Digite o nome 3: Cacau
Babau
Cacau
Zebra

Prof. Silvano Oliveira Lgica de Programao 25 / 26


Exerccio Registro e Vetor
Crie um algoritmo que solicite os dados de 3 contatos de uma agenda
telefnica e os organize alfabeticamente, e depois os imprima da
seguinte forma:
Nome:
Nome: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Nome:
Sobrenome:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sobrenome:
Sobrenome: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Telefone:
Telefone:99999-9999
99999-9999
Telefone:
Operadora: 99999-9999
99- -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Operadora:
Operadora: 9 -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Operadoras: 1 Vivo | 2 Tim | 3 Oi | 4 Claro | 5 - Nextel

Prof. Silvano Oliveira Lgica de Programao 26 / 26

You might also like