Академический Документы
Профессиональный Документы
Культура Документы
CURSOS DE ENGENHARIA
DISCIPLINA: Fundamentos da Computao II
PROFESSORES: Ncleo de professores de Informtica
MATERIAL DE APOIO Parte 2
Objetivos:
2)
Livro texto:
3)
Aprender e utilizar estruturas de dados do tipo vetor para resolver problemas computacionais
simples, que necessitem de armazenamento temporrio de vrios dados.
ASCENIO, A. F.G., CAMPOS, E.A.V. Fundamentos da Programao de Computadores
(Algoritmos, Pascal e C/C++). So Paulo: Prentice Hall, 2002.
1. Estruturas de Dados
Os tipos primitivos de dados at ento utilizados: inteiro, real, caracter e lgico no so suficientes para a
resoluo de todos os problemas da vida real. Em muitos casos eles podem ser substitudos para uma melhor
soluo.
Esses novos tipos so tipos construdos a partir da composio de tipos primitivos e tm um formato denominado,
ou seja, possuem uma ESTRUTURA DE DADOS, que define como os tipos primitivos esto organizados. De
forma anloga, anteriormente, as gavetas variveis podiam comportar apenas uma informao e, segundo esse
novo conceito, uma gaveta poderia comportar um conjunto de informaes primitivas, desde que devidamente
organizadas, divididas.
10
10
5
8,8
9
10
8
6
4
2,5
8,8
Observe que NOTA uma varivel composta unidimensional, ou seja, um vetor. Portanto, ela capaz de
armazenar 10 nmeros reais, sendo referenciada por apenas um identificador: NOTA.
Para acessarmos os elementos de um vetor necessrio fazer uso das posies. Como voc pode ver no exemplo,
cada nota armazenada neste vetor tem um ndice (uma etiqueta de identificao) que utilizado para acessar tal
informao. A nota 8,8 est armazenada no vetor NOTA, na posio 3. Veja no exemplo abaixo.
Exemplo: NOTA[1] 10;
NOTA[4] 9;
NOTA[10] 8,8;
NOTA[6] 8;
Soma NOTA[2] + NOTA[9];
leia (NOTA[7]);
escreva (NOTA[5]);
X=2
X=3
X=4
12
Num
Digite o 2 nmero 98
98
Digite o 3 nmero 34
12
98
34
98
34
76
12
98
34
76
Num
1
X=5
12
Num
12
Num
Digite o 3 nmero 76
Digite o 3 nmero 45
5
45
Observe que utilizando o comando para, com uma linha de cdigo possvel criar a mesma estrutura de repetio
que criamos com o enquanto. Isto possvel porque, no comando for, em uma s linha, o contador iniciado (x
de 1 ao invs de x1), a condio estabelecida (at 5 ao invs de x<=5) e o incremento definido (passo 1 ao
invs de xx+1)
program Numeros;
var Num : array [1..5] of integer;
x : integer;
begin
for x :=1 to 5 do
begin
write(Digite o , x, nmero);
read (Num[x]);
end;
for x:=1 to 5 do
begin
write(O, x, nmero do vetor :, Num[x]);
fimalgoritmo
end.
end;
2. Elaborar um algoritmo que leia 20 nmeros, calcule a mdia entre eles e exiba os nmeros que forem maior que a
mdia.
Em Pascal
Em Portugol
Algoritmo MaioresMedia;
var NUM : vetor [1..20] de real;
I,SOMA : inteiro;
MEDIA : real;
Inicio
SOMA 0;
para I de 1 ate 20 faca
inicio
escreva ( Informe um nmero:);
leia (NUM[I]);
SOMA SOMA + NUM[I];
Fim;
MEDIA SOMA / 20;
para I de 1 ate 20 faca
inicio
se NUM[I] > MEDIA entao
escreva(NUM[I]);
fim;
fimalgoritmo
program MaioresMedia;
var NUM: array [1..20] of real;
I,SOMA: integer;
MEDIA: real;
begin
SOMA := 0;
for I := 1 to 20 do
begin
writ e( Informe um nmero:);
read (NUM[I]);
SOMA := SOMA + NUM[I];
end;
MEDIA := SOMA / 20;
for I := 1 to 20 do
begin
if NUM[I] > MEDIA then
write(NUM[I]);
end;
end.
3. Elaborar um algoritmo que leia a idade de 10 pessoas e informa quantas pessoas tem idade maior que a idade
mdia desta turma.
Em algoritmo
Em Pascal
Algoritmo PrVetor;
Var Id : vetor [1..10] de inteiro;;
x, soma, qtd: inteiro;
Med: real;
inicio
qtd 0;
para x de 1 ate 10 faca
inicio
escreva('Informe a idade da ', x ,' a. pessoa:');
leia(Id[x]);
soma:=soma +Id[x];
fim-para;
program PrVetor;
var Id : array [1..10] of integer;;
x, soma, qtd: integer;
Med: real;
begin
qtd:=0;
for x :=1 to 10 do
begin
write('Informe a idade da ', x ,' a. pessoa:');
readln(Id[x]);
soma:=soma +Id[x];
end;
Med:=soma/10;
escreva(' A mdia das idades ',Med);
para x de 1 ate 10 faca
inicio
se ( Id[x]= Med) entao
qtd:= qtd + 1;
fim-se;
fim-para;
escreva ('Existem ',qtd ,' pessoas com idade igual
mdia do grupo.');
Med:=soma/10;
writeln(' A mdia das idades ',Med:0:2);
for x := 1 to 10 do
begin
if ( Id[x]= Med) then
qtd:= qtd + 1;
end;
writeln('Existem ',qtd ,' pessoas com idade igual mdia do
grupo.');
end.
fim-algoritmo.
5) Exerccios
1. Elabore um algoritmo que leia os valores de um vetor de tamanho 5 e que em seguida gera um segundo vetor
na ordem inversa do primeiro vetor
2. Construir um programa que leia 10 nmeros reais e armazene em um vetor. Depois do preenchimento total,
percorrer esse vetor uma vez procurando pelo maior elemento.
3. Utilizando vetor construa um algoritmo que leia o nome e o peso de 10 pessoas. Calcule e escreva:
a) A mdia dos pesos das 10 pessoas;
b) Quantas pessoas possuem peso acima da mdia e o nome dessas pessoas.
4. Construa um programa que leia 10
nmeros e armazene em um vetor A.
Leia outros 10 nmeros e armazene em
um vetor B. Gere um terceiro vetor onde
cada elemento seja a soma dos outros
dois elementos. Veja ao lado
A
11
B
2
C
13
20
33
47
60
...
...
23
35
52
66
...
5. Ler dois vetores A e B com 20 elementos cada, construir um vetor C, onde cada elemento de C seja a subtrao
do elemento correspondente de A com B.
6. Dado o nome e a idade de um conjunto de 10 pessoas, elabore um algoritmo que:
a) Guarde todos os dados na memria;
b) Escreva os nomes das pessoas que tem a idade maior que a mdia;
c) Listar o nome da pessoa de maior e menor idade.
7. Criar um programa que defina um vetor para conter 10 nomes de candidatos e imprima os nomes das que esto
nas posies impares.
8. Construa um programa que efetue a tabuada de 1 a 10 de um determinado nmero informado pelo usurio e
armazene o resultado dessa tabuada em um vetor.
9. Em uma cidade do interior, sabe-se que, durante 31 dias do ms de outubro, foi feita a coleta de temperatura
diariamente pela manh. Elabore um algoritmo que leia os dados e que calcule e escreva:
a) A temperatura mdia;
b) Quantos dias a temperatura foi inferior temperatura mdia;
c) Quais os dias do ms nos quais a temperatura foi superior temperatura mdia;
10. Considere uma escola tcnica com 25 cursos. Construa um programa que leia o nome do curso e o valor da
mensalidade. O programa tambm dever calcular e exibir:
a) Qual o curso mais barato da escola.
b) Qual a diferena do valor mensalidade do curso mais barato em relao mensalidade mdia da escola.