You are on page 1of 29

Estrutura de Dados (Vetores)

Programação de Computadores I
Estrutura de Dados (Vetores)

Prof. Antônio Augusto Chaves

Departamento de Matemática
Bloco VI - sala 23

http://www.feg.unesp.br/˜chaves
chaves@feg.unesp.br
Estrutura de Dados (Vetores)

Sumário

Introdução

Vetores

Exercícios Resolvidos

Exercícios
Estrutura de Dados (Vetores)
Introdução

Sumário

Introdução

Vetores

Exercícios Resolvidos

Exercícios
Estrutura de Dados (Vetores)
Introdução

Introdução

I Exercício:

Escreva um programa em linguagem C que lê palavras


com 4 letras e as imprime de trás para frente.

Ex.:
I casa – asac
I lata – atal
I sapo – opas
Estrutura de Dados (Vetores)
Introdução

Introdução

I Solução:

int main( )
{
char L1, L2, L3, L4;
printf (“Entre com palavras de 4 letras: ”);
scanf (“%c %c %c %c”, &L1, &L2, &L3, &L4);
printf (“%c %c %c %c”, L4, L3, L2, L1);
return 0;
}
Estrutura de Dados (Vetores)
Introdução

Introdução

I Problema:

Refaça o programa anterior para palavras ou frases com


20, 30, e 50 caracteres.
Estrutura de Dados (Vetores)
Vetores

Sumário

Introdução

Vetores

Exercícios Resolvidos

Exercícios
Estrutura de Dados (Vetores)
Vetores

Definição

I Um vetor é um tipo de dado utilizado para representar


uma certa quantidade de variáveis.

I Todas as variáveis são do mesmo tipo.


Estrutura de Dados (Vetores)
Vetores

Definição

I Para se declarar um vetor podemos utilizar a seguinte


forma geral:
tipo_da_variavel nome_da_variavel [tamanho];

I no qual:
I tipo_da_variavel: é o tipo das variáveis que devem ser
criadas. Ex.: int, char, float, entre outros;
I nome_da_variavel: é o nome que será utilizado para
referenciar o conjunto de variáveis;
I tamanho: é o número de variáveis que será criado
(tamanho do vetor).
Estrutura de Dados (Vetores)
Vetores

Exemplos - Declaração
I int notas[10];
0 1 2 3 4 5 6 7 8 9
0 9 110 210 38 74 45 56 8 7 10 8 9 9
0 1 2 3 4 5 6 7 8 9
9 10 10 8 7 4 5 8 10 9
90 1
10 2
10 3
8 74 45 56 87 8
10 99
I char letras[20];9 10 10 8 7 4 5 8 10 9
0 1 2 3 4 5 6 ... 19
0U 1N 2E 3S 4P 5
/0 /06 ... /019
0
U 1
N 2
E S3 P4 5
/0 6
/0 ... 19
/0
U N E S P /0 /0 /0
I float pesos[40];
0 1 2 3 4 5 6 ... 39
0
59.50 1
72.25 2
64.70 3
88.30 4
71.25 5
45.45 6
98.60 ... 39
67.90
59.50 72.25 64.70 88.30 71.25 45.45 98.60 67.90

I double preco[100];
0 1 2 3 4 5 6 ... 99
0
19.90 1
25.00 2
12.10 3
11.99 4
1.25 5
0.99 6
10.00 ... 99
12.50
19.90 25.00 12.10 11.99 1.25 0.99 10.00 12.50
Estrutura de Dados (Vetores)
Vetores

Exemplos - Inicialização

I int notas[10] = {9,10,10,8,7,4,5,8,10,9}

I notas[0] = 9; notas[1] = 10; · · · notas[9] = 9;

I char letras[20] = “UNESP”

I scanf (“%c”, &letras[6]);

I for (i = 0; i < N; i++)


pesos[ i ] = 1.0;

I preco[5+2] = preco[5] ∗ preco[2];


Estrutura de Dados (Vetores)
Vetores

Alocação de memória

I Quando o C vê uma declaração de vetor ele reserva um


espaço na memória suficientemente grande para
armazenar o número de células especificadas.

I Por exemplo, se declararmos:


float exemplo [20];
será reservado 4 ∗ 20 = 80 bytes. Estes bytes são
reservados de maneira contígua.
Estrutura de Dados (Vetores)
Vetores

Como acessar um vetor?

I Para acessar o vetor declarado anteriormente vamos


escrever:
exemplo[0]
exemplo[1]
..
.
exemplo[19]

I Mas ninguém o impede de escrever:


exemplo[30]
exemplo[103]
Estrutura de Dados (Vetores)
Vetores

Por quê?

I Porque o C não verifica se o índice que você usou está


dentro dos limites válidos. Este é um cuidado que você
deve tomar. Se o programador não tiver atenção com os
limites de validade para os índices ele corre o risco de ter
variáveis sobrescritas ou de ver o computador travar.

Bugs terríveis podem surgir.


Estrutura de Dados (Vetores)
Vetores

IMPORTANTE!!!

I O primeiro elemento de um vetor é o de índice 0 (zero).


I Num vetor de 100 elementos o último elemento é o de
índice 99.

I Acessar uma posição inválida de um vetor pode fazer seu


programa “Abortar”.

I Atenção: o elemento entre colchetes [ ] (quando


declarando um vertor) deve ser um valor constante, já que
vetores são blocos de memória estática de um
determinado tamanho.
Estrutura de Dados (Vetores)
Exercícios Resolvidos

Sumário

Introdução

Vetores

Exercícios Resolvidos

Exercícios
Estrutura de Dados (Vetores)
Exercícios Resolvidos

Exercício 1

I Escreva um programa em linguagem C que lê palavras


com 10 letras e as imprime de trás para frente. Utilize
vetores e laços.
Estrutura de Dados (Vetores) scanf (“%c %c %c %c”, &L1, &L2, &L3, &L4);
Exercícios Resolvidos printf (“%c %c %c %c”, L4, L3, L2, L1);
return 0;
}
Solução
#define TAM 10
int main( )
{
char letras[TAM];
int i;
printf (“Entre com a frase: ”);
for (i = 0; i < TAM; i++)
scanf (“%c”, &letras[i]);
for (i = TAM – 1; i >= 0; i-- )
printf(“%c”, letras[i]);
return 0;
}
Estrutura de Dados (Vetores)
Exercícios Resolvidos

Exercício 2

I Escreva um programa em linguagem C que lê as


matriculas e as notas de no máximo 100 alunos. O
programa deve ler e armazenar uma nova matrícula e uma
nova nota até que o usuário digite uma matrícula negativa.
Estrutura de Dados (Vetores)
Exercícios Resolvidos

Solução
#define TAM 100
int main( )
{
float notas[TAM];
int mat[TAM], aux, indice = 0, total;
printf(“Entre com a Matricula (ou negativo para sair): ”);
scanf(“%d”, &aux);
while (aux > 0)
{
mat[indice] = aux;
printf (“Entre com a nota: ”);
scanf (“%f ”, &notas[indice]);
printf (“Entre com a Matricula (ou negativo para sair): ”);
scanf (“%d”, &aux);
indice++;
}
return 0;
}
Estrutura de Dados (Vetores)
Exercícios Resolvidos

Exercício 3

I Utilizando o código do programa anterior, escreva um novo


programa que permite ao usuário consultar a nota de um
aluno digitando a sua matrícula, o programa deve rodar
até que o usuário digite uma matrícula negativa.

Obs.: O trecho de código que lê as matrículas e as notas é


o mesmo do programa anterior.
Estrutura de Dados (Vetores)
indice++;
Exercícios Resolvidos
}
return 0;
}
Solução
total = indice;
printf (“Entre com a Matricula (ou negativo para sair): ”);
scanf (“%d”, &aux);
while ( aux > 0)
{
for (indice = 0; indice < total; indice++ )
if ( mat[indice] == aux)
break;
if ( indice < total)
printf (“A nota eh: %.2f \n”, notas[indice]);
else
printf (“Matricula nao encontrada\n”);
printf (“Entre com a Matricula (ou negativo para sair): ”);
scanf (“%d”, &aux);
}
Estrutura de Dados (Vetores)
Exercícios

Sumário

Introdução

Vetores

Exercícios Resolvidos

Exercícios
Estrutura de Dados (Vetores)
Exercícios

Exercício 1

I Escreva um programa que conta as ocorrências de vogais,


consoantes e espaços em branco da cadeia de caracteres
correspondente ao seu nome completo (sem acentuação).
Estrutura de Dados (Vetores)
Exercícios

Exercício 2

I Crie um programa que armazene os 20 primeiros termos


da Seqüência de Fibonacci em um vetor e imprima esses
números na tela.
Estrutura de Dados (Vetores)
Exercícios

Exercício 3

I Elabore um programa para ler as notas dos 40 alunos da


turma, calcule a média da turma, e calcule também
quantos alunos tiveram notas abaixo da média, e quantos
tiveram notas acima da média.
Estrutura de Dados (Vetores)
Exercícios

Exercício 4

I Faça um programa que dado o vetor [2; 4; 35; 50; 23; 17;
9; 12; 27; 5] retorne:
a) maior valor
b) média dos valores
c) os valores dispostos em ordem crescente
Estrutura de Dados (Vetores)
Exercícios

Exercício 5

I Fazer um programa para:


a) receber 3 notas parciais do aluno em um vetor e a nota do
exame em uma variável separada (-1 se o aluno não fez
exame).
b) executar as seguintes operações:
i. Imprimir vetor de notas parciais e nota do exame
ii. Retornar 0 se o aluno está reprovado direto, 1 se o aluno
está reprovado em exame, 2 se o aluno está aprovado em
exame e 3 se ele está aprovado direto (considere a média
7.0).
Estrutura de Dados (Vetores)
Referências Bibliográficas

Referências Bibliográficas

Carboni, I.F. Lógica de programação. São Paulo: Pioneira Thomson


Learning, 2003.

Souza, M.A.F. e outros. Algoritmos e lógica de programação. São Paulo:


Pioneira Thomson Learning, 2005.

Damas, L. Linguagem C - 10a ed. Rio de Janeiro: LTC, 2007.

Mizrahi, V.V. Treinamento em linguagem C - módulos I e II. São Paulo:


McGraw-Hill, 1990.

Senne, E.L.F. Primeiro curso de programação em C - 3a ed. Florianópolis:


Visual Books, 2009.

You might also like