Você está na página 1de 37

Introdução

Vetores
Exercícios Resolvidos

Aula baseada no material do Prof. Rafael Sfair (FEG/UNESP) e Prof. Antônio Augusto Chaves
(UNIFESP)

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

Prof. Rudinei Martins de Oliveira - rudmart@gmail.com

1 / 25
Introdução
Vetores
Exercícios Resolvidos

Introdução

Exercício:

Escreva um programa em linguagem C que lê palavras


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

Ex.:
casa – asac
lata – atal
sapo – opas

2 / 25
Introdução
Vetores
Exercícios Resolvidos

Introdução

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;
}

3 / 25
Introdução
Vetores
Exercícios Resolvidos

Introdução

Problema!!!

Refaça o programa anterior para palavras ou frases com


20, 30, e 50 caracteres.

4 / 25
Introdução
Vetores
Exercícios Resolvidos

Introdução

Problema!!!

Refaça o programa anterior para palavras ou frases com


20, 30, e 50 caracteres.

Para resolver, temos que utilizar VETORES

4 / 25
Introdução
Vetores
Exercícios Resolvidos

Definição

Um vetor é um tipo de dado utilizado para representar


uma certa quantidade de variáveis.

5 / 25
Introdução
Vetores
Exercícios Resolvidos

Definição

Um vetor é um tipo de dado utilizado para representar


uma certa quantidade de variáveis.

Todas as variáveis são do mesmo tipo!


Todas as variáveis são do mesmo tipo!
Todas as variáveis são do mesmo tipo!
Todas as variáveis são do mesmo tipo!
Todas as variáveis são do mesmo tipo!

5 / 25
Introdução
Vetores
Exercícios Resolvidos

Definição

Para se declarar um vetor podemos utilizar a seguinte


forma geral:
tipo_da_variavel nome_da_variavel [tamanho];

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

6 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Declaração

int notas[10];

7 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Declaração

int notas[10];
0 1 2 3 4 5 6 7 8 9
9 10 10 8 7 4 5 8 10 9

7 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Declaração

int notas[10];
0 1 2 3 4 5 6 7 8 9
0 9 110 210 38 47 45 56 8 7 108 9 9
9 10 10 8 7 4 5 8 10 9
char letras[20];
0 1 2 3 4 5 6 ... 19
U N E S P /0 /0 /0

7 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Declaração

int notas[10];
0 1 2 3 4 5 6 7 8 9
0 9 110 210 38 47 45 56 8 7 108 9 9
0 1 2 3 4 5 6 7 8 9
9 10 10 8 7 4 5 8 10 9
9 10 10 8 7 4 5 8 10 9
char letras[20];
0 1 2 3 4 5 6 ... 19
0U 1N 2E 3S 4P 5
/0 /06 ... /019
U N E S P /0 /0 /0

float pesos[40];
0 1 2 3 4 5 6 ... 39
59.50 72.25 64.70 88.30 71.25 45.45 98.60 67.90

0 1 2 3 4 5 6 ... 99
19.90 25.00 12.10 11.99 1.25 0.99 10.00 12.50

7 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Declaração

int notas[10];
0 1 2 3 4 5 6 7 8 9
0 9 110 210 38 47 45 56 8 7 108 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 83 74 45 56 87 8
10 99
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
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

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

7 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

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

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

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

char letras[20] = “UNESP”

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

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

char letras[20] = “UNESP”

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

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

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

char letras[20] = “UNESP”

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

for (i = 0; i < n; i++)


pesos[ i ] = 1.0;

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Exemplos - Inicialização

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

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

char letras[20] = “UNESP”

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

for (i = 0; i < n; i++)


pesos[ i ] = 1.0;

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

8 / 25
Introdução
Vetores
Exercícios Resolvidos

Alocação de memória

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.

Por exemplo, se declararmos:


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

9 / 25
Introdução
Vetores
Exercícios Resolvidos

Como acessar um vetor?

Para acessar o vetor declarado anteriormente vamos


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

10 / 25
Introdução
Vetores
Exercícios Resolvidos

Como acessar um vetor?

Para acessar o vetor declarado anteriormente vamos


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

Mas ninguém o impede de escrever:


exemplo[30]
exemplo[103]

10 / 25
Introdução
Vetores
Exercícios Resolvidos

Por quê?

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.

11 / 25
Introdução
Vetores
Exercícios Resolvidos

IMPORTANTE!!!

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

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

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

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

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

12 / 25
Introdução
Vetores
Exercícios Resolvidos

IMPORTANTE!!!

Num vetor de 100 elementos o último elemento é o de


índice 99.

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


programa “Abortar”.

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


declarando um vetor) deve ser um valor constante, já que
vetores são blocos de memória estática de um
determinado tamanho.

13 / 25
Introdução
Vetores
Exercícios Resolvidos

Definindo constantes

Há duas formas de definir uma constante em C:

#define nomeConstante valorConstante


Exemplo: #define tam 50

ou

const int tam = 50;

14 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 1

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.

15 / 25
scanfIntrodução
(“%c %c %c %c”, &L1, &L2, &L3, &L4);
printf Vetores
(“%c %c %c %c”, L4, L3, L2, L1);
Exercícios Resolvidos
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;
}

16 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 2

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.

17 / 25
Introdução
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;
}

18 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 3

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 executar
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.

19 / 25
indice++;
Introdução
} Vetores
return 0;Exercícios Resolvidos
}
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);
}

20 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 1

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).

21 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 2

Crie um programa que armazene os 20 primeiros termos


da Sequência de Fibonacci em um vetor e imprima esses
números na tela.

22 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 3

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.

23 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 4

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

24 / 25
Introdução
Vetores
Exercícios Resolvidos

Exercício 5

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).

25 / 25

Você também pode gostar